What Works Today
Full gameplay — All modes playable (Survival, Rush, Quests, Tutorial, Typ-o-Shooter)
Complete content — All weapons, perks, creatures, and quests
Deterministic simulation — Seeded runs and replay verification
Multiplayer — Local 2-4 players + online rollback netcode
Bug fixes — 17+ original bugs fixed (re-enable with
--preserve-bugs)Parity Verification Methods
The project uses multiple strategies to verify behavioral parity:1. Static Analysis
Ghidra Decompilation
Ghidra Decompilation
Source of truth for structure and behavior:
- Name/type maps in
analysis/ghidra/maps/ - Raw decompiles in
analysis/ghidra/raw/ - Function signatures and struct layouts
Binary Ninja Analysis
Binary Ninja Analysis
High-level IL for complex expressions:
- Float precision detection (
fconvert.t,fconvert.s) - Control flow patterns
- Cross-references
2. Runtime Evidence
Frida Captures
Frida Captures
Live instrumentation of original exe:
- State snapshots at specific ticks
- RNG traces
- Function call traces
- Memory dumps
analysis/frida/WinDbg Sessions
WinDbg Sessions
Interactive debugging:
- Breakpoint analysis
- Memory inspection
- Register state
analysis/windbg/3. Differential Testing
Structural Trace Comparison
Structural Trace Comparison
Field-by-field state comparison:Format:
.cdt (Crimson Differential Trace)Replay Checkpoints
Replay Checkpoints
Snapshot-based verification:Compares:
- Command hash (presentation)
- State hash (simulation)
- Per-field details
4. Fixture Tests
Known-good outputs from original:tests/test_ground_dump_fixtures.py
Coverage Status
Front-End (Menus)
| Feature | Status | Notes |
|---|---|---|
| Main menu | ✅ Complete | Layout, animations, terrain |
| Play Game panel | ✅ Complete | Mode select, player count |
| Quest select | ✅ Complete | All tiers, hardcore toggle |
| Options panel | ⚠️ Partial | Sliders + controls; no display mode editing |
| Statistics hub | ✅ Complete | High scores, databases, credits |
| Demo/attract | ✅ Complete | Variant sequencing, upsell |
| Mods menu | 🚫 Out of scope | UI only, no DLL loading |
Gameplay Modes
| Mode | Status | Notes |
|---|---|---|
| Survival | ✅ Complete | Endless waves, XP/perks |
| Rush | ✅ Complete | Timed scoring |
| Quests (1-5) | ✅ Complete | All tiers, spawn scripts |
| Tutorial | ✅ Complete | Stage progression, hints |
| Typ-o-Shooter | ✅ Complete | Typing mechanics |
Core Systems
| System | Status | Parity Validation |
|---|---|---|
| Player movement | ✅ Complete | Differential captures |
| Weapon firing | ✅ Complete | Shot counts match |
| Reload system | ✅ Complete | Timer precision verified |
| Creature AI | ⚠️ High | Edge cases in progress |
| Projectiles | ✅ Complete | Hit detection matches |
| Collision | ✅ Complete | Radius checks verified |
| Bonus system | ✅ Complete | Drop rates match |
| Perk system | ✅ Complete | Effects verified |
| Progression | ✅ Complete | XP/level thresholds |
| Terrain | ✅ Complete | Pixel-perfect fixtures |
Multiplayer
| Feature | Status | Notes |
|---|---|---|
| Local 2-4 player | ✅ Complete | Input frame normalization |
| Rollback netcode | ✅ Complete | Protocol v5 with resync |
| Lockstep fallback | ✅ Complete | LAN compatibility |
| Relay server | ✅ Complete | Room codes, NAT traversal |
Assets & Rendering
| Feature | Status | Notes |
|---|---|---|
| PAQ loading | ✅ Complete | Archive reader |
| JAZ decoder | ✅ Complete | Texture format |
| Terrain render | ✅ Complete | Fixture-verified |
| Sprite render | ✅ Complete | Atlas-based |
| Decal baking | ✅ Complete | FX queues |
| HUD overlay | ✅ Complete | Layout matches |
Audio
| Feature | Status | Notes |
|---|---|---|
| Music playback | ✅ Complete | Theme + 5 game tunes |
| SFX system | ✅ Complete | Variant selection |
| Audio routing | ✅ Complete | Event-based |
| Volume control | ✅ Complete | From crimson.cfg |
| Reflex Boost pitch | ✅ Complete | Time-scaled SFX |
Persistence
| Feature | Status | Notes |
|---|---|---|
| crimson.cfg | ✅ Complete | Config persistence |
| game.cfg | ⚠️ High | Core fields verified |
| High scores | ✅ Complete | Per-mode tables |
| Replays (.crd) | ✅ Complete | Recording + verification |
Known Gaps
1. Options Panel Display Settings
2. Deep Creature AI Edge Cases
Most creature behaviors match. Remaining gaps are specific edge cases being validated via differential captures.
3. Rollback Stress Testing
Rollback is primary netcode, but extreme packet impairment scenarios need broader coverage:- Loss/reorder/jitter extremes
- Long session stability
- Reconnect/resync under stress
Out of Scope
These features are intentionally not implemented:Native DLL Mods
Native DLL Mods
The Python rewrite does not support loading/executing original DLL mods.Rationale: Not practical in Python architecture.
Other Games / Shareware Ads
Other Games / Shareware Ads
Native Online Score Submission
Native Online Score Submission
Local high scores are supported, but not original online submission.Direction: Use headless verification for score legitimacy instead.
Differential Session Tracking
Active parity probes and per-capture outcomes are tracked in:docs/frida/differential-sessions.md— Session indexdocs/frida/differential-sessions/session-*.md— Per-session details
- Float32 spill points in creature movement
- Tau-boundary angle handling
- Per-weapon projectile behavior
Verification Commands
Next Steps
Float32 Policy
Why float precision matters
Original Bugs
Bugs fixed in rewrite
Deterministic Pipeline
How parity is enforced
Replay Module
Verification tools