Wednesday, January 6, 2010

It's here. The second beta release of our series leading up to 2.0: Mupen64Plus v1.99.2 has been tagged. I'm not creating official source and binary packages of this tag, because it is primarily meant to be a Developer Preview for the new native Win32 build of Mupen64Plus.

This is the first ever release of Mupen64Plus which can be compiled either by GCC in unix-based operating systems or Visual C++ in Windows. No other N64 emulator has ever been able to claim this level of platform independence. So, for you Win32 developers who would like to build and run this preview release, here is the software that you will need:

1. Mercurial (TortoiseHG)
2. Visual Studio .NET 2005

That's it; no other tools or libraries are needed. I chose to base the project files on VS 2005 (MSVC8) because that is the latest version which is officially supported by SDL. It may be possible to import/upgrade the sln/project files to VC9 but I haven't attempted this. To get started,

1. Use your Mercurial client to clone tag "1.99.2" of the following repositories (put them in the same parent directory):

http://bitbucket.org/richard42/mupen64plus-audio-sdl/
http://bitbucket.org/richard42/mupen64plus-core/
http://bitbucket.org/richard42/mupen64plus-input-sdl/
http://bitbucket.org/richard42/mupen64plus-rsp-hle/
http://bitbucket.org/richard42/mupen64plus-ui-console/
http://bitbucket.org/richard42/mupen64plus-video-rice/
http://bitbucket.org/richard42/mupen64plus-win32-deps/

2. Open up the solution file: mupen64plus-ui-console\projects\msvc8\mupen64plus-ui-console.sln

3. Build it in Debug or Release mode

4. Run it. You can use 'winrar' or similar to unzip the mupen64plus.v64.gz test ROM file in mupen64plus-core\roms\ and drop it into the build directory, then click the "Run" button in visual studio. Or, you can open a DOS shell and 'cd' to the build dir and run your own roms with "mupen64plus-ui-console.exe \path\to\my\rom.z64".

Caveats (Read this before complaining):
  1. There is no GUI application for selecting the ROMs. The GUI code was removed during the re-architecture for the sake of platform independence. There is only a command-line front-end application. If you would like to have a GUI front-end, I encourage you to write one. The core library API is fully documented and published on our emuwiki site.
  2. The console-based front-end only accepts uncompressed ROM images. If your ROMs are zipped, you will have to unzip them.
  3. The included Rice Video plugin seem to be sensitive to a parameter called ScreenUpdateSetting. The value which worked best in Linux causes a lot of flickering in Windows. If you have this problem, you can change the setting either on a per-ROM basis by editing the RiceVideoLinux.ini file or on a global (default) basis in the mupen64plus.cfg file, which is in a subdir of your home directory called "Application Data\Mupen64Plus".
So the important question: How does it run? I have a core 2 duo laptop with an Intel 965 chipset (X3100 integrated graphics) and Mario Kart runs beautifully. The dynamic recompiler works (you have to enable it with --emumode 2), the audio playback is great, and the new joystick auto-configuration works. I haven't tested it extensively, so there are bound to be a few latent bugs. Give it a shot and let me know how it runs!

Sunday, June 15, 2008

Mupen64Plus v1.4 released June 14th

We released Mupen64Plus v1.4 on Saturday night. The code in the trunk had been pretty stable for some time, as we had mostly been applying fixes and no big merges. Since I know people are waiting for the new version, I decided that instead of doing release candidates and drawing out a final release by a couple more weeks, I would tag the trunk as 1.4 and make a branch to do minor versions (1.4.1, etc) if any major problems are found.

For those who haven't followed the development, some of the new features in 1.4 which weren't present in 1.3 include:
  • Graphical debugger for R4300 core (build with 'make DBG=1')
  • On Screen Display for savestate, volume, speed messages
  • KDE4 GUI (experimental, compile from source)
  • Cheat system with Gameshark codes
  • Rumble Pack / Force Feedback support
  • Change emulator speed in 5% increments, with smooth sound playback
  • Volume up/down
  • Dozens of other improvements and bug fixes: GUI, Input, Sound enhancements
My next item of business is to merge Tillin9's Rom Cache System branch into the trunk. He's done a lot of work in writing this, which will be the first major new feature of 1.5. We hope to release again in the 2-3 month time frame, which will be late august to early september. It'll be the back-to-school mupen64plus release. The RCS will be a nice GUI improvement to start out this release cycle.

Tuesday, June 10, 2008

Mupen64Plus Netplay + Much More!

As we roll around to 1.4 (which is coming soon folks, I promise), we have once again sparked the interests of developers around the world. Although netplay might not see the official 1.4 release, it is coming around the corner like a fast car. We can thank orbitaldecay for joining the project team to provide us with custom netplay code. This means we will not be using the dead remains of what was once Kaillera. Our netplay code is expected to be faster with less delay then ever seen with an online Nintendo 64 Emulator, also when the time comes, it will be cross-platform.

Another thing few things that we are working on at this point in time is the Rom Cache System, which is very similiar in function to Project64's Rom Database. Also the debugger, which should be a blessing to all you ROM hackers is expected to make it into the 1.4 release. Mupen64Plus is always looking for new developers for any platform, feel free to stop by in IRC and chitchat aswell. (irc.freenode.net #mupen64plus)

I guess that's all for now...

- okaygo

Tuesday, May 20, 2008

Getting ready for Mupen64Plus 1.4

As we round the end of the month, we approach a new release. Mupen64Plus 1.4 RC1 should be expected to release in the next few weeks. We are finishing up a few of our side branches, and going to make a merge shortly. Well what can you expect in this new release? There is really to much list! I will briefly go over a few things with you guys:

New compatibility setting: Disable Expansion Pack
On Screen Display Capability (Great for fullscreen)
Severe GUI Speedups, and numerous bug fixes.
Numerous improvements to the sound plugin, input plugin, and video plugins.
More games boot and play (But this was not this releases focus)
Fixed numerous bugs in the core.

As we do our final release we will go indepth with the change log. Stay tuned to our homepage, and emutalk for the RC 1.4 release.

Tuesday, May 13, 2008

Windows Port

Alright. Some people are wondering about the future of the Windows port. With this recent port, gaining over 2800 downloads already, I've patched up much of the problems we've been having with the previous attempts, making it the best port so far. So, with the next release, I will be starting from scratch, making some of the modifications in the trunk (like removing some left over Win32 junk from the original code that's no longer necessary) and others in a new branch. Hopefully I can make this one good enough to make a merge - This requires clean code and stability. I hope to see Qt4 builds on Windows soon, I have a feeling windows users would like it more than GTK+2. Speaking of which, the next version will likely still run GTK+2. I'll try to make it a better experience.

So anyways, Let's make a run down of the needed improvements.
  • More plug in ports
  • Glide64 Wonder Plus (I have a port already but it's of extremely poor quality)
  • Improved code quality
  • Less #ifdefs
  • Less hacks
  • Split up platform dependent things (blight's rumble support)
  • More plug in compatibility
  • Keep the SDL compatibility (our SDL plugins require that the emu run SDL, which we do now)
  • Try to add more support for input plug ins (Currently most crash or fail to work)
  • Windows Specific Features
  • Graphics in Rom Browser Window? (Warning: May require hackish code!)
  • XInput support in Blight (for those who don't feel like hunting down good drivers for their Xbox360 controllers)
So that's about it. We need this by the final port, but I may be able to get Windows compatible code in the trunk sooner than it's completed. If you have any suggestions, feel free to let me know, I'll add it.

Also, the Mupen64Plus Build Environment needs some improvements. I will have libsamplerate included so you can use JttL's resampler feature (I don't know how well it works, when I added it, It was pretty much a broken hack, but I think someone fixed it)

Mupen64Plus - Development Diary

We started this blog so that we could reach more of the public, show a little bit of eye-candy, and showcase our work. This blog will be used for showing off some new features, posting about breakthroughs, and giving a general update to our user base. This blog will not be used for discussing technical details, support, or feedback. Also if the blog does not work out as we wanted it to, we reserve the right to scrap it at any time. However user comments are welcome, and we will try to give an update at least once a week.