Files
libretro/emulators/starship.yml
T
Abdessamad Derraz bb19a6d5cf feat: profile what RetroBat and RetroPie run
100 emulator names the two platforms run had no profile, so their packs carried nothing for them. Each was read from the platform's own launcher or scriptmodule: the same program as an existing profile takes the name in cores:, a different build gets its own profile read from that version, a launcher or self-contained game goes to remove_cores, and the rest are new profiles written from their source or shipped binary. The files they need that the collection lacked are collected from the upstream distributions. Bungie and splitwolf trees are read by path and stay out of dedup.
2026-10-20 06:14:10 +02:00

147 lines
7.0 KiB
YAML

emulator: Starship
type: standalone
core_classification: game_engine
source: "https://github.com/HarbourMasters/Starship"
upstream: "https://github.com/HarbourMasters/Starship"
source_commit: "cb19785b51698185a688e17ba1a34c7889195bdb"
profiled_date: "2026-10-20"
core_version: "2.0.0"
display_name: "Star Fox 64 (Starship)"
cores: [starship]
systems: [starship]
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.
files:
- name: "baserom.us.rev1.z64"
category: game_data
system: starship
required: true
sha1:
- "09f0d105f476b00efa5303a3ebc42e60a7753b7a"
- "f7475fb11e7e6830f82883412638e8390791ab87"
- "d8b1088520f7c5f81433292a9258c1184afa1457"
- "63b69f0ef36306257481afc250f9bc304c7162b2"
validation: [sha1]
description: "Star Fox 64 (USA) ROM, revision 1.1 or 1.0, as dumped or uncompressed"
source_ref: "src/port/extractor/GameExtractor.cpp:12-23, 25-54, src/port/Engine.cpp:88-106, 272-292, config.yml:3-62"
note: "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."
- name: "baserom.jp.z64"
category: game_data
system: starship
required: false
sha1:
- "9bd71afbecf4d0a43146e4e7a893395e19bf3220"
- "d064229a32cc05ab85e2381ce07744eb3ffaf530"
validation: [sha1]
description: "Star Fox 64 (Japan) ROM, extracted to mods/sf64jp.o2r for Japanese voices"
source_ref: "src/port/extractor/GameExtractor.cpp:17-18, config.yml:63-92"
note: "Offered after the US extraction. The file name is whatever the user picks in the dialog."
- name: "baserom.eu.z64"
category: game_data
system: starship
required: false
sha1:
- "05b307b8804f992af1a1e2fbafbd588501fdf799"
- "09f5d5c14219fc77a36c5a6ad5e63f7abd8b3385"
validation: [sha1]
description: "Lylat Wars (Europe) ROM, extracted to mods/sf64eu.o2r for European voices"
source_ref: "src/port/extractor/GameExtractor.cpp:19-20, config.yml:93-122"
note: "Offered after the US extraction. The file name is whatever the user picks in the dialog."
- name: "baserom.cn.z64"
category: game_data
system: starship
required: false
sha1:
- "c8a10699dea52f4bb2e2311935c1376dfb352e7a"
- "3a05aba5549fa71e8b16a0c6e2c8481b070818a9"
validation: [sha1]
description: "Star Fox 64 (China, iQue) ROM, extracted to mods/sf64cn.o2r"
source_ref: "src/port/extractor/GameExtractor.cpp:21-22, config.yml:123-149"
note: "Offered after the US extraction. The file name is whatever the user picks in the dialog."
- name: "starship.o2r"
path: "starship/starship.o2r"
category: game_data
system: starship
required: true
bundled: true
size: 10733
sha1: "95a8b0460576158da39a51b53091eae2c6880aad"
md5: "1885560b5d69899530bf3ab7af210f8b"
description: "Port archive packed from port/: Direct3D, OpenGL and Metal default shaders and the HUD boost gauge textures"
source_ref: "src/port/Engine.cpp:73-77, 109-111, libultraship src/graphic/Fast3D/backends/gfx_direct3d11.cpp:1325-1331"
note: "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."
- name: "config.yml"
path: "starship/config.yml"
category: game_data
system: starship
required: false
bundled: true
size: 3910
sha1: "fedb99b9622ed8df8ab46b85e51998f911345cb6"
md5: "0dab932eb5e59572294c1ea623d8f8e2"
description: "Torch extraction table: accepted ROM hashes, their asset tree under assets/yaml/ and their output archive"
source_ref: "Torch src/Companion.cpp:956-981"
note: "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."
- name: "gamecontrollerdb.txt"
path: "starship/gamecontrollerdb.txt"
category: game_data
system: starship
required: false
bundled: true
size: 566042
sha1: "b3d2b29fe4fdfdc0a74f5b8e200c506d33637d9c"
md5: "06d6a7b5856d6a44e835b7e3dc41e6f6"
description: "SDL game controller mapping database"
source_ref: "libultraship src/public/libultra/os.cpp:18-24"
note: "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."