- Nix 100%
| .gitignore | ||
| _2ship2harkinian.nix | ||
| dont-fetch-stb.patch | ||
| flake.lock | ||
| flake.nix | ||
| ghostship.nix | ||
| pass-fetchcontent-to-torch.patch | ||
| README.md | ||
| shipwright.nix | ||
HarbourMasters N64 Ports for Nix
Nix packages for HarbourMasters PC ports of classic N64 games. This repo is basically for Producer Jeff AKA PJ. The rest of this README was written by an LLM.
Available Packages
| Package | Game | Repository |
|---|---|---|
shipwright |
The Legend of Zelda: Ocarina of Time | Shipwright |
_2ship2harkinian |
The Legend of Zelda: Majora's Mask | 2ship2harkinian |
ghostship |
Super Mario 64 | Ghostship |
Usage
Building packages
# Build Ghostship (default)
nix build
# Build specific packages
nix build .#ghostship
nix build .#shipwright
nix build .#_2ship2harkinian
Running
# Run directly from the flake
nix run .#ghostship
nix run .#shipwright
nix run .#_2ship2harkinian
Development shell
nix develop
The dev shell includes all build dependencies plus debugging tools (gdb, valgrind, clang-tools).
ROM Requirements
These ports do not include any copyrighted game assets. You must provide your own legally obtained ROM files.
Supported ROMs
Ghostship (Super Mario 64):
- US ROM: SHA-1
9bef1128717f958171a4afac3ed78ee2bb4e86ce - JP ROM: SHA-1
8a20a5c83d6ceb0f0506cfc9fa20d8f438cafe51
Shipwright (Ocarina of Time):
2ship2harkinian (Majora's Mask):
First run
On first launch, each game will prompt you to select your ROM file. The game will extract assets and generate an .o2r archive file that will be used for subsequent launches.
Adding to your NixOS configuration
# flake.nix
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
n64-ports.url = "path:/path/to/this/directory";
};
outputs = { self, nixpkgs, n64-ports, ... }: {
nixosConfigurations.your-host = nixpkgs.lib.nixosSystem {
# ...
modules = [
({ pkgs, ... }: {
environment.systemPackages = [
n64-ports.packages.${pkgs.system}.ghostship
n64-ports.packages.${pkgs.system}.shipwright
n64-ports.packages.${pkgs.system}._2ship2harkinian
];
})
];
};
};
}
Platform support
| Package | Linux x86_64 | macOS |
|---|---|---|
shipwright |
✓ | ✓ |
_2ship2harkinian |
✓ | ✗ |
ghostship |
✓ | ✗ |
License
The Nix expressions in this repository are provided as-is. The games themselves have mixed licensing:
- libultraship, libgfxd, thread-pool: MIT
- Game-specific code: Various (see individual repositories)
- Reverse-engineered content: Unfree
You must set config.allowUnfree = true in your Nix configuration to build these packages.