Francis Stokes Demonstrates How to Dump Game Boy ROMs From the Game Boy Itself
Why go to the effort of desoldering ROM chips when the Game Boy is already designed to read them straight from the cartridge?
Developer Francis Stokes has begun dumping the read-only memory (ROM) images from old Nintendo Game Boy cartridges, but he's taking a different approach to most — using the Game Boy hardware itself to copy the cartridge contents and send it out over the link port.
"The traditional approach is that you would somehow find a way to open up the cartridge," Stokes explains of the usual ROM-dumping process, "so maybe you actually have the proprietary screwdriver that interfaces with the screw that Nintendo decided they would use on these cartridges, and inside you will find a circuit board and that circuit board may contain numerous chips — but at least one of them will be a ROM chip."
"What you do is you desolder that ROM chip with your hot-air rework station," Stokes continues, "and you take the chip, and you carefully place it in your EPROM reader/writer, and you dump the data over some ancient cable to your computer. And then you have the data that is what makes up the game, and that's what loads directly into an emulator."
Stokes, quite rightly, points out a few drawbacks to this approach — such as not everyone having access to a hot-air rework station or the skills to use it without permanent damage to the cartridge and the need for potentially expensive EPROM reader. His solution, then, is to use a piece of hardware already designed to read the contents of Game Boy cartridges: a Game Boy.
"We don't need any specialized equipment apart from the Game Boy itself," Stokes explains. In what Stokes calls a "heist," the project sees the Game Boy convinced to run custom code, which reads in the contents of the cartridge currently installed in its slot then sends it out over the link port — a feature common to most Game Boy handhelds that allows two or more consoles to be connected together for multi-player gaming but which, in Stokes' project, serves the purpose of providing an output for the cartridge data.
Using a Saleae logic analyzer to take signals from the link port, Stokes' custom "game' runs from the Game Boy's internal memory — allowing the cartridge holding the software to be swapped out for the cartridge to be dumped — and sends the data to a host machine for storage as a comma separated value (CSV) file, which can then be converted into a format acceptable to emulators.
Full project details are available on Stokes' YouTube channel, while the source code for the ROM-dumping "game" has been included in the repository for Stoke's TypeScript Embedded Game Boy Macro Assembler (TEGA) on GitHub under the permissive MIT license.
Freelance journalist, technical author, hacker, tinkerer, erstwhile sysadmin. For hire: freelance@halfacree.co.uk.