Mupen64 / Mupen64Plus (2001)
Mupen64
Mupen64 is the last major project from the golden age of N64 emulation to be created. The project began in 2001, and was first released in December of the same year for Windows. The emulator was created by the Frenchman Hacktarux, who was learning how emulation worked while creating the project. This led to the emulator being rewritten several times. Mupen64 was initially released for Linux and Windows. The first version for Windows had no GUI, but when opening the emulator a window opened to select the ROM. Both compressed (in .GZ format) and uncompressed ROMs were accepted. At this stage it only ran demos and parts of 2D games and only in .ROM and .Z64 formats. After its release it also gained a port for BeOS. In the second version released in January 2002, it began to run its first game, Super Mario 64. Sound support was also removed in this version, as it was still annoyingly bad. This version is ported to the QNX system by Muad. The emulator makes it easy to port to other systems since it was designed for that purpose. In April 2002, the source code was released and posted on the emulation website, Emutalk. In the third version of May 2002, a simple GUI (for Windows, Linux and QNX) based on the GTK library was added, where you can select ROMs, the type of console CPU loading and the Zilmar Spec video plug-in.
Mupen64 0.0.90 (Mario Kart 64)
Improvements were also made using the Project64 source code and the Project64 video plug-in was added. In the fourth version of July 2002, a new core was created for the emulator, improving its compatibility and adding a keyboard control plug-in. More games began to run with it, such as Duke Nukem 64, Wave Race 64 and others. Hacktarux also created the Mupen64 GFX video plug-in, which was discontinued in the following version. Around this or the third version, games in the .V64 format began to run. The latest ports for BeOS and QNX also appeared in July. In the next version, 0.0.90 from October 2002, the emulator received a major update, with 84 games running fully, games in .N64 format also started to be opened by the emulator, EEPROM and SRAM memory packs added thanks to Jabo and Zilmar from PR64, support for ROMs in .ZIP format, new GUI (only for the Windows version) made by ShadowPrince, a toolbar made with the help of Schibo from project 1964, possibility of saving changed settings, support for four languages, several emulator cores were rewritten, among others.
This version also began to use the OpenGL video plug-in from the TrueReality64 project and also the N-Rage joypad plug-in, used in the PJ64. Regarding languages, this version began to add them, initially covering four of them, English, Spanish, German and French, until reaching 12 in total in August 2005, the four mentioned, plus Portuguese, Brazilian Portuguese, Polish, Argentine Spanish, Swedish, Dutch, Bulgarian and Russian. To run the games, it was required at least a 600Mhz processor, 64MB of RAM and a graphics card with support for OpenGL, Glide or Direct3D. This version also gained a port for MacOS X, by `Flea. In version 0.1 from February 2003, the emulator returned to support sound through the Azimer plug-in for the PR64, the video plug-in for the TR64 Direct3D was added and support for the save state was added. This version also includes the INI file where the games were included, as well as a new GUI for the Linux version similar to the Windows version, made by Blight. Blight is also responsible for creating some plug-ins for the Linux versions of the emulator. Version 0.2 from July 2003 brings many updates.
Improved integration of audio plug-ins, addition of own audio plug-in based on the UltraHLE project plug-in (i.e., an HLE plug-in), addition of RSP HLE plug-in for the console GPU and update of the joypad and OpenGL plug-ins. In addition, support for multiple slots for save states, addition of snapshot, pause and reset, as well as improvements in the emulator speed. Version 0.3 from September 2003 starts using the glN64 video plug-in instead of the TR64 plug-ins, and supports 8 languages, including Portuguese, as well as improvements in the emulator execution and in games. In version 0.4 from July 2004, they remove the Azimer audio plug-in, leaving only their own plug-in and create an RSP plug-in in partnership with Azimer. They also almost completely reworked the core of the emulator, making it faster, with greater emulator compatibility, video recording in its own format that can later be converted to AVI, Windows GUI redesigned by Linker, among others. In October 2004, this version gained a single port to the FreeBSD system by tlp. Later, it also gained a port to the AROS system.
Mupen64 0.5.1 (Over/Re Volt)
The latest version of the emulator, 0.5, was released in August 2005. It brought back the Azimer audio plug-in, now in HLE version. Direct64 and Glide64 are the new video plug-ins for the emulator. All plug-ins were modified for GTK2, which is the update of the multimedia kit with which the GUI was created. Among several other additions, such as framebuffer and corrections and additions to dynarec. The Linux and MacOS X releases also ended with the last Windows release of the project. In this last phase of the project, the members who helped Hacktarux the most were Olivieryuyu and Gonetz. Regarding its front-end, in July 2002, it gained a simple version with only video options, input, CPU and ROM loading (before it only had a Windows window for choosing ROM). In October 2002, it gained a real front-end, with play, pause, stop and options buttons. In July 2004, there is a slight change in the buttons and the list of ROMs on its front. It also changes the icon at the top of its front a few times, such as in January 2003, and July 2003 and 2004, and the icon in the executable in October 2002, July 2003 and 2004 and August 2005. Its version update logo (about) also changes a few times, such as in July 2004 and August 2005.
In October 2007, Mupen64 was forked by Richard Goedeken, also known as richard42, under the name Mupen64 AMD64. At the time, the latest release of the original emulator was used as a base. The intention was to recompile the emulator for 64-bit and fix bugs. Along with Mupen64, he also controls the port of the Rice Video video plug-in ported to Linux in September 2003 by Hacktarux. Its first release was in November 2007 for Linux. It improves the video plug-in, fixes bugs and improves the central processor, in addition to cleaning up the source code. The emulator also came without the Zilmar Spec standard, no longer using many popular plug-ins that were developed for Project64, the only one that still used the standard at the time. In March 2008, its name was changed to Mupen64Plus. In May 2008, the Windows version was released, following the March version. In June 2008, it gained support for Gameshark. In January 2009, it was ported to MacOS X.
In December 2009, the plug-in interface code was removed, making them simpler and more portable, and the emulation core was simplified, making it much more portable. This version is known as the first in beta mode. The first version of the emulator with these changes, and also the first beta version, was released in December 2009. In February 2010, it was ported to FreeBSD. The emulator received updates in 2010, 2012 and 2013. In June 2012, the M64PY (or Python) front-end was released, which became essential for running the Windows version. In the April 2015 version, it began supporting Linux and Mac OS X systems in 64-bit mode and Windows in 32-bit mode. Its last update occurred in July 2024. The last version was released as a test version, and it included support for the Rumble Pak accessory, recompilations for Intel and ARM, and smooth sound output speed assistance. At its conclusion, it used six video plug-ins, five RSP plug-ins, one sound plug-in and one input plug-in, with a single standard plug-in for each category and the surplus ones made by third parties.
Regarding its compatibility list, of the 197 games tested, 46 work well, 102 are playable and 84 did not work. Mupen64Plus was ported to Ubuntu and Debian systems in 2009 (reaching the 64-bit version of Ubuntu in April 2015), BlackBerry PlayBook in 2012, BlackBerry10 in 2013, Android in 2015, and GameShell in 2019, in addition to a series of projects with improvements in video plug-ins, joypads and others, totaling dozens of modifications. Two other Android versions were released by third parties, in July 2016 Mupen64Plus FZ by Francisco Zurita (changed to M64Plus FZ Emulator in 2019), and in September 2022 Mupen64Plus FZ by NES Emulator Retro 1990's/Game Retro (changed to Retro64 Emulator -Mupen64Plus in 2024). Mupen64Plus also received a fork called m64p created by loganmc10 in 2019 for Windows, Linux and MacOS X. The emulator comes with the Glide64 plugin, which is used in Mupen64Plus. The emulator has its own interface and input plugin, and netplay (network) support. It is also one of the emulators with the widest game compatibility. The first release was in February 2019 and the last in April 2021. In June 2020, Mupen64Plus gains a fork for LibRetro/RetroArch called Mupen64Plus-Next. Along with it, the ParaLLEl-RDP plugin is released, exclusive to this fork and considered one of the best plugins for the console.
Other Emulators
Blade64
Most emulators required an ini file, which is the initialization file, which was used to configure them, with the addition of games and other changes. Some of the ones that used this file were Daedalus, Blade64, Corn, NEmu64, Project64, UltraHLE, among others. Some projects focused only on updating this file instead of releasing new versions of their emulators. The same goes for input, control, CD-ROM, audio and video plug-ins.
Dream64
In addition to the emulators mentioned, we had other projects, such as Blade64, Dream64, N64 VM, NICE64, ICE64 (based on NICE64), Fake64 (exclusive for Linux), Pagan, PC64, RAP64, RSR64, Larper64, Sixtyforce (for MacOS X), BOOTHEAD, among others. Regarding creation for other systems, we had Jario64 for Java in 2009.
NICE64
In multi-system emulators, we had the Nintendo 64 running on MAME from 2005, MESS in 2007 and RetroArch in 2017 by paraLLEl N64 and in 2018 by Mupen64Plus-Next, a port of Mupen64Plus.
Zilmar (1999)
Project64 Website
Nicholas Zilmar was one of the most important figures in the Nintendo 64 scene. He knew a lot about the console's hardware, as well as the development of its plug-ins. He helped the N64 scene since 1999, such as in August 1999 with the 1964 emulator and others. That same year, he also gave information to the same emulator regarding the RSP coprocessor.
Due to his general knowledge of the console, the following year he released three text files explaining the best specifications for creating video, audio and control plug-ins for the console. These files became very well-known among the scene, which began to adopt them. These text files were updated and the plug-ins released under these specifications mentioned which versions of Zilmar's texts they had been created on. The source code for the specifications in question was open and free, free to be modified and added to plug-ins by anyone who wanted to, but with the requirement to include the name of their creator in the credits. These common plug-in files, as they were known, influenced the closed-source plug-in system of Nemu64, added to the emulator from April 1999 onwards.
The first emulator to use the Zilmar Spec standard was 1964 in July 2000, with the NooTe D3D video plug-in ported to it in May 2000. Other emulators to begin supporting the plug-ins were TR64 in October 2000, Apollo in December 2000, Daedalus in April 2001, Project64 in May 2001, Blade64 in September 2001, UltraHLE 2064 in December 2002, Nemu64 in March 2003, and Nice64 in 2011. Some emulators were not fully Zilmar Spec, such as Nemu64 and Nice64.
Basic Keyboard Plugin/Basic CFB Plugin/Basic Audio Plugin
Zilmar mainly created basic plug-ins, such as the video plug-ins Zilmar's Basic CFB Plug-in in October 2000 and the Direct3D version in 2001, the audio plug-ins Zilmar's Basic Audio Plug-in in October 2000 and Zilmar's No Sound Plug-in in November 2000, and the control plug-ins Zilmar's Basic Keyboard Input Plug-in in December 2000.
Project 64/RSP Emulation Plugin
Project64, as previously mentioned, was a project by Zilmar with Jabo, also a plug-in creator like Zilmar. It began in May 2001. The following month, he created the first RSP plug-in on the N64 scene, Zilmar's RSP LLE or just RSP Plug-in, which worked in conjunction with Jabo's DirectSound video plug-in. Before this, emulators used closed configurations of the coprocessor in question.
Throughout the 2000s, only the Project64, 1964 and Mupen64 emulators remained. With the end of 1964 in 2004 and Mupen64 in 2005, only Project64 remained, which in 2007 received competition from Mupen64Plus, a fork of Mupen64 that stopped using the Zilmar standard. Mupen64Plus stopped using many popular plug-ins that were released for Project64 because of this. One of the few Zilmar Spec plug-ins used in Mupen64Plus is GlineN64 from April 2015, as it also had functionality in the emulator's own system.
A curiosity. In December 2013, the HatCat's MLE RSP plug-in was released for Mupen64Plus and PJ64, also in Zilmar Spec. Its difference was that it was the first MLE (medium level) plug-in. Unlike the previously mentioned HLE and LLE, this was a type of plug-in only released for RSP (the N64 coprocessor), and unlike the classic plug-ins that needed video and audio plug-ins specific to their development levels, the MLE mixed HLE video plug-ins with LLE audio plug-ins, being highly regarded for N64 emulation in general.
(1964) NooTe D3D in July 1999 (converted to Zilmar Spec in May 2000)
(1964/Apollo/PJ64) 1964 OpenGL Graphics in May 2000 (converted to Zilmar Spec in July 2000)
(TR64/1964) RCP Direct3D in October 2000
(TR64/Mupen64) TR64 OpenGL in October 2000
(1964/PJ64/Apollo/Mupen64) Zilmar Basic CFB Plug-in - plays 2D color framebuffer demos in October 2000
(Daedalus/1964/PJ64) Rice Video Graphics Plug-in 2001 (What Month?)
(PJ64/TR64/Apollo/1964) Jabo's Direct3D6 in January 2001
(Apollo) Azimer OpenGL in February 2001
(PJ64/TR64/Apollo/1964) Jabo's Direct3D7 in December 2001
(PJ64) Jabo's OpenGL in May 2001
(Daedalus) Daedalus Graphics October 2001
(PJ64/Mupen64/Mupen64Plus) Gonetz Glide64 in December 2001
(1964/PJ64) Zilmar Basic CFB D3D in 2001
(PJ64) NiGL (Nintendo Graphics Library) in April 2002
(Mupen64) Mupen64 GFX in July 2002
(Daedalus/1964/PJ64) RiceDaedalus/DaedalusD3D8 in July 2002
(TR64) Icepir8's Texture Dumping Plug-in in October 2002
(PJ64) RiceVideo Community Version (fork of Rice Video) in December 2002
(TR64/Mupen64) TR64 Direct3D in February 2003
(PJ64/Mupen64) Orkin glN64 plug-in in February 2003
(TR64) Icepir8's TR64 D3D plug-in in February 2003
(PJ64/Mupen64) Orkin Direct64 (based on glN64) in May 2004
(Nemu64) Lemmy's D3D8 plug-in in May 2004
(1964/1964 Unofficial) 1964 Video LLE Plug-in in November 2004
(PJ64) Jabo's Direct3D8 in March 2005
(PJ64) Rice's HiRez Texturing Plug-in (continuity from Rice Video) in April 2007
(PJ64/Mupen64Plus) Z64/Ziggy's LLE OpenGL in April 2007
(PJ64/Mupen64Plus) Arachnoid in June 2007
(1964 Unofficial) 1964 Video Plug-in (based on Rice Video) in April 2008
(1964mod/NICE64/ICE64) MyGlide64 in January 2012
(1964mod/NICE64/ICE64) MyGlideHQ in January 2012
(PJ64) Angrylion RDP in February 2012
(PJ64/Mupen64Plus) Gonetz GlideN64 (continuity from Glide64) in September 2014
(PJ64) Z64GL in February 2016 (forked from Z64)
(Mupen64Plus) "Static" RSP Interpreter / CXD4 RSP in March 2018
(PJ64/Mupen64Plus/P64) ParaLLEI N64 in June 2020
(PJ64) Project64-Video in May 2021
Audio plug-ins:
(1964) Steb Audio in January 2000 (converted to Zilmar Spec in October 2000)
(1964) Null Sound in October 2000
(1964/Apollo/PJ64/Daedalus) Zilmar's Basic Audio Plug-in - plays audio for demos in October 2000
(1964/PJ64/Apollo/Mupen64/Blade64) Zilmar's No Sound Plug-in in November 2000
(TR64/1964/Blade64) TR64 Audio UCode1 Plug-in in November 2000
(Daedalus/Apollo/Mupen64) Azimer's Audio Plug-in / HLE Audio Plug-in in April 2001
(PJ64/1964) Jabo's DirectSound in May 2001
(PJ64) Project64-Audio in May 2021
(TR64) TR64 HLE Audio Plug-in in September 2001
(1964/PJ64/Mupen64) Audio Beta in January 2002
(Daedalus/Apollo) Azimer's LLE Audio Plug-in in December 2002
(PJ64/1964) Schibo's Audio Plug-in in October 2003
(1964 Unofficial) 1964 Audio Plug-in in April 2008
(1964mod) 1964mod Audio Plug-in in January 2012
(NICE64) NICE64 Audio Plug-in in April 2012
(ICE64) ICE64 Audio Plug-in in October 2012
(PJ64/1964/Mupen64) Shunyuan's HLE Audio Plug-in in April 2013
Input plug-ins:
(1964/Blade64) NooTe DirectInput Plug-in in May 2000 (converted to Zilmar Spec in October 2000)
(TR64/1964) TR64 Input Plug-in in October 2000
(1964/Apollo/Mupen64) Zilmar's Basic Keyboard Input Plug-in in December 2000
(TR64) TR64 DirectX8 Input Plug-in in January 2001
(PJ64) DesktopMan's Basic Keyboard in January 2001
(PJ64/1964) Orkin's Input Plug-in in February 2001
(PJ64/Apollo/Blade64/1964/TR64) SJR's Adaptoid Interface Plug-in/Adaptoid Plug-in in April 2001
(PJ64/1964) Jabo's DirectInput/DirectInput7 in May 2001
(PJ64/Apollo/Blade64/1964/TR64) SJR's N64 Virtual Pad Plug-in June 2001
(PJ64/1964) Def's N64 Direct Input in July 2001
(PJ64/Apollo/1964/TR64/Mupen64) N-Rage DirectInput8 / N-Rage Input in August 2001
(Blade64) Blade64 Input Plug-in in August 2001
(TR64) TR64 LLE Adaptoid Plug-in in January 2002
(PJ64/Mupen64) Darkman DirectInput Plug-in / Pad Plug-in in August 2004
(PJ64) Billard's Xinput plug-in in February 2008
(1964 Unofficial) 1964 Input Plug-in (based on N-Rage Input) in April 2008
(PJ64) NetPlay Input Plug-in (runs in conjunction with N-Rage) in November 2010
(1964mod) 1964mod Input Plug-in in January 2012
(NICE64) NICE64 Input Plug-in in April 2012
(ICE64) ICE64 Input Plug-in in October 2012
(PJ64/Mupen64Plus) Pokopom PSX Pad Plug-in in February 2012
(PJ64) Shunyuan's Directinput Plug-in in August 2013
(PJ64/Mupen64Plus) Raphnetraw in January 2017
(PJ64/Mupen64Plus) N64 Input Serial Plug-in in March 2018
(PJ64) Project64-Input in May 2021
There was supposedly a control plug-in called DesktopMan's DirectInput Plug-in, but this information has not been confirmed.
RSP Plugins:
(PJ64) Zilmar's RSP LLE/RSP Plug-in (was required for Jabo's DirectSound video plug-in) in July 2001
(Mupen64/PJ64/1964) Hacktarux-Azimer HLE Mupen64 HLE RSP in January 2002
(PJ64/Mupen64Plus) Z64 RSP LLE/Ziggy RSP LLE (required for Z64 video plug-in) as of April 2007
(1964/PJ64/Mupen64Plus) HatCat's RSP Plug-in with SSE in August 2013
(1964/PJ64/Mupen64Plus) HatCat's MLE RSP in December 2013