Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/palmr/cart-dumper
:video_game: Gameboy ROM for cartridge dumping
https://github.com/palmr/cart-dumper
dump flashcart gameboy rgbds rom
Last synced: 16 days ago
JSON representation
:video_game: Gameboy ROM for cartridge dumping
- Host: GitHub
- URL: https://github.com/palmr/cart-dumper
- Owner: Palmr
- Created: 2017-01-03T22:08:00.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2018-07-09T16:50:55.000Z (over 6 years ago)
- Last Synced: 2024-10-14T12:41:18.653Z (30 days ago)
- Topics: dump, flashcart, gameboy, rgbds, rom
- Language: Assembly
- Size: 54.7 KB
- Stars: 41
- Watchers: 3
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
Awesome Lists containing this project
README
# 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](https://github.com/Palmr/cart-dumper-listener) for the ROM data.
Currently tested using an EMS 64M flashcart and both a Gameboy pocket and Gameboy Color.
## Screenshots
![Running in BGB](screenshots/screenshot-1.gif)
## TODO
- [x] Build a ROM showing text on the screen using RGBDS
- [x] Test it works on real hardware
- [x] Copy code to RAM and test running from there works in an emulator
- [x] Test it works on real hardware
- [x] Add function to fix JUMP and CALL commands once code is moved to RAM
- [x] Read and display [the title](http://gbdev.gg8.se/wiki/articles/The_Cartridge_Header#0134-0143_-_Title) from the cartridge header
- [x] Test swapping cartridges works on real hardware
- [x] Test for the Nintendo logo like the boot ROM does to see if a valid cart is plugged in
- [x] Read joypad data
- [x] Read only what's needed when I need it
- [x] Test serial connection works
- [ ] Dump cartridge data over seial port when Start pressed
- [x] Support basic 32K cartridge
- [ ] Support ROM banking
- [x] MBC1
- [x] MBC2
- [x] MBC3
- [x] MBC5
- [ ] Support SRAM reading
- [ ] Add support for checking the data was properly recieved
- [x] 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
- [x] Nice dump process bar
- [ ] Menu for dump methods
- [ ] Menu for what to dump (rom/save)
- [ ] Option to boot the cart that's plugged in
- [x] Works on DMG
- [ ] Works on CGB (need to make cart CGB compatible)## To Build
Get [RGBDS (Rednex Game Boy Development System)](https://github.com/bentley/rgbds) 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](https://github.com/Palmr/cart-dumper-listener) via the link cable you can press Start on the Gameboy and it will send the cartridge data to the listener.