• Stars
    star
    117
  • Rank 295,780 (Top 6 %)
  • Language
    C++
  • License
    BSD 3-Clause "New...
  • Created over 2 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Experimental Nintendo 64 emulator

Kaizen

CodeFactor build

Rewrite of my Nintendo 64 emulator "shibumi".

Mario's face

Pre-built binaries

Release
Windows
Linux

Socials

We have a Discord server

Sister projects

  • n64: Low-level, fast, accurate and easy to use Nintendo 64 emulator
  • Panda3DS: A new HLE Nintendo 3DS emulator
  • Dust: Nintendo DS emulator for desktop devices and the web, with debugging features and a focus on accuracy
  • SkyEmu: A low-level GameBoy, GameBoy Color, GameBoy Advance and Nintendo DS emulator that is designed to be easy to use, cross platform and accurate
  • NanoBoyAdvance: A Game Boy Advance emulator focusing on hardware research and cycle-accurate emulation
  • melonDS: "DS emulator, sorta"; a Nintendo DS emulator focused on accuracy and ease-of-use
  • n64-emu: Experimental N64 emulator
  • ares: ares is a multi-system emulator that began development on October 14th, 2004. It focuses on accuracy and preservation.

Build instructions:

First clone the repository: git clone --recursive https://github.com/SimoneN64/Kaizen

Windows

This build uses Visual Studio with Vcpkg and Clang-cl

Dependencies:

  • CMake 3.20 or higher
  • SDL2 (install it by making sure that you're choosing the "vulkan" extension of the package and the x64-windows triplet: vcpkg install sdl2[vulkan]:x64-windows)
  • Qt6 (install it with vcpkg install qtbase[core,gui,widgets,vulkan]:x64-windows)
cd path/to/kaizen
mkdir build
cd build
cmake -T clangcl -DCMAKE_TOOLCHAIN_FILE=path/to/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_BUILD_TYPE=Release -S ../src
cmake --build . --config Release

Linux

Dependencies:

  • GCC or Clang with C++17 support
  • CMake 3.20 or higher
  • SDL2
  • Vulkan API (including the validation layers) + SPIR-V tools
  • Qt6
cd path/to/kaizen
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -S ../src
cmake --build . --config Release

Running:

./path/to/kaizen [ROM] [Mupen Movie]

Your GPU needs to support Vulkan 1.1+, because the RDP is implemented via ParaLLEl-RDP.

Roadmap

  • Full R4300i emulation
  • Full RCP emulation
  • Full TLB emulation
  • Full joybus emulation (but it's not configurable by the user at the moment)
  • TAS replay (using Mupen's format)
  • Qt for native GUI
  • JIT, with support for x86_64 and ARM (using an IR).
  • Debug tools: disassembly, breakpoints, single-step and memory editor
  • TAS tools: TAS input, recording (using Mupen's format), save-states, rewind and frame-advance
  • Cheat support
  • Allow to optionally pass a PIF image for the boot process (it's HLE'd at the moment)

This list will probably grow with time!

Special thanks:

Copyright

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