Reverse engineer a 1995 pinball game into a modern open-source port

A Redditor had Codex disassemble Pro Pinball: The Web (1995), check its rebuild frame by frame against the original, and ship Windows and Linux binaries that run at 175 Hz.

Done withCodex· Nov 6, 2026

What they did

The poster, u/rnatau, wanted to play Pro Pinball: The Web again, a 1995 PC game that never ran smoothly for them on a Windows 98 machine or in DOSBox. They used Codex with Sol 6.1 on high reasoning to reverse engineer it, working in small steps: physics first, then animations, then a first playable demo, with a lot of their own playtesting in between. Codex disassembled the original, turned parts of it into unit tests run against an emulator, and ran long gameplay simulations that it compared frame by frame with the same sequences in the original game. After the faithful version, the two built an enhanced edition that fixes some old quirks and decouples rendering from the 60 Hz loop with 17 physics microsteps per frame.

How it went

The poster says the port reached a fully faithful state and is released as open source with Windows and Linux builds; it needs the original data files from archive.org. Codex suggested redrawing the dot matrix display instead of scaling it, which kept it sharp in full screen. It found the cause of the old Windows 98 stutter (window timer jitter) and a once-per-second stutter after gamepad support was added, though only after the poster pushed back. It needed to be told how to compute only the microsteps up to the current time to raise the frame rate. The enhanced edition's display menu flow is still rough.

Worth knowing

The method that made it work was verification against the original: emulator-backed unit tests and frame-by-frame comparison of simulated play. The parts the poster did not specify themselves are the parts that still feel loose. Players still need to supply the original game's data files.

Try it

With Codex· 6 parts to fill in

Help me rebuild [old game name] for modern [Windows/Linux] from the original binaries in [folder]. Work in small stages: [physics], then [animations], then a first playable build. For each stage, disassemble the relevant code, write unit tests that run the original routines in [emulator], and compare simulated gameplay frame by frame with recordings of the original. Do not invent behaviour the original does not have. After each stage, give me a build I can playtest and wait for my feedback before moving on. Stop when the port matches the original on all comparison runs, then list the enhancements you would suggest.

Square brackets are the parts to fill in. The prompt is ours; the story is theirs.

Where they said it

Related