Retrogaming on Android

A picture of the Android logo with a heart made from retro consolesI got a new phone the other day (a Samsung Galaxy S3), so I was looking for fun things to play on it when I found a great retrocollect article about emulation on Android which lists the best emulators for all of the different emulated systems.

As it happens, from July 14th 2012 to July 28th 2012 (or thereabouts) there’s a stack of free *oid emulators available – usually you have to pay for the full versions (which have save-game support), but for a while they’re free – so why not? =D

So if you’re interested, you can get all the apps in the list below for the low, low price of absolutely nothing before approx. July 28th 2012:

  • Ataroid (Atari 2600 emulator): here,
  • Gameboid (Gameboy Advance emulator): here,
  • GBCoid (Gameboy / Gameboy Colour emulator): here,
  • Gearoid (Sega Gamegear emulator): here,
  • Gensoid (Sega Genesis / Megadrive emulator): here,
  • NESoid (Nintendo Entertainment System emulator): here, and
  • SNESoid (Super Nintendo Entertainment System emulator): here.

Winning!

Also, if you’re interested in arcade emulation with MAME there’s the free MAME4droid applications:

  • MAME4droid – based on MAME 0.37b5: here, and
  • MAME4droid Reloaded – based on MAME 0.139: here

The difference in the above two version of MAME are in regard to what version of MAME they’re based on (as I’m sure you’ve worked out) – but what this actually means might be a little less clear.

In essence, the MAME 0.375b is based on a version of MAME circa July 2000 – and this version was chosen because it came before the big MAME re-write. This means that the 0.37b5 version of MAME was the pinnacle of MAME development when the developers chose speed over emulation accuracy. MAME4droid supports around 2000 ROMs, which will have to be the right format for the 0.37b5 version of MAME, and there’s no (and never will be any) save/load game support.

The MAME4droid Reloaded version on the other hand is based on 0.139 MAME code (circa 2010), which means that it’s a lot more accurate, but it’s either going to be slower or you’re going to need a beast of a phone to run many games at full tilt – we’re talking about having a dual-core phone as the minimum. MAME4droid Reloaded supports around 8000 ROMs, which this time you can save/load as your wish, and (again) these ROMs will have to be in the right format for the 0.139 version of MAME.

As you might expect, it’s horses for courses – need save/load support and got a high-end phone? Pick reloaded. Lower end phone or game-o-choice not running fast enough? Try out the original.

Emulators for other systems

The list of systems above is in no way exhaustive, as there are emulators for many other systems like the N64, Atari ST, MSX, PC Engine, Playstation – and even the Bandai Wonderswan! Quite!

For a fuller looking list of emulators available on Android, you could do worse than try this AndroidForums post. Just be aware that many emulators are paid apps, or you can get the “Lite” versions which either don’t allow you to save your games or come with a ton of bundled adware rubbish to pollute your phone.

Finding and converting ROMs

As ROMs for old game systems live in a somewhat grey area of the law as to whether they’re legal to download and use or not, you’re going to have to use Google to track them down on your own. Generally, the older the game, the less anyone’s going to care about you downloading and playing it.

Games for most old systems that work on any standard PC-based emulator should work exactly the same on the Android based emulators with no modification required.

The ROMs for arcade games on MAME though are a little bit different, as the version of MAME that you use will determine which version of the ROM you need. Thankfully, there’s only really two main options between the 0.37b5 versions and the more up-to-date versions, and in general you can use tools like clrmamepro to convert the ROMs between formats.

Input

Dreamcast Fishing Rod Fighting Game - Good luck!Trying to use a touchscreen as a joystick or gamepad is like trying to use a Dreamcast fishing rod to play a fighting game – and it’s a lot harder to pull off a Shoryuken with the fishing rod… So what can we do about it? As it turns out, quite a lot – if you want to use a controller, the chances are that you can get it to work with a suitable amount of research.

The Sony Xperia Play phones come with their own built-in joypad on the slide-down tray, but if you don’t have one of those, then you can still connect bluetooth devices like Nintendo wiimotes, PS3 Six-Axis controllers and XBox 360 controllers* as long as you have a compatible Bluetooth stack on your phone. Older Android phones (certainly my old HTC Desire) didn’t have a suitably functional bluetooth stack by default, but you could get one by installing a CyanogenMod ROM onto the phone. You could probably also use a mini/microUSB-to-USB connector for any standard USB joysticks or gamepads.

* = Wired Xbox 360 controllers aren’t a problem – wireless 360 controllers on the other hand require a USB-dongle, which itself needs drivers which may or may not be available for your device. In fact, from what I’ve seen, unless you have a Motorola Xoom tablet you could well be out of luck for wireless 360 connectivity.

Anyways, for those with a wish to play emulated games using a controller, try:

Output

A small screen is fine to play games on if that’s all you’ve got – but the chances are that you’ve probably got access to a big Plasma/LCD/LED screen with a HDMI input, too. So why not use that?


Skip to the 24 minute mark to see N64oid on the big screen with a wireless controller!

You’ll need an appropriate cable for your phone (usually some form of microUSB to HDMI converter), for the Samsung Galaxy S3 it’s what’s termed a MHL cable – which’ll set you back about $50AUD or thereabouts.

Also, with a phone to HDMI cable, you’ll be able to watch NBA.TV or any streaming video on the big screen from your phone instead of linking up to a laptop or whatever you currently do (unless you’ve got some kind of VNC/Mediaplayer solution up and running – in which case I envy you and would like to know what software you use!).

Honourable Mentions (other best-in-class free emulators)

Missing Sir Clive’s baby? Try the free Sinclair Spectrum emulator Marvin.
Yearning for Chucky Egg? Beebdroid to the rescue =P
Want to perform the woman’s move in IK+? (crouching punch to the nuts!) – try the Commodore 64 emulator Frodo.
Craving some Speedball or Xenon 2? There’s even an Android port of the Ubiquitous Amiga Emulator (UAE) called UAE4droid.

Come to think of it, I’m getting quite the hankering for some It Came From The Desert, or maybe Supercars II

Emulation – you’ve just gotta love it =D

How To: Compile and Use the Dolphin Gamecube/Wii Emulator in Linux

It’s really easy to get this emulator up and working – but you do have to compile it yourself in linux – still, it’s only a couple of commands and you’re set. I did it on Ubuntu 9.10 64-bit and it worked like a charm…

Update (04/07/2011): Easiest way yet – simply add the PPA and get it (for Ubuntu 10.10 & 11.04 32/64 bit only) like this:

Update (Older than above): I found that you can download pre-compiled .deb files for Ubuntu 9.10 here (PPA addition required) – be careful with that sudo apt-get upgrade command in the instructions though – I don’t really think you need it and you probably don’t want to upgrade your entire linux distribution just to play an emulator… I’m confusing sudo apt-get upgrade (which upgrades currently installed packages) with sudo apt-get dist-upgrade (which updates your linux distribution if there is a newer version available) – my bad.

Either way, I’d recommend you just compile it yourself – it only takes a couple of minutes.

Update – Nov 2011: Like anything published, it ages and what might have been correct at the time of writing may no longer be the case – so with that in mind, if you’re going to build your own copy of Dolphin, you’re probably best off going to http://code.google.com/p/dolphin-emu/wiki/Linux_Build and using the instructions there.

Issues: If you’re getting errors along the line of Looking for lib Cg… no. Plugin_VideoOGL must have cg and cggl to be build, then the fix is to install the nvidia-cg-toolkit package with:

With all that done, it takes around five minutes to compile and build, then you can go to the Binary folder inside your source-code download location to find the executable and launch it. Once it’s up and running just go File | Open and point it at an Wii or Gamecube ISO and you’re in business!

Dolphin Gamecube/Wii Emulator

By default you get a gamecube controller bound to the keyboard (Enter = Start button, x = A button, cursor keys up/down/left/right) and an emulated Wiimote is bound to the mouse (where the left mouse button is the A button), but you can use joysticks, real Wiimotes etc as well without too much fuss. Fantastic stuff :)

If you’re having any issues, just read more about linux confix/setup/dependencies here, while the main Dolphin wiki lives here.

How To: Use NAND Emulation on the Wii

Post last updated: 12th August 2011

So you’ve got your Wii soft-modded and you can run homebrew and stuff (you haven’t? Well, ya could..) – what next? Well, you can install a whole heap of WiiWare, Virtual Console games and applications, but the Wii can only store a couple of hundred MB of stuff on its internal memory before it’s full. When this happens it’s like your drive’s full – you’re going to have to uninstall some things to install others.

Or… you could use NAND emulation to install as much stuff as you want! Sound more like it? Let’s get it on!

Intial prep

The Wii has 512MB of flash (i.e. NAND) memory, much like a USB stick – and it uses it to store the Wii operating system, save games, channels/WiiWare/VC stuff etc. When you soft-mod your Wii you’ve (hopefully!) backed up the system memory so you can restore it to default, in case you want to. If you’ve backed up your NAND system memory using BootMii, this is all well and good, but it’s not what we’re going to be using as the basis for our NAND emulation (i.e. the backed up nand.bin file) – we’re going to strip out just what we need to get a bare-bones NAND image (really, just a set of directories) and then use that to install our stuff.

To begin with, we’ve got two options:

  • We can use a SD card to store our installed apps/games/channels (or SDHC card if your firmware is > 4.0, previous version of firmware don’t support SDHC cards), or
  • We can use a compatible USB hard-drive

In this guide I’m going to set things up on a SD card, if you want to use a hard drive you’ll need it partitioned to have TWO partitions (each of which needs to be assigned a drive letter – not sure how? Try this): One large partition for your Wii ISOs which you’ll want to format using something like WBFS Manager, and the other smaller partition you can leave as standard FAT32, just like you’d have on your SD card or a USB stick.

On an SD card we can just use whatever space is available on the card, for hard drives you’re going to have to decide on how big the partition you want to use for NAND emulation is going to be (a couple of GB should do it plenty), assign the rest to the other partition for your WBFS ISOs. I’ve got a 640GB USB drive, so I’d prolly assign around 20 to 25GB for emulation so I’d have stacks of space for ROMs etc. – remember – there are no tools to resize WBFS partitions at the moment – so pick your sizes and get it right first time! =D

Okay, with that out of the way – let’s kick off with the emulation steps:

Step 1 – Get a copy of our Wii’s NAND in usable format

For this we’re going to use Simple FileSystem Dumper 0.2. Download it, create a folder for it in on your SD card under the apps folder, rename the .dol file to boot.dol and launch it through the Homebrew Channel.

1-RunningSFSD

2-RunningSFSD

3-RunningSFSD

Once you’ve run Simple FileSystem Dumper 0.2 you’re going to have a bunch of extra folders on the root of your SD card (or hard-drive, depending) – the new directories are these:

3.5-ExtractedFolders

Make a copy of all these “blank” folders! Later on you can delete the folders off your SD card or HD and copy these “blank” folders back to effectively uninstall any installed WADs. You can prolly use WAD Manager etc. to just uninstall specific WADs, but I haven’t tried it out as yet. The folders are useful and only around 180MB in total, so it’s worth holding on to pristine copies.

Step 2 – [If neccessary] Update CIOS 38 to Revision 14

To use NAND emulation you absolutely need CIOS Revision 14 or higher. My Wii was on Revision 13b or something, so I used Waninkoko’s CIOS Updater and a net connection to get it up to Revision 14. You can find a copy like this

4-CIOS38rev14Install

6-CIOS38rev14Install

7-CIOS38rev14Install

8-CIOS38rev14Install

Step 3 – Preparing the WADs for your emulated NAND

From what I’ve read you can install your WiiWare/Virtual Console WAD files to the emulated NAND using any of the following methods:

  • By using WAD Manager 1.5 or higher.
  • By using NeoGamma R6 or higher.
  • Manually.

Because I formatted my USB Hard drive as a single partition in WBFS format (and I can’t be bothered to fix it up to have two partitions quite yet), and because you must have different source and destination locations at present to install WADs using NAND emulation (that is, SD to HD or HD to SD, not SD to SD or HD to HD) – I’m going to show you how to go with the manual method of installing stuff to your emulated NAND. And for this we’re going to need a little win32 application called wad2NAND.

The way it works is:

  1. Download wad2nand
  2. Extract the zip file
  3. Create a batch file called ConvertWADs.bat in the folder you extracted wad2nand to. Put the following in the batch file:

    Then:

  4. Create a folder called Convert inside the folder where you extracted the wad2nand zip
  5. Copy a bunch of WAD files (As many as you like! Woo-hoo! Or as many as you have space on your emulated NAND location for, really!) into that Convert folder and run your ConvertWADs.bat batch file
  6. Give it a minute to extract all the wads to two folders: ticket and title which will appear in the folder where you extracted wad2nand – remember these folders from earlier?

    8.5-wad2NAND

Update: Although the title and ticket folders hold the core content for games or apps or whatnot, I’ve read that the additional folders hold things like Miis and high-scores and things, so none of the folders are cruft or anything, and if you’re finicky about such things you’re best to hold on to them.

Step 4 – Actually install the extracted WAD files to your emulated NAND

After running wad2nand, the ticket and title folders will contain the installed version of the files to play whatever WADs you’ve converted. You now need to copy these two folders over the top of the “blank” nand folders on the root of your SD card or hard drive. Select [Yes to all] to overwrite things if there are duplicate files – just merge ’em all together. Almost there!

Step 5 – Launch the NAND emulation installed WADs

To do this, I’m going to use an application called Triiforce beta 7. Grab it and launch from the Homebrew Channel, then select your source (SD / HD / Wherever you’ve installed the extracted WADs).

Updated Note: TriiForce beta 7 is now available, at the time of writing TriiForce beta 5 was the latest version available, so that’s what you’ll see in the below screenshots.

8.9-TriForce

9-TriForce

10-TriForce

By selecting the second from top option in TriiForce (showing a WAD version of Backup Launcher in the screenshot above) you can press left and right on the D-Pad of the Wiimote to select which WAD to run, and then just select the Start option above to launch it!

All done! Unlimited installs FTW!