Mupen64Plus is a cross-platform N64 emulator that works with many ROMs that are publically available. It is maintained by richard42 and was originally based off of mupen64, created by Hacktarux.

Mupen64Plus runs in the command line by default. Install a frontend like mupen64plus-qt or M64Py to use mupen64plus with a GUI.

Installation

apt-get install mupen64plus-ui-console

or to install Mupen64Plus-Qt:

apt-get install mupen64plus-qt

or to install M64Py:

wget http://sourceforge.net/projects/m64py/files/m64py-0.2.3/m64py_0.2.3-0_all.deb
sudo dpkg -i m64py_0.2.3-0_all.deb
sudo apt-get install -f

Usage

Just run the command with a path to the ROM:

mupen64plus <rom.n64>

Any options you pass once will be saved in the configuration and won't need to be repeated:

mupen64plus --resolution 800x600 --fullscreen <rom.n64>
...
^C
mupen64plus <rom.n64> # runs fullscreen in 800x600

Key Commands

Escape

Quit the emulator

0-9

Select virtual 'slot' for save/load state (F5 and F7) commands

F5

Save emulator state

F7

Load emulator state

F9

Reset emulator

F10

slow down emulator by 5%

F11

speed up emulator by 5%

F12

take screenshot

Alt-Enter

Toggle between windowed and fullscreen

p or P

Pause on/off

m or M

Mute/unmute sound

g or G

Press "Game Shark" button (only if cheats are enabled)

/ or ?

single frame advance while paused

F

Fast Forward (playback at 250% normal speed while F key is pressed)

[

Decrease volume

]

Increase volume

Set Custom Controls

Mupen64Plus's input plugin uses SDL2 to handle input. Controls are configured through editing text files.

Open the ~/.config/mupen64plus/mupen64plus.cfg file with a text editor and navigate to the "[Input-SDL-ControlX]" section (X being the N64 controller port to configure, starting at 1).

First, change mode = 2 to mode = 0 to override the autoconfiguration.

[Input-SDL-Control1]

# Mupen64Plus SDL Input Plugin config parameter version number.  Please don't change this version number.
version = 2
# Controller configuration mode: 0=Fully Manual, 1=Auto with named SDL Device, 2=Fully automatic
mode = 0

If you're using a joystick:

Test SDL2 input with a program such as sdl2-jstest.

You must find the IDs of your gamepad's buttons, sticks, and d-pads.

Press buttons on your gamepad while running an input tester to determine the IDs of buttons recognized by SDL2 (for example, if you press A and button 0 activates, the ID of button A is 0).

Find stick and d-pad IDs in the same way, by moving/pressing them and spotting which IDs activate.

Use the IDs to set the N64 controller events to input events, such as button(id) and axis(id sign). A full list of all input event words can be found on the official documentation here.

Lastly, for Mupen64Plus to detect your gamepad, set device to the device number of your gamepad as recognized by SDL2.

If you're using a keyboard:

Download this file to get the corresponding key IDs from their names. Edit each button field in the section, providing a name = "key(X)", where X is the key ID found in the downloaded file.

If you ever need to reset the controls back to their autoconfigured state, change mode = 0 back to mode = 2 and restart the emulator. The text will automatically be reset to default configuration.

An example button configuration:

# Digital button configuration mappings
DPad R = "axis(4+)"
DPad L = "axis(4-)"
DPad D = "axis(5+)"
DPad U = "axis(5-)"
Start = "button(9)"
Z Trig = "button(6)"
B Button = "button(3)"
A Button = "button(2)"
C Button R = "axis(3+)"
C Button L = "axis(3-)"
C Button D = "axis(2+)"
C Button U = "axis(2-)"
R Trig = "button(7)"
L Trig = "button(4)"
Mempak switch = ""
Rumblepak switch = ""
# Analog axis configuration mappings
X Axis = "axis(0-,0+)"
Y Axis = "axis(1-,1+)"

N64 controller face

Recommended Xbox controller mapping

Enabling Rumble Pak support:

The DualShock, Xbox 360 and many other controllers support force feedback. On the Nintendo 64, this was achieved with an additional controller expanasion called the "Rumble Pak". Mupen64Plus can emulate the insertion of a Rumble Pak by mapping a button to Rumblepak switch. Many games such as Star Fox, Super Smash Bros and Ocarina of Time support this feature.

See Also

Debian-specific information

upstream specific information

other information


CategoryGame | CategorySoftware | ?CatgeoryDesktop