Experimental Nintendo 64 emulator
Find a file
2025-03-09 21:32:42 +01:00
.github/workflows Work with SDL as subtree 2024-09-04 23:15:09 +02:00
.vscode [JIT]: Specialize register write handlers 2025-01-14 17:21:04 +01:00
external Use master rapidjson for discord-rpc (fixes #123) 2025-03-09 21:32:42 +01:00
resources FPU wasn't using SIMD. Oops 2024-09-28 14:49:47 +02:00
src [JIT]: Fix compilation 2025-02-26 10:40:27 +01:00
.clang-format Use SDL for ImGui 2024-09-17 20:19:59 +02:00
.gitignore [JIT]: Respect Microsoft calling convention too 2025-01-23 14:23:27 +01:00
CHANGELOG.md Better organize the changelog 2024-09-26 11:59:58 +02:00
CMakeLists.txt better organize cmake files 2024-09-03 22:28:55 +02:00
LICENSE
README.md [Readme] Windows support check 2025-01-03 09:06:11 +01:00

Kaizen

CodeFactor build

Rewrite of my Nintendo 64 emulator "shibumi".

Mario's face

Pre-built binaries

Release
Linux
Windows

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

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)
  • Windows support

This list will probably grow with time!

Special thanks:

  • ares for being the cleanest and most accurate Nintendo 64 emulator out there. It served as a reference time and time again. Especially regarding FPU accuracy.
  • Dillonb and KieronJ for bearing with me and my recurring brainfarts, and for the support ❤️
  • WhoBrokeTheBuild for the shader that allows letterboxing 🚀
  • Kelpsy, fleroviux, Kim-Dewelski, Peach, kivan, liuk and Skyler for the general support and motivation ❤️
  • Spec for being an awesome person in general ❤️

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