Whether you're looking to relive the past or experience the origin of gaming you missed in your youth, your Android or iPhone can take you back to Mario's salad days, the birth of the Final Fantasy series and much more. Here's how to get started with retro game emulation and turn your phone or tablet into an arcade in just a few minutes.
While contemporary video games have come close to cinematic masterpieces, there's often nothing better than the fun and simplicity of retro classics. If you've never jumped into the world of emulation, this guide will take you through the very simple basics and have you up and running right away. We'll also take a quick look at ROM hacking so you can power up your emulation experience as well.
By the way, should you prefer to get this set up on your computer instead, check out this guide.
Before we get started, let's go over the basics. When you're talking about retro game emulation, you need two basics things: game ROMs and an emulator that can play them. A ROM is simply a copy of a game that exists as a file on your device. An emulator is an application that's capable of playing that ROM file on your device. Basically, you can think of a ROM as a virtual game cartridge and an emulator as a virtual console. Now that you know what you're dealing with, let's get started.
Get Your Emulators
Finding an emulator is pretty simple, but you may prefer some emulators over others. We're going to include our favourites for various platforms and, in some cases, a few alternatives if there's a good reason to check them out as well. If you are looking at an emulator we didn't recommend, remember that accuracy, performance, cheat code support, game pad support, and cross-platform compatibility are all things you'll want to consider.
IMPORTANT NOTE ON THE DIFFERENCES BETWEEN iOS AND ANDROID: Emulation on iOS requires jailbreaking. We won't have links to our iOS emulator recommendations for that reason. All you need to do, however, is open Cydia (the jailbreak app store) on your jailbroken iPhone, iPad or iPod Touch and search for the recommended option. From there you'll be able to download it and use it no problem.
Additionally, third-party controller support (like the Nintendo Wiimote) works differently on iOS and Android. Controller support is generally built into the app on iOS, but on Android you need to add a separate app that connects controllers as input devices. (If you have an Android tablet with Honeycomb 3.1 or later, however, you can connect some controllers via USB as well without the need for a helper app.) We'll discuss controllers a bit later, but in the following sections assume any reference to controller support refers to iOS.
Nintendo Entertainment System (NES)
NESoid and John NES Lite (or John NES, if you don't want ads) are the two NES emulators you should check out on Android. Both offer plenty of features, are free and but display controllers a little differently. NESoid provides an overlay and John NES separates the screen from the controller. (Both can map hardware keys and use other input devices, however, so this may not be relevant.) John NES also combs with support for Honeycomb, so it's a better option for you if you're using an Android tablet.
On iOS you're going to want to choose between two options. If you don't need third-party controller support, NES ($US6) is a really great emulator. It has plenty of great features like autosave, game genie code support and even an audio bass boost. If you do want third-party controller support, grab nes4iphone ($US5). Both are good choices.
Super Nintendo Entertainment System (SNES)
SNES9X is our emulator of choice for both iOS and Android. To get SNES9X on iOS, you'll need to search for it in Cydia. To get it on Android, you'll need to go through a little more trouble as it was pulled from the marketplace for currently unknown reasons. Doing a web search for the SNES9X APK file should locate a copy. Alternatively, you can download SNESoid, which is based on the same code, but has its own controversy. SNES9X is great because it works with practically any ROM you can throw at it, supports both saved games and freeze states, allows for cheat codes and lets you use third-party controllers like the Nintendo Wiimote.
For the iPhone and iPod Touch you'll want to grab genesis4iPhone. You can use it on the iPad, too, but GENESIS A.D. Plus has proper support for the larger screen and provides a "mirror mode" so two people can play on each end of the iPad. Both apps offer Wiimote support, but genesis4iphone also works with iCade and iControlpad (which will discuss in-depth in the controller section later). If you're using iOS, you can also get a lot of official releases of Sega Genesis games from the iTunes App Store. Sonic the Hedgehog, Golden Axe, and Streets of Rage are just a few examples.
Unsurprisingly you have many more options on Android. Gensoid has always been one of the best, and now that it's free it's particularly more attractive. It performs well, provides network play over Bluetooth (on some devices with Android 2.1+), supports saved states and more.
FPse is our pick for Android. It'll run you $US4.20 (at the time of this writing) but performs well and is compatible with most games. It has full support for third-party controllers like iControlPad and Zeemote (more on these later) and even offers force-feedback.
Your choice on iOS is a bit easier because you only have one: psx4all. In our experience, it doesn't work that well with some games and has its performance issues. That said, when it does work for the game you want to play you get plenty of good features. It has Wiimote support (including support for the classic controller), in-app ROM downloads, save state and memory card support and native iPad support.
Get Your ROMs
Before we start talking about downloadable ROMs, there are a few things you should know. First, there are two types of ROMs we're going to discuss: homebrew and official games. Homebrew ROMs are software created by individuals that are designed to run in a given emulator or on an actual retro gaming system. Official games are the cartridges you used to buy for your SNES, Sega Genenis, etc., after they've been converted into a digital file that you can play on your computer. The general rule of ethics when it comes to playing these official games is that you should own a real copy before downloading a ROM (or create your own, personal backup copy), but some companies (like Nintendo) believe this is actually not within your rights as a game owner. In this section we're going to point you to various resources for finding game ROMs. What you decide to do with this information is your choice.
Finding homebrew and game ROMs requires little more than a simple web search. If you're looking for Nintendo 64 ROMs, searching for "N64 ROMs" should turn up a variety of resources. You'll then be able to look through the site for the game you want and download it easily. Even though searching is simple, let's save you a little trouble. Here are some popular options for seeking out game ROMs:
- EmuParadise provides game ROMs for virtually every console ever made, from the Bandai Wonderswan to the Sony PlayStation 2. You generally have to click through a few screens to find a download link -- which is sometimes not a link but a URL to a MegaUpload page -- but the process always results in a download. If you download directly from the site rather than use MegaUpload, note that you'll only be able to download one file at a time.
- CoolROM is another web-based resource for game ROM downloads that uses file mirrors for storage. It also comes with the bonus of letting you create a download queue (which is essentially a list of links, not a true queue) of ROMs you want to download.
- Usenet, or the service everyone knows about that nobody is supposed to mention, is a decent source for game ROMs. If you've already set it up, just search a binary index site like NZBMatrix or Newzbin for what you want. Some index sites have search filters that will let you look for ROMs by console, but note that a lot of older consoles (e.g. SNES) probably won't have specific games posted. This is because the ROMs are pretty tiny and you're more likely to find large game packs. If you can't find what you're looking for specifically, just search generically for game ROMs and you may be able to find nearly everything you're looking for in a single download.
- BitTorrent pretty much offers the same ROM selection as Usenet. A tracker like Demonoid or even The Pirate Bay should turn up game packs easily.
Once you've got your ROMs, it's time to start gaming.
Set Up Your Emulator and Start Playing Your Games
You've got your emulators and you've got your ROMs, but now what? Playing a game is as simple as opening a ROM in its respective emulator, but there are a few things you should know before you jump in for the first time.
Using Hardware Controllers
Both iOS and Android emulators generally offer controller support. Wiimote (and Wii Classic Controller) support is the most common, but some iOS apps and Android devices support other options like the PS3 controller as well. Both platforms also offer support for third-party controllers specifically designed to work with mobile devices, like the iControlPad, iCade, and Zeemote (although iOS support depends on the specific emulator you're using). Regardless of the type of controller you want to use, the setup process is pretty different on iOS and Android. Here's what you need to know.
On iOS, the type of controller you're able to use depends on the emulator. Pretty much all iOS emulators now have support for the Nintendo Wiimote and the Wii Classic Controller, but many also support the iControlPad (and others). To find out, just visit the emulator's page in the Cydia store and your options will be listed with the emulator's other features. Almost every controller you'll be able to use requires Bluetooth, but iOS game emulators rely on different Bluetooth software than what's built-in to iOS. For this reason, you often have to disable Bluetooth in iOS' Settings app before you can pair controllers with an emulator. (This isn't always the case, but if you're having trouble it's the first thing you should try.) From there, just follow that emulator's instructions on how to pair your controller. For Wiimotes, this process almost always involves enabling Wiimote support in the app and pressing the 1 and 2 buttons on the controller until it is recognised by the emulator. When you're done, you can use it. The major downside, however, is that you'll probably have to re-pair the Wiimote every time you launch the app. It only takes a few seconds so it's not a big deal, but it can get annoying after awhile.
On Android, adding a controller is much different. If you're adding a USB gamepad and running Android 3.1, you can just plug it in and map all the buttons in your emulator. If you're using a Bluetooth controller, however, you'll need a separate app to be able to use it as an input device. Generally these apps require that you root your Android device, so follow our rooting guide if you haven't rooted already. To add support for certain controllers, just download the relevant app and follow its instructions for pairing. Wiimotes have a lot of options, but Wiimote Controller has worked well for us. If you prefer a PS3 controller, SixAxis is what you'll need. In any case, check that your Android device is supported. These apps do not work with every device. Once you're paired, just open up any emulator and map the keys to your controller. While the process will vary, you generally do this by creating a new key profile and pressing the buttons on the controller as they correspond to the emulator's game buttons. Some emulators provide a separate configuration section for controllers, specifically, and it works in pretty much the same fashion. Just be sure to use that instead if it exists.
Understand Saved States and Freezes
When you played cartridge-based games as they were originally intended, they used to contain space for saved games. Emulators work a little differently, as they create the same saved game data in a separate file. For example, SNES ROMs are generally given the .smc file extension, whereas saved games receive the .srm file extension. This is particularly handy because you can exchange game save files with others.
What's even better, though, is the ability to use frozen game states. A staple of most retro game emulator is the ability to press a button and create a game freeze at any point in the game. You'll be able to unfreeze this state whenever you want, making it possible to save even if the game doesn't allow it. While game save files will be created whenever the game needs to record your progress, freeze files require you to interact with the emulator. Before you start playing your first game, be sure to locate the freeze and defrost options in your emulator. They're generally prominently featured on the main screen or in the settings section. They should be very easy to find. Many also offer on-screen or gesture shortcuts so be sure to check if those exist in your emulator and learn them if they do.
Power Up Your Personal Arcade
Even though you're up and running, there's still more you can do to make your emulation experience better. Here are a few ways to take your portable arcade to the next level.
While it isn't always the case, many emulators provide emulated cheat systems as well. If you liked playing your games with the aid of a Game Genie or Game Shark, you still can with many emulators. Generally you'll see a dedicate cheat menu and entry system if your emulator has this common feature, so the only real obstacle is finding working cheat codes. What's pretty great is that the same sites you used back when you played the games with dedicated cheat hardware actually still exist and are good resources. The problem is that if you didn't create the ROM from your original copy of the game you won't necessarily know which codes will work. This means a lot of trial and error, but if you cheated back in the day you likely have developed that type of patience. If you don't know where to find cheat codes, here are some popular sources:
- BSFree Code Archive contains about every code for every system and every game. It's archived the work of the Game Genie and Game Shark Code Creators Clubs and more.
- GameGenie.com contains all the old Game Genie codes plus cheats/tips/tricks that can be performed without a(n emulated) cheat device.
- GameFAQs is not only a great resource for finding walkthroughs for a particular game but also a resource for codes. It isn't code-focused or nearly as comprehensive as the previously mentioned sites, but you can sometimes find some good code compilations here (particularly for older games)
- GameShark.com still keeps their code archive online for systems of the past, but you'll mainly find codes for newer consoles like the PS2 and GameCube.
- The Code Hut is hosted on Angelfire, so you know it's an old school website that's been around for awhile. It has over a decade of archived codes for older systems.
Emulators for the older retro systems, like NES, SNES, Sega Genesis, Gameboy, etc., will vary in how they accept codes. Because there were two primary competing cheat devices in the world at the time -- the Game Genie and Pro Action Replay -- some emulators implemented the format of one and not the other. That's fine because the codes just need conversion, which you can accomplish with utilities like GG2PAR and GGHex (Windows-only). You just need to check your emulator's documentation so you know which format it takes. Some will even take both and you won't have to do a thing.
Hack Your ROMs
When you want to go beyond playing your games, you can take the next step and hack them. However, hacking a game ROM can take several forms and you'll need a computer to do the work. Changing game graphics, editing levels, altering music, or adjusting character stats are all very different processes. It's an advanced task, but the basics aren't as complicated as you might think. We're only going to scratch the surface in this post, but if you're interested there will be some guides you can check out at the end. So, if ROM hacking is something you want to do, you'll first need to decide what you want to accomplish.
Editing character stats, for example, is something pretty easily accomplished in a hex editor. Let's use Super Mario RPG as an example. If you want Mario to start off with a large amount of HP, FP, strength, defence, etc., you'd first need to start a new game and figure out what his starting starts are. These starting stats will be hard-coded into the game. You'll then need to convert his stats to hex values (e.g. the number 100 is represented as 64 in hex, and 255 is represented as FF) and then use the hex editor to search your ROM for occurances of these stats.
Let's say Mario's starting HP and maximum HP were 30 and his starting FP and maximum FP were 4. In theory you'd be looking for a string that looks like 1E1E1414 because that translates to 30, 30, 4, 4 (in this case). Not all games place their statistics in a logical order and it can sometimes be a challenge to find what you're looking for, but with a little trial-and-error you can alter your games in interesting ways with a few, tiny modifications. If you want to play around with hex editing you can use any hex editor you want (for the most part), but XVI32 (Windows) Hex Fiend (Mac OS X) are popular free options.
If you're interested in hacking something like the graphic sprites used in a particular game, however, hex editing is obviously an awful way to go about it. You'll need specialised software, like Tile Layer Pro, to make meaningful changes. Generally if you're editing complex data you're going to need more complex software, but plenty are available. If you want to learn all about hacking your game ROMs, whether it's more about hex editing or messing with audio visual data, check out Romhacking.net's start guide as well as the Romhacking.net Data Crystal Wiki for more specifics. Retro gaming is fun, but having your own, personalised ROM can make the experience even more appealing.