There's no "retro emulation" for the iPhone. Due to Apple's "no 3rd party runtimes" rule, emulators are banned from the iPhone. One guy spent a year writing a Commodore 64 iPhone app, only to have it banned! He even negotiated the right to sell games with his app, but Apple banned it anyway.
For the iPhone, Apple 100% controls distribution. It's impossible to install an iPhone app that Apple didn't approve, unless you hack your phone.
On Android, there's no such restriction. Even if an app is banned from Google's store, people can still offer the .apk installer file on their personal website. This has led to a lot of emulators. (Some copyright owners are attempting to censor emulators, by sending takedown notices and legal threat letters. People still leak the .apk file or put it on their personal website.)
Unfortunately, the trend is for stricter and stricter enforcement of copyright law. So far, nobody has been prosecuted or sued for downloading rom images on the Internet. That may change. There is a push to change copyright law from civil to criminal. Why do police arrest someone for growing marijuana and smoking it themselves? Because they can. Similarly, in the future, police may be prosecuting file sharers. Can you imagine a no-knock raid, because someone was suspected of downloading Super Mario Brothers?
Most violent copyright enforcement is focused on movies and music. That may change in the future, with more focus on games.
Nintendo claims that it's illegal to play a game in an emulator, even if you own a copy of the original game. That claim hasn't been tested in court (yet). Nintendo claims that if I want to play Super Mario Brothers on a newer console, I have to buy another license, even if I already bought it once.
It's impossible to legally obtain a collection of all Atari 2600/800 games. If there's no legal option, people will download it via BitTorrent. Even if I hunted down used copies and bought them, the money would go to collectors and not the original game authors.
I'm much more interested in playing games I actually own and played, rather than experimenting with other games. It is interesting to browse in an emulator.
Many games were never released in the USA. If you want to play the arcade version of "Tetris: The Grand Master", your only choice is in an emulator. If you want to play the original arcade version of Mario Brothers, your only choice is in an emulator. (The NES version of Mario Brothers isn't as polished as the arcade version. For example, in the arcade version, if you get to phase 30, you get two bouncing red fireballs! That isn't in the NES version. Also, the NES version doesn't have the icicle levels.)
Most Android emulators are based on open source GPL-ed code, made for other systems. There's one guy "yongzh", who made a bunch of paid emulator apps based on GPL-ed code, without releasing the source of his version. You should be able to find free alternatives. If you know where to look, you should be able to find free versions of most emulators.
There's another nice bit when you play games in an emulator, the "save state" feature. This is useful when you're playing on the subway and have to get off for your stop. It also helps to get past tricky parts of a game.
I didn't see a good emulator app list, so I made one myself! Other lists include paid apps. Here is another list, but it contains lots of paid apps (mostly by yongzh).
I only tested these emulators on my phone, a Droid 3. They may not work at 100% speed on older phones.
This is was my first game console. Here is the emulator for Atari 2600 on Android.
This is a pretty good emulator. It worked fine on my phone.
I like the way that paddles are emulated via the touchscreen. Super Breakout (advancing walls mode) and Circus Atari are great classic games.
The only negative is that it uses the "camera key" for the reset button. The Droid 3 doesn't have a camera key! After much experimenting, I figured out how to remap the reset button and select button.
It's awkward using the keyboard, but I'm getting used to it. I'm undecided if I prefer the keyboard-as-joystick or the on-screen joystick overlay.
Also, you can't play any games that require two joysticks, such as Raiders of the Lost Ark. Fortunately, only a small handful of games require two joysticks.
It really is amazing that "every game written for the Atari 2600" fits in 0.5GB on my 16GB micro SD card. The same is true for many of these emulators, that the entire game library only uses a fraction of my micro SD card space.
This is another one of my favorite consoles.
Here's one emulator. Unfortunately, development seems to have stalled. This emulator worked, but it wouldn't recognize my keyboard in the "remap joystick" feature.
This emulator seems buggy. It's based on an older version of the Atari800 core. It wouldn't run "Mountain King", so I didn't try any other games.
Allegedly, "kostas" wrote an Atari800 emulator. The droid800 developers claimed that they stopped supporting their emulator, because kostas' was better. He received a legal threat letter from Hasbro, who owns the copyright and trademarks for Atari. He stopped distributing his emulator.
Annoyingly, all the Atari800 emulators expect you to unzip the file before using it. The Atari2600 emulator will directly play zipped rom images.
Also, the Android phone OS can't handle directories with much more than 100 files. I wrote a PHP script that takes a big rom collection and breaks it up into 100 file subdirectories.
This is another classic console. Frodo C64 seems like the best (only?) emulator.
It had a couple of problems. This emulator seems like it isn't actively developed anymore.
I couldn't figure out how to make "joystick mode" work. I tried one game "Super Pipeline", and it didn't work properly.
I tried it with one game (Super Pipeline), and it didn't work. I also tried "Raid on Bungeling Bay" and couldn't get that to run at all. I can't figure out what I'm doing wrong.
It requires game images to be already unzipped.
It read .D64 format but not .T64 format. I noticed a lot of the rom images were in .T64 format but not .D64 format.
I tried the VICE emulator. I couldn't get that to work either.
I couldn't find an Atari ST emulator for Android. I never had played that console.
"AEU4Droid" is the emulator for Amiga. I had never played that console. I didn't try out that emulator.
"Candy Apple" is the Apple II emulator. Almost all the good Apple games were released for other consoles. I didn't try out that emulator.
I couldn't find a colecovision emuoltor.
I couldn't find an Intellivision emulator. "Intellivision Lives!" was released for iPhone but I didn't see an Android version.
I have "Intellivision Lives!" on the Xbox. The only Intellivision game I really like is Astrosmash. The Intellivision version of Astrosmash is better than the Atari 2600 version.
This is a great emulator. You can play old dos games on your phone.
The Droid 3 keyboard doesn't exactly map to the DOS keyboard. The only keys I notice missing were the escape key and function keys. You can map them to the onscreen keyboard overlay, but there's a limit of only 6 keys.
I couldn't get the touchscreen mouse to work, when I tried playing Rampart.
You need to experiment with each game, to see if it's playable in Android dosbox.
The only annoying feature of dosbox is NO SAVE STATES. You can only save your game if the original game supported saves.
Unfortunately, you can't play Windows games on your Android phone. WINE won't work, because the underlying hardware isn't x86.
Fortunately, until around 2000, most games were written for DOS. Those will work on dosbox.
GOG bought the right to sell some old DOS games. They also sponsor dosbox development.
Some people installed Windows on top of a dosbox installation. That seems like an abomination. That works, because dosbox emulates the x86 hardware.
You might be able to install Linux on top of dosbox, and then run WINE from there. That also seems like an abomination. That would work, because dosbox emulates the x86 hardware needed for WINE.
There's "Tiger NES". If you want it, you have to download the "Where are Tigers" app. It was banned from the Google app store.
It was pretty good at supporting key remappings and recognizing my keyboard.
Tiger NES is adware, which is annoying. Also, it only loads roms from \sdcard and won't load from \sdcard-ext.
There was another annoying bit about Tiger's emulators. His emulator asks permission to read your phone # and your real name. I found that disturbing, but there's no other good emulators available.
There's "Tiger SNES". If you want it, you have to download the "Where are Tigers" app. It was banned from the Google app store.
It was pretty good at supporting key remappings and recognizing my keyboard.
Tiger doesn't have a Nintendo 64 emulator.
Bit64 seemed like a decent Nintendo 64 emulator. I couldn't find it.
Here's a page for a Nintendo 64 open source emulator. It isn't finished yet. Note: this has nothing to do with yongzh's n64oid.
Gameboy, Gameboy Color, Gameboy Advance
Tiger has emulators for the gameboy and gameboy advance. I haven't tried them yet.
Gameboy emulation seems like a really good idea, because the games were originally written for a handheld.
Tiger also has a Sega Genesis emulator.
I didn't see a Sega Saturn emulator.
I didn't see a Sega Dreamcast emulator. There were some people working on porting nullDC (PC emulator), but they aren't done yet.
My favorite Dreamcast games were "Mr. Driller" and "Crazy Taxi".
There are two options here. First, there's PSX4Droid. Second, Tiger has a PSX emulator.
Tiger wrote a partial MAME emulator. It only works on NEO-GEO games and Capcom games.
Some people have ported an older DOS version of MAME to Android.
There no longer is a DOS version of MAME. If there were a DOS version, you could run it under dosbox. You could run an older DOS version of MAME under dosbox.
I considered compiling MAME with dosbox+cygwin. I didn't try.
Apparently, there's a lot of things you would have to change, if you wanted to get the full version of MAME working on Android. Each game has its own special code.
Don't Bother - Not Enough CPU Horespower
In order to get emulation to work, you need a CPU that's a *LOT* more powerful than the hardware you're emulating. Your emulation CPU needs to emulate the underlying CPU, plus all graphics chips and sound chips.
The following consoles can't be emulated, because the phone isn't too much more powerful than the emulated hardware: PSP, DS, Playstation 2, Playstation 3, Gamecube, Wii, Xbox, Xbox 360.
I'm trying to make this a complete list. If you notice any errors or omissions, I'll update the post.
I like my Android "Motorola Droid 3" phone. If you want game emulation, you need the phone with the most CPU horsepower. Right now, that's the Droid 3.
It's really neat that you can run old games on your phone! Technically, it's illegal copyright infringement, but it's not enforced. Hopefully, corporations won't lobby for stricter copyright law and crack down more. Right now, most copyright enforcement focuses on movies and music, but that may change. Most of these older games aren't on the market. They wouldn't be preserved if collectors didn't dump the rom images.
Downloading a 20 year old game is morally equivalent to copying a 70 year old book. Lawyers and judges don't think that way, but it's an important analogy. Copyright shouldn't last forever.
If you own an iPhone, you can't run old games, because of Apple's control freak app policy. Classic consoles are a good reason to pick Android over iPhone. Some of the best Android games are old console games played in an emulator!