Gaming console emulation on PC is nothing new. An emulator is a program that mimics the hardware and firmware from a gaming console (such as the Super Nintendo), to play roms. Roms are just computerized copies of console games. For PSX and other CD-based systems Roms are called ISOs. This guide is just my personal notes on emulating the different game consoles on Ubuntu Linux (Feisty 7.04 in this article).

First, if you don’t have a gamepad, I suggest stopping by your local Best Buy and purchasing one. If you’d like to save some cash, there are plenty of affordable solutions online, and not to mention you can use the controllers from your existing consoles by using a USB converter. Personally, I use a Logitech Dual Action controller. There was no setup needed except plugging it into a USB port and defining the controls in the emulators. This controller is great for other non-emulated games as well, including VDrift.

Finding ROMS:

Locating roms is easier than one might think. There are plenty of great websites for both bittorrent clients and standard HTTP clients. aMule and mininova.org have been my favorites thus far. Simply search for systemname and rom or iso (and maybe the game you’re looking for to trim down the results); e.g., snes roms or Legend of Mana iso psx

Super Nintendo:

For Super Nintendo emulation, I chose ZSnes. I haven’t found a Super Nintendo game that this doesn’t support (and I have over 800). ZSnes has many graphical filters to make your SNES games look better on your computer than they did on the console, a GameGenie-esque cheat system, and more.

To install ZSnes on Ubuntu: System -> Administration -> Synaptic Package Manager -> ZSNES

You’ll want to add it to your Applications menu (right-click on Application menu, Edit Menus), or open it directly from a console by typing: zsnes

Once installed, you may consider checking out mininova.org or aMule to start downloading your roms. A simple search for “snes roms” should do the trick. There are plenty of dedicated snes rom websites, however a lot of good roms are ESA protected, so you won’t be able to download goodies like Super Mario World.

Once you have a collection of roms, fire up zsnes and click Config -> Input #1 (for the first controller). If you have a Logitech Dual Action controller, you’ll find this fairly easy. Just click “Set Keys” and it will prompt you for the button config. After you’re done here, click the ‘X’ to close the config window, and click Game -> Load, and navigate to your snes rom directory.

Note: If your roms don’t have the .smc filename extension, you’ll need to check the “Show all Extensions” checkbox from the Load screen. I recommend paying the Config -> Video screen a visit, and enabling a higher resolution (1024×768 win is my preference) and checking the BiLinear Filter, HQ2X, and High Res Mode 7 checkboxes. If the sounds are too high pitched, you may need to adjust the sound frequency down to 8000hz (Config -> Sound).

Nintendo 64:

Not all Nintendo 64 emulators are built equally. I’ve had the best luck with pj64 for Windows, but under Linux the Mupen64 emulator is the next best thing.

To install Mupen64, download it, extract the files to a folder on your desktop, and you can run Mupen64 directly from the extraction folder.

Once again, mininova.org has a few great n64 rom packages. Right away, I would download a few video plugins for Mupen64 such as GLN64 and Glide64. Once downloaded, extract the files into the Mupen64/plugins folder. You’ll likely have to try other plugins for different games. I still haven’t gotten Donkey Kong 64 to work properly with any video plugin. If you find a way, please comment this post and I’ll test and edit as necessary.

You’ll find that switching between games like Bomberman 64 and Mario 64 is a tedious task, as you’ll often have to click Options -> Configure and select or edit a different video plugin. Once you have your roms and video plugins, in Mupen 64 click Options -> Configure, and add your rom directory(ies). This will add all roms to a list, and it’s much easier than opening each rom individually.

I have not found a game controller that equals the original N64 game controller, particularly the location of the “Z” button and the “C” buttons. If you’re a hardcore N64 fan, you should try to find a USB adapter. If you use the Logitech Dual Action controller, the right-analog stick works fine for the C-up,down,left, and right buttons. I found Blight’s SDL Input Plugin to be the easiest and most accurate to configure for my controller. You can find it at: http://www.ngemu.com/n64/mupen64.php?action=plugins

Nintendo DS:

DeSmuME has a lot of options, and of course supports your mouse in place of the stylus. I haven’t gotten it to work with any game controller.

To install DeSmuME, click Applications -> System -> Administration -> Synaptic Package Manager, and search for ‘desmume’

To run DeSmuME, open a console and type: desmume

I found DS emulation a bit clunky and (for the most part) fruitless, and gave up on it. I’ll revisit DS emulation once I hit the Phantom Hourglass in my epic quest to defeat the Zelda chain, or I may just buy a DS, they’re quite cheap lately - and the portability is supreme.

Nintendo Gameboy:

TuxBoy has been the best thus far. To install:

  • Download the 7zip file from: http://tuxemu.byethost31.com/releases/tuxboy_1.0b1_X32.7z
  • Extract the contents into a new folder
  • From a console, change to the directory where you extracted TuxBoy
  • type: sh ./install (it should prompt you for root password)
  • TuxBoy is now available in your Applications -> Games menu, but I had to use the console by typing: TuxBoy romname
  • TuxBoy has a gui (whereas gnuboy does not) and it worked after install with my Logitech Dual Action controller (though I had to enable the “mode” button on the controller to take it off analog and use the D-pad).

    Nintendo NES:

    For NES, I suggest a gfceu.

    To install, click Applications -> System -> Administration -> Synaptic Package Manager, and search for “gfceu”

    To run gfceu, from a console type: gfceu

    You’ll be presented with a lovely little GUI to locate and run your NES roms.

    Sega Genesis, Sega CD, and 32x Systems:

    Gens is a great emulator for the Sega Genesis, Sega CD, and 32x systems. To install:

    1. Download this handy debian package to a new folder (thanks to chronusdark for this contribution)
    2. In a console, change to the saved directory.
    3. Type: sudo dpkg -i gens_2.12a-i386.deb

    To run Gens, simply type ‘gens’ in a console. The GUI is pretty intuitive. Make sure you redefine your controls to your gamepad by clicking Option -> Joypads and redefining the controls!

    Playstation (PSX):

    With such great games as Tenchu and FInal Fantasy 7, I had to have a PSX emulator. I stumbled across ePSXe and haven’t looked at another.Installation can be a bit of a pain, and if you forget anything you may need to start over, so I’m including complete install instructions:

    1. Open a console, and install the needed packages: sudo apt-get install unzip libgtk1.2-common libgtk1.2
    2. Create an install dir: sudo mkdir ~/Desktop/epsxe
    3. Change to the install dir: cd ~/Desktop/epsxe
    4. chmod the installdir to ensure all users can write to it: chmod -R 777 ./
    5. Download ePSXe base from this link: http://www.epsxe.com/files/epsxe160lin.zip
    6. Extract the contents of the above file into the ~/Desktop/epsxe/ directory
    7. In the console, type: sudo chmod 777 cfg sstates snap memcards
    8. Next, type: sudo touch memcards/epsxe000.mcr memcards/epsxe001.mcr .epsxerc
    9. Then: sudo chmod 666 memcards/*
    10. Followed by: sudo chmod 666 .epsxerc
    11. Download the PSX BIOS software (PSX firmware) by searching google or any popular search engine for: scph1001.bin
      1. Move the scph1001.bin file to the ~/Desktop/epsxe/bin/ folder
    12. Download a hardware acceleration package to the ~/Desktop/epsxe/plugins/ folder: http://www.pbernert.com/gpupetexgl208.tar.gz
    13. Note that the cfgPeteXGL2 and gpuPeteXGL2.cfg files need to go in the ~/Desktop/epsxe/cfg/ folder!
      1. Sub-Note: If the hardware acceleration package doesn’t work, you may consider trying to extract http://www.pbernert.com/gpupeopssoftx117.tar.gz to your ~/Desktop/epsxe/plugins folder, making sure to move cfgPeopsSoft and gpuPeopsSoftX.cfg to the ~/Desktop/epsxe/cfg/ folder
    14. Download the PadJoy input plugin, extract the cfgPadJoy file to the /cfg/ folder, and the to the libpadJoy-0.8.so file /plugin/ folder: http://members.chello.at/erich.kitzmueller/ammoq/down/xjoypad.zip
    15. Download an audio plugin and extract to the ~/Desktop/epsxe/plugins/ folder: http://www.pbernert.com/spupeopsoss109.tar.gz
      1. Note: move the file cfgPeopsOSS to the ~/Desktop/epsxe/cfg/ folder!

    You can now run ePSXe directly from the ~/Desktop/epsxe/ folder. Make sure you click Config -> Bios, and set it to the ~/Desktop/epsxe/bin/scph1001.bin file.

    If you don’t have a PSX disk or iso, you can test it by clicking File -> Run BIOS.

    To configure my controller I only had to click Config -> Ext. Game Pad -> Configure

    Edit 8/28/2007: Thanks to Matt, I’ve discovered a much easier PSX emulator. Simply download the file below, extract to a folder, and run “pSX” directly from the folder. I’ve tested with all my PSX games and haven’t had any glitches or compatibility issues: http://psxemulator.gazaxian.com/pSX_linux_1_13.tar.bz2

    Note that you’ll still need to search google for a scph1001.bin PSX BIOS file and extract it to the /bin/ folder.

    Once that’s set, you can configure your controller by clicking File -> Configuration -> Controllers. I think I’ll be using this PSX emulator from now on :-)


    Share This
    

    29 Comment(s)

    aj says 28th August @ 10:57

    what about mame?

    prout says 28th August @ 11:10

    how can you write an article about game emulation without speaking about MAME ?
    Multiple Arcade Machine Emulator
    More than 6000 games.
    http://mamedev.org/

    aj says 28th August @ 11:10

    http://stella.sourceforge.net/ atari 2600

    aj says 28th August @ 11:11

    don’t appreciate telling about roms… you should just show the emulators

    JA says 28th August @ 11:18

    No Commodore 64 love?

    The chicken head will fight on!

    Reirom says 28th August @ 11:31

    Good PSX for Win and Linux here:

    http://psxemulator.gazaxian.com/

    niemau says 28th August @ 12:01

    saitek makes a controller that’s almost perfect for N64 emulation. it’s set up almost like the logitech gamepad you mention. the difference is that instead of the four playstation style buttons, there are six, and they’re laid out similarly to the N64. there are two left and two right shoulder triggers. pushing down on the right analog stick is a configurable button press, so for me, it’s start/

    so, basically you’ve got all of the N64 buttons and an extras left shoulder trigger to spare. i’ve got mine mapped to toggle fullscreen.

    http://saitek.com/uk/prod/p990.htm

    Lee Swain says 28th August @ 12:16

    Has anyone managed to get Mupen64 running on Yellow Dog for PlayStation 3?

    I tried but had no luck, but I’m a Linux newb.

    Matt says 28th August @ 12:32

    Why choose one of the most annoying and complex psx emulators to setup instead of the simplest and best one.

    http://psxemulator.gazaxian.com/pSX_linux_1_13.tar.bz2

    keiken says 28th August @ 12:44

    big up :)
    thnx for helpin

    Jeremy says 28th August @ 12:50

    Mednafen is a good emulator for linux as well. Mednafen emulates Nintendo, PC Engine/PCFX, Gameboy Advance, Neo Geo Pocket/Colour, Atari Lynx, Wonderswan, and Gameboy. It does it quite well too. Currently, I don’t know if there’s a front end for it, but I highly recommend it!

    http://packages.ubuntu.com/edgy/games/mednafen

    darkmage says 28th August @ 12:57

    I find that, for Gameboy and Gameboy Advance, VisualBoyAdvance works pretty well. Also, if you don’t mind a command-line emulator, Mednafen runs NES, Gameboy, GBA, PC Engine (TurboGrafx-16) and Game Gear games.

    Zelig says 28th August @ 18:05

    niemau mentioned Saitek, but I use the P2900. Same button layout, but it’s wireless. I was able to use it with my Ubuntu Studio box right away. No rumble, but I don’t miss it. I also have yet to change the AA battery in it, just as long as I turn it off after using it.

    http://www.saitek.com/uk/prod/p2900.htm

    greyfade says 28th August @ 19:11

    I’m surprised you don’t mention Mednafen, which emulates NES, GB, GBC, GBA, and a few others. IME, it works better than VisualBoyAdvance or anything else.

    Home owner insurance says 28th August @ 20:22

    Great guide to finding and using ROMS on Ubuntu!

    New Ubuntu Gamers Forum says 29th August @ 9:32

    I have opened up a new forum dedicated to gaming for ubuntu players, we are offering support for emulation as well, come by and say hello!

    Thanks for the tutorials!

    http://www.playubuntu.com

    HammerOfGod says 29th August @ 13:57

    I, for one, legitimately own all the roms I download.

    BHSPitMonkey says 30th August @ 0:23

    Minish Cap is a GBA title. You’re thinking of Phantom Hourglass.

    Charalambos says 2nd September @ 6:18

    Nice…

    Vangelis says 2nd September @ 7:09

    Sorry :(

    Andros says 2nd September @ 16:56

    Nice…

    Platon says 3rd September @ 5:20

    Nice

    Ioannes says 3rd September @ 15:00

    interesting

    Vasilis says 4th September @ 15:51

    Cool!

    Daniel says 15th September @ 1:13

    I couldn’t understand some parts of this article o.us poetry, but I guess I just need to check some more resources regarding this, because it sounds interesting.

    Zootropo says 16th September @ 13:56

    You may be interested on this one. It’s a clone of Offlinelist for Linux
    Gromlist

    cigarettes says 30th September @ 3:00

    Very nice this blog =)

    marlboro says 2nd October @ 21:48

    Very nice this blog =)

    MDM586 says 22nd November @ 11:18

    SDLMAME for Ubuntu packages -> http://wallyweek.altervista.org/

    Leave comment

    11 Trackbacks/Pingbacks

    Close
    E-mail It