A while back — following the repair of a C64 — I posted about testing the PLA replacement that I had used. In the great video on that topic shared by MindFlareRetro, Eslapion mentions two possible tests for a PLA replacement. One of these I covered in my post back then. The other test involves using a Super Zaxxon game cartridge.
Due to the unique way of bank switching implemented by that module, it seems to be particularly vulnerable to glitches produced by PLA replacements. Less-than-perfect replacements tend to produce crashes or skewed graphics when running that game.
I don’t own a Super Zaxxon cartridge and they seem to be hard to find these days. So I thought it might be fun to create my own replica. Doing the research for this project, I came across a post on the Lemon64 board. It turned out I was lucky: Siem Appelman had already examined the original module and documented the essential parts of the schematic. I contacted him and he was willing to share his findings, including his own design for a reduced version that would require a single memory chip, only.
I opted for a W27C512 EEPROM chip because I had plenty of them lying around and they seem to be the cheapest parallel PROM chips around these days. You can get them for less than 0.50€ each on eBay. With Siem’s simplified design, only the lower 32KiB are used and need to be programmed like this:
$0000 lower $1000 bytes (4KiB) mapped to $8000 $1000 lower $1000 bytes (4KiB) mapped to $9000 $2000 $2000 bytes, bank 0 (8KiB) mapped to $A000 $4000 lower $1000 bytes (4KiB) mapped to $8000 $5000 lower $1000 bytes (4KiB) mapped to $9000 $6000 $2000 bytes, bank 1 (8KiB) mapped to $A000
The game switches between the upper banks 0 and 1 by reading the contents of the lower memory either starting at $8000 or $9000.
After rounding out the schematics with general knowledge on C64 cartridges gained from Jani’s excellent post, I first wanted to create a prototype to ensure that the design would be working. For this, I tried to use my expansion port breakout board that I had created for the 74LS279 test circuit. But I soon realized that connecting all the data and address lines to the EPROM using jumper wires wasn’t only a pain in the rather tedious but also very unstable.
So, I created a new revision of the breadboard adapter that allows for an optional 27C512 or 27C020 EPROM to be placed on the PCB and to be connected directly. Using this new board, I finally managed to create a working prototype!
Actually, the prototype turned out to be working too well. When I connected it to my C64 that is featuring the replacement PLA, I was a little disappointed that I still didn’t see any crashes or broken graphics. It remains to be examined whether this is due to the modified schematics or to an exceptionally well working PLA replacement, although I suspect the former.
I did a few more experiments and found that driving the CE/OE line with two diodes and a pull-up resistor instead of the two NAND gates would still work on and unmodified C64 but would crash when using an EPROM based PLA replacement.
Then I lost interest in the subject and instead decided to layout a nice PCB to turn my prototype into a fully functional Super Zaxxon replica. The layout of the components was quite easy but I turned it up a notch by branding the PCB with the Super Zaxxon logo. This time, I ordered the boards from PCBWay again and they did good job producing the somewhat unusual design at a very reasonable price. It would actually be a waste to hide the beauty in a cartridge case. Maybe a transparent one would do.
The BOM for this replica is quite short. Apart from the PCB and the optional DIP sockets there are only 4 different kinds of components:
1 | U2 | 74LS00 quad 2-input NAND gate | eBay |
1 | U3 | 74LS74 dual edge-triggered flip-flop | eBay |
1 | U4 | W27C512 64k-8bit EEPROM | eBay |
3 | C1-3 | 100nF capacitor | eBay |
All in all, this was again a fun project with many things to learn along the way.
Very nice project and well done!
Hi,
Will this board be available for purchase from PCBWay like the Pi1541?
Thanks,
Gene
I would like to make this project publicly available, too. But I’m worried what Sega might do when they notice. So, I’m afraid the answer currently is “no”.