kigold-recomp

kigold-recomp is a native Windows port of Killer Instinct Gold for the Nintendo 64 that runs the game's code directly on a PC.

README

Killer Instinct Gold: Recompiled

Play Killer Instinct Gold, the 1996 Nintendo 64 fighting game, as a native Windows program, with no emulator needed. The game's original code has been translated into a form that runs directly on a PC, using N64Recomp and the RT64 renderer.

You need your own copy of the game. No part of the game is included here.

What works

  • The intro and title screen
  • Character select
  • Full fights, with graphics, sound and controller input
  • The Continue screen

Still to be checked: saving, every character and stage, and a side-by-side comparison with the original hardware.

Getting the game file

You need the US version of the cartridge, Rev 2 (v1.2), dumped to a .z64, .v64 or .n64 file. To check that you have the right one, its SHA-1 fingerprint should be aaeb492b1e538af65a3544a97240675ef438a04f.

Playing

Run kig.exe. The first time, it asks you to pick your game file. You can also drag the file onto kig.exe.

Your settings and save data are kept in %APPDATA%\KIGRecomp.

The settings menu (Esc, or a controller's Back/View button) has a Cheats tab: infinite health for player 1, Gargos playable and all Options tiers unlocked. They are all off by default. The Options unlock isn't written to your save, so turning it off brings back the tiers you had earned.

Press F5 to save a state at the current moment and F7 to load it again (one quick-save slot, kept in %APPDATA%\KIGRecomp\states). This is meant for testing and reproducing bugs: a state belongs to the build that made it and may not load in other versions.

Building it yourself

You'll need Visual Studio 2022 Build Tools (with clang-cl and the Windows SDK), CMake 3.20 or newer, Ninja, and Python 3.12 with the rabbitizer, xxhash, splat64[mips] and spimdisasm packages. Put your game file in this folder as baserom.us.z64, then run these commands from PowerShell or Command Prompt (not Git Bash):

git submodule update --init --recursive
git -C lib/N64Recomp apply ../../patches/n64recomp/0001-handwritten-code.patch
git -C lib/N64Recomp apply ../../patches/n64recomp/0002-resumable-calls.patch
cmake -S lib/N64Recomp -B lib/N64Recomp/build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build lib/N64Recomp/build --target N64RecompCLI RSPRecomp
tools\regen_syms.ps1
tools\cmake_build.bat kig

The finished game is at build/cmake/kig.exe. The last two steps need the Visual Studio build environment; tools\cmake_build.bat sets it up for you.

Building on Linux (CachyOS / Arch Linux)

New to compiling Linux software? Start with the step-by-step beginner's build guide, which explains setup, ROM verification, Fish/Bash activation, compilation, and troubleshooting.

A native Linux build requires Clang, CMake, Ninja, SDL2 development headers, Vulkan development headers and loader, GTK 3 development files (for the native file dialog), Python and Git. The tested CachyOS system used Clang 23.1.4, CMake 4.4.5, Python 3.14.8, and sdl2-compat 2.32.74-1.1 on KDE Wayland. Equivalent libraries may also work on other distributions.

Install the Arch packages (package names can vary on other distributions):

sudo pacman -S --needed base-devel clang cmake ninja python git sdl2-compat vulkan-headers vulkan-icd-loader gtk3 pkgconf

Clone the repository and its submodules. You must supply your own US Rev 2 game ROM as baserom.us.z64; its SHA-1 is listed above. Do not commit the ROM or generated files.

git clone --recurse-submodules https://github.com/geno55/kigold-recomp.git
cd kigold-recomp
python -m venv .venv
. .venv/bin/activate
python -m pip install rabbitizer xxhash 'splat64[mips]' spimdisasm

git -C lib/N64Recomp apply ../../patches/n64recomp/0001-handwritten-code.patch
git -C lib/N64Recomp apply ../../patches/n64recomp/0002-resumable-calls.patch
cmake -S lib/N64Recomp -B lib/N64Recomp/build -G Ninja \
  -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
cmake --build lib/N64Recomp/build --target N64RecompCLI RSPRecomp --parallel

python tools/regen_syms_linux.py
cmake -S . -B build/cmake-linux -G Ninja \
  -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ \
  -DPython3_EXECUTABLE="$PWD/.venv/bin/python"
cmake --build build/cmake-linux --target kig --parallel
./build/cmake-linux/kig

For Fish, activate the environment with source .venv/bin/activate.fish instead. The generator uses native N64Recomp and RSPRecomp binaries from lib/N64Recomp/build by default; you can override their paths with CMake's N64RECOMP_EXE and RSPRECOMP_EXE cache entries.

The Linux symbol workflow uses tools/regen_syms_linux.py in place of the PowerShell-only tools/regen_syms.ps1.

Linux troubleshooting and known issues

Other limitations: Other Linux distributions have not been tested in this PR, and AppImage packaging is not automated.

For developers

How the port works, the fixes it needed, the build pipeline and the testing tools are described in docs/technical.md and docs/rom_map.md.

License

GPL-3.0 (see LICENSE). Some code is adapted from Quest64-Recomp and W.G. 3D Hockey: Recompiled. The game itself belongs to its owners.