tihle: Calculator Emulation Without ROMs
Published by KermMartian 2 years, 9 months ago (2020-07-29T20:30:02+00:00) | Discuss this article

Cemetech administrator and behind-the-scenes improver-of-all-things Peter "Tari" Marheine has publicly announced his latest project, tihle ("TI High-Level Emulator", pronounced "tile"). A hybrid of a simulator and emulator, it aims to make it possible to run any monochrome TI-83+/TI-84+ assembly program in any platform that Rust can target, including browsers. Rather than an emulator like jsTIfied, which strictly emulates a CPU and supporting hardware, and requires the bootcode and operating system of the original device, tihle simulates the behavior Ion shell calls and system calls (so-called "bcalls" on TI z80 platforms), like drawing a sprite to the graphics buffer, copying the graphics buffer to the screen, or getting input from the keyboard. This means that it can execute programs and games without needing the original TI-OS, the perennial legally dicey aspect of most emulators.

To quote Tari in his announcement: "Following the still-recent discussion around native code support being removed from the CE, I had some thoughts about how doing so destroys the legacy of existing calculator software and how the (inevitable) availability of hacks to bypass this limitation is not a useful long-term solution. [...] I wrote ~7000 words about this on my own web site, so go ahead and read the gory details there. To summarize:

  • This is a new emulator meant to avoid using any TI code
  • It's written in Rust
  • Right now Phoenix is playable and maybe other things (but I've only tested Phoenix)
  • You can run it in a web browser (or as a native program)

[...] The general concept is something of an end-run around the problem that it's feasible to reimplement much of TI-OS, but too much work for anybody to have tried/made much progress on it. It's much easier to implement some things in a Real Programming Language (Rust!) than straight assembly, so that's what I've done."

As Tari invites, "Discuss, or whatever? Make suggestions, ask questions..." in the associated topic, and give it a try by playing Phoenix in your browser right now!

Phoenix running on tihle in a browser