Contribute
The project is a Rust workspace:
| Path | What it contains |
|---|---|
apps/game | The game (binary banished), for desktop and browser |
apps/viewer | A browser for the game's models, textures, sounds and dialogs |
apps/cli | Command-line helpers (for example, audio export) |
crates/game | The game rules, checked against the original |
crates/formats | Readers for the game's .pkg, .crs, mesh, texture, sound and save formats |
crates/ui, crates/gfx, crates/audio, crates/wma | Interface, rendering, audio, and the WMA decoder |
docs/ | Everything we learned about how the original works |
tools/ | Data extraction, emulator checks, analysis scripts, logo generator |
bash
tools/extract-assets.sh # copy your game data into game-data/ (git ignores it)
cargo test --release # tests that need game data are skipped if game-data/ is missing
cargo run -p banished-viewer --releaseRead AGENTS.md before you contribute, by hand or with an AI agent. It contains the project rules, the checks to run before each commit, and a map of the code. docs/FINDINGS.md is the first of the research notes. docs/PROCESS.md explains the method. Issues and pull requests use the templates in .github/.
Report a problem
If something works differently from the original game, or does not work, please open an issue. The forms ask for the information we need.