aquova.net Codeberg's logo Mastodon's logo Blue Sky's logo Backloggd's logo Pico-8's logo The RSS logo @000


Transferring Games to Real Hardware

While emulators offer the easiest and arguably most feature-rich way to enjoy your classic games, there's something to be said about playing them on the original hardware. Over the years, I've amassed a bit of a retro hardware collection, which has proven somewhat troublesome for my bank account. What's even worse though, is the price of games these days. Back when I first got into the hobby, the local retro game store in town had a box of $0.50 Sega Genesis games they were dying to be rid of. Those exact games would probably fetch around $15-$20 in similar shops today, and they're frankly no more fun now than they were back then. Thus, if you are to enjoy your consoles to the finest, you must employ ways to load games from... alternative sources.

For just about every system I own, I have purchased third-party devices or made modifications to each of them to allow me to play any arbitrary game. However, while some of them are simple plug-and-play devices, others are somewhat complicated to use. I will sometimes go months or even years between using some of these methods, and so I begin to forget how exactly to set up a new game.

To that end, I'm going to go through each console I own, which method I've used to play files, and some brief notes on the steps or quirks that might be involved.

Flash Cartridge Systems

These are the simplest ones to use. With the purchase of the system's respective flash cartridge (typically, but not always an Everdrive) you simply need to place the games into a FAT32 formatted SD card, plug it into the console, and away you go.

SNES — Super Everdrive X5

The SNES Everdrive I have requires no additional instructions to use, simply place your games onto the micro SD card. It does have a maximum ROM filesize of 7.5 MiB, but I've personally never run into that limit.

N64 — Everdrive 64 X5

There are currently two Everdrive 64 models, and I went with the more inexpensive one, which does have some quirks. Most notably, the flash cartridge does not save its games automatically, instead you must remember to press the console's reset button before turning the system completely off. Otherwise any save data is not written to the micro SD card's filesystem. This is the only unit that has this restriction.

Sega Genesis/32X — Everdrive MD

The oldest Everdrive I own, and one that's no longer even listed on their website. Unlike the others, it requires a full-sized SD card, not a micro. It also has the same 7.5MiB filesize limit as some of the others, but this is actually one I've run into. Games like Earthion or Sonic 3 Complete cannot be played with this device, as they are modern ROMs which extend beyond what any original cartridge offered. The unit also offers 32X support, given you have a 32X unit, and can bypass region-locks. I think that some of the higher end units do support Sega CD as well, but as you'll see below, I have a different method for those titles.

PC Engine/PC Engine CD/Supergrafx — Turbo Everdrive Pro

When purchasing my Everdrives, across the board I typically went with the cheaper option. There are benefits to some of the higher end models, but those small improvements typically don't justify the price. The one exception is my Turbo Everdrive Pro, which is the highest end option for a TurboGrafx-16/PC Engine.

The single reason I bought one is that this device supports games for the CD attachment, without actually needing a CD attachment present at all (in fact, it won't work if there is one, meaning this unit couldn't function on a TurboDuo). Given how many of the best games were for the PCE CD, and the price and hassle of purchasing one of those, I felt that this was a worthwhile choice.

Game Boy/Game Boy Color/Super Game Boy — Everdrive GB X7

Again, this is the highest end model, which avoids a few pitfalls that the lower end ones do. It doesn't require a reset to write save files to the filesystem, and perhaps most importantly, it does support an RTC. This allows games like Pokemon Crystal to properly support a day/night cycle, which is pivotal to that game.

Game Boy Advance — Everdrive GBA Mini

The higher end Everdrive GBA Pro doesn't offer anything of interest to me that the Mini does not. By default, this is a very simple plug-and-play device for your GBA files.

However, the GBA Everdrive also has another trick up its sleeve — supporting other consoles via emulators. Other Everdrives might also support this functionality, I haven't checked, but there are a sizable number of emulators written for the Game Boy Advance. If these emulator .gba ROMs are present on the filesystem, then the device will automatically emulate and run games for that system. This article does a good job showcasing the (one time) set up process to get each system working, which includes support for the NES, GB/GBC, Game Gear, and Master System. Their respective emulators need to be renamed to match their system abbreviation, then placed onto the micro SD card at GBASYS/emu.

Nintendo DS — ???

I have no idea what flash cart I have for my DS. I assume it's a R4-based clone of some sort, but it came packaged in a "1000-in-1" exploitative packaging. Still, you just need to transfer DS ROMs over to it, and it works fine. They also refunded the price to me when I bought it, after it had shipped, so I essentially got this thing for free, can't complain about that.

This also works on a 3DS unit, but only for DS games. I don't have a DSi unit to see if it'll support DSi titles (although I doubt it does).

Future

I have two devices that offer flashcart-based solutions, but I have yet to acquire. The first is my NES, where I'm simply just too lazy to have picked one up, although I mean to do so. The second is my Wonderswan Color, which does offer some flashcart solutions, but they are typically in short supply and highly priced. There are some new ones scheduled to be released this year, and if they prove acceptable, it's a device I'd like to pick up.

Optical Drive Systems

The second category of systems are those which use optical drives for their titles, but are old enough to not have fully fledged OSes to jailbreak. For these, the simplest way to play games is simply to burn them onto a CD-R/DVD-R and play them in the traditional fashion. Due to copyright protection though, this can be easier said than done. This will cover a brief overview, although I wrote an article last year that covers this topic in more depth.

Sega CD — Simple CD-R Burning

Being a CD-based system, the Sega CD has no copyright protection at all. Thus, the BIN/CUE files can be burnt directly onto the disc without any other modifications needing to be made. There's many programs that can do this, but on Linux, I prefer to use cdrdao from the command line. If you plan on doing this yourself, you will need to pass an additional flag, as without it I've had issue with audio not playing correctly.

$ cdrdao write --swap --speed 1 --eject mygame.cue

Sega Dreamcast — Patched CD-R Burning

By the time the Dreamcast came along, Sega has wisened up and made an attempt to prevent users from burning games directly onto discs. Unfortunately, the method they chose was to use a propriety format — the GD-ROM — and hope they wouldn't find an exploit to let them read regular CDs. Well, within a year or two hackers did just that, and games converted to run on a CD became so prolific that to this day you'll find games offered in both the commercial release .gdi format, as well as pre-exploited .cdi files, ready for you to burn.

For ease, I use a pre-made script that handles the conversion and burning process, called dcdib.

# dcdib mygame.cdi

Sony PlayStation — Memory Card Exploit and CD-R Burning

There are a number of ways to run arbitrary games on a PS1, but the method I use is halfway between burning your own custom games, and using an OS-level exploit, as you'll see below. Rather than purchase an optical drive replacement or modchip, I have converted a spare memory card to contain a DRM bypass exploit, which will allow games burnt to a CD-R to be played without failing the security checks.

This is the first console which requires a few (simple) steps to remember to play a burnt game. Firstly, my PS1 memory card was overwritten with the FreePSXBoot exploit. I leveraged already having a FreeMCBoot-enabled PS2 along with other software to create the exploited card. Note that the exploit is very specific in its setup, meaning it only works with the exact BIOS I have and must be inserted into memory card slot B.

With that one-time setup finished, to play a game, simply burn a BIN/CUE with cdrdao like you would any other disc.

$ cdrdao write --speed 1 --driver generic-mmc-raw --swap -n --eject mygame.cue

Then start the PS1 with the tray open. The unit will start into the options menu. Upon pressing "Memory Card", the exploit will begin to run. The lid can be closed now, and upon selecting the option to play the game, the disc drive will fire up, and the game played like normal.

Sony PlayStation 2 — Patched DVD-R Burning

Similar to the Dreamcast, discs can be burnt which contains an exploit to allow them to run on any vanilla PS2. Unlike the Dreamcast though, these exploits are not pre-patched into the game ISOs, meaning that this patching step will need to be done for every game prior to burning. There is a Windows-only frontend GUI to perform the patching, but it runs well enough via Wine.

Since PS2 games are (mostly) DVD games, a different program is needed to burn to disc. I personally use the growisofs utility, available as part of the dvd+rw-tools package.

$ growisofs -dvd-compat -Z /dev/sr0=mygame.iso

(Note that this assumes your disc drive is located at /dev/sr0)

Hardware Mods

The third category are systems that require third-party hardware modifications to load games. My PS1 mentioned above nearly slips into this category, with its exploited memory card, but that's an exploit that can be run on any memory card and requires no changes to the vanilla console to function. For these, the unit themselves had to be modified, although in several cases, only slightly.

Nintendo Gamecube — Flippydrive

There are a number of modchips out there, but my personal choice is the solder-less Flippydrive device, whose installation and function I dive into greater detail in my Ultimate Gamecube article. The Flippydrive is a small daughterboard that attaches into the inside of the Gamecube chassis. A custom ribbon cable is folded and inserted into the socket connecting the optical drive to the motherboard. This allows it to intercept the communication between the two, and inject its own OS and game ISOs to run instead. By holding the R button as the unit boots up, it will bypass the custom coreboot OS menu, and run a game from the optical disc drive, as a vanilla system would. If you have a Bluetooth controller — which likely won't connect quickly enough to hold R during boot — you can press Z while in the coreboot menu to soft-reboot the system, allowing it to now detect your R press and run the game.

By default, the Flippydrive and its micro SD card are entirely enclosed within the Gamecube's chassis, meaning that you'll need to remove the top shell again to get access to it, in order to add new games to the card. However, I've purchased a ribbon cable extender from Laser Bear Industries which replaces the acrylic LED light diffuser on the top of the case to one with a micro SD card slot embedded in it, allowing access to the Flippydrive's card without needing to continuously remove the shell.

Sony PlayStation 2 — OPL

I already mentioned how to burn PS2 games which will run on any unmodified PS2 unit, however I have also modified my original PS2 unit to be able to boot games off of an internal hard drive. Once again, the full details of this can be read in a blog post I wrote on the subject, but by creating an exploited PS2 memory card with FreeMCBoot, custom programs can be run on the device. One of these is a program called OPL, which can load and run PS2 ISOs from an attached device, such as a USB or HDD.

Loading the games onto the HDD is thus the trickiest part of the whole adventure. There is apparently a beta version of OPL that can load games off of a standard exFAT-formatted drive, but I couldn't for the life of me get it to work. Instead, the drive is formatted in some odd, proprietary format, and games need to be transferred over via the HDL dump utility. This isn't terribly difficult to use, but it is slightly more annoying than dragging and dropping via a file explorer.

Xbox

Lastly in this section is my original Xbox. Being a hip and modern console (at the time), Microsoft decided that all Xbox units should ship with an internal hard drive, in my case a 10GB IDE unit. Similarly to the PS2, this makes modding the console enticing, as there is already built-in storage. 10GB is not enough for my purposes, of course, so I took the route of replacing it with a spare 1TB SATA drive.

Jailbreaking the system isn't difficult, although it does require a special Xbox controller port to USB cable, and it only supports really small USB drives (shoutout to my car dealership for giving me a comically small one). Doing the hard drive swap, on the other hand, is a royal pain. Microsoft in their infinite wisdom decided that both the optical drive and hard drive must be present and functional for the Xbox to boot. If either have failed or are missing, then the unit simply throws an error. This means that the original drive's contents must be cloned via a homebrew app to the new drive to bypass the lockout. This can only be done with a special third party IDE cable and by hotswapping the optical drive for your new HDD after booting... it's quite the set up.

However, this is a one-time procedure, and after that the jailbroken Xbox is remarkably easy to access. This is the first on the list that has built-in network connectivity, so the easiest way to transfer games over is to connect the Xbox to ethernet and fire up an FTP client. The FTP server on the Xbox is always running, so it should be a simple matter to connect to it. ftp://xbox@192.168.X.Y should be the correct address to transfer files with the default password simply being xbox. However, you cannot simply transfer over .iso files as you can on a GameCube or PS2, they must instead first be unpacked. I use the simple extract-xiso tool to — as the name suggests — extract the Xbox ISO files into a typical folder structure. The can then be simply FTP'd over to the unit and played from the main menu. Assuming they're placed into the correct drive (in my case F:\), they should be visible in the "Games" section of the menu, and immediately launchable.

Software Modded

The final category of consoles are those with fully fledged operating systems that can be exploited, allowing homebrew apps to offer advanced features that the consoles originally had locked down. While many homebrew applications are utilities, the most interesting of them allow for games to be loaded from internal storage

Nintendo Wii — USB Loader GX

For all of these, I'm going to overlook how to actually perform the jailbreak, as there are better (and more up to date) articles than this one. There's also the not-so-small reason that for some of these consoles, it has been quite some time so I don't actually recall the procedure. Thus is the case for my Nintendo Wii with its jailbroken Homebrew Channel. The Homebrew Channel will be an option in the typical Wii home menu, and inside provides a useful interface for launching the various programs.

For loading games off of internal storage — or indeed, creating the backups yourself — a program called USB Loader GX is used. It has a pretty straight-forward interface, and should be able to detect and attached storage device and find the games, assuming the file structure is correct. One large hiccup though is that most if not all of the Wii homebrew apps are only able to access FAT32 drives. FAT32 has the notable limitation that files cannot exceed 4GB, which many Wii titles do. To get around this, a utility called TinyWiiBackupManager will take most of the various Wii game file formats and break them up into multiple .wbfs files that USB Loader GX can then parse and run.

Nintendo 3DS — GodMode7

TBD

PlayStation Portable

PlayStation Vita

Nintendo Wii U

I did jailbreak my Wii U many years ago, but to be perfectly honest, I don't remember in the slightest how any of its homebrew systems work anymore. I recall that I had to purchase a copy of Mario Kart DS as an exploit vector, and I do recall that it allowed me to run Gamecube tiles using it, but I'm afraid that it has languished in a neglected state for too long. If I'm even inclined again to clean it up, I shall report my findings here.

Sony PS3 and PS4

While both are theoretically jailbreak-able, I have only vaguely experimented with both, and not to a level where I can transfer games at my will. My PS3 slim is a later revision, meaning that it cannot have permanent custom firmware installed. I'm not certain if this would require repeatedly re-applying the exploit or not, but I have yet to find a game I wanted to play badly enough on my PS3 that wasn't just easier to find a used copy of online. As for my PS4, I did go through the trouble of running the exploit, but it was a complicated affair that didn't have a 100% success rate, and I believe needs to be re-applied from a connected laptop everytime. It's also not something I'm

Nintendo Switch

Now that I have a Switch 2, my original Switch is just lying around, waiting to be jailbroken. Sadly, the state of Switch homebrew is still very early, and I don't yet feel that it's worth the hassle to make the attempt.