99 lines
2.4 KiB
Markdown
99 lines
2.4 KiB
Markdown
# RomHack Races Downloader and Patcher
|
|
|
|
Scripts to download and patch Super Mario World ROM hacks from RomHack Races.
|
|
|
|
## 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
|