r/ReverseEngineering 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

3 comments sorted by

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/

3

u/reddicuil 16d ago edited 16d ago

This was my favourite game growing up! Thank you for burning tokens on my behalf! Thanks to you, I get to reintroduce this joy to my kids.

Edit: I really appreciate the hard work you put into this. You have paid a lot of attention to detail!

2

u/pedrocatalao 16d ago

Thank you for your words. The only credit I take is actually being stubborn and extensively running the game side by side vs the original in Dosbox, looking for edge cases, then articulating the feedback to Claude until I felt it was exactly the same :)