Skip to content

Progress metrics

This page tracks progress toward 100% fidelity with the original game.

Feature parity dashboard

Legend: โœ… complete ยท ๐Ÿšง in progress ยท โฌœ not started

Feature Scoping Analysis Validation Parity Notes
Formats (PAQ/JAZ) โœ… โœ… โœ… โœ… Full extraction & conversion pipeline working.
Quest Logic โœ… โœ… โœ… โœ… All 50 builders dumped, validated, and mirrored in Python.
Terrain โœ… โœ… โœ… ๐Ÿšง Rendering logic validated; decal baking wired into Survival.
Boot Sequence โœ… โœ… โœ… ๐Ÿšง Logos, loading steps, and music handoff implemented.
Menu System โœ… โœ… ๐Ÿšง ๐Ÿšง State 0: quit wired; panel/back positions + slide animation match; terrain stable across menu screens; sign shadow pass matches when fx_detail is enabled.
Demo / attract loop โœ… ๐Ÿšง โฌœ ๐Ÿšง Variants + spawn ids identified; idle trigger + variant sequencing implemented (idle threshold still TODO); trial overlay implemented (demo-build validation pending).
Weapons โœ… โœ… ๐Ÿšง ๐Ÿšง Core weapons (pistol/AR/shotgun/minigun/rocket) use pellet spread + rocket splash; basic fire/reload/hit SFX hooks wired; remaining special weapons pending.
Creatures: structs โœ… ๐Ÿšง โฌœ โฌœ Creature pool field map is medium-confidence; needs more xrefs + runtime checks.
Creatures: spawning โœ… ๐Ÿšง โฌœ โฌœ Spawn templates are an algorithm (formations/spawn slots/tail mods); plan rewrite started.
Creatures: animations โœ… ๐Ÿšง โฌœ โฌœ Atlas/frame selection wired into Survival; parity tuning in progress.
Creatures: AI โœ… ๐Ÿšง โฌœ โฌœ AI modes partially mapped; needs runtime evidence and edge cases.
Creatures: other โœ… ๐Ÿšง โฌœ ๐Ÿšง Contact damage/death/bonus hooks live; death SFX hooks wired; ranged attacks + full audio behaviors pending.
Player โœ… โœ… ๐Ÿšง โฌœ Input & movement mapped; state struct partially validated.
Grim2D โœ… โœ… โœ… โฌœ Vtable mapped & validated; implementation deferred.
Save/Config โœ… โœ… โฌœ โฌœ File formats reversed; editor tools built.

Ghidra maps

Map Total entries crimsonland.exe grim.dll With signatures With comments Duplicate names
Name map 1167 695 472 1147 1144 0
Data map 855 754 101 n/a 855 0

Decompiled data symbol coverage

Program Labeled symbols Total data symbols Coverage
crimsonland.exe 387 2576 15.02%
grim.dll 84 479 17.54%
Total 471 3055 15.42%

Status definitions

See Work status model for the full lifecycle:

  1. Scoping โ€” We know it exists; location identified
  2. Analysis โ€” Static analysis complete; logic mapped in Ghidra
  3. Validation โ€” Runtime-confirmed via Frida/WinDbg
  4. Parity โ€” Reimplemented in Python; matches original exactly

Known behavior deltas

Intentional divergences from the original:

  • None recorded yet.

Demo / attract loop tasks (rewrite)

Legend: โœ… complete ยท ๐Ÿšง in progress ยท โฌœ not started

  • โœ… Identify spawn ids used by demo variants (0x24, 0x25, 0x34, 0x35, 0x38, 0x41) and port to spawn-plan rewrite.
  • โœ… Fix demo loop sequencing to match demo_mode_start (variant index modulo 6, purchase interstitial timing, restart rules).
  • โœ… Add menu idle timer trigger (attract starts after inactivity; resets on input).
  • โœ… Implement demo upsell overlay (upsell "Want more ..." message + progress bar).
  • โœ… Implement demo_trial_overlay_render UI + timing rules.
  • โฌœ Validate trial overlay behavior against a demo build.
  • โœ… Implement full demo_purchase_screen_update purchase screen UI.
  • โœ… Replace DemoView toy simulation with real gameplay systems (creature alloc/update, weapons/projectiles, collision/damage, terrain bounds).