Since fall I've been working on a successor cartridge to the FlashROM 99, and my prototype is finally in a state where I can present it:
As you can see, the look and feel of the FinalGROM 99 is very similar to the FlashROM (as are the videos ). But the new cart also offers some substantial improvements:
- supports both ROM and GROM images
- has 512K of RAM for 64 banks or 56 banks + 5 GROMs
- supports folders
- can use raw cartridge dumps
- fits regular cartridge shell (eventually)
Note that the reset button is not working yet, so I had to turn the console off and on again in the video.
At the heart of the FinalGROM 99 is a CPLD (complex programmable logic device), which replaces all of the 74 logic ICs found on the FlashROM. CPLDs are similar to very, very small FPGAs, but predate those by quite a bit. The XC95144XL used here is probably the last "modern" chip that supports 5V signal levels.
fg99-parts-save.jpg 287.17KB 21 downloads
The microcontroller still manages the SD card, loads images, and generates the menus. While the picture shows an ATmega 328, a 168 is actually sufficient.
The SRAM chip has 512K, which is the upper affordable limit for 3V parallel SRAM. This yields 64 banks, with GROMs residing in the upper 8 banks (although only 5 are used now).
Finally, the voltage converter transforms the 5V supplied by the TI into 3.3V used by all board components. That includes the CPLD, which can read 5V signals, but outputs 3.3V signals (which the TI99 can understand).
Probably the biggest downside of the FinalGROM 99 is the reliance on SMT technology, which is more difficult to solder by hand. But 5V tolerant CPLDs are not available in through-hole or PLCC format, the only exception being some Atmel CPLDs that could only be programmed by ridiculously expensive software.
But please note that this is a prototype! This cart won't even fit the TI cartridge port, as my board layout has been exceptionally stupid. But thanks to the port expander, I could still use the board and even add a FlashROM for debugging purposes. At last I found the true purpose of a Widgit!
The final version of the FinalGROM 99 will replace the microcontroller and the voltage controller by SMD parts. I'm still undecided whether I should go full SMD or keep through-hole caps and resistors. Button and LED will definitely remain through-hole, so that people can mount those parts in a cart shell.
The next steps will be to design the final board and get new PCBs. That done, I can send out some test boards. Note that updating the CPLD will require a JTAG cable, whereas the ATmega can be updated via SD card (at least that's the plan).
Do you have any reasonable suggestions for features? One thing that had already been suggested was write support. If the logic fits, I could add a DIP switch (or an SD config file) that would enable writing to select parts of the RAM. Are there any precedents for this? I know of Mini Memory and the Wiesbaden Supermodule -- are there any others?
Finally, please excuse the somewhat grandiose name of the cart. The natural name FlashGROM seemed just too close to FlashROM, so to avoid confusion I went with FinalGROM.