Experimental Nintendo 64 emulator
Go to file
2024-03-28 21:18:44 +01:00
.github/workflows Prepare for master 2024-01-23 16:50:03 +01:00
external remove discord rpc 2024-01-23 08:53:31 +01:00
resources Update README.md 2023-06-05 22:22:19 +02:00
src QFileDialog filter 2024-03-28 21:18:44 +01:00
.gitignore small cleaning 2024-01-04 02:41:22 +01:00
.gitmodules remove fmt from submodules 2024-01-22 15:27:08 +01:00
CMakeLists.txt Revert "Merge branch 'jit' of https://github.com/SimoneN64/Kaizen into dev" 2024-01-23 14:25:03 +01:00
LICENSE Add 3-Clause BSD license 2023-10-29 00:22:40 +02:00
README.md Prepare for master 2024-01-23 16:50:03 +01:00

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:

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