|New high score, is that bad? What does that mean? Did I break it?|
|Posted by: AceBHound on Jan 13th, 2014 6:51 AM|
|Over this weekend I decided to work on a little 5101 RAM adapter for my GQ-4X programmer. The objective was to have yet another way to test 5101 RAM adapters I'm building and also be able to read the data off of these ICs. I settled on the final goal being able to read off one of my budget 5101 RAM adapters that was in a Bally Mr & Ms Pac-man MPU. I'd been testing battery life on the adapter so have left the high score as "1799920" and every month or had been checking that the high score is still there and the 3v coin cell battery was still alive.
The Goal: Read Bally game data that was saved to 5101 RAM adapter via GQ-4X programmer. Copy data to a new RAM and install into Bally MPU to verify high score was copied.
It took a bit longer than I expected, but I was able to hack around with an old prototype board and create a functioning adapter. Ultimately the GQ-4X software/hardware was a bit flaky at times and causing me issues, so it took me a while to catch onto that. In the end I was able to copy 5101 saved data to a new RAM and when placed into the mpu board saw my same high score "1799920".
So then I took it a step further and tried looking for the high score in the data, with the intent of changing it. The Bally/Stern mpus only store a nibble (half a byte) to the RAM since it's a 4-bit device, so when searching for where the high score was I knew it would be scattered across several bytes. I had also assumed it would be stored in HEX since it would save a few bytes, but as it turns out the score was stored in its decimal format, tho backwards "0299971". Of course I had to set a new high score after finding it, so I changed it to "5432171" and wrote the data to a RAM chip. Once installed in an MPU my new "fake" high score displayed as "1712345". Cool.
Not that any of this is extremely monumental but it should help further some of the projects I've been working on where it would really help to view what's on the RAM or be able to program default values to the RAM before installing it in a machine.