N64 Emulator Plugins

From OoT Randomizer Wiki
Revision as of 20:49, 5 August 2022 by Flagrama (talk | contribs) (→‎Glide64 (Project64 Video): correct required opengl for glide64)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Nintendo 64 emulators use a plugin system. This was originally a way for closed source emulator developers to allow other developers to handle emulation of the different aspects of the console, while the closed source core handles the emulation of the main CPU of the console.

This means many different people have been able to try their hand at handling the Reality Display Processor and Reality Signal Processor which both make up the Reality Co-Processor that handled the graphics in the N64, which was one of the hardest parts of the N64 hardware to emulate quickly and accurately on computers when the N64 released in 1996. This means many plugins were developed to be fast and accurate running one game, but would sacrifice accuracy of other games to do so. The bulk of this page will be regarding the RDP plugins, which are simply called the Graphics plugin. The Audio plugins and Controller plugins are far more similar to any other emulator past, present, and future, so generally aren't as diverse or complicated.

LLE? HLE? What?

These terms stand for Low-Level Emulation and High-Level Emulation. Put simply, LLE generally tries to re-implement the way the hardware works in software. The more complicated and fast the original hardware, the more resources that host running the emulator needs to use. HLE will instead try to interpret the signals that would go to the hardware using shortcuts and hacks that run faster on the computer hardware running the emulator at the cost of not necessarily being accurate to how the hardware would handle something.

It's a lot easier to use LLE to make something accurate than HLE, but with enough refinement and fine-tuning HLE can be nearly as accurate as can be seen by emulators like Dolphin.

For more detailed information, check out the article on the Emulation General Wiki.

For Nintendo 64 specifically; CPUs, graphics cards, drivers, and graphics APIs have progressed to a point where LLE of the Nintendo 64 is actually able to be done at a decent speed. As such, depending on how powerful your hardware is, you may be able to run plugins that are guaranteed to be accurate to what the N64 would do. However, the majority of plugins are HLE, and most players will want to use one of them.

Graphics Plugins (RDP)

While calling these the graphics plugin isn't entirely accurate as it is only a part of the process required to display graphics on the screen, the RSP seems to be much easier to implement both in HLE and LLE so they aren't really a big deal to choose between.

The following chart displays plugin availability for common emulators.

GlideN64 ParaLLEl Glide64 Angrylion Rice Jabo
Project64 D*
Bizhawk D
m64p Next (libretro) D
ParaLLEl (libretro) D
mupen64plus-core
Included Default Downloadable Unavailable
D

* Glide64 is called Project64 Video in the latest versions of Project64
ParaLLEl's namesake RDP is not available on Mac operating systems due to lacking Vulkan support.
There are many front-ends for mupen64plus-core. Bizhawk, mupen64plus Next, ParaLLEl, m64p, and openemu to name a few. The ones shown explicitly in the list don't allow you to choose extra plugins, but almost all of the remaining ones should support the shown graphics plugins in some way. GlideN64 is usually the default, but not always.

GlideN64

The most recommended High-Level Emulation graphics plugin. It also has a Low-Level Emulation choice, however not many people have tried to use it for the randomizer. All mupen64plus-based emulators and Project64 can use this as it is currently regarded as the best graphics plugin so is preferred by players and developers.

It is very fast, and very much accurate enough for Ocarina of Time. Your graphics card needs to support GLSL 3.3 or higher though some drivers can force a GLSL3.3 compatibility layer so you can still try this plugin if your graphics card at least supports GLSL 3.0.

This plugin supports HiRes Texture Packs

ParaLLEl

The most recommended Low-Level Emulation graphics plugin. It's the same as Angrylion, but made to effectively use threading and run on a graphics card using the Vulkan graphics API. It tends to be accurate and fast, however does not work on Mac operating systems.

It is fast and accurate, but your graphics card needs to support Vulkan 1.1 to do so.

Glide64 (Project64 Video)

This is an older High-Level Emulation graphics plugin. This can often be confused with the GlideN64 plugin due to very similar names. As such, Project64 decided to rename their fork of it to reduce confusion. Many mupen64plus core emulators also have it as an option to use. It has decent accuracy but is known to not display polygons in Ocarina of Time occasionally. This can often be seen climbing up Death Mountain Trail.

This plugin runs on almost all modern graphics hardware. It will have issues on Intel GMA (Graphics Media Accelerator) graphics hardware though, as GMA is not really a GPU. Your graphics card needs to support OpenGL 2.0 or higher.

Angrylion

This is a Low-Level Emulation graphics plugin. It is not terribly fast so it is not recommended, but a high-end modern computer will probably be able to run it. It's effectively completely accurate to what the N64 would display.

Your graphics card needs to support GLSL 3.3 or higher. It is not recommended to use it if your graphics card can only handle the 3.3 compatibility later.

Rice

This is a very old plugin, however it is primarily a DirectX plugin making it's hardware compatibility on Windows very high. This plugin's claim to fame is being the first plugin to support custom textures, however it is no longer recommended to do so with Rice and to instead use them on GlideN64. It is highly inaccurate, but it is fast. The only noticeable slowdown is pausing as bringing up the menu is handled specifically in Glide64 and GlideN64 and ParaLLEl

This plugin should work on just about any hardware you're likely to be running on a computer these days. At the same time, it should be your last choice due to it's inaccuracies.

Jabo

Jabo is a closed-source High-Level Emulation graphics plugin that is no longer being maintained. It uses DirectX 8. It has several issues with Ocarina of Time, including a crash when trying to enter the Kakariko Bazaar store. It is not recommend for use. Rice may visually look a little worse, but Jabo's issues include crashes whereas Rice shouldn't.