What's new

New Mupen64Plus v1.99.3 release February 2010

Richard42

Emulator Developer
The latest Mupen64Plus code, version 1.99.3, is now released! For those of you who haven't been following our development saga, I'll spill some bytes explaining the re-archeticture that Mupen64Plus has undergone. The biggest change is that Mupen64Plus is no longer an application; it is now a library, just like the plugins. All of the user interface code has been removed from the emulator core and all of the plugins. With the latest versions of Mupen64Plus, and extra component called a Front-end application is required; this program makes use of the Mupen64Plus emulator and attached plugins, and controls all non-game aspects of the User Interface. This design has some big advantages: the user-interface application can be developed independently of the core emulator, the emulator itself is much simpler, and the code is more portable. In fact, I have ported the emulator and plugins to Windows and it all builds perfectly in Visual Studio.

There are also a couple of temporary downsides to this re-design. First, all of the old GUI code was completely removed (though it is still available through SVN). The only Front-end application which I am releasing in the Mupen64Plus bundle is mupen64plus-ui-console, which is a command-line only program. Fortunately it is quite usable, because the input plugin now supports auto-configuration for controllers that it recognizes, and even cheat codes are supported in the new command-line front-end.

The other side-effect of our re-architecture is that Mupen64Plus is no longer compatible with the older plugins. The plugin API was changed and improved and going forward any plugin must be compatible with our improvements in order to be usable with Mupen64Plus. I have upgraded and will be maintaining the following plugins: an SDL input plugn, an SDL audio plugin, the Hacktarux/Azimer RSP-HLE plugin, and the Rice video plugin. These are all included with the Mupen64Plus release bundles. Wahrhaft has also ported the Arachnoid, Z64, and (old) Glide64 video plugins, which are available in source form at: http://bitbucket.org/wahrhaft/.

I feel very confident about the quality of this Mupen64Plus release. I believe that it's ready for general use by everyone and packaging for linux distributions. I was ready to call this one 2.0, but I decided to hold off because there are a few longer-term developments still going on which may end up requiring changes in the API. Since I want the final "2.0" API to be very stable, I thought it would be best to hold back and get this one out the door as another 1.99.x release, even though I feel it's read for the 2.0 name. Here are the major changes since the last 'user' release, which was 1.99.1:

Core Emulator Library

  • New feature: support for Gameshark 3.3 patch codes
  • Lots of minor bugfixes
  • Upgraded Plugin API to better handle errors and avoid crashes
  • Win32 support

Audio Plugin
  • Completely re-wrote buffering/synchronization code to fix chopiness problems, allow better user control, and fix speed controller
  • Win32 support
  • bugfix: SDL volume control will always be used on systems without OSS support

Input Plugin
  • New feature: auto-configuration uses an .ini file instead of hard-coding the controllers in the source code
  • Many new controller auto-configs, including original & 360 X-box, PS3, and others
  • Better rumble support; several important bug fixes
  • Win32 Support

Console Front-End Application
  • New feature: command-line option --set for setting arbitrary configuration variables
  • updated MAN page for all the changes made in the 2.0 re-architecture
  • Win32 support

Rice Video Plugin
  • New feature: compile-time option for opengl debugging
  • bugfix: Many hi-res texture fixes
  • bugfix: in ConvertImage.cpp none of the 4-bit conversion functions could handle 1-pixel wide textures
  • Win32 support
  • Several important makefile fixes
Detailed changelogs are available in the RELEASE files

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. Bust out 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 mupen64plus.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
Several of the configuration parameters have changed in the video and input plugins, so if you are upgrading from a previous 1.99.x release, you must delete your config file (located at ~/.config/mupen64plus/mupen64plus.cfg).

You can help
The Mupen64Plus team is focused on improving the quality and user-friendliness of our N64 emulator, and there are several important ways that people can contribute to this goal.
  1. Testing
    For simple problems or help getting started, you can post here or join the developers in the #mupen64plus channel on irc.freenode.net. For more serious problems, please report bugs on the Google Code Issue Tracker.
  2. Packagers
    Packagers for Linux and BSD distributions are encouraged to help us reach your users by preparing Mupen64Plus packages for your distro. We currently have packagers for the Arch Linux and Debian-based distributions. I would particularly like to see packages for Gentoo and Fedora as well, though all others are welcome. The 1.99.3 release includes quite a few changes to the build systems of the modules to assist packagers, and I believe that this release is ready for distribution.
  3. Front-end authors
    The new Mupen64Plus architecture allows any interested developer to build their own front-end user interface application, using the language and GUI toolkit of your choice to drive the Mupen64Plus emulator. Currently we have new GTK and Qt GUIs in the works, but they are very preliminary and have not been released. If anyone would like to resurrect the old GTK or Qt GUIs from Mupen64Plus v1.5, I can give direction on the steps necessary to start this work. This would be much easier than writing an entirely new GUI from scratch, but anyone wanting to build any front-end or application using Mupen64Plus is welcome. The 2.0 API is fully documented at: http://mupen64plus.emuwiki.com. The Console front-end is also quite simple and provides an excellent reference for understanding the operation of the new modular architecture. All of our Win32 users would undoubtedly be eternally grateful if someone created a native Win32 GUI for them. This could even be done in C#.
  4. Joystick configurations
    We have added a new auto-configuration feature to the SDL Input plugin which will automatically setup the joystick configuration for any joystick which is recognized. If you have a joystick which is not recognized yet, please follow the instructions in this emutalk post so that we can add support for your controller.
  5. Windows developers
    All of the packages in the Mupen64Plus source code bundle will now build directly in Visual Studio 8 (2005) and 9 (2008); the build instructions are in this thread. Windows C/C++ developers are encouraged to get involved. Currently there is no Win32 installer for Mupen64Plus. It would be very helpful if someone could set up a installer project to create an installer.

To download Mupen64Plus v1.99.3, just grab the package that you want:

mupen64plus-bundle-linux32-1.99.3.tar.gz
mupen64plus-bundle-linux64-1.99.3.tar.gz
mupen64plus-bundle-osx-1.99.3.zip
mupen64plus-bundle-win32-1.99.3.zip
mupen64plus-bundle-src-1.99.3.tar.gz

The MD5 sums for these packages are:

fd2114c5fc5548c92d5dd35ff61be0e6 mupen64plus-bundle-linux32-1.99.3.tar.gz
ef293c3f17aea7ae404609c24b111040 mupen64plus-bundle-linux64-1.99.3.tar.gz
98d43afbee7e72e594a06d730495ac39 mupen64plus-bundle-osx-1.99.3.zip
cc3cb29ac082649f8d197c3f9e3ca9d5 mupen64plus-bundle-src-1.99.3.tar.gz
f01deb5f3e1766c5f140260652ad9dd3 mupen64plus-bundle-win32-1.99.3.zip

Mupen64Plus has a Home Page over at Google Code, with lots of useful information, screenshots, a bug tracker, a discussion forum, etc. The new Mupen64Plus API is documented at http://mupen64plus.emuwiki.com/.
 
Last edited:

aru

New member
All of our Win32 users would undoubtedly be eternally grateful if someone created a native Win32 GUI for them. This could even be done in C#.

Someone called me??? C# and GUI design its exactly my area... am writing a GUI for windows here

Regards
@ruantec
 
Last edited:

sturmen

New member
This isn't on the Google Code page yet; I'm glad I looked here! Now, if only the Mac OS X version was up...
 

roeleboel

New member
Linux binaries doesn't seem to work:

dlopen('libmupen64plus.so.2') error: libmupen64plus.so.2: cannot open shared object file: No such file or directory
dlopen('./libmupen64plus.so.2') error: libpng12.so.0: cannot open shared object file: No such file or directory
AttachCoreLib() Error: failed to find Mupen64Plus Core library


Didn't install though, used it straight from the directory. The libpng12 error comes from Archlinux, as they just updated to the libpng14 libs. Should be fixed if I compiled it from source;
 

roeleboel

New member
OK,

Just builded from source. Works like a charm. Tried Mario Kart 64 and it played full speed.

Nice, I like those command-line emulator's! Thank You Richard42!
 

Auria

New member
I started working on the OS X build, but I get a crash within SDL; gotta debug that, to be continued

Code:
Thread 0 Crashed:  Dispatch queue: com.apple.main-thread
0   libSDL-1.2.0.dylib            	0x00059e22 QZ_IsMouseInWindow + 16
1   libSDL-1.2.0.dylib            	0x000549fd QZ_DoActivate + 17
2   libSDL-1.2.0.dylib            	0x0005b691 -[SDL_QuartzWindowDelegate windowDidBecomeKey:] + 31
3   com.apple.Foundation          	0x968ad1c7 _nsnote_callback + 176
4   com.apple.CoreFoundation      	0x94c8b9a9 __CFXNotificationPost + 905
5   com.apple.CoreFoundation      	0x94c8b3da _CFXNotificationPostNotification + 186
6   com.apple.Foundation          	0x968a2094 -[NSNotificationCenter postNotificationName:object:userInfo:] + 128
7   com.apple.Foundation          	0x968af471 -[NSNotificationCenter postNotificationName:object:] + 56
8   com.apple.AppKit              	0x94ffad6a -[NSWindow becomeKeyWindow] + 1359
9   libSDL-1.2.0.dylib            	0x0005b2f0 -[SDL_QuartzWindow becomeKeyWindow] + 148
10  com.apple.AppKit              	0x94ffa2bb -[NSWindow _changeKeyAndMainLimitedOK:] + 810
11  com.apple.AppKit              	0x94ff9f78 -[NSWindow makeKeyWindow] + 72
12  com.apple.AppKit              	0x94ff9ee7 -[NSWindow _makeKeyRegardlessOfVisibility] + 128
13  com.apple.AppKit              	0x94ff9e2d -[NSWindow makeKeyAndOrderFront:] + 39
14  libSDL-1.2.0.dylib            	0x159502b4 QZ_SetVideoWindowed + 2116
15  libSDL-1.2.0.dylib            	0x1595061d QZ_SetVideoMode + 161
16  libSDL-1.2.0.dylib            	0x15942853 SDL_SetVideoMode + 658
17  libmupen64plus.dylib          	0x13dae62d VidExt_SetVideoMode + 365
18  ???                           	0x0017aca0 0 + 1551520
19  mupen64plus-video-rice.dylib  	0x159b0970 COGLGraphicsContext::CleanUp() + 0
20  ???                           	0x000000e8 0 + 232
 

Narann

Graphic programming enthusiast
Congrat Richard!

I'm a W32 user, this release is most stable. It lacks only a GUI to run ROMS and more easily configure the options for plugins.

;)
 

SpeedofMac

New member
Ok I think it got it all working!

Find the OS X binary here : http://mupen64plus.googlecode.com/files/mupen64plus-1.99.3-osx.zip
It contains both 32-bits and 64-bits builds. The 32-bits one *should* run on 10.5, but I could not test it, so feedback welcome

Thanks for posting this. The Mac OS X build doesn't include InputAutoCfg.ini, which results games reporting that no controller is plugged in. More specifically, it triggers the following string of errors:

Code:
Input Error: Couldn't open config file '/Applications/Mupen64Plus 1.99.3/mupen64plus.app/Contents/Resources/InputAutoCfg.ini'
Input Warning: No joysticks/controllers found
Input: Forcing keyboard input for N64 controller #1
Input Error: Couldn't open config file '/Applications/Mupen64Plus 1.99.3/mupen64plus.app/Contents/Resources/InputAutoCfg.ini'
Input Error: Autoconfig keyboard setup invalid

This is all fixed when "InputAutoCfg.ini" is put in "mupen64plus.app/Contents/Resources/". I just poached it from the Win32 build.

Thanks again!
 
Last edited:
OP
R

Richard42

Emulator Developer
Auria, can you re-create the package with the InputAutoCfg.ini file and name the zip file and/or app folder "mupen64plus-bundle-osx-1.99.3.zip"? You can't re-upload a file with the same name to google code so you will have to re-name regardless. I tried to do it myself but it looks like OSX has some special hidden files with metadata info, so I don't think I can add the config file on this windows laptop.

Thanks
 
OP
R

Richard42

Emulator Developer
Thanks Auria, I added the link and md5sum to the original announcement at the top of this thread.
 

aru

New member
Congrat Richard!

I'm a W32 user, this release is most stable. It lacks only a GUI to run ROMS and more easily configure the options for plugins.

;)

Don´t worry... am working on a Win32 GUI for Mupen64 and slowly am getting to a usable level. the first basic version is out and here is a video of the upcomming version that will allow you to enjoy this great emulator.

Watch the video to see the changes of the upcomming version or check the forums here to grab the actual version.

Regards
@ruantec
 
Last edited:

Narann

Graphic programming enthusiast
Don´t worry... am working on a Win32 GUI for Mupen64 and slowly am getting to a usable level. the first basic version is out and here is a video of the upcomming version that will allow you to enjoy this great emulator.

Watch the video here to see the changes of the upcomming version or check the forums here to grab the actual version.
Cool! :king:
 
OP
R

Richard42

Emulator Developer
Don´t worry... am working on a Win32 GUI for Mupen64 and slowly am getting to a usable level. the first basic version is out and here is a video of the upcomming version that will allow you to enjoy this great emulator.

Aru, it's great to see your progress on your Mupen Launcher. You have put this thing together very quickly; are you interfacing to the core library through the shared lib api, or are you generating a command line and running the console-ui application?
 

X-Fi6

New member
Don´t worry... am working on a Win32 GUI for Mupen64 and slowly am getting to a usable level. the first basic version is out and here is a video of the upcomming version that will allow you to enjoy this great emulator.

Watch the video here to see the changes of the upcomming version or check the forums here to grab the actual version.

Regards
@ruantec
Just wondering, is it being done in Qt/GTK linked in or is it using GDI?

And would you mind allowing the user's default anti-aliasing quality?
 
Last edited:

Narann

Graphic programming enthusiast
I see the new make pleasur to everyone.
Except for the logo. I think it could be time to ask CG artist making a good graphic for mupen64plus (Crystal style). Don't know if there is already graphics for mupen64plus to follow it.

breveon814.png


This?

Is there a SVG somewhere? Richard? :)

EDIT: Great! I find this!
http://upload.wikimedia.org/wikipedia/commons/4/41/Mupen64plus.svg

If you want aru, I can make a good top left bar. :bouncy:
 
Last edited:

aru

New member
Aru, it's great to see your progress on your Mupen Launcher. You have put this thing together very quickly; are you interfacing to the core library through the shared lib api, or are you generating a command line and running the console-ui application?

Am using the console-ui to run the game(emu windows won't be visible at all when am done with the emu grabing code in the launcher) and sadly not the shared api as i haven't checked everything yet to start toying in that area... the reason for that is because the launcher total development time atm is about 2 and half hours which isn't much as you may know. the emu-grabing capability comes from my main application called @ES which is well known at ngemu and already started to grab emus since the very first version which was released about 2 years ago. also i use @ES to record my latest videos which is a feature i added recently.

the older version grabing a playstation 2 game using the PCSX2 emulator. if you check my youtube channel you can see what i mainly do right now which is GUI design, motion-sensing and multimedia which is what i love most apart from coding.

Just wondering, is it being done in Qt/GTK linked in or is it using GDI?

And would you mind allowing the user's default anti-aliasing quality?

as mentioned in the ngemu thread am using WPF and not QT/GTK. am not a Linux user myself and since those tools are mainly for Unix systems i don't use them for my development right now. anyways to answer your question a bit better am not using GDI+ to draw the GUI but isn't a problem for me either to do the same thing in GDI+ as am very used to it and all i have to do is to transform some windows into layers by using the SetLayeredWindow API and using those layers to render what i want and with some tricks i can avoid much overhead and the GUI won't affect the Emulator Performance at all.


Am using a old mupen64 logo on my launcher... can i use yours instead?

UPDATE:

If you want aru, I can make a good top left bar. :bouncy:

That would be awesome!!!!
 
Last edited:

Top