Back in the 1970s and 1980s, digital electronics made quite a lot of use of Bipolar PROM chips. They are a memory device, which can be programmed just once, holding only a few hundred or a few thousand bits of information. They were used for various tasks: address decoding, state machines, and video colour palettes, for example. They are very commonly seen in vintage arcade games and in other electronic devices too. Like any electronic component, they sometimes fail. They can be hard to replace, because they are no longer manufactured, and they are not supported by many low-cost device programmers. In addition, the legs seem to fall off them. Here’s a dud one which came from a Super Pacman PCB:
These things carry part numbers like MB7051, 74S288, AM27LS09, HM7603, 82S123 and 82S129. Some are available secondhand but they’re expensive, and programming them is a pain. My EPROM programmer (A cheap USB GQ-4X) doesn’t support them. This one needed replacing. What to do?
Apart from coming in small packages, these things have another attribute: speed. They typically respond in around 40-50ns or less, which is much faster than most EPROMs or Flash memory chips. However, whilst investigating alternatives, I found that fast PROMs still exist, just about, in the form of one-time programmable ROMs. I chose an Atmel 27C512 because it’s compatible with my programmer, readily available (thousands were in stock at the distributor I use) and very cheap – less than £2. It also has a 45ns access time, making it a worthy substitute for the dead MB7051 in the picture. It’s a bit big, coming in a 28-pin DIL package, but it has more than enough memory space: 512kbit. That’s 2000 times bigger than the original chip!
To adapt it to the Super Pacman PCB, I first programmed it (or the first few bytes of it, anyway) with the correct data, obtained from a MAME ROM dump of Super Pacman. Then I made a little carrier board out of some stripboard and PCB pin strips (Harwin pins, Farnell part number 1022218, are thin enough to go into chip sockets without damaging them) and wired the whole lot up with fine polyurethane-insulated wire. The wiring went like this, noting that many of the address pins are unused and therefore grounded:
O1 1 O0 11
O2 2 O1 12
O3 3 O2 13
O4 4 O3 15
O5 5 O4 16
O6 6 O5 17
O7 7 O6 18
GND 8 GND 14, 1,2,3,4,5,21,22,23,24,25,26,27
O8 9 O7 19
A0 10 A0 10
A1 11 A1 9
A2 12 A2 8
A3 13 A3 7
A4 14 A4 6
nCE 15 nCE 20
VCC 16 VCC 28
and the result looked like this:
Switching the game on, I was greeted with a display with the correct colours and plausible-looking characters!
Shame it doesn’t actually run yet, but it’s much better than the green and blue splodges it used to produce. Onwards and upwards.
Pingback: Super Pacman repair log | martinjonestechnology
In a former life I repaired arcade games so I know exactly what you’re trying to do.
The problem is that bipolar ROMs of the types you’re replacing have different timing than an EPROM has (PROMs are generally faster) which is probably why you’re getting the poor results you’re getting. Try seeing if you can design what you need into a PAL chip like a 16L8 (although you’ll probably have to use a GAL16V8, or something similar/newer). They’re essentially combinatorial logic and will be more than fast enough to emulate a PROM.
Thanks for reading the article, and thanks for the note about timing. It turned out that the speed of the modern PROM (about 40ns in this case) was plenty fast enough for this application. The Super Pacman board had a couple of other faults which were stopping it running. Once I’d sorted those out, the colour palette from my replacement PROM was absolutely fine.
I am just solving a similar problem with Galaxian board, your last comment encouraged me that it can work with an eprom, so I am going to try it. Wish me luck, will let you know the result.
Good luck! The Atmel PROM I used is pretty fast, faster than most EPROMs. Check the access time of the chip you’re planning to use. If it’s much more than 100ns or so, it might be too slow and you’d see poor image quality or colour fringing. It might work fine, though, so give it a try!
It works like a charm! I used NEC D2716D and my Galaxian board is working correctly. Thank you for writing this article, saved me a lot of searching and probably money too. This is my adapter: https://goo.gl/photos/AJgvgho47r9Btjrr6
Great! I’m glad to hear it works. That’s good to know.