My main project is the Maxima OS designed to low-cost ARM devices (like the Rapsberry Pi) that can be converted in a "enhanced calculator", althought the idea of a Neo Geo emulator for NSpire is one of my crazy thoughts!
A Neo Geo emulator for NSpire should use the main flash memory (which is about 100 Mb of free space
) to be pratical, unless anyone don't care to bring all external storage devices pluged in a classroom showcase.
The Neo Geo Arcade System is basically a standard arcade machine on the beginning of 1990's.
It contains a Motorola 68000 CPU clocked at 12 MHz that controls all hardware, and a secondary Zilog Z80 clocked at 4 MHz helps the machine to handle the Yamaha sound chip capable of 15 sound channels. A proprietary raster video processor handle all graphic code to the analog video output, which is basically a 2D video hardware on par of the first graphic VGA sold on IBM PC on the same year. (Which is more easy to emulate)
The graphic chip of Neo Geo system was capable to processing up to 380 individual sprites simultaneously in a matrix color pattern of 4096 colours in RGB666 (In theory was capable to handle 65,536 colours) on a display resolution of 320*224 (which is almost the same screen resolution of Nspire, which is 320*240)
The system had 64 kb of main RAM for game cache code, plus 64 kb of video RAM, more 16 kb of palette memory, add more 4 kb of video RAM cache, and finally 2 kb for buffer sound (handled by Z80).
The system's firmware was about 128 kb, and several hacks or custom BIOS enable to play my games on hacked systems or emulators was released (specially in Brazil, when bootlegs and hacked systems was and still is very common).
All games was released in cartridges up to 330 Mbits (41,25 Mb), and it is read-only ROM memory. Later a special and official hack
enable more complex games up to 716 Mbits (89,5 Mb), which was the size of the last ever game launched to this arcade system in 2004 (Had less than 1 Mb free on cartridge!): Samurai Showdown V. In this huge games, the game is splitted up to three memory banks, and requires some clock cycles to switch.
There is a simple and FOSS SDL emulator dedicated to Neo Geo: gngeo, that anyone could try to port to Ndless libraries and only requires SDL and Zlib to open the ROM's. Normally, the emulators for Windows, Linux loads all ROM code to the RAM to achive faster loading times. The NSpire had only 64 Mb of RAM which is less of the last Neo Geo games (the first ones only occupy few Megabytes).
A possible workaround is that this games need three memory banks of 40 Mb each, can be loaded partially to RAM and executed. When the game requires switching (normally occours and the end a level), the emulator can stop the virtual machine and switch the memory ROM at Nspire RAM prior to resume the emulation. Small games can be loaded all the way to RAM without problem.
And finally all saved games is stored in a 512 bytes file
(some games use the full 2 kb of memory card designed to gamesaves) which is normally written when the emulator finishes the virtual machine (copy the RAM contents to the file stored in disk).
Probably an overclocked Nspire can emulate
in extremis the Neo Geo Arcade System, but would be awesome if anyone make this happen (and try to play all Metal Slug series before the batteries run out
)