# Sylpheed Godot A clean-room Godot 4 port of *Project Sylpheed: Arc of Deception*, starting with the menu shell: developer splash → intro video → title → main menu → submenus. **You need your own copy of the game.** Nothing in this repository is game content. An offline exporter reads the disc you supply and writes an open, moddable asset tree; the Godot project reads only that tree and never touches a disc format. ``` your disc ──▶ crates/sylpheed-export ──▶ export/ ──▶ port/ (Godot 4) (Rust; decoders come from JSON + PNG reads ONLY sylpheed-formats) + OGG + OGV open formats ``` ## Why the wall Two reasons, and the second is the interesting one: 1. Godot cannot read IPFB archives, RATC bundles, T8aD textures, XMA banks or WMV video, and it should not learn to. 2. **Modding is a goal of this port.** If the runtime reads the original formats, modding means reverse engineering. If it reads JSON and PNG, modding means opening a file. ## Where the knowledge comes from The decoders live in [`sylpheed-formats`][formats], pinned by revision — a separate project, where the reverse engineering happens. Its `docs/port/HANDOFF.md` is the contract: what has been decoded, what was measured off the running game, and what is known to be undecodable. Read it before assuming a value is on the disc. [formats]: https://git.mc02.dev/fabi/Syplheed-Reborn ## Layout | | | |---|---| | `crates/sylpheed-export/` | disc → open formats. Regenerates `export/` wholesale | | `port/` | the Godot 4 project | | `authored/` | decisions that are **not** on the disc, each with its reason | | `export/` | generated, gitignored, never hand-edited | | `docs/` | the mission, the format spec, the agent's loop prompt | ## Status Pre-P0. Nothing runs yet.