rhrtools/README.md
2025-07-27 11:50:54 -04:00

100 lines
2.5 KiB
Markdown

# RomHack Races Downloader and Patcher
Scripts to download and patch Super Mario World ROM hacks from RomHack Races.
_Note: This is entirely vibe coded and may have quality issues._
## Requirements
### Python Dependencies
- Python 3.6+
- Required packages in `requirements.txt`
Install Python dependencies with:
```bash
pip install -r requirements.txt
```
### Other Requirements
- [Flips](https://github.com/Alcaro/Flips) - ROM patching utility
- Original Super Mario World ROM (.smc format)
## Setup
1. Clone this repository
2. Install Python dependencies
3. Ensure `flips` is installed and available in your PATH
4. Place your original Super Mario World ROM somewhere accessible
## Usage
### Downloading Patches
The `downloader.py` script will download all ROM patches from RomHack Races and organize them by season:
```bash
python downloader.py
```
Patches will be downloaded to the `patches` directory, organized in season folders (Season1, Season2, etc.).
### Patching ROMs
The `patch_roms.sh` script applies the downloaded patches to your original ROM:
```bash
# Show help
./patch_roms.sh
# Do a dry run (shows what would be patched without actually patching)
./patch_roms.sh --dry-run /path/to/original.smc
# Actually patch the ROMs
./patch_roms.sh /path/to/original.smc
```
Patched ROMs will be created in the `patched` directory with filenames like `Week001.smc`, `Week002.smc`, etc.
The script will:
- Only patch ROMs that don't already exist in the output directory
- Show a summary of new and skipped patches
- Maintain correct week numbering from the original patches
## Directory Structure
```
.
├── downloader.py # Patch downloader script
├── patch_roms.sh # ROM patcher script
├── requirements.txt # Python dependencies
├── patches/ # Downloaded patches (created by downloader.py)
│ ├── Season1/
│ ├── Season2/
│ └── ...
└── patched/ # Patched ROMs (created by patch_roms.sh)
├── Week001.smc
├── Week002.smc
└── ...
```
## Updating
To get new patches and ROMs:
1. Run the downloader:
```bash
python downloader.py
```
2. Patch new ROMs:
```bash
./patch_roms.sh /path/to/original.smc
```
The scripts will only download new patches and create new ROMs that don't already exist.
## Notes
- The original ROM is not included and must be provided separately
- Patches are downloaded from RomHack Races (https://www.romhackraces.com/)
- ROMs are organized by week numbers for easy reference