From GNU/Linux to Warhammer & back again!
I have received a few emails asking about emulation on the Linux platform. These questions were mostly by Windows users who enjoy running retro titles and don’t know much about Linux and its thriving emulation scene. From being active in many forums I think retro gaming is one of the most popular pastimes of the hobbyist computer user and I think that mainstream gaming of the latest modern titles is moving away from the PC and to the consoles, where patches and workarounds are a thing of the past with consoles really being “plug in and play”.
Many users without experience of Linux will not know how well catered for Nintendo, (or indeed most system) emulation is. The is one of a few articles I will be writing on the subject as I think a barrier that prevents people from running Linux will be area’s like this.
Of course FOSS/Linux does have its own gaming scene with many FOSS titles looking very modern and being a lot of fun. Example (which was featured here a while ago) was Alien Arena – an FPS which has a massive following. Other titles include Eternal Lands (RPG) and a plethora of those fun mini games that everyone has installed on their desktop from time to time.
That being said, this article is specifically about emulation of the Nintendo family of consoles and with that we will press on.
Before we go into this article, it is worth noting that there are copyright issues with running Nintendo Roms through an emulator. Make sure you have any permissions required. This article will not link to where you can get roms, its merely a showcase of some of the best software required to run them. Of course it goes without saying that if you are using these emulators to run homebrew software (or indeed develop your own) then thats slightly different.
NINTENDO 8BIT (NES)
The NES was Nintendo’s offering from around 1983 (in Japan) to current day where via emulation there is still a dev scene for it! Running on a Ricoh 8bit processor at 1.79 mhz however the UK version ran off the Ricoh 2A07 which had a clock speed of 1.66 mhz.
One of the best NES/Linux packages I’ve found to date would be FCEUX. It is currently in version 2.1.1 and offers a plethora of features ontop of the most important one (NES emulation) FCEUX allows you to configure up to 4 controllers, openGL rendering and CPU/memory wise has very low requirements using less than 8% of a 1.8ghz AMD Sempron CPU and less than 10mb of ram (in OpenGL rendering).
Speed wise it has low requirements and I’ve had this running quite happily on low-spec machines at full speed. If you are a fan of 8bit consoles then the NES was one of the more popular choices of the time.
compatibility wise, I can find no issues with FCEUX, every title I have tried works flawlessly and at full speed. Sound emulation is complete and both full screen/windowed modes work effortlessly. I have tested the latest source on the following distro’s: Wolvix2(beta) , Mepis 8, Zenwalk 6 Gnome, Ubuntu 8.04, Fedora 11
You can visit the homepage of FCEUX at: http://fceux.com/web/htdocs/index.php where you can download the source or a .deb build.
SUPER NINTENDO (16BIT) (SNES)
The SNES was released in 1990 and was a major upgrade to the NES. Certainly in the UK it was in direct competition with Sega Megadrive. In Japan it was called the Super Famicom. The SNES sported a Ricoh 5A22 processor (16 bit) running at 3.5mhz.
ZSnes is probably the best emulator available for the Linux (and others) platform. It supports full emulation of the CPU and even the SuperFX chip found in titles such as StarFox. I have yet to find a title that does not work within Zsnes, and the software also offers the feature to engage in online play (something which was not present for users at the time of the Super Nintendo) Emulation with Zsnes is, as far as I can tell, flawless. I have yet to find a title that doesn’t work, homebrew or not and even on a relatively low spec machine the original frame rate is more than matched.
1996 was the year of the N64, which promised much. The N64 was in direct competition with the massively popular PS1 and the fact that the N64 was still cartridge based and the PS1 was able to cater for the craving for cut scenes et al, IMO made the N64 on a looser from day one. That being said there were many great titles available for it and the N64 version of Mario saw his first steps in 3d. Running off a NEC VR4300i processor it was a far more powerful system than its PS1 counterpart at the time (IMO) and the first true 64bit console clocking in at 93.75mhz
Mupen64plus is the emulator of choice for the Linux platform (IMO) which full frame rate emulation on the rom files I have thrown at it.
Theres a large list of titles compatible with the software.
You can find Mupen here: http://code.google.com/p/mupen64plus/
The Gamecube saw Nintendo break away from its cartridge past to DVD (albeit mini) which enabled larger and more multimedia rich titles to be developed for Nintendo’s console. Unfortunately on the back of disappointing N64 performance (IMO) and the fact that the PS2 had continued with the legacy started by PS1, the Gamecube had much the same reception as it predecessor the N64. Released in 2001 and running off a 486 MHz IBM “Gekko” PowerPC CPU it unfortunately fell behind the Xbox and PS2 mainly I believe, because of the legacy created by the N64.
Gamecube emulation in Linux is surprisingly advanced. The title currently being developed is called Dolphin, which already is boasting an impressive list of titles working on it.
Unlike the N64 emulator (and below) the Gamecube emulator needs more powerful specs, full details of this can be found on the website.
You can visit the homepage of Dolphin here: http://www.dolphin-emu.com/news.php
2006 saw the release of the Nintendo WII and despite the previous sales issues of the Gamecube/N64, it seems all had been forgotten, which massive sales of the WII console on its launch which (IMO) blew both Sony’s PS3 and Microsoft’s 360 out of the water. With its more interactive style of play (through its controllers and various addon’s) The WII introduced a new innovation into the gaming market for the masses.
It is alleged that the WII clocks in at 729mhz and unlike previous Nintendo consoles it seems that they are realized that their own “custom” media was not needed this time and have opted for DVD (like the other “players” in its class)
Surprisingly WII emulation has already begun and is coming along nicely. Dolphin (see above) not only offers support for the Gamecube, but sucess with WII emulation is also present in it.
Again requirements for running WII software will be higher than the older Nintendo consoles.
NINTENDO’S HANDHELD OFFERINGS
Since 1989 Nintendo has offered handheld consoles (although there were single game handheld devices before this). Emulation of these systems requires relatively low specs since two of the three are now rather old. There were some real classics available for these systems and even today theres more than one hobbyist who enjoys making homebrew titles for these systems.
GAMEBOY / GAMEBOY ADVANCE
Released in 1989 the 8bit Gameboy was a brick of a handheld console (although still quite comfortable to hold) running on a 8-bit Sharp LR35902 at approximately 4.5mhz it was a hugely popular handheld that outsold the Gamegear and had a plethora of titles available for it.
It then progressed onto Gameboy Colour and subsequently the Gameboy advance. VGA (Visual Gameboy Advance) caters for the entire range and is a very good, compact and fast emulator for Linux.
You can download Visual Gameboy Advance here: http://vba.ngemu.com/downloads.shtml
At time of writing this is the current handheld offering from Nintendo. Its now just been revamped into a smaller (and to quote the MS faithful’s favorite words “Feature Rich” system) The DS runs off two processors, a ARM946ES and ARM7 co-processor. It has two screens with the lower one being used for the touch screen.
Released in 2004 it is still going strong with a massive software catalogue. I don’t think its unfair to say that in my opinion the Sony PSP never stood a chance. Emulation is obviously on-going with success on many titles to date. You will need a reasonable spec machine to get a decent emulation experience out of DeSmuME (imo the best DS emulator on Linux) but then “reasonable spec” in the world of Linux is far lower than that in a Windows world (IMO).
You can download DeSmuME here: http://desmume.org/
This section is more general and it will highlight equipment that Nintendo probably doesn’t/didn’t want you buying. Certainly in the UK, since the release of the SNES devices were sold (in some of the independent stores) that allowed the backup/running of Nintendo software.
For me these kits had another purpose, to enable the coding of homebrew titles (a little side hobby of mine) and I recently wrote a review on the R5 (for the Nintendo DS)
The Super Nintendo had a device which was commonly called a Super Magicom, this allowed the copying of a cartidge to HD floppy disk from which the game could run. Later, the N64 had the diskdoctor V64 which ran titles from CDROM in very much the same way. Of course these pieces of equipment were not approved nor condoned by Nintendo if used to copy material which you didn’t have permission for, however in the case of the SNES and N64 at the time the internet/filesharing was not an issue to be concerned about and certainly in the UK, market penetration of these items and their bootlegs were limited at best.
The many copying devices for the Nintendo family have many names and whilst (IMO) the Magicom and diskdoctor were generic names for their many clones.
The following links may be useful if you are interested in development on any of the above mentioned system. This is not a comprehensive list but will prove a starting point for anyone wanting to get into the scene:
For those of you interested in the rather good DS Demoscene (and the Demoscene in general) , look no further than:
and for those who don’t want to download and run (or maybe don’t have the specs for) the demanding Demoscene, check out DTV which has streamed footage of demo’s on many platforms: