TI-84 Plus Emulation

From Hackspire
Revision as of 13:29, 5 August 2007 by ExtendeD (talk | contribs) (→‎OS emulation: Archive memory)
Jump to navigation Jump to search

TI-84 Plus OS

Image file

The archive memory of the TI-84 Plus is integrated to the TI-NSpire OS as 64kb files in a PK-Zip file (see the OS upgrade file format). The OS code is encrypted and perhaps compressed with the rest of the TI-Nspire OS code in certificate field 8070. Fortunately a ROM image of the emulated TI-84 Plus can be dumped through the DBUS with standard tools such as TiLP.

OS emulation

Do not expect the emulated TI-84 Plus to offer more features than the real one. The speed is roughly the same, and the RAM and archive memory have equivalent sizes (the whole memory of the TI-Nspire is not visible from the emulated TI-84 Plus).

Version 2.42 of TI-84 Plus OS is used while the latest version available for the real TI-84 Plus is 2.41. The two versions have exactly the same size (TODO: confirm).

Some features are disabled in v2.42: the key combo for the self-test doesn't work, and the TI-84 Plus OS can't be upgraded (an error is returned by the computer link software).

The TI-84 Plus ROM archive memory is set up with preinstalled flash applications, but they can be deleted from the current memory image.

Hardware emulation

USB

The USB ports are not emulated, events on the USB bus are not propagated to the memory-mapped port according to CalcSys and usb8x's USBTools and portmon. The TI-84 Plus (and Titanium) USB controller has a quite complicated port interface, and the TI-Nspire probably uses a different controller. Texas Instruments has probably preferred to integrate a DBUS to the snap-in TI-84 Plus Keypad and emulate it rather than to waste time on USB emulation.

When connected to a computer linking software such as TI-Connect or TiLP, a TI-89 Titanium is strangely advertised by the USB descriptors. Commands can be sent by the computer to this fake Titanium through the OUT endpoint, but the TI-Nspire never responses. Forcing TI-84 Plus as device type in TiLP doesn't change anything. Since the USB descriptors of the TI-84 Plus ROM image in the TI-Nspire OS have not been changed, the USB attachment is entirely handled by the TI-Nspire, and not by the emulated TI-84 Plus which never sees the USB events as described above.

Connecting a USB optical mouse with an adapter in TI-84 Plus mode make the mouse flicker as in the TI-Nspire standard mode, but much slower (~1 second instead of ~0,2s).

Working and non-working programs

Please mention any TI-84 Plus programs which do not work with the TI-Nspire integrated emulator, with enough details for the authors or other hackers to fix them. Mention only noteworthy programs when they work, which wouldn't obviously be compatible for example because of special use of the TI-84 Plus hardware.

Working

  • Noshell : But should be tested in details

Not working

  • usb8x : See USB.
  • MirageOS: Makes the TI-Nspire reboot when run with at least one assembly program in memory. E-mail sent to Dan Englender, waiting for his reponse (ExtendeD 01:11, 5 August 2007 (CEST)).

We don't know

Programs we would like you to try and comment:

We need your help

  • Try as many assembly programs and flash applications for TI-84 Plus as possible on the TI-Nspire to find which ones do not work. We will try to make them compatible with the TI-Nspire, and may be TI-Nspire hackers may use the underlying emulation flaw. You may also try the non-tested and noteworthy programs mentionned above.
  • Calculate the difference between the CPU and the DBUS speed of the emulated TI-84 Plus and a real one
  • Test intenstly and in details the accuracy of the emulation (CPU, memory mapping, ports, ...) and report your tests.
  • Try (at your own risk) some flash unlocking code. Can the TI-84 Plus OS be patched?