MCPcopy Index your code
hub / github.com/HarbourMasters/Starship

github.com/HarbourMasters/Starship @v2.0.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2.0.0 ↗ · + Follow
4,123 symbols 14,899 edges 495 files 154 documented · 4%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Starship

Developed by: * SonicDcer * Lywx

Discord

Official Discord: https://discord.com/invite/shipofharkinian

If you're having any trouble after reading through this README, feel free ask for help in the Starship Support text channels. Please keep in mind that we do not condone piracy.

Quick Start

Starship does not include any copyrighted assets. You are required to provide a supported copy of the game.

1. Verify your ROM dump

The supported ROMs are US 1.0 and US 1.1 Rev A versions. You can verify you have dumped a supported copy of the game by using the SHA-1 File Checksum Online at https://www.romhacking.net/hash/.

  • The SHA-1 hash for a US 1.0 ROM is D8B1088520F7C5F81433292A9258C1184AFA1457.
  • The SHA-1 hash for a US 1.1 ROM is 09F0D105F476B00EFA5303A3EBC42E60A7753B7A.

Starship also supports voice language replacement use from both EU (Lylat) and JP (Japanese) when used in conjunction with an US ROM.

Note: JP and EU versions of the game are not supported for the base asset O2R creation, a US ROM must be used for it.

2. Verify your ROM is in .z64 format

Your ROM needs to be in .z64 format. If it's in .n64 format, use the following to convert it to a .z64: https://hack64.net/tools/swapper.php

2. Download Starship from Releases

3. Generating the OTR from the ROM and Play!

Windows

  • Extract every file from the zip into a folder of your choosing.
  • Run starship.exe and select your US 1.0 or US 1.1 ROM.

Linux

  • Extract every file from the zip into a folder of your choosing.
  • Execute starship.appimage. You may have to chmod +x the appimage via terminal.
  • Select your US 1.0 or US 1.1 ROM.

MacOS

  • Extract every file from the zip into a folder of your choosing.
  • Run starship and select your US 1.0 or US 1.1 ROM.

Configuration

Default keyboard configuration

N64 A B Z Start Analog stick C buttons D-Pad
Keyboard X C Z Space WASD Arrow keys TFGH

Other shortcuts

Keys Action
F1 Toggle menubar
F4 Reset
F11 Fullscreen
Tab Toggle Alternate assets

Graphics Backends

Currently, there are three rendering APIs supported: DirectX11 (Windows), OpenGL (all platforms), and Metal (macOS). You can change which API to use in the Settings menu of the menubar, which requires a restart. If you're having an issue with crashing, you can change the API in the starship.cfg.json file by finding the line "Backend":{... and changing the id value to 3 and set the Name to OpenGL. DirectX 11 with id 2 is the default on Windows. Metal with id 4 is the default on macOS.

Custom Assets

Custom assets are packed in .o2r or .otr files. To use custom assets, place them in the mods folder.

If you're interested in creating and/or packing your own custom asset .o2r/.otr files, check out the following tools: * retro - OTR and O2R generator * fast64 - Blender plugin (Note that SF64 is not supported at this time)

Development

Building

If you want to manually compile Starship, please consult the building instructions.

Playtesting

If you want to playtest a continuous integration build, you can find them at the links below. Keep in mind that these are for playtesting only, and you will likely encounter bugs and possibly crashes.

<img alt="Powered by libultraship" src="https://github.com/HarbourMasters/Starship/raw/v2.0.0/docs/poweredbylus.lightmode.png">

Special Thanks:

  • ZeldaRET : for teaching me the fundamental knowledge of N64 decompilation.
  • Decompals : for helping in the initial disassembly and decompilation of the game.
  • HM64 Team : for creating Libultraship and helping with various issues.

  • DarioSamo : for providing important fixes to the renderer and information about the inner workings of the game graphics system.

  • garrettjoecox : for contributing with interpolation fixes to this port.
  • inspectredc : for contributing to the SF64 decompilation project.
  • Lywx : for co-developing this port as a lead and creating Torch asset extraction system.
  • m4xw : for helping with audio issues in this port.
  • Malkierian : for contributing with important fixes to this port.
  • petrie911 : for contributing to the SF64 decompilation project as a lead.
  • Ryan-Myers : for contributing to the SF64 decompilation project.
  • Thar0 : for contributing with an improved Starfield that can be interpolated to any framerate.
  • TheBoy181 : for contributing to this project with various widescreen enhancements such as level floors, an extended Starfield among other things.
  • Wiseguy : for providing important information about the inner workings of the N64 platform, as well as helping with the decompilation process.

Core symbols most depended-on inside this repo

Math_SmoothStepToF
called by 2451
src/engine/fox_std_lib.c
gSPDisplayList
called by 919
src/port/GBIMiddleware.cpp
RCP_SetupDL
called by 651
src/engine/fox_rcp.c
Matrix_RotateY
called by 650
src/sys/sys_matrix.c
Matrix_SetGfxMtx
called by 595
src/sys/sys_matrix.c
Matrix_Translate
called by 577
src/sys/sys_matrix.c
Matrix_MultVec3f
called by 558
src/sys/sys_matrix.c
Matrix_Scale
called by 533
src/sys/sys_matrix.c

Shape

Function 3,314
Class 501
Method 199
Enum 109

Languages

C75%
C++22%
Python3%

Modules by API surface

src/engine/fox_effect.c171 symbols
src/overlays/ovl_i5/fox_ma.c140 symbols
src/engine/fox_hud.c132 symbols
include/prevent_context_reordering.h110 symbols
src/overlays/ovl_i3/fox_aq.c109 symbols
src/overlays/ovl_menu/fox_option.c104 symbols
src/overlays/ovl_menu/fox_map.c104 symbols
src/audio/audio_general.c101 symbols
src/engine/fox_play.c100 symbols
src/engine/fox_enmy.c94 symbols
src/overlays/ovl_i3/fox_zo.c87 symbols
include/portable-file-dialogs.h79 symbols

For agents

$ claude mcp add Starship \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact