Not that long ago, I was faced with the task of buying a gift for someone. I was working on an IOT project and had been using some single computer boards from ODroid in Korea. They made SBCs similar to a Raspberry Pi, but better specs and native Android support. Which comes in handy if you’re using the SBC for kiosks. ODroid was selling a do-it-yourself version of a GameBoy in a kit, called the ODroid Go.
For $35, it looked like a nifty gift. The kid loved it, but her mom did not enjoy the lack of a headphone jack. Really, really, really did not enjoy that lack of headphone options. It also only supported a handful of game system emulator formats, and there’s a limited supply of legal ROMs for those. ROMs are the copy of the original game. The term comes from the fact that games used to be stored on physical Read Only Memory chips in cartridges, arcade games and the like. The overwhelming number are pirated, obviously. And I was trying to not go down that route.
Though piracy is pretty clear cut when you’re talking about a just released game, but gets more nuanced when you’re talking about abandoned software from four decades ago that may or may not have followed copyright procedures. In many cases of such legacy software, the original companies or programmers may no longer be alive. The Internet Archives is doing a wonderful job of tracking down legacy software, and obtaining release rights. The RetroPi community is a good source for looking for legal ROMs, including new games for legacy game systems.
Some Legal ROM Resources
- Retropie UK Forum
- MAME Project ROMS
- Zophar Public Domain ROMs
- ROMHacking.net HomeBrew ROMs - Homebrew games are newly written games for legacy systems
- Internet Archives - Some can be downloaded, some are streaming only
You can also copy or rip games you legally and physically own, due to a DMCA Exemption.
37 CFR 201.40 Exemption to prohibition against circumvention
Compilations consisting of lists of Internet locations blocked by commercially marketed filtering software
Computer programs protected by dongles that prevent access due to malfunction or damage and which are obsolete.
Computer programs and video games distributed in formats that have become obsolete and which require the original media or hardware as a condition of access. A format shall be considered obsolete if the machine or system necessary to render perceptible a work stored in that format is no longer manufactured or is no longer reasonably available in the commercial marketplace.
Literary works distributed in ebook format when all existing ebook editions of the work (including digital text editions made available by authorized entities) contain access controls that prevent the enabling of the ebook’s read-aloud function and that prevent the enabling of screen readers to render the text into a specialized format.
Requirements for a Better Mousetrap
I looked around for a bit and eventually found a handheld system that fit most of my bucket list. The GPD XD+ fit the bill quite nicely.
- Headphone support
- Android based
- Handheld format
- Good battery life
- Bluetooth support
- HDMI-Out or MiraCast
- Good storage options
- Good processor
Ok, it was a bit more than I’d like. $220 ish, off Amazon. You can go with an ODroid Go Advanced for $55. Less capability, but far cheaper.
The reviews for the GPD XD+ were pretty similar and very positive. Mediatek MT8176 6-core 2.1GHz 64bit processor, PowerVR GX6250 GPU, 4GB RAM and 32GB of onboard storage. Thankfully it has a MicroSD slot, which will support the 400GB MicroSD card I tested out. It has a standard USB port for a thumb drive. A low-profile thumb drive might be a good option. Battery life is around 8 to 10 hours. By default, it comes with Android 7 and the Google Play Store. Charging is Micro-USB. It has a Mini-HDMI and normal audio ports.
Customizing the Firmware
This is an optional step. Stock firmware is probably OK for most users. CleanROM is just cleaner, fixes some annoyances and more customizable.
Reasons for using CleanROM
- Can use CTS-locked apps like Netflix in the Play store
- Can close lid on unit and still send HDMI out to a TV
- Disables the shoulder buttons when the lid is closed
- Screen and microphone levels are better
- Debloated, more lean
- vsync is fixed, less stutter in emulators
All of the instructions in detail can be found here.
It will take an hour or two. If you muck up or run into problems, XDRescue can help out. You can use a spare MicroSD card to make a rescue disk.
- Snag the latest version of CleanROM
- Snag the latest version of Magisk
- Cleanly format your MicroSD card, I recommend using SD Memory Card Formatter.
- Burn CleanROM to a clean MicroSD card using Magisk.
- Follow the very specific and exact steps listed here.
Most of this information was mined off https://www.reddit.com/r/gpdxd/, which is a resource I’d highly recommend.
Retroarch is a very powerful frontend for a host of emulator cores, but is not as user friendly. It has a wealth of options that can be quite intimidating. If you’re willing to do some research and legwork, that will be the only emulator you will need. It is available from the Play Store. The Dig Frontend is a separate app that might be easier to navigate. Nintendo DS, just go with Drastic rather than Retroarch.
- Atari - 2600 (Stella)
- Atari - Lynx (Handy)
- Nintendo - Game Boy / Color (Gambatte)
- Nintendo - Game Boy Advance (mGBA)
- Nintendo - NES / Famicom (Nestopia UE)
- Nintendo - Nintendo 64 (Mupen64 Plus)
- Nintendo - SNES / Famicom (Snes9x 2010)
- Sega - MS/GG/MD/CD (Genesis Plus GX) For megadrive/gg/scd
- Sega - MS/MD/CD/32X (PicoDrive) For 32x (Although you can just pick either of these last two, if you’re only interested in Sega Megadrive)
- SNK - Neo Geo Pocket / Color (Beetle NeoPop)
If you want other options, here’s the general recommended best emulators for various systems:
- SNES - SNES9x EX+
- Genesis - MD.emu ($)
- GBA - MyBoy, DraStic ($), GBA.emu or PizzaBoy
- GBC - GBC.emu ($), MyOldBoy($),
- NDS - DrasticDS ($)
- PS1 - ePSXe ($) or FPSe($)
- PSP - PPSSPP
- N64 - Mupen64 Plus FZ (make sure to set the emulation profile to GLIDEN64 Medium or Accurate)
- Dreamcast - ReDream
- GameCube - Dolphin
- MAME - mame4droid 0.139u1
- MSDOS - FreeDosBox
CleanROM v126.96.36.199 and above support external PS4 controllers. DualShock4 gamepad has had some issues, for some people it works fine. Pretty much any Bluetooth controllers or keyboard will work out of the box. Just be sure to check for Android compatibility.
I picked up a SteelSeries Stratus Duo Wireless Gaming Controller for the gift package.
Connecting to TV
Any Micro-HDMI to HDMI cables should work, but definitely buy one that supports HDMI 2.0 specifications.
If your TV supports MiraCast, the GPD XD+ can natively support it. This is “Mirror to Screen”.
Stating the obviously
Remember. It’s an Android device. You can use it for any Android related task. You can watch Netflix on it, read ebooks, play music, or whatever. With the insane battery life and good storage, it can easily cover a US to Australia flight on one device.
The kid liked the gift. Which was good for the amount of work that went into it.