MD Flash – Hardware to Release Physical Megadrive / Genesis Games

I’d been toying for a while with the idea of making a Megadrive / Genesis Flash Cart to enable new homebrew games to be released on real hardware (similar to De-Bee Card for TG-16). There already exists similar products but they unfortunately are using 3.3V Flash in a 5V system which can lead to all sorts of problems with latch up and clamping diode failure. To keep it short and simple, using 3.3V Flash in a 5V system requires the use of level translators!

Anyway, back to the topic at hand. I decided to use purely 5V parts to avoid any kind of out-of-spec condition in my product. The result: a 16Mbit max (2Mbit, 4Mbit and 8Mbit available as well) with 32KB of save RAM (FRAM or battery-backed SRAM). The Flash parts used are MX29F800 (or MX29F400 – MX29F200) and save RAM is FM1808 (FRAM) or AS6C62256 (SRAM).

Not An Everdrive!

MD Flash is NOT an Everdrive nor is it trying to be an Everdrive. MD Flash is modern cart hardware which can be used to release new games in a 5V safe way which gives developers peace of mind about not running the Megadrive / Genesis bus out of spec into clamping diode hell!

Burning the ROMs

I’ve been using a TL866CS EEPROM burner for some time now and have no real complaints about it. This burner has native support for MX29Fx00 parts so I decided I was not going to re-invent the wheel and would not make custom burning hardware. Instead, I simply designed a cartridge adapter which plugs into the TL866CS and converts the 64-pin Genesis cartridge into the 44-SOP pinout for MX29Fx00. There is a jumper on my cartridge adapter to select between upper 8Mbit and lower 8Mbit when my cart is configured for 16Mbit ROMs.
 MD Flash 8Mbit Cart
 MD Flash 16Mbit Cart with 32KB FRAM
 MD Flash in its natural habitat
 
 The MD Flash 8Mbit configuration can also support smaller ROM sizes with the MX29F400 (4Mbit) and MX29F200 (2Mbit) Flash ICs. Of course, nothing prevents an even smaller ROM from being loaded onto a 2Mbit IC.  The MD Flash 16Mbit configuration uses two 8Mbit (MX29F800) ICs, address decoding is handled by a 74HC139. The 74HC139 also decoded the upper 16Mbit of the ROM space for the 32KB of save RAM included on cart.  MD Flash in its natural habitat – oh crikey!

Endianness

The Motorola 68K CPU is a Big-Endian CPU which means that ROM files you have (but legally shouldn’t ;)) on your PC are not compatible to be directly burned onto MD Flash. The high and low bytes of each word must be swapped. For this, I wrote a quick C# Endian Converter which swaps all bytes in each word and also separates the ROM into two 8Mbit files (upper and lower) if the ROM is larger than 8Mbit. The output files from my Endian Converter can be directly burned onto MD Flash.

Results

Castlevania: Bloodlines (8Mbit)
Megaman Wily Wars (16Mbit with save)
Sonic 3 (16Mbit with save)
 Nothing really special here, just an 8Mbit or smaller ROM. There’s really no point in testing smaller than 8Mbit ICs…  This is the SRAM hack for MMWW, the original game used a serial EEPROM for save files. 16Mbit ROMs are split across two 8Mbit chips on MD Flash.  The original Sonic 3 cart used a FRAM chip to store save files. The MD Flash hardware is fully compatible with this format (as shown above). Here it is using FRAM as well but the footprint is pin-compatible with SRAM AS6C62256 and there is a footprint for a CR2032 holder as well.

How to Release Games

If you’re interested in releasing a game on Genesis / Megadrive using the MD Flash hardware, stay tuned to updates on my Products page where I will put up a product page for MD Flash shortly. Exact details on burning arrangements will be worked out on a customer per customer basis. I will absolutely NOT burn repros for you, it must be an original game.

René

Electronics engineer and retrogaming fanatic!

Leave a Reply

Your email address will not be published. Required fields are marked *