# Einhander Static recompilation of **Einhander** built on [psxrecomp](https://github.com/mstan/psxrecomp) and [recomp-ui](https://github.com/mstan/recomp-ui). _Add a short pitch in catalog_identity.json / README._ | | | |---|---| | Players | 1 | | Region | USA | | Publisher | - | | Year | - | Scaffolded with the New Project Layout. See `psxrecomp/docs/GAME_PROJECT_SETUP.md` for the full flow. ## Legal You must own the original game. Disc images under `disc/` are gitignored and must never be committed. Retail BIOS dumps are not redistributed; OpenBIOS is used for Generate unless you supply your own SCPH locally. Default app icon: `assets/psxrecomp.ico` (and `.png` / `.svg`) — RetComM-themed controller mark from `psxrecomp/assets/`. Windows builds embed it via `APP_ICON`. Optional box art under `launcher_assets/img/` may come from [libretro-thumbnails](https://github.com/libretro-thumbnails/libretro-thumbnails) (`Named_Boxarts`); see `BOXART_SOURCE.txt` when present. ## Quick start (dev) ```bash git submodule update --init --recursive ./psxrecomp/tools/ci/build_emitters.sh python3 psxrecomp/psxrecomp_cli.py generate \ --config game.toml --project-root . --disc disc/.cue cmake -S . -B build-release -G Ninja -DCMAKE_BUILD_TYPE=Release cmake --build build-release --target psx-runtime ``` Zip prefix for CI artifacts: `einhander`. ## Symbols Progressive map: `symbols.toml` → `python3 tools/sync_symbols.py` → `psx_symbols.h` (`PSX_FN_*`). See `psxrecomp/docs/SYMBOLS.md`. ## Framework pins Submodule gitlinks (`psxrecomp`, optional `recomp-ui`, nested `recomp-net`) are authoritative. `framework_pins.txt` is an optional scaffold snapshot; release CI logs SHAs with `record_pins.sh` but builds whatever the gitlinks resolve to. Bump submodules deliberately — do not float on `main`/`master` in release CI.