Controlling an existing machine with MPF

If you want to use MPF to write your own custom game code for an existing Williams or Stern pinball machine, you replace the original CPU board in the machine with a modern pinball controller board (called a hardware controller) such as a P-ROC Controller (but not P3-Roc). That hardware controller interfaces with the existing machine’s driver boards to control the coils, lights, and DMD, and it provides a “bridge” (via USB) to a host computer running Python and the Mission Pinball Framework.

Machine Type P-ROC LISY APC Direct
Williams / Bally / Midway WPC X X    
Williams / Bally System 11 X   X  
Data East X      
Stern S.A.M. X      
Stern Whitestar X      
Pinball 2000 X      
Stern SPIKE / SPIKE 2       X
Gottlieb System 1   X    
Gottlieb System 80   X    
Bally/Stern w/ AS-2518-17 or AS-2518-35 MPU   X    


  • “WPC” includes WPC-S and WPC-95, and machines made under the brands of Williams, Bally, and Midway. (A complete WPC game list is here.)
  • System 11 and Data East machines require the “Snux” replacement driver board in addition to the P-ROC or FAST controller.
  • Since Stern SPIKE systems have a linux-based computer inside them already, so MPF can directly connect to and control them via USB. No additional hardware is needed.
  • Gottlieb System 1 and 80 can be controlled using the LISY platform
  • Bally and Stern Games manufactured from 1977 to 1985 with MPU AS-2518-17 or AS-2518-35 can be controlled using LISY35

If you want to use MPF with an existing machine type that’s not on the list above, that’s still possible, but you’d have to rewire the entire machine and use modern control hardware. In other words, you strip the guts and keep all the hardware, and the machine essentially becomes a home-brew machine on the inside and a retheme or update on the outside. However, there might be an alternative not listed here so we recommend you to ask in our user forum.