A low-level N64 video emulation plugin, based on the pixel-perfect angrylion RDP plugin with some improvements.
Switch branches/tags
Clone or download
#70 Compare This branch is 516 commits ahead of project64:master.
ata4 Reverted irand back to LCG
After some testing, it turns out that xorshift is fast but still significantly slower than a simple LCG.
Since speed is more important than good randomness, I'll use the old irand code again.
Latest commit 766c575 Sep 9, 2018


Angrylion RDP Plus

This is a conservative fork of angrylion's RDP plugin that aims to improve performance add new features while retaining the accuracy of the original plugin.

Current features

  • More maintainable code base by dividing the huge n64video.cpp into smaller pieces.
  • Improved portability by separating the emulator plugin interface and window management from the RDP emulation core.
  • Multi-threaded rendering support, which increases performance on multi-core CPUs significantly.
  • Replaced deprecated DirectDraw interface with a modern OpenGL 3.3 implementation.
  • Added manual window sizing.
  • Added fullscreen support.
  • Added BMP screenshot support.
  • Added settings GUI.
  • Added Mupen64Plus support.

Tested with Project64 2.3+. May also work with Project64 1.7 with a RSP plugin of newer builds (1.7.1+).

The Mupen64Plus plugin was tested with Mupen64Plus 2.5 using the mupen64plus-rsp-cxd4 plugin.


To build the project with Visual Studio (2015+), you currently need to have Python 3 installed, which is used to fetch Git metadata and write it to version.h. You can also build without, but then you have to copy version.h.in to version.h and disable the custom build event in the core project.

The glLoadGen files (gl_core_3_3 and wgl_ext) were generated using the following parameters:

lua LoadGen.lua core_3_3 -style=pointer_c -spec=gl -version=3.3 -profile=core
lua LoadGen.lua ext -style=pointer_c -spec=wgl -ext WGL_EXT_swap_control -ext ARB_create_context -ext ARB_create_context_profile

Building with CMake is also possible:

mkdir build
cd build
cmake ..

The CMake rules currently supports the mupen64plus plugin and the retracer only. Also, non-Windows platforms currently suffer from massive performance degradation because of interferences with thread-local storage.


  • Angrylion, Ville Linde, MooglyGuy and others involved for creating an awesome N64 RDP reference software.
  • theboy181 - Testing. Lots of testing.
  • fallaha56 - Donator.
  • loganmc10 - Mupen64Plus plugin implementation.