Okay, well, this is "pretty easy" in the grand scheme of things.
There's a great tutorial here: http://dan-nixon.com/multiplexing-switches-on-arduino-without-additional-ics/
about how to "multiplex switches" on Arduino.
Keypads and a pinball switch matrix are almost identical: Imagine, you have 32 switches but you don't want 32 pairs of wires so you wire rows and columns and at each intersection of a different row and column is a different switch. (Simplified Power on a column wire, check each of the row wires -- if any of them is on, you know which switch is closed. Them, power on the next column wire and again check each of the row wires, and so on, and so forth. In that 32 switch example, you get away with only 16 wires (8x8).
With a wiring diagram for the machine, you can plug the switch matrix into the arduino directly, identify the row/column pins in code (adjusting the code to the right number of rows and columns), and run the code to determine switch closure rows/columns.
You then need to translate the row/col into which switch is closed and what that means to your game logic, and you can either do that directly on the arduino or just pass the information via serial port to another (perhaps faster) computer to maintain your game logic.
There are several real issues which are not addressed in this simplification. Some of the more obvious ones:
- scan rate and loss of switch events (e.g., I don't think multiball would work)
- debouncing logic (if the switch chatters from physical vibration, that shouldn't count as 4 closures)
- lamp matrix (not handled here)
- driving coils (I have done this with arduino, and we only have to do it for one coil on this specific machine).
I can go into more detail, as needed? I'll ask my students if they want to share their code. It's really in its infancy, but they have big plans