What do you do when your girlfriend wants to play N64 games on Linux?

Answer: Get it working. No matter how much time or effort it takes. Then blog about it, and finally have her read your post.

About 2 months ago, before I made the switch to Linux full-time, I installed the Project64 emulator when I was running Windows.

I started up Mario64 with a Saitek USB joypad and the girlfriend came over and asked to play. She absolutely LOVED it. So much in fact, that she has mentioned it about it every few days for the past two weeks or so.

If you know anything about women, this means she REALLY wants to get her game on.

As far as legality goes, I can’t get much more legal than Mario 64 – I’ve got a Nintendo 64 sitting in my closet with a plethora of games including Mario 64, which was included with the game system. Unfortunately the process of backing up a ROM is the legal grey area here. I am not a lawyer and this is not legal advice. You are on your own.

You might be asking yourself this question: If you’ve got an N64, why the heck are you using an emulator?

The answer is simple; my PC provides a better gaming experience. The controller is less “gummed up” after years of use, the 5.1 surround is comparable to my home theatre setup, and my 22″ LCD is absolutely gorgeous.

Mupen64 IconUsing good ol’ google, I found an emulator called Mupen64 that seems like it’s the only game in town. There are other emulators for Linux, and using Wine to run Project 64 might be an option if this one doesn’t work.

Checking the Wine AppDB page for Project64 shows that version 1.6 has mixed results – some people can’t get their joystick working, others have graphical glitches, however – most report that running Project 64 in Wine actually has better framerates than Mupen64! Interesting.

These instructions should work for every joystick/joypad/etc out there. Open up a terminal and let’s get down and dirty!

1. sudo apt-get install libjsw2 libjsw-dev joystick jscalibrator
2. cd ~
3. wget http://mupen64.emulation64.com/files/0.5/mupen64-0.5.tar.bz2
4. tar xvjf mupen64-0.5.tar.bz2

Thanks to beeldings on the Ubuntu Forums for the apt-get bit.

I ran jscalibrator in a terminal and then plugged in my Saitek P990 USB joypad. It wasn’t detected immediately, instead it found my keyboard and said it had a total of 39 axis! Word. I rebooted the machine, re-ran jscalibrator and when I plugged in my joypad this time, the lights on it actually came on! Terrific!

I was able to calibrate the joypad easily, save the configuration, then I ran these commands:

5. cd ~/mupen64-0.5/
6. ./mupen64

Within moments I was configuring the blight’s SDL input plugin inside of Mupen64′s configuration screen. Blight’s input plugin is documented as being the only input plugin that is actually configurable in Linux. I tested all of the video plugins, and they all seemed work OK, but the rice plugin was best (I left the defaults to begin with, but played with the video plugin options to get more performance and higher resolutions later). For audio I noticed little difference from the jttL SDL and the Mupen64 Audio plugins. Both occasionally has a pop of static or stutter every minute or so, but it wasn’t too disturbing.

Note: Something that is a little confusing is when you use the blight SDL input plugin, you have to actually activate the controller by going into the configuration screen, and selecting “Plugged” and “Mem Pack” so that the emulator actually sees your controller, otherwise you’ll be in a world of hurt looking at a “No contoller” message for hours or unable to save games.

I added the directory that had my Mario64 ROM file in the ROM browser page and they will be shown on the main program window when you launch the program. Pretty nifty.

So let’s get our game on!

I selected the ROM, pressed the play button, and BAM! N64 goodness. “It’sa me, MARIO!” That sound bit will NEVER get old. If you have issues with video or sound, do not hesitate to experiment with the plugins.

I was able to play through a few levels of Mario 64 before I had to head to bed, but this is about as good as Project64. My PC is fast enough to run at a locked in 30+ frames a second even at higher resolutions.

Summary:
Mupen64 is a very capable Nintendo 64 emulator for Linux that runs well enough to provide an enjoyable experience and impress the girlfriend with your geekery, and not so badly that you want to experiment with Wine and a Win32 emulator.

The only issue I had as mentioned above was the sound popping with a hint of static every little while.

1.75 Opposable Thumbs up – way up!

  • anonymousbusta

    Thats cool mabey i should find a girlfriend first before i start that project

  • Wayne

    Haha, that’d be a good idea!

  • http://www.theultimatecomment.com hzqhqn

    interesting article wayne, I’m bookmarking this. I am in exactly the same position, my girlfriend wants to play N64 games on linux. and, in fact, mario 64. (as well as mario kart 64).

    regarding your sound issues by the way, especially where it relates to SDL, you might be able to solve it by messing around with your .asoundrc file (if you’re using ALSA of course). Just google your soundcard and asoundrc and chances are a few magic lines might come up. I sorted out my crackling this way.

  • Pingback: Nintendo » What do you do when your girlfriend wants to play N64 games on Linux?

  • Shane

    Any idea how you would get the video output to display on a secondary monitor, but have the control GUI remain on the first, ala Xine?

  • daniel

    Interesting, my girlfriend told me she wanted to play Mario 64 too! That’s why I googled up your site! Thanx for the tips, I’ll try to install mupen in my system.

  • Shaun

    Thanks for everything man, I got it working really nicely because of your post.

  • http://www.twine.com/user/erik2764 hagerty car insurance classic

    hagerty insurance classic car classic insurance car hagerty