HarbourMasters/Ghostship

723

stars

706

commits

C

primary language

Sep 8, 2026

updated

README

Ghostship

Lead Developers:

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 Ghostship Support text channels. Please keep in mind that we do not condone piracy.

Quick Start

Ghostship 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 and JP 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 ROM is 9bef1128717f958171a4afac3ed78ee2bb4e86ce.
  • The SHA-1 hash for a JP ROM is 8a20a5c83d6ceb0f0506cfc9fa20d8f438cafe51.

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 Ghostship 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 Ghostship.exe and select your US or JP ROM.

Linux

  • Extract every file from the zip into a folder of your choosing.
  • Execute Ghostship.appimage. You may have to chmod +x the appimage via terminal.

MacOS

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

Nintendo Switch

  • Run one of the PC releases to generate an sm64.o2r file. After launching the game on PC, you will be able to find these files in the same directory as Ghostship.exe or Ghostship.appimage.
  • Copy the files to your sd card

Android

  • Install the APK and launch it.
  • Tap Choose Super Mario 64 ROM and pick your own US or JP .z64. It is checked against the supported hashes, kept in the app's own storage, and converted into sm64.o2r on the device — no PC step, and no game data ships with the app.
  • Extraction runs once and takes a few minutes; the game starts by itself when it finishes.
  • Mods and saves are managed from the Mods button, which appears next to Menu while the in-game menu is open. Everything also lives on disk under Android/data/dev.net64.ghostship/files/, so mods can be dropped into mods/ with a file manager instead.

Configuration

Default keyboard configuration

N64ABZStartAnalog stickC buttonsD-Pad
KeyboardXCZSpaceWASDArrow keysTFGH

Other shortcuts

KeysAction
EscToggle menu
Ctrl+RReset (inside levels)
F11Fullscreen
TabToggle Alternate assets

Graphics Backends

Currently, there are four rendering APIs supported: DirectX 11 (Windows), OpenGL (all platforms), Metal (macOS), and Vulkan (only offered when your graphics driver supports it). 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 Ghostship.cfg.json file by finding the "Backend": { block and changing the Id value; the game fills in the matching Name on the next launch. The IDs are 1 for DirectX 11, 2 for OpenGL, 3 for Metal, and 4 for Vulkan. DirectX 11 is the default on Windows and Metal 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:

Development

Building

If you want to manually compile Ghostship, 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.

Powered by libultraship

Special Thanks:

  • Kenix3 : for helping with the Engine development that were brought into other ports.
  • HM64 Team : for creating Libultraship and helping with various issues.
  • garrettjoecox : for contributing with fixes to this port.
  • inspectredc : for contributing to the extraction of the game's assets.
  • Malkierian : for contributing to the extraction of the game's assets.

Contributors

KiritoDv

439 commits

Caladius

88 commits

inspectredc

64 commits

Malkierian

41 commits

HarbourMasters/Ghostship

723

stars

706

commits

C

primary language

Sep 8, 2026

updated

README

Ghostship

Lead Developers:

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 Ghostship Support text channels. Please keep in mind that we do not condone piracy.

Quick Start

Ghostship 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 and JP 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 ROM is 9bef1128717f958171a4afac3ed78ee2bb4e86ce.
  • The SHA-1 hash for a JP ROM is 8a20a5c83d6ceb0f0506cfc9fa20d8f438cafe51.

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 Ghostship 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 Ghostship.exe and select your US or JP ROM.

Linux

  • Extract every file from the zip into a folder of your choosing.
  • Execute Ghostship.appimage. You may have to chmod +x the appimage via terminal.

MacOS

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

Nintendo Switch

  • Run one of the PC releases to generate an sm64.o2r file. After launching the game on PC, you will be able to find these files in the same directory as Ghostship.exe or Ghostship.appimage.
  • Copy the files to your sd card

Android

  • Install the APK and launch it.
  • Tap Choose Super Mario 64 ROM and pick your own US or JP .z64. It is checked against the supported hashes, kept in the app's own storage, and converted into sm64.o2r on the device — no PC step, and no game data ships with the app.
  • Extraction runs once and takes a few minutes; the game starts by itself when it finishes.
  • Mods and saves are managed from the Mods button, which appears next to Menu while the in-game menu is open. Everything also lives on disk under Android/data/dev.net64.ghostship/files/, so mods can be dropped into mods/ with a file manager instead.

Configuration

Default keyboard configuration

N64ABZStartAnalog stickC buttonsD-Pad
KeyboardXCZSpaceWASDArrow keysTFGH

Other shortcuts

KeysAction
EscToggle menu
Ctrl+RReset (inside levels)
F11Fullscreen
TabToggle Alternate assets

Graphics Backends

Currently, there are four rendering APIs supported: DirectX 11 (Windows), OpenGL (all platforms), Metal (macOS), and Vulkan (only offered when your graphics driver supports it). 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 Ghostship.cfg.json file by finding the "Backend": { block and changing the Id value; the game fills in the matching Name on the next launch. The IDs are 1 for DirectX 11, 2 for OpenGL, 3 for Metal, and 4 for Vulkan. DirectX 11 is the default on Windows and Metal 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:

Development

Building

If you want to manually compile Ghostship, 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.

Powered by libultraship

Special Thanks:

  • Kenix3 : for helping with the Engine development that were brought into other ports.
  • HM64 Team : for creating Libultraship and helping with various issues.
  • garrettjoecox : for contributing with fixes to this port.
  • inspectredc : for contributing to the extraction of the game's assets.
  • Malkierian : for contributing to the extraction of the game's assets.

Contributors

KiritoDv

439 commits

Caladius

88 commits

inspectredc

64 commits

Malkierian

41 commits

Languages

C

82.8%

C++

11.4%

Java

2.0%

CMake

1.2%

Python

1.1%