This repository contains the decompiled and reconstructed source code of ModRetro's MRUpdater application, enhanced with a high-performance ROM dumper.
MRUpdater is the official tool for updating ModRetro Chromatic handheld gaming devices and managing Game Boy cartridges through the "Cart Clinic" functionality.
We've developed a high-performance ROM dumper that achieves:
- Perfect accuracy: 100% identical ROM dumps
- High speed: ~789 bytes/second (70x faster than original)
- Complete support: Full Game Boy cartridge dumping in ~5.5 minutes
- Fixed banking: Corrected bank switching logic for accurate multi-bank ROMs
The application is built using:
- Python 3.10 with PyQt/PySide for the GUI
- PyInstaller for packaging
- USB CDC-ACM serial communication for device interaction
main.py- Application entry pointflashing_tool/- Main application framework and device communicationcartclinic/- Cart Clinic functionality for cartridge operationslibpyretro/- Low-level communication library
chromatic.py- Device detection and managementchromatic_subprocess.py- Subprocess handling for operationsconstants.py- Application constantsconfig_parser.py- Configuration managementgui/- Main GUI components
cartridge_read.py- Cartridge reading operationscartridge_write.py- Cartridge writing operationsmrpatcher.py- ROM patching functionalitysave_to_rom.py- Save data managementgui.py- Cart Clinic GUI interface
cartclinic/cart_api.py- Cartridge API interfacecartclinic/comms/- USB communication protocolsfeature_api/- Feature API interface
The application communicates with the ModRetro Chromatic via:
- USB VID:PID: 0x374E:0x013F
- Protocol: USB CDC-ACM serial on Endpoint 3
- Operations: Cartridge read/write, ROM patching, save management
This source code was obtained through legitimate reverse engineering of publicly distributed binaries for interoperability purposes. The decompilation was performed using:
- String extraction and file structure analysis
- No direct code copying from original sources
- Clean-room implementation based on protocol observation
# Dump a complete ROM (recommended)
python fast_rom_dumper.py --full my_game.gb
# Dump ROM with save data
python fast_rom_dumper.py --full --save-data my_game.gb
# Test with limited banks
python fast_rom_dumper.py --max-banks 4 test.gbpython main.py| Metric | Original | Enhanced | Improvement |
|---|---|---|---|
| Speed | 11 bytes/s | 789 bytes/s | 70x faster |
| 256KB ROM Time | 13+ hours | 5.5 minutes | 142x faster |
| Accuracy | Variable | 100% perfect | Perfect match |
This source code is provided for:
- ROM dumping: High-performance cartridge backup
- Educational purposes
- Protocol documentation
- Development of compatible tools
- Community research
Based on the module structure, the application requires:
- PyQt/PySide (GUI framework)
- pyserial (USB communication)
- boto3/botocore (AWS S3 integration)
- esptool (ESP32 communication)
- pydantic (data validation)
This is a research repository. For active development of compatible tools, see the related projects in the ModRetro Chromatic ecosystem.
This repository is not affiliated with ModRetro. It is an independent reverse engineering effort for interoperability and educational purposes.