Skip to content

Starship emulates Star Fox 64. It reads 4 files, 1 of them required: without a required file it does not start games.

About this profile
Detail Value
Type standalone
Classification Game engine
Source https://github.com/HarbourMasters/Starship
Version 2.0.0
Revision HarbourMasters/Starship@cb19785b5169
Profiled 2026-10-20
Profile YAML, JSON
Cores starship
Systems Star Fox 64
Technical notes

PC port of Star Fox 64 built on the decompilation, by HarbourMasters. The game runs from assets extracted out of the user's N64 ROM into sf64.o2r, plus the port's own archive starship.o2r, on the libultraship runtime. Torch (tools/Torch) performs the extraction inside the executable.

RetroBat installs the v2.0.0 release: its starship.7z carries the Starship.exe, starship.o2r, config.yml and gamecontrollerdb.txt of Starship-Barnard-Alfa-Windows.zip byte for byte. The profile is pinned to the v2.0.0 tag for that reason. RetroBat's launcher copies the ROM from roms/starship into the Starship folder when no other .o2r than starship.o2r is there, then starts Starship.exe.

Startup (GameEngine::GameEngine, src/port/Engine.cpp:65-127):

  1. sf64.o2r next to the executable is loaded when present (:72, :88-89).
  2. Otherwise the user is asked for a ROM. A refusal, a cancelled file dialog or a ROM whose SHA-1 is not in mGameList exits (:90-106, :272-292). An accepted ROM is extracted by Torch, then the user may extract a second ROM for the JP, EU or CN voice archive.
  3. starship.o2r is added when it exists (:109-111).
  4. Every .otr, .o2r and .zip under mods/ is added (:113-126).

The ROM SHA-1 is computed by Torch over the whole file (Torch src/n64/Cartridge.cpp:17, Torch src/Companion.cpp:1535-1537). Torch then reads config.yml from the working directory, which maps each accepted hash to an asset tree under assets/yaml/ and to an output archive: sf64.o2r for the two US revisions, mods/sf64jp.o2r, mods/sf64eu.o2r and mods/sf64cn.o2r for the others. A compressed dump is first decompressed to the uncompressed image and processed again. Without config.yml Torch logs "No config file found" and writes nothing (Torch src/Companion.cpp:956-960). config.yml and the 103 assets/yaml files ship with the release.

The renderer loads its default shader from the archives and aborts when it is missing (libultraship src/graphic/Fast3D/backends/gfx_direct3d11.cpp:1325-1331). The shaders are only in starship.o2r, packed from port/ by "torch pack port starship.o2r o2r" (CMakeLists.txt:631-635). starship.o2r also carries the HUD boost gauge textures.

Torch and libultraship are submodules of the repository, pinned at v2.0.0 to f75facb20883570ed091e8ae733ec0539f606e57 and 45c4f8d6c19c6176f5e0918917c655ea09ecc212. Their citations above are at those revisions.

4 files: 1 required, 3 optional. 3 more files come with the app.

By kind: 7 game data.

File Required Hash
baserom.us.rev1.z64 yes SHA1 09f0d105f476
baserom.jp.z64 no SHA1 9bd71afbecf4
baserom.eu.z64 no SHA1 05b307b8804f
baserom.cn.z64 no SHA1 c8a10699dea5
starship/starship.o2r with the app MD5 1885560b5d69
starship/config.yml with the app MD5 0dab932eb5e5
starship/gamecontrollerdb.txt with the app MD5 06d6a7b5856d

In this collection: 0 in repo and 4 missing.

4 files

baserom.us.rev1.z64 required missing game data

Star Fox 64 (USA) ROM, revision 1.1 or 1.0, as dumped or uncompressed

  • System: Star Fox 64
  • Picked through a file dialog filtered on *.z64 on Windows, Linux and macOS. Switch, Android and iOS read baserom.us.rev1.z64 next to the executable. Only a US ROM produces sf64.o2r, the archive the game runs from, and it is not read again once sf64.o2r exists.

baserom.jp.z64 optional missing game data

Star Fox 64 (Japan) ROM, extracted to mods/sf64jp.o2r for Japanese voices

  • System: Star Fox 64
  • Offered after the US extraction. The file name is whatever the user picks in the dialog.

baserom.eu.z64 optional missing game data

Lylat Wars (Europe) ROM, extracted to mods/sf64eu.o2r for European voices

  • System: Star Fox 64
  • Offered after the US extraction. The file name is whatever the user picks in the dialog.

baserom.cn.z64 optional missing game data

Star Fox 64 (China, iQue) ROM, extracted to mods/sf64cn.o2r

  • System: Star Fox 64
  • Offered after the US extraction. The file name is whatever the user picks in the dialog.
3 files

starship.o2r comes with the app game data

Port archive packed from port/: Direct3D, OpenGL and Metal default shaders and the HUD boost gauge textures

  • Path: starship/starship.o2r
  • System: Star Fox 64
  • Linux reads it from the application bundle, other systems from the executable directory. Loaded only when present, but the renderer aborts without the default shader it carries. Hash of the copy in Starship-Barnard-Alfa-Windows.zip, whose shaders have CRLF line endings.

config.yml comes with the app game data

Torch extraction table: accepted ROM hashes, their asset tree under assets/yaml/ and their output archive

  • Path: starship/config.yml
  • System: Star Fox 64
  • Size: 3.8 KB
  • SHA1: fedb99b9622ed8df8ab46b85e51998f911345cb6
  • MD5: 0dab932eb5e59572294c1ea623d8f8e2
  • Source: Torch src/Companion.cpp:956-981
  • Read from the working directory during an extraction only, together with the assets/yaml tree. Without it no archive is written. Hash of the copy in Starship-Barnard-Alfa-Windows.zip.

gamecontrollerdb.txt comes with the app game data

SDL game controller mapping database

  • Path: starship/gamecontrollerdb.txt
  • System: Star Fox 64
  • Size: 552.8 KB
  • SHA1: b3d2b29fe4fdfdc0a74f5b8e200c506d33637d9c
  • MD5: 06d6a7b5856d6a44e835b7e3dc41e6f6
  • Source: libultraship src/public/libultra/os.cpp:18-24
  • A load failure is logged and SDL keeps its built-in mappings. The build downloads it from gabomdq/SDL_GameControllerDB. Hash of the copy in Starship-Barnard-Alfa-Windows.zip.
.