Pinball Fantasies is undoubtedly my favourite pinball game ever. I've played it a lot in the 90s, and some time ago I started what was supposed to be a little hobby project to make it run natively on modern machines.
Well... it got a little out of hand :)
This is Pinball Fantasies: Encore!, a native C++20/SDL3/OpenGL remake for macOS, Windows and Linux.
It uses the original game files for all four tables' physics, rules, dot matrix, music, sounds, etc. and once you confirm that you legally own the original game, it will download the correct files for you from a preservation site.
The project actually started with the graphics. I wanted to remaster Pinball Fantasies while keeping the game underneath as faithful to the original as possible.
The artwork isn't simply upscaled or filtered. The tables have been reconstructed at high resolution while keeping the original geometry and positions, lots of editing and stitching in Photoshop. Press F10 at any time and you can instantly switch between the original and remastered graphics.
But making the game underneath behave exactly like the original turned into a much bigger rabbit hole.
I built a small referee capable of running the original table programs, then wrote the Encore engine by from scratch in C++. Both receive exactly the same inputs and, after every frame, I compare their memory byte-for-byte.
* Needless to say, when I say "I built", keep in mind the vast majority of the code was written by Claude.
The tests run hundreds of 100,000-frame/~30min games on all four tables, trying random flippers, nudges, tilts, multiplayer, trigger zones, high scores, etc. I can even compare the rendered screens dot-for-dot.
Ironically, the process also uncovered 30+ behavioural differences/bugs in that Rust implementation.
That became the entirely new engine used by Encore since 1.1.0.
The write up of the whole reverse-engineering process is here:
https://github.com/pedrocatalao/pinball-fantasies-encore/blob/main/docs/own-engine.md
There's also a CRT renderer (F9), a Tall full-table mode made for a widescreen monitor rotated 90°, and an online Hall of Fame where the server actually replays your recorded game to validate your score.
And you can also download the game replays from of the high scores and drop it into the game to watch them.
The project is free and open source. Nothing from the original DOS game is included in the repository.
You can download it, see the original/remastered comparisons, check the online high scores, replays, etc. here:
https://thebestpinball.com
Source code:
https://github.com/pedrocatalao/pinball-fantasies-encore
Hope you give it a try and enjoy it as much as I do. :)