Crimsonland reverse engineering notes¶
Reverse engineering and rewriting Crimsonland v1.9.93 in Python + raylib.
Current state
The rewrite is a playable full game: boot → menus → in-game for Survival, Rush,
Quests, Tutorial, and Typ-o-Shooter, with core UI flows, terrain/sprite/decal
rendering, and music + most gameplay SFX. Run the latest packaged build via
uvx crimsonland@latest, or from a checkout with uv run crimson. Remaining
work is mainly parity polish and content breadth (weapons/creatures),
multiplayer input separation, online scores/mods, and continued map/type recovery.
Analysis¶
Rewrite (Python + raylib)¶
- Rewrite overview
- Rewrite status / parity gaps
- Float parity policy
- Rewrite tech tree
- Terrain (rewrite)
Crimsonland.exe¶
- Crimsonland.exe overview (by concern)
- State machine
- State id glossary
- Frame loop
- Gameplay glue
- Rendering pipeline
- UI and menus
- Main menu (state 0)
- Screens and flows
- Demo / attract mode
- Online high scores
- Mods (CMOD plugins)
- Terrain pipeline
Formats & pipeline¶
- Formats overview
- PAQ archives
- JAZ textures
- Fonts
- Sprite atlas cutting
- Extraction pipeline
- Python executable spec
- Save/status file (game.cfg)
- Config blob (crimson.cfg)
Data tables & IDs¶
- Weapon table
- Weapon ID map
- UI weapon icons
- Perk ID map
- Perks (behavior reference)
- Bonus ID map
- Bonus drop rates
- Game mode map
- Quest builders
- Audio