More Bally/Stern MPU Hacking! – Replacing 5101 RAM with 6116
NOTE: Updated June 20, 2011 to include MPU-200 specific instructions.
While looking at the Stern MPU200 schematic trying to figure out how I was going to add RAM to my MPU daughter boards I realized how easy it would be to install a 6116 SRAM in one of the unused EPROM sockets to replace the 5101. This replaces both 5101 RAM chips on an MPU200 with a single 6116. If you intend to use this conversion with game code originally using only one 5101 RAM you will need to tie D0-D3 of the 6116 to +5V. I tested it with Ninball and Stingray ROMs but this whole conversion has not been thoroughly tested. I’m surely not the first person to come to this conclusion but I haven’t seen this conversion discussed on the web. It seems so obvious once you look at it.
My main motivation for using 6116 RAM chips is that I bought a 50 piece lot a while back for $1 each. Replacing both 5101 chips on an MPU200 for a dollar sounds good to me. You might not be able to find them at those prices but 6116 is a very common RAM. They’re used a lot in arcade PCBs and I’m sure all kinds of other electronics. They also have a pinout that is very close to a 2732 EPROM. This also makes the 6116 easy to work with for this type of conversion. It’s also a good way to double the RAM on a Bally or Stern MPU100 to run custom game code. I can’t think of any current examples of that but it’s an option for the future.
Here are some basic instructions. I’ll put together some better pictures/instructions when I have more time. Looking at the board there should be some better places to make the connections. I just hacked it together to get it working… and it works!
I would suggest using a socket for the 6116 rather than soldering directly to the RAM as I’ve done here. Like I said… I just wanted to prove that it would work. I also have pin 24 of the 6116 plugged into pin 24 of the unused EPROM socket. This pin should be bent up and connected to VAUX (battery) if you want it to actually save your settings.
1. Remove 5101 RAM(s) if present
2. Bend up the following pins on the 6116 or socket: 18-24
3. Plug the 6116 into an unused EPROM socket (either U1 or U5) leaving the pins mentioned above exposed and unconnected.
4. Pins 19, 22 and 23 are address lines that we won’t be using. This is RAM space we won’t be using. Connect these pins to ground.
5. Pin 21 is R/W. Connect this to CPU R/W where convenient (CPU pin 34 or J5 pin 23 are options).
6. Connect pins 18 and 20 together. These pins connect to pin 8 of U17.
7. Connect pin 24 to VAUX (+ side of battery).
8. NOTE: if using game code originally using only one 5101 you will need to tie D0-D3
(pins 9,10,11 and 13) of the 6116 to +5V.
Update: I received some great information from Oliver Kaegi explaining why there could be problems running Bally game code on a board with an extra 5101 RAM (Stern MPU200 style). This is why D0-D3 of the 6116 need to be tied to +5V when using this conversion with Bally or Stern MPU100 game code.
Here’s what he said:
well the problem is linked direct to the bally rom code. They didn’t
program very careful.
Here is an example:
The orignal bally board uses only 4 bits of the memory area $200-$2ff
(area of the 5101). The lower bits of this memory area are always high.
This means, if we have the following piece of code in a game rom:
Then the reg A cointains $#0F
If you put a 8 bits to the memory area $200-$2ff then you will get an $#00
in reg a with the same program code. The startup and the self test will
work, but you will run into problemes during the game.
A widley used instruction for example is the logical shift left, and the
instrucation create a different result if it is done with $#00 or $#0f.
Oliver’s site can be found here. It’s a great resource!
There will be a jumper selectable 6116 RAM on the next version of my test boards. The EPROM replacement boards will use Ramtron FRAM (No batteries!).
Here are some pictures of my proof of concept hack job. I’m using a 2016 RAM which is pin compatible with the 6116:
These instructions apply, in concept, to all versions of the Bally/Stern hardware but the examples shown and jumper settings will be specific to the MPU-200. This conversion will install the new RAM at position U1. I chose to cut/jump traces for this conversion rather than use stacked sockets but that’s also an option. For this conversion there is only one trace that needs to be cut and 2 jumper wires installed. This conversion also adds considerable RAM that could be used by custom game code. I will update this page with more detail on the RAM that is added by this conversion but it will have no effect on original MPU-200 game code so original ROMs can be used with no problems using this conversion.
1. Remove 5101 RAM(s) if present.
2. Ensure that there are no jumpers connected to E9 and E28.
3. Cut the trace going to pin 20 of U1.
4. Connect jumper position 28 to R/W.
5. Connect jumper position E9 to pin 8 of IC U17.
6. Connect pin 20 of U1 to pin 12 (GND).
7. If you’re going to use batteries pin 24 of U1 will need to be connected to VAUX (positive side of battery). You can either cut the trace or used stacked sockets. In my case I’m using an NVRAM adapter so I left pin 24 connected to +5VDC.
Here’s U1 before cutting the trace going to pin 20.
After cutting the trace going to pin 20 (U1). I use a rotary tool with a fine burr bit to cut traces.
Jumper position E28 connects to R/W. There is a though-hole very close to the jumper position that’s nice to use. That connection is shown here.
Jumper position U9 connects to pin 8 of IC U17. Again I chose to use a through-hole close to the IC for this connection. That connection is shown here.
Pin 20 of U1 needs to be connected to ground. Pin 12 is a convenient place for that connection. I make this connection on the solder side of the board.
Here’s an overview of the whole conversion. The jumper wires could be connected on the solder side of the board making for an even cleaner look.
I designed and assembled these NVRAM adapters. I usually have some on hand to sell. They are available now from PinForge.com! Adapters are available for 5101, 6116 and 6264/2064 RAMs. Send me an email (firstname.lastname@example.org) if you would like to buy some.
I configured this board to use 2732 EPROMs at U2 and U6 and a 6116 NVRAM adapter at U1. Overall a very nice conversion. Here I’m using Leon’s test ROM to test the RAM conversion. I also replaced the original reset circuit with a DS1811 and repaired a lot of corrosion damage.