Mupen64Plus

Last updated
Developer(s) richard42g
Initial releaseDecember 10, 2001;22 years ago (2001-12-10) (as MUPEN64)
Stable release
2.6.0 / July 14, 2024;4 days ago (2024-07-14) [1]
Repository
Written in C and C++
Operating system Android, [2] AROS, FreeBSD, Linux, macOS, Windows
Type Video game console emulator
License GPL-2.0-or-later
Website mupen64plus.org

Mupen64Plus, formerly named Mupen64-64bit and Mupen64-amd64, is a free and open-source, cross-platform Nintendo 64 emulator, written in the programming languages C and C++. It allows users to play Nintendo 64 games on a computer by reading ROM images, either dumped from the read-only memory of a Nintendo 64 cartridge or created directly on the computer as homebrew. [3]

Contents

History

Mupen64, the forerunner to Mupen64Plus, was released December 10, 2001 by Hacktarux. [4] Mupen64 was designed to be cross-platform, the first release running on both Linux and Windows operating systems. As the emulator progressed, support was added for FreeBSD, AROS, and OS X, but these ports were not maintained as much or as well as the Linux and Windows versions.

On August 26, 2005, Mupen64 version 0.5 was released. It was the last version of Mupen64 by Hacktarux, although several branches of the project were made, one of which was Mupen64Plus. In October 2007, Mupen64 was forked by Richard Goedeken (richard42). [5] His work went through several releases before settling on the name Mupen64Plus.

Mupen64Plus originally aimed to provide a 64-bit recompiler and to fix bugs present in Mupen64 0.5. Over time, the emulator expanded, maintained and improved extant video plug-ins, and provided extra features beyond the project's original scope.

In late 2009, the Mupen64Plus project undertook a major re-design of the emulator's architecture. Like many N64 emulators (including Sixtyforce, 1964, and Project64), Mupen64Plus uses four modular plug-ins (dynamic libraries) which adhere to a specification written by Project64 developer Zilmar. This specification was originally written in the late 1990s, when all of the Nintendo 64 emulators ran only under Windows. The plug-in architecture used graphical user interface (GUI) specific code inside of each plug-in, which presents difficulties for programmers wishing to support many different operating systems. For this reason, the Mupen64Plus team presented a design proposal to modify the plugin application programming interface (API) to place all of the user interface code in one software module and make other improvements to streamline the operation of a cross-platform N64 emulator. [6] This decision was then controversial, but the proposed changes were implemented, and the software has continued to evolve. December 14, 2009 saw the first beta release of Mupen64Plus with the revised API, version 1.99.1. Several other beta versions have been released since then. Mupen64Plus 2.0 is currently being developed. Its source can be downloaded from the project's git repository.

Reception

Brandon Widdler of Digital Trends considers the emulator one of the best for the Nintendo 64 along with Project64, citing its cheat functions, dynamic recompilers for 32-bit and 64-bit machines, and speed adjustment feature. [3]

Branches

See also

Related Research Articles

<span class="mw-page-title-main">Qt (software)</span> Object-oriented framework for software development

Qt is cross-platform application development framework for creating graphical user interfaces as well as cross-platform applications that run on various software and hardware platforms such as Linux, Windows, macOS, Android or embedded systems with little or no change in the underlying codebase while still being a native application with native capabilities and speed.

<span class="mw-page-title-main">Wine (software)</span> Windows compatibility software

Wine is a free and open-source compatibility layer to allow application software and computer games developed for Microsoft Windows to run on Unix-like operating systems. Developers can compile Windows applications against WineLib to help port them to Unix-like systems. Wine is predominantly written using black-box testing reverse-engineering, to avoid copyright issues. No code emulation or virtualization occurs. Wine is primarily developed for Linux and macOS.

In computing, cross-platform software is computer software that is designed to work in several computing platforms. Some cross-platform software requires a separate build for each platform, but some can be directly run on any platform without special preparation, being written in an interpreted language or compiled to portable bytecode for which the interpreters or run-time packages are common or standard components of all supported platforms.

<span class="mw-page-title-main">Windows API</span> Microsofts core set of application programming interfaces on Windows

The Windows API, informally WinAPI, is the foundational application programming interface (API) that allows a computer program to access the features of the Microsoft Windows operating system in which the program is running.

In computer science, dynamic recompilation is a feature of some emulators and virtual machines, where the system may recompile some part of a program during execution. By compiling during execution, the system can tailor the generated code to reflect the program's run-time environment, and potentially produce more efficient code by exploiting information that is not available to a traditional static compiler.

<span class="mw-page-title-main">Standard Widget Toolkit</span> Graphical widget toolkit for use with the Java platform

The Standard Widget Toolkit (SWT) is a graphical widget toolkit for use with the Java platform. It was originally developed by Stephen Northover at IBM and is now maintained by the Eclipse Foundation in tandem with the Eclipse IDE. It is an alternative to the Abstract Window Toolkit (AWT) and Swing Java graphical user interface (GUI) toolkits provided by Sun Microsystems as part of the Java Platform, Standard Edition (J2SE).

<span class="mw-page-title-main">Text-based user interface</span> Type of interface based on outputting to or controlling a text display

In computing, text-based user interfaces (TUI), is a retronym describing a type of user interface (UI) common as an early form of human–computer interaction, before the advent of bitmapped displays and modern conventional graphical user interfaces (GUIs). Like modern GUIs, they can use the entire screen area and may accept mouse and other inputs. They may also use color and often structure the display using box-drawing characters such as ┌ and ╣. The modern context of use is usually a terminal emulator.

<span class="mw-page-title-main">QEMU</span> Free virtualization and emulation software

QEMU is a free and open-source emulator. It emulates a computer's processor through dynamic binary translation and provides a set of different hardware and device models for the machine, enabling it to run a variety of guest operating systems. It can interoperate with Kernel-based Virtual Machine (KVM) to run virtual machines at near-native speed. QEMU can also do emulation for user-level processes, allowing applications compiled for one processor architecture to run on another.

Homebrew, when applied to video games, refers to software produced by hobbyists for proprietary video game consoles which are not intended to be user-programmable. The official documentation is often only available to licensed developers, and these systems may use storage formats that make distribution difficult, such as ROM cartridges or encrypted CD-ROMs. Many consoles have hardware restrictions to prevent unauthorized development.

<span class="mw-page-title-main">Project64</span> Nintendo 64 emulation software

Project64 is a free and open-source Nintendo 64 emulator written in the programming languages C and C++ for Microsoft Windows. This software uses a plug-in system allowing third-party groups to use their own plug-ins to implement specific components. Project64 can play Nintendo 64 games on a computer reading ROM images, either dumped from the read-only memory of a Nintendo 64 ROM cartridge or created directly on the computer as homebrew.

Core Foundation is a C application programming interface (API) written by Apple Inc. for its operating systems, and is a mix of low-level routines and wrapper functions. Most Core Foundation routines follow a certain naming convention that deal with opaque objects, for example CFDictionaryRef for functions whose names begin with CFDictionary, and these objects are often reference counted (manually) through CFRetain and CFRelease. Internally, Core Foundation forms the base of the types in the Objective-C standard library and the Carbon API.

<span class="mw-page-title-main">Dolphin (emulator)</span> Nintendo GameCube and Wii emulation software

Dolphin is a free and open-source video game console emulator for GameCube and Wii that runs on Windows, Linux, macOS, Android, Xbox One, Xbox Series X and Series S.

<span class="mw-page-title-main">PCSX2</span> PlayStation 2 video game console emulator

PCSX2 is a free and open-source PlayStation 2 emulator for Windows, Linux, and macOS that supports a wide range of PlayStation 2 video games with a high level of compatibility and functionality. Although PCSX2 can closely mirror the original gameplay experience on the PlayStation 2, PCSX2 supports a number of improvements over gameplay on a traditional PlayStation 2, such as the ability to use resolutions up to 12 times larger than native, anti-aliasing and texture filtering.

<span class="mw-page-title-main">LMMS</span> Free software digital audio workstation

LMMS is a digital audio workstation application program. It allows music to be produced by arranging samples, synthesizing sounds, entering notes via computer keyboard or mouse or by playing on a MIDI keyboard, and combining the features of trackers and sequencers. It is free and open source software, written in Qt and released under GPL-2.0-or-later.

<span class="mw-page-title-main">PCSX-Reloaded</span> Video game console emulator

PCSX is a free and open-source, video game console emulator that allows software designed to be used with the Sony PlayStation to run on personal computers. Over the years, development changed hands several times with PCSX-Reloaded (PCSXR) now being the main version. As of 2021, the emulator seems to be no longer under active development. A newer, actively maintained fork of PCSX-Reloaded is PCSX-Redux.

<span class="mw-page-title-main">Kernel-based Virtual Machine</span> Virtualization module in the Linux kernel

Kernel-based Virtual Machine (KVM) is a free and open-source virtualization module in the Linux kernel that allows the kernel to function as a hypervisor. It was merged into the mainline Linux kernel in version 2.6.20, which was released on February 5, 2007. KVM requires a processor with hardware virtualization extensions, such as Intel VT or AMD-V. KVM has also been ported to other operating systems such as FreeBSD and illumos in the form of loadable kernel modules.

higan (emulator) Multi-system emulator

Higan is a free and open source emulator for multiple video game consoles, including the Super Nintendo Entertainment System. It was developed by Near. Originally called bsnes, the emulator is notable for attempting to emulate the original hardware as accurately as possible through low-level, cycle-accurate emulation and for the associated historical preservation efforts of the Super NES platform.

<span class="mw-page-title-main">PPSSPP</span> PSP emulator

PPSSPP is a free and open-source PSP emulator for Windows, macOS, Linux, iOS, Android, Nintendo Wii U, Nintendo Switch, BlackBerry 10, MeeGo, Pandora, Xbox Series X/S and Symbian with a focus on speed and portability. It was released to the public on November 1, 2012, licensed under the GNU GPLv2 or later. The PPSSPP project was created by Henrik Rydgård, one of the co-founders of the Dolphin emulator.

<span class="mw-page-title-main">RetroArch</span> Emulator and media player frontend

RetroArch is a free and open-source, cross-platform frontend for emulators, game engines, video games, media players and other applications. It is the reference implementation of the libretro API, designed to be fast, lightweight, portable and without dependencies. It is licensed under the GNU GPLv3.

mpv (media player) Free and open-source media player software

mpv is free and open-source media player software based on MPlayer, mplayer2 and FFmpeg. It runs on several operating systems, including Unix-like operating systems and Microsoft Windows, along with having an Android port called mpv-android. It is cross-platform, running on ARM, PowerPC, x86/IA-32, x86-64, and MIPS architecture.

References

  1. Goedeken, Richard. "Mupen64Plus v2.6.0". GitHub . Retrieved July 18, 2024.
  2. "Mupen64Plus, AE (N64 Emulator)". Google Play. 2013-07-09. Retrieved 2013-07-09.
  3. 1 2 Widder, Brandon (April 20, 2013). "Best Emulators (NES, SNES, Genesis, N64, and more)". Digital Trends . Archived from the original on October 5, 2013. Retrieved March 26, 2014.
  4. Mupen64 Homepage – News (with release dates)
  5. Richard42's first release of forked Mupen64 code
  6. Mupen64Plus v2.0 design proposal
  7. "Important Notice". GitHub . 24 February 2022.
  8. Zeis, Adam (June 21, 2012). "Mupen64Plus-PB - Nintendo 64 emulator for the BlackBerry PlayBook". CrackBerry. Archived from the original on November 2, 2016.
  9. Romano, Steven (December 27, 2012). "Booyah! OUYA Development Kits Could Arrive by Tomorrow". The Mary Sue . Archived from the original on March 18, 2015. Retrieved March 27, 2014.
  10. Romano, Steven (January 13, 2013). "OUYA Can Play Emulated Games, Will Likely Be Its Sole Purpose". The Mary Sue . Archived from the original on January 23, 2018. Retrieved March 27, 2014.