Experimental Nintendo 64 emulator
Find a file
2024-06-24 21:02:16 +02:00
.github/workflows Stop Windows support indefinitely 2024-05-26 21:11:39 +02:00
external Update parallel-rdp 2024-06-21 21:45:00 +02:00
resources Update README.md 2023-06-05 22:22:19 +02:00
src First things 2024-06-24 21:02:16 +02:00
.gitignore AutoRelease better log and null handling 2024-05-20 15:13:30 +02:00
.gitmodules remove fmt from submodules 2024-01-22 15:27:08 +01:00
CMakeLists.txt Stop Windows support indefinitely 2024-05-26 21:11:39 +02:00
LICENSE Add 3-Clause BSD license 2023-10-29 00:22:40 +02:00
README.md Huge FPU refactor. Thanks ares ❤️ 2024-06-23 23:00:48 +02:00

Kaizen

CodeFactor build

Rewrite of my Nintendo 64 emulator "shibumi".

Mario's face

Pre-built binaries

Release
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

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 when it stops being a pain in the rectum.

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.