feat: spin off Pokémon ROM-hack catalog from homelabstack
Curated knowledge base + pipeline for the valhalla Pokémon ROM-hack collection, moved out of the homelabstack infra repo on 2026-06-06 so that repo stays focused on the homelab. - pokemon-romhack-vault/ Obsidian vault: 75 hack notes + Index/Types/Platform MOCs (generated by build-romhack-vault.py) - scripts/ build-romhack-vault, romhack-import/fetch/apply - pokemon-romhacks-wanted.md manual-acquisition list (gated hacks) - drop/ gitignored ~1.3GB binary staging area The ROMs live on valhalla (/storage1/Emulation) served by the RomM stack, which stays in homelabstack (stacks/roms).
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
# Pokémon ROM Hacks
|
||||
|
||||
Curated knowledge base + tooling for the Pokémon ROM-hack collection in the
|
||||
valhalla homelab library. **Spun off from the `homelabstack` repo on 2026-06-06**
|
||||
to keep that repo focused on infrastructure.
|
||||
|
||||
The ROM-hacks themselves live on **valhalla** under the EmuDeck/RomM tree at
|
||||
`/storage1/Emulation/roms/<platform>/Hacks/` and are served by the RomM stack
|
||||
(`roms.ginnoir.com`) — that deployment stays in `homelabstack` (`stacks/roms/`).
|
||||
This repo is the *catalog + pipeline*, not the ROMs.
|
||||
|
||||
## Layout
|
||||
|
||||
| Path | What |
|
||||
|---|---|
|
||||
| `pokemon-romhack-vault/` | Obsidian vault — one note per hack (75), plus Index/Types/Platform MOCs. Open this folder as an Obsidian vault. **Generated** by `scripts/build-romhack-vault.py`. |
|
||||
| `pokemon-romhacks-wanted.md` | Manual-acquisition list — worthwhile hacks gated behind Discord/hackdex/Drive that can't be auto-fetched. |
|
||||
| `scripts/build-romhack-vault.py` | Regenerates `pokemon-romhack-vault/` from the in-script `HACKS` dataset. Edit the dataset, re-run. |
|
||||
| `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. |
|
||||
| `drop/` | **gitignored** staging area (~1.3 GB) of ROM/patch binaries pending import. Never committed. |
|
||||
|
||||
## Regenerating the vault
|
||||
|
||||
```
|
||||
python scripts/build-romhack-vault.py
|
||||
```
|
||||
|
||||
Writes the vault to `pokemon-romhack-vault/` (the output path is resolved relative
|
||||
to `scripts/`, so keep `scripts/` a sibling of the vault dir). The in-script
|
||||
`HACKS` dataset is the single source of truth — add a row and re-run to add a hack.
|
||||
|
||||
### Vault schema
|
||||
|
||||
Each hack note carries Obsidian **properties** (`platform`, `base`, `version`,
|
||||
`status`, `type`, `generation`, `source`) so the Dataview/Bases plugins work, and
|
||||
**tags** (`#platform/gba`, `#type/difficulty`, `#status/complete`, `#base/firered`)
|
||||
so search/graph work with zero plugins. `library_path` points at the file under
|
||||
`roms/<platform>/Hacks/` on valhalla.
|
||||
|
||||
## Live Obsidian vault
|
||||
|
||||
A richer working copy of this catalog lives in ginnoir's self-hosted Obsidian
|
||||
vault (CouchDB / obsidian-livesync, `obsidian.ginnoir.com`) under
|
||||
**`Pokémon ROM Hacks/`**:
|
||||
|
||||
```
|
||||
Pokémon ROM Hacks/
|
||||
_Claude.md — ROM-hack vault ops: schema, update patterns, new-hack checklist
|
||||
Index.md — all 75 hacks (Dataview + static)
|
||||
Play Queue.md — play-tracking dashboard
|
||||
Hacks/ — 75 notes, one per hack
|
||||
Bases/ — per-base MOCs (FireRed / Emerald / Crystal / Ruby / NDS)
|
||||
Platforms/ — per-system MOCs (GBA / GBC / GB / NDS)
|
||||
```
|
||||
|
||||
Access it via the Obsidian MCP (`mcp__obsidian__*`). The CouchDB sync stack
|
||||
itself is deployed from `homelabstack` (`stacks/notes/`).
|
||||
|
||||
## Acquisition policy
|
||||
|
||||
Pre-3DS handhelds (gb/gbc/gba/nds) + pre-Wii consoles. Direct, non-anti-bot
|
||||
sources only for auto-fetch; gated hacks go in `pokemon-romhacks-wanted.md` for
|
||||
manual hand-off. No offensive/"shitpost" content (e.g. Clover excluded).
|
||||
Reference in New Issue
Block a user