Hacker News new | ask | show | jobs
by tannercollin 1211 days ago
Amazing, we are currently doing something very similar at our makerspace on a 1987 Road Kings pinball machine.

We first replaced the original RAM chip with a IDT 7132 SA100P dual-port RAM that sits on a breadboard:

https://pic.t0.vc/WPUO.jpg

The other port is accessed by an ATmega 1284 to the left of it. Its code responds to simple serial commands and can read and write to the RAM.

An ESP32 talks to the ATmega over UART and frequently asks it to dump 16 bytes at 0x00A0 to tell the game state and player number, and 0x0100 to get the four player scores. When it detects a new game, it offers the player a chance to scan their RFID member card and keeps track of their score:

https://pic.t0.vc/UQYK.jpg

After the game is complete, any players who have scanned in get their scores uploaded to our member portal where we can sort them by personal best:

https://pic.t0.vc/MZGY.png

We found there were sometimes read collisions and the ATmega would block the pinball machine from writing to RAM which would cause crashes or odd behavior. The latest version uses two RAM chips, one acting as a shadow copy -- similar to yours.

Eventually we'll make a PCB for it and open source everything. Currently only half the code (the ESP32) is on Github: https://github.com/Protospace/pinballwizard

3 comments

Can this be used on any System 11 game? And can it be used to read the current state of the alphanumeric display?
Yes, it should. As long as you can figure out the correct memory addresses to look at, you can tell the ATmega to send you the data.
Awesome! I really like the idea of scanning an RFID card to identify players.
Modern pinball machines already do this (not RFID, it's an optical reader for a QR code), implemented by the major manufacturer Stern Pinball. They have internet connectivity to log scores and achievements and tournament challenges and leaderboards. It adds a pretty cool dimension to the pinball scene.
Road Kings?!? :\