Versão em Português aqui.
Recently I acquired a SNES. But it only came with a bootleg Mortal Kombat cartridge. Searching for games I found a lot of repro cartridges (Cartridges with the ROM swapped) being sold at local second hand selling websites. The problem is that they are sold usually at prices comparing to those of original untouched cartridges. People should not overprice something they are stealing anyway.
So what? I made this post to prove anyone with an Arduino Mega and some spare components can burn a EPROM for cheap.
How are repro cartridges made ?(usually)
- Find a boring game cartridge (sports specially);
- Burn a EPROM with the desired ROM file;
- Swap the cartridge ROM with the programmed ROM.
Okay, but then why is not everyone making their own repros? Because a programmer is not so cheap. EPROM programmers can be pricey. Even the Chinese ones (It actually depends on the place, here you can pay overpriced from some scumbag or try to import and probably be taxed).
Everything has a cost-benefit ratio and Makers/Hackers are always creating super useful tools with cheap materials. In 2014, I fixed Mega Drive cartridge using a BIOS chips found in scrap. Write flash memory is not trivial, there is a certain algorithm, but still is a relatively simple process. Maybe write EPROM was not complicated.
An EPROM also is a memory. And it’s actually even easier to program than flash memories. To write a byte in EPROM simply select the address via pins A0, A1, A2 … and so on; put the byte to be written in Q0 pins, Q1, Q2 … etc, and give a pulse with a high voltage (13V) in the Vpp pin. The problem is just to do this for 8 * 1024 * 1024 = 8388608 addresses. More information can be found on the 27C801 eprom datasheet.
I’ve used Arduino to program other kinds of memory. Why not also try EPROMs? Also, Arduinos are super cheap (Ebay/Ali express). However, I did not buy an Arduino only to program memories, I have some here at home I use to all kinds of things.
Below is a schematic I came up with for the programmer:
Also, it should be noted the Eprom needs to be fed 6V when being programmed. Hence the switch in the schematic above. I used a simple jumper and manually change Vcc when needed.
I soldered the circuit on a prototyping shield with a ZIF socket. This makes it eadsy to attach and remove the Eprom. The 13 volts are provided by a boost module, but possibly a 12 volt supply can be used (I did not test, may be you can;). I used a boost so everything is powered by USB.
Cool, but in this case, hardware without software is nothing. Python for the win. A Python script reads the data from a file and sends over serial to the Arduino Mega, which receives the data and writes in memory, all very simple.
$ python3 eprom.py
What do you want do do?
The project files are available in my github.
The memories I have here I bought on Ebay, about $ 2 each.
Now you know that you can program EPROMS with just a Arduino Mega and some additional components ;). Below are some pictures of the project.
Shield finished. I adapted the code to write flash memories as well. But it still has some problems. The code is also in my github anyway.
The EPROM eraser I use
The other side of the board.
- Please do not use this work for commercial stuff
- Dragão sem Chama does not share ROMS
- Have fun!
See you o/
This work is licensed under a Creative Commons Attribution-NonCommercial 3.0 Unported License.