Hello N64 fans! It’s been almost 4 years in the making, and Mupen64Plus v2.0 is finally here! It’s been over a year since the 1.99.5 release, and we finally worked through everything that I wanted to finish before the official 2.0 name. Some of the highlights of this release are:

  • All: more supported platforms, including Visual Studio 2012, ARM, PPC, and MinGW
  • All: experimental support for SDL 2.0 library
  • Audio: more resampling quality options, and support for resampling with speexdsp library
  • Core: fixes for various games (DK64, Zelda, Blast Corps)
  • Core: add Ari64’s new dynamic recompiler, with support for x86 and ARM architectures
  • Core: improved PJ64 savestate loading, auto-detect savestate slot type
  • Core/Video: support for resizing video window when in windowed mode
  • Input: Re-write auto-configuration logic to have more user friendly behavior
  • Input: New auto-configurations for 6 controllers
  • RSP: Support for JPEG textures used in Pokemon Stadium Japan
  • Rice-Video: improve hires texture loading support
  • Rice-Video: Build option to support mobile devices by using OpenGL ES 2.0
  • Glide64mk2-Video: brand new (for us) video plugin based on Gonetz’s 10th anniversary release of Glide64

Credits

I would like to say a special thanks to: ecsv (for his brilliant work on the hard bugs, and maintaining all of the project files, which is a thankless job), casualjames (for his huge work in refactoring code and cleaning up things in the core), paulscode (for porting Ari64’s dynamic recompiler to our project), and Bobby Smiles (for his work in refactoring and documenting the code for the RSP).

Quick start (Linux)

The easiest way to start running and testing this release is to download a binary bundle package from the Google Code site (link below), unzip it into a directory, and run it with this command: “./mupen64plus m64p_test_rom.v64”. You can run it directly from this directory, or to install it to your system, simply do “sudo ./install.sh”. Likewise, to un-install it, “sudo ./uninstall.sh”

Quick start (Windows)

For Windows users, download the bundle-win32 zip file from the Google Code site (link below) and unzip it to a directory. Open your DOS prompt (Start->Run->cmd.exe or the “Command Prompt” in Start->Accessories). Once you have the command-line window, ‘cd’ to the directory where you unzipped the win32 bundle. Then run “mupen64plus.exe m64p_test_rom.v64” to start up the test ROM. Press Escape to exit. Use the ‘–help’ command-line option to get a list of all available options. The last argument is always taken to be a path to an uncompressed N64 ROM image to run. Sorry but there is currently no Windows installer available.

Upgrading from previous 1.99.x releases

Your input plugin configuration settings will be reset to defaults when you run Mupen64Plus v2.0 the first time. If you have made any Input plugin configuration changes to your mupen64plus.cfg file since installing an earlier version of Mupen64Plus, you may want to make a backup copy of your config file (look in the Documentation under “File Locations” to find out where this file is stored depending on your OS).

Downloads

To download Mupen64Plus v2.0, just grab the package that you want:

Please note that the Linux binary packages are linked against the latest version of libpng, which is 1.5. Some Linux distributions still have older versions of libpng, so the “-ubuntu” package is provided which links against libpng 1.2. If you get ‘dlopen’ errors when running the default binary build, try the “-ubuntu” package instead.

The MD5 sums for these packages are:

b9363bc94d352f918581d9d55d8a5b28 mupen64plus-bundle-linux32-2.0.tar.gz
076c66cbbf2ba8aad089c2334c6dc1f8 mupen64plus-bundle-linux64-2.0.tar.gz
b6d7c7417cf064dc640b2c8d1ab5a6b9 mupen64plus-bundle-linux64-2.0-ubuntu.tar.gz
488d1446d2ca388c95a30547b425c4c5 mupen64plus-bundle-osx-2.0.zip
f855b4233faa9616b780c364fc4a9a9a mupen64plus-bundle-src-2.0.tar.gz
f13235dfce26599977b52f48fd9e6f03 mupen64plus-bundle-win32-2.0.zip

Front-end applications

As many of you know, I made a major change in the architecture of Mupen64Plus when we began working towards this release, back in 2009. I separated all of the user-interface functions from the core emulator and re-designed the core to be a library which can be linked against different user interfaces (called Front-end applications). This architecture allows us to focus on making the best emulator possible while reaching the widest audience by allowing other developers to write front-end programs for any platform. Users should be aware that the front-end application which is included with the release bundles is a simple command-line application. But I’m happy to report that there are at least 4 GUI front-end applications which are currently in development. We keep a list of third-party plugins and applications here. As a special mention, mudlord has recently begun work on a new Windows-only front-end application called winmupen. I hope that all of the Front-end developers will soon make new releases of their projects based upon the Mupen64Plus 2.0 libraries.

Changes

All Modules

  • New: MS Visual Studio 2012 project files
  • Makefiles: support for ARM, PPC, and MINGW architectures
  • Makefiles: support for cross-compiling (MXE win32 builds under Unix)
  • Support (building from source) for new SDL 2.0 library

Audio-SDL Plugin

  • Add support for resampling with speexdsp library
  • Add more resampling quality options
  • Bugfix: Don’t assume OSS is installed in all linux systems.
  • Make SDL volume handling the default, since OSS is no longer included in the kernel.
  • Minor refactoring of volume handling code.

Console-UI Front End Application

  • Only build system changes

Core Emulator Library

  • Fixes for various games (DK64, Zelda, Blast Corps)
  • Add Ari64’s dynamic recompiler for x86 (32-bit) and ARM
  • Improved PJ64 savestate loading
  • Support video window resizing (with help from video plugin and front-end application)
  • Auto-detect savestate type (Mupen64Plus or PJ64) when loading from a slot
  • Many various code cleanups in core from casualjames
  • Debugger code cleanup

Input-SDL Plugin

  • Re-write auto-configuration logic to be more user friendly. Add new ‘mode’ parameter.
  • Support for 6 new joysticks
  • Work-around for buggy xboxdrv which results in no rumble
  • Bugfix: crash when rumble used with controller #4

Video-Glide64mk2 Plugin

  • Brand new video plugin which has been ported to Mupen64Plus

Video-Rice Plugin

  • Support for resizable video window
  • Add support to build and run with OpenGL ES 2.0
  • Improve hi-resolution texture loading support
  • Fix texture CRC calculation for non-x86 (or NO_ASM) platforms

RSP-HLE Plugin

  • Add support for MusyX ucode detection
  • Support JPEG decoding used in Pokemon Stadium Japan
  • Lots of refactoring to clean up code