Skip to content

Progress metrics

Status: Tracking

This page tracks how much of the game we have decoded or reversed. Update the numbers after each Ghidra regen or when a format/system is confirmed.

Binary coverage

Counts come from analysis/ghidra/raw/*_summary.txt and analysis/ghidra/raw/ghidra_analysis.log. “Named/inferred” counts functions whose names are not the default Ghidra stubs (FUN_*, thunk_FUN_*, LAB_*). “Typed signature” means the function signature does not start with undefined/undefinedN. “GDT hits” count signature changes vs the previous regen (from git history).

crimsonland.exe

  • Total funcs: 819
  • Thunks: 26
  • User-defined: 793
  • Decompiled: 792 (99.9% coverage)
  • Named/inferred: 392 (47.9%)
  • Typed signatures: 446 (54.5%)
  • External typed: 0 / 0
  • GDT hits (since previous regen): 1
  • Last regen: 2026-01-18

grim.dll

  • Total funcs: 960
  • Thunks: 40
  • User-defined: 920
  • Decompiled: 920 (100% coverage)
  • Named/inferred: 256 (26.7%)
  • Typed signatures: 298 (31.0%)
  • External typed: 0 / 0
  • GDT hits (since previous regen): 0
  • Last regen: 2026-01-18

Total

  • Total funcs: 1779
  • Thunks: 66
  • User-defined: 1713
  • Decompiled: 1712 (99.9% coverage)
  • Named/inferred: 648 (36.4%)
  • Typed signatures: 744 (41.8%)
  • External typed: 0 / 0
  • GDT hits (since previous regen): 1
  • Last regen: 2026-01-18

Ghidra map progress

Counts come from analysis/ghidra/maps/name_map.json and analysis/ghidra/maps/data_map.json. Run uv run python scripts/update_map_progress_docs.py to refresh.

Map Total entries crimsonland.exe grim.dll With signatures With comments Duplicate names
Name map 648 410 238 619 625 0
Data map 754 654 100 n/a 754 0

Data map coverage (decompiled symbols)

Coverage is based on the decompiled C output, counting unique DAT_*/PTR_DAT_* symbols plus applied data-map labels. Run uv run python scripts/update_map_progress_docs.py to refresh.

Program Labeled symbols Total data symbols Coverage
crimsonland.exe 571 2850 20.04%
grim.dll 83 478 17.36%
Total 654 3328 19.65%

Docs

Formats and systems

PAQ archives

JAZ textures

Sprite atlas cutting

Extraction pipeline

Weapon table

Data tables

Doc Entries Notes
Weapon table 42 (40 named) 2 unnamed entries in WEAPON_TABLE.
Perk ID map 58 IDs 0-57 listed.
Bonus ID map 15 IDs 0-14 listed; id 0 unused.
Game mode map 5 Includes hidden tutorial mode.
SFX ID map 72 + 3 aliases Main map plus alias table.
SFX labels 72 + 3 aliases Derived from the SFX ID map.
SFX usage 40 Top callsite rows listed.

Rewrite progress

Zig modules

  • Value: 0
  • Notes: rewrite/ is the canonical clean layer; no Zig modules committed yet.

Header packs

  • Value: 1
  • Notes: third_party/headers (PNG/JPEG/zlib/ogg/vorbis + DirectX/DirectSound refs).