I bought a genesis game console with a few games. I got tired of playing Sonic and MicroMachines
so I decided to build a reprogrammable cartridge. Many things can be done with such a cartridge:
- Development:
You can develop your own applications or games and try them on real hardware instead of using an emulator. If
you'd like to get into genesis development, I think the
genesis technical documentation available at zophar
is a good starting point.
- Music:
You can listen to genesis music (.gym) on a real genesis. There is a rom named
Flavio's GYM Player which needs to have a .GYM file appended to it.
Once loaded, the rom plays the gym file.
Here it is: Flavio's GYM Player V1.0 (PD).zip
- Using demos and public domain roms:
Demos are usually animations and presentations with special effects and music made by
one person or a group of person to demonstrate their abilities.
- Using commercial game roms:
Yes, it's possible to download real games roms and use them with this cartridge. Unfortunately, it's illegal. Some
people say that if you erase the rom within 24 hours, it's legal to use them. (I dont know if it's true, I am
not a lawyer). Since many of those games are not sold anymore and have been 'abandonned' by the company owning the
copyright, they may be considered as abandonware. (And even then, I'm not sure if it's legal)
IMPORTANT:Do not contact me asking for roms or where to get them.
Pictures
Here are a few pictures of the first version which supports games up to 512K by
using 2 AT49F002 256K flash chips:
Here are a few pictures of the second version, which supports games up to 1024K (1Meg)
by using 2 AT49F040 512K flash chips. This new version can also hold 2 games of 512K each. Each
time the console's reset switch is pressed, the current game is changed. A jumper selects
between the 1x1024K and 2x512K mode.
Here's the second version schematic. I used two AT49F040 512K flash chips. The cartridge can
hold a game of 1024K (1Meg) or 2 512K games. When 512K games are used, we can alternate
between them by pressing the reset switch on the genesis:
Here is a pdf version: genesis_8mbit_cart.pdf
I Used 2 flash chips because the Genesis data bus is 16 bits wide. One chip is for
bits 0 to 7 and the other is for bits 8 to 15.
The first version which used AT49F002 flash chips did not have the 74ls90 to alternate between
banks. The A18 signal was simply not connected since the flash chips addressing stops at A17.
Parts suggestion (digikey.com):
.1uf capacitors: BC1148CT-ND
470uF capacitor: P5141-ND
74HCT90: ? (non stock)
AT49F040: ? (non stock)
0 ohm resistors: Use wires
10k resistor: 10.0KXBK-ND
32 pin dip socket: 3M5470-ND
Jumpers: S1212E-13-ND (has 13 pins, cut it in pieces)
Printed circuit boards
I used a software named PCB to create the layout. PCB is available
at pcb.sourceforge.net and works on
Unix like systems. If you're not on unix, just use the gerber files.
Here are the source files:
Second version (1024K): cart_8mbit.pcb
First version (512K): cart_512k.pcb
Here are the gerber files: cart_8mbit_gerbers.zip Warning: There are some small mistakes on the 512K version. Take note of the
wires on the picture. The 1024K version on the pictures had mistakes too but I
have corrected them in the source file.
Programming
To program the flashs, I use an old universal programmer from xeltek.
You can buy an universal programmer from ebay for approximately 50$ US. You may also build
your own programmer since the flash datasheet explain how to program them.
My universal programmer only accepts dip chip packages. It can program other types of
package with an adaptor. I was not able to find flash chips bigger than 512K with a dip package. I could
have soldered bigger flashes on my pcb but I would have had to build an adapter to program the cart.
Tools
smd2bin
Genesis roms ususally comes in .smd (Super Magic Drive) format. You cannot simply
program them in the flash chips, they must be converted to raw binary first.
I coded a simple command line tool to convert .smd files to .bin which works under Linux.
(It's normal C, it should compile fine on windows):
You can now program your flash or eeprom chips with those two new files.
The software you use to program your flash and eeprom chips may have an option to load even and odd bytes
separately. If it has, you dont need bin2hilo.
I cannot be held responsible for any damages that could occur to you
or your equipment while following the procedures present on this page.
Also, I GIVE ABSOLUTELY NO WARRANTY on the correctness and usability
of the informations on this page. Please note, however, that the procedures
above have worked in my case without any damages or problems.