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:
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:
- Download this handy debian package to a new folder (thanks to chronusdark for this contribution)
- In a console, change to the saved directory.
- 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:
- Open a console, and install the needed packages: sudo apt-get install unzip libgtk1.2-common libgtk1.2
- Create an install dir: sudo mkdir ~/Desktop/epsxe
- Change to the install dir: cd ~/Desktop/epsxe
- chmod the installdir to ensure all users can write to it: chmod -R 777 ./
- Download ePSXe base from this link: http://www.epsxe.com/files/epsxe160lin.zip
- Extract the contents of the above file into the ~/Desktop/epsxe/ directory
- In the console, type: sudo chmod 777 cfg sstates snap memcards
- Next, type: sudo touch memcards/epsxe000.mcr memcards/epsxe001.mcr .epsxerc
- Then: sudo chmod 666 memcards/*
- Followed by: sudo chmod 666 .epsxerc
- Download the PSX BIOS software (PSX firmware) by searching google or any popular search engine for: scph1001.bin
- Move the scph1001.bin file to the ~/Desktop/epsxe/bin/ folder
- Download a hardware acceleration package to the ~/Desktop/epsxe/plugins/ folder: http://www.pbernert.com/gpupetexgl208.tar.gz
- Note that the cfgPeteXGL2 and gpuPeteXGL2.cfg files need to go in the ~/Desktop/epsxe/cfg/ folder!
- 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
- 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
- Download an audio plugin and extract to the ~/Desktop/epsxe/plugins/ folder: http://www.pbernert.com/spupeopsoss109.tar.gz
- 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 ![]()
aj says 28th August @ 10:57
what about mame?