Skip to content

kmc-jp/n64-emu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

n64-emu

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.

Build

We do not distribute pre-built binaries. Sorry!

Prerequisites

  • Little endian machine
  • C++ compiler compatible with C++20
  • CMake

We support MSVC++. Clang and GCC are not tested, but probably OK ๐Ÿคž

Linux

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 . 

Windows

  1. Donwload SDL2 from https://github.com/libsdl-org/SDL/releases and extract it.
  2. Set SDL2_DIR environment variable to poiont the location where you extracted the SDL2 development package.
  3. 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 . 

macOS

TODO: Asking for help!

Run

Only the z64 format (big enddian) is supported.

./n64[.exe] <rom_file.z64>

Key mappings

  • + 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)

See https://en-americas-support.nintendo.com/app/answers/detail/a_id/56673/~/nintendo-64-controller-diagram

We plan to make N64 controllers available on this emulator.

TODO: Other buttons

Test

# In build directory
ctest -C Debug

Contributing

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).

Related Projects

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

Acknowledgements

Big thanks to Dillon for the ROMs n64-tests.

Copyright

"Nintendo 64" is registered trademark of Nintendo Co., Ltd.

About

Low-level Nintendo64 emulator ๐ŸŒ

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published