FREEWPC is a platform for developing replacement game ROMs for Bally/Williams pinball machines based on the WPC (Williams Pinball Controller) chip. It provides the foundation for building new game ROMs with custom rules and effects.
FreeWPC has evolved nicely since I started it in 2005. The software is stable enough to run in emulators such as Visual Pinmame, with the eventual goal being to use it in an actual machine (testing on real hardware has begun!)
The primary target machine to date is Twilight Zone. The system is periodically verified to compile and run on other WPC games such as World Cup Soccer, Attack From Mars, and Terminator 2. At the left, you can find precompiled ROMs for all of these machines, but note that only TZ is somewhat playable.
![]() |
FreeWPC can also be compiled in "native mode", using your ordinary system C compiler. This program runs directly without any emulator, as the hardware I/O is emulated internally within the program itself. Although the low-level components are vastly different, this mode is useful for testing the higher-level features of the system, and also allows for more traditional debugging using tools such as gdb, etc. FreeWPC is released under the GPL and thus source code is also freely available for inspection. Any questions? Email me at brian@oddchange.com. |
Here's a link to some video of FreeWPC running in my World Cup Soccer. View video here. The game is running a slightly modified version of version 0.17. Stay tuned for more details on what's going on here.
Version 0.17 of all ROMs posted. See the ChangeLog for more details.
The source code browser has been updated to show the latest codebase that will eventually be rolled into the upcoming 0.17 release. I'm currently testing it out and making some last-minutes changes; the binaries will be posted soon.
I haven't posted anything recently, so I thought I would give a brief update. I have been working on the next version (0.17) and there are lots of new features on the way. ROMs build faster, many ball tracking bugs are fixed, some new DMD effects are possible, much experimental code has been deleted, switch debouncing is enhanced, and many performance enhancements are just a taste of what's to come.
There's still no target date for releasing something publicly, although I realize three months between releases is a pretty long time. We'll see how it goes. In the meantime, please download version 0.16 if you haven't already, test it out in PinMAME, and let me know how it goes.
Posted a patch to make pinmame compile under X Windows.
Source code is now maintained exclusively in a git repository. Access to files in this matter is provided on a limited basis. Please contact me if you would like to be able to access the repository this way.
Version 0.16 of all ROMs posted. This is much more stable than 0.15, with a few interesting new features but mostly bug fixes across all generations of WPC. See the ChangeLog for more details.
The next release should happen within a week or two. I'm testing all of the updates from the last two months. Some new features have been added too ... stay tuned for details!
Version 0.15 posted. This release has a huge number of changes, although the ROMs have not been tested extensively. This should be considered a checkpoint release.
If you are interested in working on this project, please contact me at freewpc@oddchange.com. Developers should be familiar with basic embedded systems programming concepts and the C programming language. Familiarity with 6809 assembler is highly recommended. Knowledge of WPC pinball machines to some degree is also necessary. Also, anyone interested in just testing should just download the ROMs, fire up the emulator, and start sending bug reports.
All development is currently done under the Linux operating system. I use git for source control. Developers will also need to grab my GCC for 6809 compiler, an assembler, and a linker. See the 6809 pages for information on how to download and install the compiler.
Latest version is 0.17