mirror of
https://github.com/ApfelTeeSaft/SAGA-ResExplorer.git
synced 2026-08-26 19:33:33 +00:00
88 lines
2.5 KiB
Markdown
88 lines
2.5 KiB
Markdown
# SAGA-ResExplorer
|
|
|
|
A small Windows-focused GUI tool to explore, extract, preview, and **repack** SAGA engine `.RES` archives (tested with **I Have No Mouth, and I Must Scream** via ScummVM).
|
|
|
|
## Features
|
|
|
|
- Browse extracted `.RES` contents in a tree (`RES → records`)
|
|
- Guess file types (WAV/PNG/MP3/OGG/FLAC/…)
|
|
- Preview:
|
|
- PNG viewer
|
|
- Audio playback (WAV via Windows `winsound`, other formats via VLC)
|
|
- Hex preview for unknown files
|
|
- Extract all `.RES` files using ScummVM tools (`saga_unpack.exe`)
|
|
- Repack `.RES` files and override specific records (for fandubs / audio replacements)
|
|
- Optional: install patched `.RES` back into the game folder with automatic `.bak` backup
|
|
|
|
## Requirements
|
|
|
|
- **Windows**
|
|
- Python 3.10+ recommended
|
|
- ScummVM tools (Windows build) from:
|
|
- https://www.scummvm.org/downloads/#tools
|
|
|
|
Optional (for MP3/OGG/FLAC playback in the inspector):
|
|
- VLC media player
|
|
- `python-vlc`:
|
|
```bat
|
|
py -m pip install python-vlc
|
|
|
|
> WAV playback works without VLC (uses the built-in `winsound` module).
|
|
|
|
## Setup
|
|
|
|
1. Download ScummVM tools from:
|
|
|
|
* [https://www.scummvm.org/downloads/#tools](https://www.scummvm.org/downloads/#tools)
|
|
|
|
2. Extract the tools archive somewhere on your PC.
|
|
|
|
3. Place the Python script from this repo (`res_browser.py`) **in the same folder** as the ScummVM tools `.exe` files (so it can find `saga_unpack.exe`), e.g.:
|
|
|
|
```
|
|
scummvm-tools-...\
|
|
saga_unpack.exe
|
|
...
|
|
res_browser.py
|
|
```
|
|
|
|
## Running
|
|
|
|
From the tools folder:
|
|
|
|
```bat
|
|
py res_browser.py
|
|
```
|
|
|
|
## Usage (IHNM example)
|
|
|
|
* Click **Choose Folder…**
|
|
|
|
* Select your game folder (the one containing `VOICES*.RES`), **or** the `ScummVM` folder from the GOG layout (the app will try to detect `..\ihnm.ini` and use its `path=`).
|
|
|
|
* Click **Extract All .RES**
|
|
|
|
* Extracted files go to: `<game folder>\extracted\<RES name>\`
|
|
|
|
* Find the line/record you want in the left tree and use **Play** in the inspector.
|
|
|
|
* To replace a line:
|
|
|
|
* Select the record (e.g. `123.bin`)
|
|
* Click **Override selected record…**
|
|
* A rebuilt file is written to: `<game folder>\patched_res\<RES name>.patched.res`
|
|
|
|
* To install:
|
|
|
|
* Click **Install patched RES…**
|
|
* The original `.RES` is backed up as `.bak`.
|
|
|
|
## Notes / Tips
|
|
|
|
* For safest compatibility, use **PCM WAV** (16-bit) for replacements.
|
|
* If you only want to replace one monologue/sequence, override just the relevant record(s) and install the patched `.RES`.
|
|
|
|
## License
|
|
|
|
This project is licensed under the **GNU General Public License v3.0 (GPL-3.0)**.
|