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.