feat: add PC fan-game migration tooling for RomM windows platform
Place RPG-Maker/Essentials hacks into RomM's windows library with dry-run migration, Playnite Game.exe launcher, and Ludusavi save-path manifest.
This commit is contained in:
@@ -21,6 +21,8 @@ served by the RomM stack (`roms.ginnoir.com`) — deployed from `homelabstack`
|
||||
| `scripts/romhack-import.py` | Import a drop folder of mixed ROMs/patches/docs into the valhalla library (validate, clean-name, apply patches, archive). Runs on valhalla. |
|
||||
| `scripts/romhack-fetch.py` | Acquire + patch + place worthwhile hacks from direct (non-gated) sources. Manifest-driven. Runs on valhalla. |
|
||||
| `scripts/romhack-apply.py` | Apply a single IPS/BPS/UPS patch to a base ROM with checksum verification. |
|
||||
| `scripts/romhack-pc-migrate.py` | Place the PC/Windows fan-games (RPG-Maker/Essentials) from the scrape staging tree into RomM's `windows` platform so RomM catalogs + serves them like the console hacks. Dry-run default; `--apply` copies, repackaging `.rar`→`.zip`. Runs on valhalla. |
|
||||
| `scripts/launch-pc-hack.ps1` | Playnite custom-emulator launcher for the PC hacks: finds `Game.exe` in the RomM-downloaded folder, sets CWD, runs it. Runs on the Windows client. |
|
||||
| `scripts/build-vault-mocs.py` | Regenerate the vault's static MOC tables + header counts (Index/Platforms/Bases) from the notes. Read-only on `Hacks/*.md`. Re-run after any note change. |
|
||||
| `scripts/scrape_match.py` | Match the Discord-scrape `metadata.json` entries to vault notes → `.scrape/_match_report.json` (curated-overlap / discord-match / unmatched). |
|
||||
| `scripts/enrich_vault.py` | Synthesize the scrape into notes: `backfill` (frontmatter for imports), `merge` (scrape into curated), `create` (new notes), `rebuild` (normalize import bodies). `--apply` writes; default dry-runs to `.scrape/_preview/`. |
|
||||
@@ -62,6 +64,34 @@ Art for every scraped hack is web-served at
|
||||
`https://romhacks-files.ginnoir.com/_meta/<scrape_dir>/<file>` (copied into the
|
||||
Caddy-served `library/_meta/` tree on valhalla).
|
||||
|
||||
## PC / Windows hacks
|
||||
|
||||
The 40 `platform: PC` catalog entries are RPG-Maker XP / Pokémon Essentials
|
||||
fan-games (`Game.exe` + `Data/*.rxdata`), not emulatable ROMs. 32 have files in
|
||||
the scrape staging tree (`/storage1/labdata/romhacks/library/<dir>/`); the other 8
|
||||
are gated (Reborn, Rejuvenation, Infinite Fusion, …) and live catalog-only on the
|
||||
vault `Wanted` list.
|
||||
|
||||
They are served through the **same RomM stack** as the console hacks, under the
|
||||
`windows` platform (RomM's "Microsoft Windows"; note `pc` is excluded in RomM's
|
||||
`config.yml`, `windows` is not). Each hack is a single archive in the platform
|
||||
**root** — `Pokemon - <Hack> (Hack).zip` — NOT in a subfolder (a subfolder would
|
||||
make RomM treat the whole thing as one multi-file game).
|
||||
|
||||
```bash
|
||||
# place the PC hacks into roms/windows/ (dry-run first)
|
||||
python3 scripts/romhack-pc-migrate.py --catalog wiki/catalog.json
|
||||
python3 scripts/romhack-pc-migrate.py --catalog wiki/catalog.json --apply
|
||||
# then scan just that platform in RomM, or via API
|
||||
```
|
||||
|
||||
- **Windows play:** RomM Playnite plugin downloads + extracts the zip, then
|
||||
launches via `scripts/launch-pc-hack.ps1` registered as a Custom emulator.
|
||||
- **Steam Deck:** no automated path — RetroDECK has no Windows runtime. mkxp-z
|
||||
ports (ship `mkxp.json`) run natively on Linux; the rest need manual Proton.
|
||||
- **Save sync:** RomM's save sync is emulator-only (won't cover these). Use
|
||||
Ludusavi + Syncthing; Essentials saves land in `~/Saved Games/<Game.ini Title>/`.
|
||||
|
||||
## Acquisition policy
|
||||
|
||||
Pre-3DS handhelds (gb/gbc/gba/nds) + pre-Wii consoles. Direct, non-anti-bot
|
||||
|
||||
Reference in New Issue
Block a user