n64-emu is an experimental Nintendo 64 emulator, which aims to complete graphic and audio emulation for commercial ROMs such as Kirby 64: The Crystal Shards and The legend of Zelda: Ocarina of Time.
Note n64-emu is in a very early stage of development now. No commercial ROM can run on it. However, simple ROMs such as Mimi Controller Test can run on it.
We do not distribute pre-built binaries. Sorry!
- Little endian machine
- C++ compiler compatible with C++20
- CMake
We support MSVC++. Clang and GCC are not tested, but probably OK ๐ค
sudo apt install cmake libsdl2-dev g++
git clone --recursive git@github.com:kmc-jp/n64-emu.git
cd n64-emu
mkdir build
cd build
# configure build
cmake ..
# build
make # or cmake --build .
- Donwload SDL2 from https://github.com/libsdl-org/SDL/releases and extract it.
- Set
SDL2_DIR
environment variable to poiont the location where you extracted the SDL2 development package. - Run the follwoing commands
git clone --recursive git@github.com:kmc-jp/n64-emu.git
cd n64-emu
mkdir build
cd build
# configure build
cmake ..
# build
make # or cmake --build .
TODO: Asking for help!
Only the z64 format (big enddian) is supported.
./n64[.exe] <rom_file.z64>
- + Control Pad : W/A/S/D
- C Buttons (Directional Pad) : โ/โ/โ/โ
- A Button : Space
- B Button : Right Shift
- Control Stick : I/J/K/L
- L/R Button : Q/P
- Z Button : Z
- Start : X
- Abort emulator : Tab (Only for debugging)
We plan to make N64 controllers available on this emulator.
TODO: Other buttons
# In build directory
ctest -C Debug
We do not currently accept pull requests to add new feature. But bug reports/fixes and adding tests are always welcome ๐ See CONTRIBUTING.md(ja).
We are much inspired by the following projects โค๏ธ
- Project64: N64 Emulator
- Simple64: Accurate N64 Emulator
- n64: experimental low-level n64 emulator
- Kaizen: Experimental Nintendo 64 emulator
Big thanks to Dillon for the ROMs n64-tests.
"Nintendo 64" is registered trademark of Nintendo Co., Ltd.