Looking to re-live the Nintendo 64 era on Linux? With emulators, you can play Nintendo 64 games on Linux. In this article, we’ll explain how to run N64ROMs with ease right on the Linux desktop. Out of all the retro consoles, the N64 has the least amount of development around it, so the method we cover in this article may have trouble running, depending on the Linux distribution.

Note: Addictivetips in no way encourages or condones the illegal downloading or distribution of ROM files for the N64. If you want to play Nintendo 64 games with these emulators, please use your own game ROM files you’ve backed up to your PC, legally.

Install M64Py


Grab the latest DEB package of M64Py via this link, and then open up a terminal. In the terminal, use the CD command to go to the ~/Downloads directory.

Note: Debian users may need to swap apt for apt-get depending on the release.

cd ~/Downloads

Install the package with dpkg:

sudo dpkg -i *.deb

Fix any dependency issues that arise with:


sudo apt install -f

Arch Linux

Install Python-pysdl2 beforehand. Keep in mind that the python-pysdl2 dependency may fail to compile due to incorrect Md5 sums. To fix this, run it with the –skipinteg flag during makepkg. Keep in mind that by ignoring the MD5sum, you are bypassing security measures. Do this at your own risk!

Once Python-pysdl2 is up and running:

git clone https://aur.archlinux.org/m64py.git

cd m64py


sudo pacman -U *.pkg.tar.xz


Follow this SourceForge link to download the latest RPM of M64py. Then, use the CD command to enter the ~/Downloads directory.

cd ~/Downloads

install the RPM with:

sudo dnf install *.rpm


For Tumbleweed users, M64Py is installable via a repo:

sudo zypper addrepo http://ftp.gwdg.de/pub/opensuse/repositories/Emulators/openSUSE_Tumbleweed/ opensuse-emulators

sudo zypper install m64py

Other versions, go to the OBS, select your version of SUSE and select the 1-click button to start the installation process.

Using M64Py

To load a Nintendo 64 ROM, load up M64Py, and click the “File” button in the menu. From here, select “Open ROM”. The emulator itself can handle ROM files in two different ways: by opening them directly, or by loading a ROM from a list. Select “Manually…”, and browse for the file to open in the emulator.

Want to choose from a ROM list? Click “File”, then “Open ROM”, then “From list…”. By default, there is no set directory for the emulator to look in, so when you select “From list…”, the program will output “ROMs directory not found”, and ask you to set a new directory.

Point the emulator to the directory on your Linux PC where you want it to load all of your N64 ROMs. After setting it, go back to “File”, select “Open ROM”, then “From list…”. Play a game by clicking on one of the items in the list. It should instantly load up.

Configuring Graphics

Unfortunately, it is not possible to edit the graphics settings for M64Py while a ROM is running. Be sure that nothing is running, and select “Settings”. Under settings, choose “Graphics” to bring up the graphical settings for M64Py

The M64Py emulation tool has very little graphical settings and the average user should not need to change anything. However, if you wish to get more graphical improvements out of your N64 emulation, this is the area to do it.

Looking to stop screen tearing in games? Check the box next to “Vertical Sync” to enable Vsync. Additionally, there are other graphical settings that the user may toggle, such as “on-screen display”, and etc.

Configuring Controllers

Getting to the controller configuration settings for M64Py starts off at the “Settings” menu. Inside “Settings”, select “Plugins”. The plugins menu is home to many different settings for the emulator. To set up a controller, look for the “Input” area, and click “Configure”.

Plug in a gamepad, and look for the “Device” drop-down menu. Use the menu to select your gamepad. After that, just go through and map all the individual buttons to the gamepad. The diagram explains the N64 button map quite nicely.

Want to map more than one controller? Click the drop-down menu near “Input-SDL-Control” and change it from “Controller 1” to whichever other controllers you wish to map. Like before, go to the settings and map all the buttons to the gamepads you wish to use.

Saving And Loading

Need to save a game? Use the keyboard shortcut F5 to quickly save your game to a save slot. Additionally, at any time it is possible to load a save state with F7. Keep in mind that M64Py supports multiple save slots, that users can switch through at any time.

Access save slots under the “File Menu”. Click “Change State Slot” to change the slot that pressing F5 will save the game to. This is good if you need to have multiple game saves (for whatever reason).