Show HN: SkyRoads (1993) reverse-engineered and ported natively to macOS

pedrocatalao1 pts0 comments

GitHub - pedrocatalao/skyroads-mac: Native macOS port of SkyRoads (1993), the classic DOS game rewritten in C + SDL2, universal binary for Apple Silicon & Intel · GitHub

/" data-turbo-transient="true" />

Skip to content

Search/

Sign in<br>Sign upAppearance settings

You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.

Dismiss alert

{{ message }}

pedrocatalao

skyroads-mac

Public

Notifications<br>You must be signed in to change notification settings

Fork

Star

main

BranchesTags

Go to file

CodeOpen more actions menu

Latest commit

History<br>37 Commits<br>37 Commits

Folders and files<br>NameNameLast commit message<br>Last commit date<br>docs

docs

screenshots

screenshots

src

src

tools

tools

.gitignore

.gitignore

CMakeLists.txt

CMakeLists.txt

README.md

README.md

icon.png

icon.png

make_app.sh

make_app.sh

make_icon.py

make_icon.py

View all files

Repository files navigation

SkyRoads for macOS

A native macOS port of SkyRoads (Bluemoon Interactive, 1993) — the classic<br>DOS space-racing game — rewritten in portable C with SDL2 and running natively<br>on both Apple Silicon and Intel Macs (universal binary). No emulation, no DOSBox.

Download SkyRoads for macOS here!

Unzip, move SkyRoads.app anywhere you like, and right-click → Open the<br>first time (the app isn't notarized, so macOS asks once). That's it — the app<br>is self-contained.

Build from source

brew install cmake sdl2<br>git clone https://github.com/pedrocatalao/skyroads-mac.git<br>cd skyroads-mac<br>./make_app.sh # fetches the freeware game data, then builds the app<br>open build/SkyRoads.app

That's it. If the game data isn't in ./data yet, make_app.sh downloads<br>it from Bluemoon's official site (the game is their freeware and is not part<br>of this repo), then builds a self-contained app bundle around it.

Already have the game files? Point make_app.sh at your folder —<br>DOS-style uppercase filenames (ROADS.LZS) are fine:

./make_app.sh ~/Downloads/skyroads-data

The app is self-contained (game data is copied into the bundle) — you can move<br>it to /Applications. Progress and settings are saved to<br>~/Library/Application Support/.

Alternative: run from the terminal

cmake -S . -B build<br>cmake --build build --target skyroads<br>./build/skyroads ~/Downloads/skyroads-data

Controls

Key<br>Action

← →<br>steer

↑ ↓<br>accelerate / brake

Space<br>jump

Enter<br>select (menus)

pause / unpause

Esc<br>abort road / back

F9<br>music synth: AdLib FM (OPL2) / wavetable ("AWE32"-style, sampled instruments)

F10<br>CRT effects on/off (scanlines, phosphor trails, smooth scaling)

Cmd-F<br>fullscreen

What's in this repo

src/ — the port:

render.c — C rewrite of the original 16-bit assembly 3D road renderer

game_play.c — the physics/collision/gameplay engine (bit-faithful<br>fixed-point math)

assets.c, menus.c — data loaders, menu flow

compat.c — DOS runtime emulation (segment memory model, LZSS<br>decompressor, file I/O)

platform.c — SDL2 window/input/timing

audio.c — The original AdLib music driver (adlib.asm) ported to C:<br>drives either a software OPL2 FM<br>chip (Nuked-OPL3) or a<br>SoundFont wavetable synth (TimGM6mb) mapped to MIDI instruments; plus the SoundBlaster digitized sound effects (sfx.snd)

docs/trek_blueprint.md — reverse-engineering notes on the original<br>renderer

make_app.sh — builds the signed SkyRoads.app bundle

Troubleshooting

"required data file … not found" — the path you gave make_app.sh must<br>contain the SkyRoads data files (trekdat.lzs, roads.lzs, world*.lzs,<br>…). Point it at the folder where you unzipped the freeware download.

CMake can't find SDL2 — brew install sdl2, then delete<br>build/ and rebuild.

Intel Macs — the app is a universal binary and runs natively on<br>Intel too (x86_64 slice verified under Rosetta).

Credits & legal

SkyRoads was created by Bluemoon Interactive (Ahti Heinla,<br>Jaan Tallinn, and team). All game content, art, music and the original<br>design are theirs. This is an unofficial fan port, not affiliated with or<br>endorsed by Bluemoon; the game itself is distributed by Bluemoon as<br>freeware.

OPL2 FM synthesis via Nuked-OPL3<br>(Nuke.YKT), LGPL-2.1 — see src/opl3.c for its license header.

Wavetable music mode via TinySoundFont<br>(MIT) playing the TimGM6mb SoundFont (GPL,<br>Tim Brechbill), fetched by make_app.sh — the instrument mapping was<br>reconstructed from the original Sound Club song sources.

About<br>Native macOS port of SkyRoads (1993), the classic DOS game rewritten in C + SDL2, universal binary for Apple Silicon & Intel<br>Resources<br>Readme<br>Activity<br>Stars<br>1 star<br>Watchers<br>0 watching<br>Forks<br>0 forks<br>Report repository

Releases

Packages

Contributors

Languages

You can’t perform that action at this time.

skyroads game data make_app macos sdl2

Related Articles