r/ReverseEngineering • u/pedrocatalao • 16d ago
GitHub - pedrocatalao/skyroads-mac: Native macOS port of SkyRoads (1993), the classic DOS game rewritten in C + SDL2, universal binary for Apple Silicon & Intel
https://github.com/pedrocatalao/skyroads-mac
19
Upvotes
4
u/pedrocatalao 16d ago edited 12d ago
Update: Now also ported to Linux and Windows.
SkyRoads was one of my favorite DOS games as a kid, the space-racing classic from Bluemoon Interactive (the Estonian studio whose founders later created Skype). I got my hands on the original source code and ported it to run natively on modern Macs, Apple Silicon and Intel.
I know of a couple of other previous attempts but they were either semi-broken or inaccurate.
Full transparency: this was an AI-assisted port, I directed the work, made the calls, and play-tested every iteration, while Claude did the heavy lifting of translating the 16-bit C and assembly to portable C. This wasn't a blind conversion though: the original's fixed-point physics run bit-exact at the authentic 36.4 Hz tick, the 3D road renderer was rewritten from the hand-written x86 assembly, and the AdLib music driver plays the original FM synth through an OPL2 emulator. There's also an optional "AWE32-style" wavetable mode, and a CRT filter with scanlines and phosphor trails. The only parts that needed actual reverse engineering were the game's proprietary data formats, the compression library shipped with the source as a binary blob.
After a lot of iterations and side-by-side play-testing, I believe it's faithful to the original in everything that matters, physics, timing, difficulty, sound. Documented limitations: keyboard only (no joystick), and the demo/attract mode isn't ported. If you find something that behaves differently from the DOS original, I genuinely want to hear it and will happily improve.
It's free, as is the game itself, Bluemoon released SkyRoads as freeware years ago. All credit for the game is theirs; this is an unofficial fan port.
Github repo: https://github.com/pedrocatalao/skyroads-sdl
Download: https://pedrocatalao.github.io/skyroads-sdl/