Thanks to visit codestin.com
Credit goes to github.com

Skip to content

t-chamb/MRUpdater_Reverse

Repository files navigation

MRUpdater Source Code

This repository contains the decompiled and reconstructed source code of ModRetro's MRUpdater application, enhanced with a high-performance ROM dumper.

Overview

MRUpdater is the official tool for updating ModRetro Chromatic handheld gaming devices and managing Game Boy cartridges through the "Cart Clinic" functionality.

🚀 Enhanced ROM Dumper

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

Architecture

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

Module Structure

Core Modules

  • main.py - Application entry point
  • flashing_tool/ - Main application framework and device communication
  • cartclinic/ - Cart Clinic functionality for cartridge operations
  • libpyretro/ - Low-level communication library

Key Components

Device Communication (flashing_tool/)

  • chromatic.py - Device detection and management
  • chromatic_subprocess.py - Subprocess handling for operations
  • constants.py - Application constants
  • config_parser.py - Configuration management
  • gui/ - Main GUI components

Cart Clinic (cartclinic/)

  • cartridge_read.py - Cartridge reading operations
  • cartridge_write.py - Cartridge writing operations
  • mrpatcher.py - ROM patching functionality
  • save_to_rom.py - Save data management
  • gui.py - Cart Clinic GUI interface

Communication Layer (libpyretro/)

  • cartclinic/cart_api.py - Cartridge API interface
  • cartclinic/comms/ - USB communication protocols
  • feature_api/ - Feature API interface

USB Communication

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

Legal Notice

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

Quick Start

ROM Dumping (Enhanced Feature)

# 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.gb

Original MRUpdater

python main.py

Performance Achievements

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

Usage

This source code is provided for:

  • ROM dumping: High-performance cartridge backup
  • Educational purposes
  • Protocol documentation
  • Development of compatible tools
  • Community research

Dependencies

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)

Contributing

This is a research repository. For active development of compatible tools, see the related projects in the ModRetro Chromatic ecosystem.

Disclaimer

This repository is not affiliated with ModRetro. It is an independent reverse engineering effort for interoperability and educational purposes.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published