Case study
Starship: a Star Fox 64 PC port built from the decompilation
A native PC port of Star Fox 64 that compiles the game's decompiled C code against libultraship, an N64 porting library that reimplements libultra and renders through Fast3D. On first run it uses the Torch tool to turn the user's US ROM into an asset archive, and it ships for Windows, Linux, macOS and Switch. The README of the separate Starfox 64: Recompiled static recompilation calls this port its sibling, built with different technology.
- Targets
- Game
- Category
- Independent reconstruction cases
- Relationship
- Independent reconstruction project
- Sources reviewed
Requirements & limits
- Prerequisites: Supply a US 1.0 or US 1.1 Rev A ROM in .z64 form; README lists the SHA-1 of each. The first run, or the ExtractAssets build target, turns it into sf64.o2r through Torch, using the definitions in config.yml and assets/yaml. JP and EU ROMs serve only as voice-language replacements alongside a US ROM, and the Switch build needs the archive generated on PC. The repository holds extraction definitions, not game assets.
- Prerequisites: Releases target Windows, Linux (AppImage), macOS and Nintendo Switch, with DirectX 11, OpenGL and Metal back ends. Building needs CMake, Python 3 and Git with Visual Studio 2022 (v143 tools; at least 8 GB of RAM) on Windows, or gcc or clang with Ninja and libraries including SDL2, libzip, spdlog, tinyxml2, Boost and Ogg/Vorbis on Linux. Submodules are libultraship, Torch and asm-differ; CI generates only the port's own starship.o2r and packages builds without a ROM.
- Scope: Starship's README presents a PC port with release and playtest builds. DOCS/fox_lore.md in the sibling Starfox64Recomp repository describes it as a native port of the sf64 decompilation's C code on libultraship (which reimplements most of libultra and uses a Fast3D renderer) and says native porting exposed asset-linking errors and undefined behaviour that matching code alone did not reveal. CMakeLists.txt compiles src/engine, src/overlays, src/sys and src/audio with a port layer in src/port. The latest release is v2.0.0 (2025-05-25), and README warns that CI playtest builds will likely show bugs and possibly crashes.
- Testing evidence: Neither README nor BUILDING.md documents automated gameplay tests or comparisons with the original game.
- License: LICENSE.md is CC0 1.0 Universal; the ROM, extracted assets and the game remain their owners' property, and the submodules keep their own terms. README says the project does not condone piracy.
About this entry
The description was reviewed against primary sources.
Primary sources
- README.md GitHub · HarbourMasters/Starship · Revision 3322643
- docs/BUILDING.md GitHub · HarbourMasters/Starship · Revision 3322643
- CMakeLists.txt GitHub · HarbourMasters/Starship · Revision 3322643
- config.yml GitHub · HarbourMasters/Starship · Revision 3322643
- .gitmodules GitHub · HarbourMasters/Starship · Revision 3322643
- .github/workflows/main.yml GitHub · HarbourMasters/Starship · Revision 3322643
- LICENSE.md GitHub · HarbourMasters/Starship · Revision 3322643
- https://github.com/HarbourMasters/Starship/releases/tag/v2.0.0
- DOCS/fox_lore.md GitHub · sonicdcer/Starfox64Recomp · Revision f299655
More in Games
- Super Mario Sunshine: a native PC port from an AI-assisted decompilation · Case study
- TH08 Web: a WebAssembly port built from reconstructed source · Case study
- TonyWasAProSkater: a THPS1 native port forked from a matching decompilation · Case study
- Vandal Hearts: native PC port built on matching decompilations · Case study
- Age of Empires Free Software Remake: a re-implementation on the original data · Case study
- Bravo: a reverse-engineered Minecraft server · Case study