The Analogue Pocket can now dump Game Boy cartridges

Developer kroy-the-rabbit released an openFPGA utility core that turns the handheld into a standalone ROM and save dumper.

The Analogue Pocket can now dump Game Boy cartridges
Wikipedia

Developer kroy-the-rabbit released openFPGA-CartTools yesterday, an alpha utility core that turns the Analogue Pocket into a standalone hardware dumper for Game Boy, Game Boy Color, and Game Boy Advance cartridges. The free tool extracts ROMs and save data directly to the handheld's MicroSD card.

Backing up physical media usually requires specialized hardware. If you wanted to pull a save file off a physical cartridge, you had to buy a dedicated PC peripheral like the Epilogue GB Operator or a GBxCart RW. The Pocket has a built-in 32-pin cartridge slot, but until now, it only read games to play them. It's nice to see a $220 handheld finally do the archiving work itself.

Analogue launched the openFPGA framework in 2022, allowing developers to write custom cores for the system's dual Intel Cyclone V chips. The community has pushed the hardware in interesting directions, like when the Analogue Pocket got a Sega CD core. A utility core is a different approach entirely.

Hardware timing over software

The utility doesn't run as software on a soft CPU. It is built using Register-Transfer Level code to manipulate the memory bank controllers directly. The developer notes that the entire job relies on precise cartridge bus timing and pin direction. A specific module handles the connector pins, and the build is designed to fail if pin isolation is compromised.

The Game Boy launched in 1989, and its physical cartridges rely on internal batteries to retain save data. Those batteries are dying. Preserving a childhood save file means extracting it before the battery voltage drops too low.

The utility handles the complex memory bank controllers used in later Game Boy titles. The alpha build simulates MBC1, MBC2, and MBC3 above 512 KB, though the developer notes they lacked the physical cartridges to test those specific sizes. Save RAM banking up to 128 KB works. The core explicitly refuses MBC2's strange 512-nibble save RAM structure, displaying an error on the screen when attempted.

What works in the alpha

The initial v0.1.0-alpha.1 release covers the basics. ROM dumping works across Game Boy, Game Boy Color, and Game Boy Advance cartridges. The core successfully detects GBA ROM sizes from open bus measurements and checks Game Boy images against the cartridge's own checksum.

Save data is a work in progress. Game Boy and Game Boy Color save backups function correctly, but Game Boy Advance save extraction hasn't started yet. Writing save data back to the cartridge is also unavailable in this build.

Clean your contacts

The GitHub documentation includes a familiar warning for anyone who collects physical media. According to the developer's documentation, ROM dumping works for twenty GB/GBC cartridges and twelve GBA cartridges. The culprit for failed attempts is often dirty cartridge contacts. The core caught one bad dump only because it compared the output against the header checksum.