Awesome
Gameboy Cartridge Dumper
This is a rom that loads its main loop into ram on the Gameboy, lets you swap cartridges and then will dump the contents of that cartridge via a link cable to a Raspberry Pi listening for the ROM data.
Currently tested using an EMS 64M flashcart and both a Gameboy pocket and Gameboy Color.
Screenshots
TODO
- Build a ROM showing text on the screen using RGBDS
- Test it works on real hardware
- Copy code to RAM and test running from there works in an emulator
- Test it works on real hardware
- Add function to fix JUMP and CALL commands once code is moved to RAM
- Read and display the title from the cartridge header
- Test swapping cartridges works on real hardware
- Test for the Nintendo logo like the boot ROM does to see if a valid cart is plugged in
- Read joypad data
- Read only what's needed when I need it
- Test serial connection works
- Dump cartridge data over seial port when Start pressed
- Support basic 32K cartridge
- Support ROM banking
- MBC1
- MBC2
- MBC3
- MBC5
- Support SRAM reading
- Add support for checking the data was properly recieved
- Screen display dump progress
- Add stat check in TX loop, only display if clear. No need to loop-block
- Option to dump using external clock
- Would need a re-work of the post-TX delay timer code
- Add other dumping methods
- View hex on screen
- QR Code (wildcard)
- Add more of a menu instead of debug tiles
- Show more cart info
- Nice dump process bar
- Menu for dump methods
- Menu for what to dump (rom/save)
- Option to boot the cart that's plugged in
- Works on DMG
- Works on CGB (need to make cart CGB compatible)
To Build
Get RGBDS (Rednex Game Boy Development System) and run make. The makefile assembles, links and fixes creating a cart-dumper.gb file to use.
To Use
Copy the cart-dumper.gb rom to a flash-cart, run it on a Gameboy, carefully remove the flashcart once it's running, carefully (slowly, sometimes going too fast will reboot the Gameboy) put a new cartridge in and then wait for the cartridge title to be shown on screen.
Once connected to a running listener via the link cable you can press Start on the Gameboy and it will send the cartridge data to the listener.