# 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