
pokesave-cathode
A clean-room save editor for the Pokémon Cathode romhack — Tauri 2 + Rust + Svelte, validates and round-trips the .sav format including the Cathode flag block.
Overview
A native save editor for the Pokémon Cathode romhack. Built on Tauri 2 (Rust backend + system webview frontend) so the binary is small, fast, and feels native on every OS. The save parser is clean-room, sourced from the romhack’s own headers and data files — no vendored dependencies on Emerald libraries that don’t know about Cathode’s custom flag block, custom moves, custom maps, or custom trainers.
What it does
- Open any
.savwritten by a Pokémon Cathode playthrough on real hardware or in an emulator - Edit your party, PC boxes, items, money, trainer card, Pokédex, event flags, badges, time played
- Edit Cathode-specific state: Cathode flag block (0x4A0–0x4BF),
MOVE_METEOR_MINDavailability,TRAINER_VEXdefeat, custom maps unlocked, custom items - Validate the save (checksum + sector signature + slot counter) on open and on every save
- Round-trip safe: editor edits don’t introduce drift; checksum and slot counter are recomputed correctly so the game reads the save as native
Why a dedicated editor
The romhack introduces a Cathode flag block at offsets 0x4A0–0x4BF and several custom items / moves / trainers that the vanilla Emerald save libraries don’t understand. Reusing a vanilla save editor would silently corrupt or silently drop the Cathode-specific state. This editor’s parser is sourced directly from the romhack’s headers, so it knows about every field that matters to a Cathode playthrough.
Stack
- Tauri 2 — Rust backend, system webview frontend, ~5 MB binary
- Svelte + TypeScript for the UI (no virtual DOM, fast on low-end hardware)
- pnpm 9.15.4 pinned (pnpm 11 needs Node 22, the build image is on Node 20)
- Rust 1.89 (Tauri’s current dependencies require rustc 1.88+)
Status
First working build landed in 8 commits across the initial scaffold week. Mac/Windows/Linux packages are queued in the project’s GitLab Package Registry (publishing on the next v* tag). Round-trip safety verified end-to-end: open → edit → save → re-open in mGBA → continue playthrough from the edited save with no softlocks.