CHIP-8 emulators for games
Posted by Xavier on 1 September 2019, 09:44 GMT
In 2018, another implementation of a CHIP-8 emulator for a TI graphing calculator was uploaded into our archives. CHIP-8 is the combination of an interpreted programming language and the corresponding virtual machine for playing the corresponding binaries, introduced in the 1970s. The virtual machine is lightweight (in the original version: 4 KB addressing space, 2 timers, 64x32 graphics area, 16-key hexadecimal keyboard), and therefore, since the late 1970s, CHIP-8, and variants thereof - some of which even support color graphics - have been implemented on a wide range of general-purpose and special-purpose computers, whether they use CPUs or FPGAs. Among the variants is the popular SCHIP(-8), pioneered on the HP-48 in 1990, which spawned a set of new games taking advantage of a dozen additional instructions and double the number of pixels in each direction. You can easily find more information about the CHIP-8 family if you wish :)
So... let's introduce Chip-84, a CHIP-8 emulator/interpreter for the TI-eZ80 series, by Christian "ckosmic" Kosman, open source on Github. It's his first, and so far only, file on ticalc.org. Like most emulators made in the past three decades, it supports SCHIP-8 improvements, and some aspects of emulation can be tweaked at runtime.
I went looking around in our archives, and it happens that they contain at least 46 other implementations of a (S)CHIP-8 emulator for other generations of our favorite graphing calculators, all of them being native code, unsurprisingly. For most of them, the source code and converters (c8 to computer-side format suitable for calculators) are provided; 3 even provide converted ROMs. Some of these implementations were featured in the past. In chronological order:
Be aware that the keyboard layout of the CHIP-8 is slightly peculiar, and worse, that there are no standardized keyboard bindings across ROMs. Living the original (S)CHIP-8 playing experience by discovering the inconsistent key bindings by yourselves is of course an option, but maybe you'll enjoy the games more if you try to find documentation about the relevant keys before playing, for instance in Joe Wingbermuehle's archive ? Beyond that, happy playing :)
Article written by Lionel Debroux, with input from Adrien "Adriweb" Bertrand. Edited on 2019/11/23 to add two other implementations listed in the comments of this news item, which escaped Lionel's search into the ticalc.org archives.