Hello N64 fans! Sorry it's been so long (almost 2 years) since the last Mupen64Plus release. I've been too busy with everything else in my life to devote much time to Mupen64Plus, but there have been plenty of developers making great contributions to our emulator, and I finally carved out the time to put together a new release for you. There have been so many changes that I skipped over some version numbers and went straight to 2.5 for this one! Some of the highlights of this release are:
- All: Moved from BitBucket (Mercurial) to GitHub for source control. Added Travis CI integration for automated build regression testing.
- All: Added project files for Microsoft Visual Studio 2013
- All: Finished and perfected integration with SDL 2.0, and changed Makefiles to build against SDL 2.0 by default (Linux and OSX only)
- Audio: Add audioresource support for integration with Linux-based Nemo Mobile OS
- Core: Game-specific fixes: Banjo Tooie, Zelda Ocarina of Time, DK64, Hydro Thunder, others
- Core: Game-specific override for # of clock cycles per cpu instruction
- Core: Cheat fixes for WWF No Mercy, Bomberman Hero, Super Mario 64, and Pokemon Stadium (E)
- Core: New Dynarec: Speed improvements, accuracy fixes, build support for MSVC
- Core: Major R4300 CPU core refactoring in many subsystems to improve code organization
- Core: Rewrite speed limiter code to improve performance and audio synchronization
- Core: Support for building against OpenGL ES
- Core: Build system improvements for ARM / Raspberry Pi
- Input: New auto-config sections for: Wiimote Classic, Wii U Gamecube / Pro, MS SideWinder GamePad Pro, 17 others
- Input: Fall back to joystick settings for analog x/y when Mouse=True but pointer is un-grabbed
- Input: New feature: prevent mouse/trackpad auto-centering behavior by pressing left-Windows key
- RSP: Game-specific fixes: Bottom of the 9th, IndianaJones, BattleForNaboo, Conkers Bad Fur Day
- RSP: Support for MusyX microcodes
- RSP: Improve audio microcode identification
- RSP: Huge quantity of code cleanups and refactoring to improve organization
- RSP: Add support for additional audio commands: #16, POLEF, RESAMPLE_ZOH
- RSP: Multiple bugfixes in audio processing code
- Rice-Video: Game-specific hack-fix to show last heart and map arrows in Zelda OoT & MM
- Rice-Video: Graphics fixes for: Fog, RDP InsertMatrix command
- Rice-Video: Add config option to force polygon offset values (fixes artifacts on certains games / renderers)
- Rice-Video: Modernize OpenGL interfaces, remove code for supporting old opengl versions
- Rice-Video: Lots of code cleanup, removal of deprecated code, and simplifications
- Rice-Video: Fix for INI file loading under Windows
- Rice-Video: Bugfix: crash if RiceVideoLinux.ini not found
- Glide64mk2-Video: New feature: option to enable full-scene antialiasing
- Glide64mk2-Video: New feature: frameskip, to drop frames if game is going slow (optional)
- Glide64mk2-Video: Support loading of DAT files for hi-res texture
- Glide64mk2-Video: Allow user override of game-specific settings via mupen64plus.cfg
- Glide64mk2-Video: Add OpenGL ES support (2.0)
- Glide64mk2-Video: Add config option to force polygon offset values (fixes artifacts on certains games / renderers)
- Glide64mk2-Video: Win32: don't set gamma table because it breaks monitor calibration
- Glide64mk2-Video: Code cleanup to remove dead section of code
- Glide64mk2-Video: Bugfix: work around problem in OSD callback whereby core code doesn't re-activate shader
- Glide64mk2-Video: Bugfix: Resident Evil II hang
- Glide64mk2-Video: Bugfix: texture pack read failure on some 64-bit platforms
- Glide64mk2-Video: Bugfix: N64 ROM header analysis for PAL/NTSC detection
Full release notes can be found here.
Development on Mupen64Plus really started to take off after we moved to GitHub. I merged contributions from more developers for this release than any previously. The developers who wrote code for this Mupen64Plus v2.5 are: Bentley, Bobby Smiles, Conchur Navid, ecsv, fayvel, Gillou68310, gizmo98, kode54, krnlyng, littleguy77, Narann, Nebuleon, Paulscode, Richard42, ricrpi, rlabrecque, s-verma, twinaphex, Ursula Abendroth, V1del, willrandship, and wnayes. Thanks to all of you for your hard work!
One unfortunate piece of news is that our project hosting site (Google Code) is kicking us (and everyone else) out now. The project will become read-only in a few months, and in January 2016 the project page will be shut down. We will be migrating all of information that we had in our Google Code site to other places, but I don't know where yet. We will continue to host our source code and developer bug tracker at GitHub.
There is a lot of interesting development work still in-progress for Mupen64Plus. Narann has been busy completely re-writing Rice Video to support OpenGL ES and modernize all of the OpenGL code. A new developer has ponied up with a preliminary implementation of Network multiplayer. That has been a highly desired feature for many years, so I'm sure many of you will be happy when that gets stabilized and lands in a release. And there has been much discussion about refactoring to remove some plugins and simplify the system architecture. This work could make Mupen64Plus easier to integrate into other software like the Android front-end and libretro.
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-ui-console.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.
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.6. Some Linux distributions (including Ubuntu and its derivatives) still use 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 Windows packages were built with Microsoft Visual Studio 2013, and you may need to install the Microsoft redistributable package for this version of Visual Studio, if your operating system is too old.
The New Dynarec is much faster than our original one, but it is not as well tested and may contain defects which cause bugs in game playback, graphical artifacts, or crashes. For Windows users whose computers are not fast enough to play games well with the standard build, you may try out the New Dynarec build.
The MD5 sums for these packages are:
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 command-line application. We keep a list of third-party plugins and applications here.
Mupen64Plus has a Home Page over at Google Code, with lots of useful information, screenshots, a bug tracker, a mailing list, etc. There is a lot of user documentation here.