refactor: standardize hack filenames to [Hack] and flatten to platform root

Switch the library naming convention from "Pokemon - <Name> (Hack)" to
"Pokemon - <Name> [Hack][version][tags]", and place hacks in the platform
root (roms/<plat>/) instead of a Hacks/ subfolder. Applied across the live
valhalla library (272 hack/fan-game files) via scripts/standardize-names.py.

- romhack-import.py / romhack-fetch.py: emit [Hack], write to roms/<plat>/
- romhack-pc-migrate.py: emit [Hack]
- build-romhack-vault.py (archived): update documented library_path
- standardize-names.py: new one-shot, self-fetching standardizer (idempotent;
  pipes \n-only bytes over SSH to avoid Windows CRLF corrupting filenames)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
ginnoir
2026-06-23 18:08:31 -05:00
co-authored by Claude Opus 4.8
parent 52ee1b98a1
commit ae56d101b7
6 changed files with 112 additions and 19 deletions
+2 -2
View File
@@ -8,7 +8,7 @@ and were never folded into RomM. This script places them as single archives into
the `windows` RomM platform so RomM catalogs them and the Playnite plugin can
download + extract + launch them like any other game.
Target: /storage1/Emulation/roms/windows/Pokemon - <Hack> (Hack).<ext>
Target: /storage1/Emulation/roms/windows/Pokemon - <Hack> [Hack].<ext>
- `windows` is the RomM "Microsoft Windows" platform (NOT excluded in RomM's
config.yml; `pc` IS excluded, so do not use it).
- Files go in the platform ROOT (mirrors the console-hack convention); a
@@ -166,7 +166,7 @@ def main():
src_ext = os.path.splitext(chosen)[1].lower()
will_repack = repack and src_ext in REPACK_EXT
out_ext = ".zip" if will_repack else src_ext
out_name = f"Pokemon - {clean_name(title)} (Hack){out_ext}"
out_name = f"Pokemon - {clean_name(title)} [Hack]{out_ext}"
dest = os.path.join(DEST, out_name)
note = " [repack rar/7z->zip]" if will_repack else (
" [RAR as-is; extract manually if Playnite balks]" if src_ext == ".rar" else "")