Worklog¶
Reverse-chronological log of notable repo changes, grouped by day.
2026-01-29¶
- Implemented Rush mode and wired Quest gameplay end-to-end (HUD/progress, completion detection, results/failed screens, unlock popups, and retry flows) with quest completion persistence.
- Added playable Tutorial mode (timeline director) and TypoShooter mode (typing buffer, spawn loop, UI overlays) with extensive parity fixes (cursor/input box/text layout, firing loop) and custom dictionary support.
- Built out highscores: list screen, per-run stat tracking (shots, most-used weapon, quest run stats), and per-mode file mapping, with new tests for ranking and multiplayer behaviors.
- Advanced multiplayer support: honor configured player count, stack the HUD for 2–4 players, sync perk counts, and tint player sprites appropriately.
- Improved gameplay/perk parity: dodge perks, low-health timers, death timer hit decay, Reflex Boost scaling, clip-size perk application, bonus roll mapping/stacking, and mode-gated bonus drops.
- Expanded creature parity: ranged attacks and split-on-death; adjusted render ordering (original type order, split player passes) plus overlays/animation holds/shadow scaling fixes.
- Major rendering/FX passes: world layering + global alpha test emulation, integrated particle/sprite effect pools, shield/radioactive aura effects, terrain fallbacks, and terrain FX queue baking during draw.
- Strengthened demo/trial evidence tooling: trial overlay implementation + debug commands, Frida traces/validators/summarizers, new
justhelpers, and docs/progress audits.
2026-01-28¶
- Large rewrite refactor: introduced persistence + mode system, extracted boot/menu views and screen fade, and split survival mode and world renderer/audio router.
- Centralized asset loading via a Grim
TextureLoaderpass, removed noop unloads, hard-failed missing assets, and added guards for asset loading/import boundaries. - Aligned perk selection/prompt UI with the decompile: added the perk prompt panel, faded gameplay behind the menu, and fixed hover/input gating and rotation/layout details.
- Added/adjusted combat rendering details: reload clock gauge, muzzle flash overlay, bonus pickup rendering/FX, and delayed blood splatter baking.
- Fixed creature animation and rendering issues: unpacked anim frames, aligned anim args, corrected spider flip, applied player heading in the renderer, and restored quad bullet trails.
- Improved audio parity: emulate mute-fade playback, start the survival tune on first hit, and fixed first-shot SFX suppression and hit-SFX routing by mode.
- Expanded analysis/tooling/docs: import-linter boundary checks + duplication report tooling, new screen-fade Frida trace, additional Ghidra labels (player aux timer/data maps) with regenerated exports, and plan/triage doc updates.
2026-01-26¶
- Introduced
GameWorldcore and refactored survival around it; rendered terrain/sprites/decals and drove demo mode viaGameWorldwith new rendering/sim helpers. - Built out the Play Game flow: mode select panel, quest select menu, perk selection flow, and statistics screen; matched perk menu layout and classic menu shadow blend.
- Added/expanded debug views for survival, projectiles (FX lab), camera, player sprites, decals, and small-font/vector-font comparisons (with screenshot hotkey).
- Improved gameplay parity: projectile behavior, pellet spreads/rocket splash + gameplay SFX, camera bounds/scale/shake, terrain render texture sampling, and player overlay sprite passes.
- Advanced creature parity (sprite rotation, movement/turning, anim scaling, staged deaths/corpse decals, and
fx_detailshadow) with Frida traces for sprite/anim-phase timing. - Large Ghidra typing pass: quest/player/perk/bonus/creature/audio/effect tables,
ui_button_t, and hotspot globals; added a DAT-hotspots report, fixed Grim2D vtable conventions, and regenerated exports/metrics/decompiles. - Updated docs for survival/combat status, weapon spread heat, fonts, and player sprite UV/recoil offsets; pruned addressed incoming notes.
2026-01-25¶
- Implemented the options screen and aligned options panel layout to the original; added Frida tracing for options panel behavior.
- Implemented in-game console UI with startup commands/docs; matched console backdrop colors and mono font advance.
- Added HUD overlay scaffolding and aligned layout with the decompile; added bonus pickups + sandbox rendering and matched bonus picker distribution/constants.
- Added survival XP progression and perk auto-pick; wired
player_updateruntime glue and added a player sandbox view. - Implemented
game.cfgstatus persistence; built FX pools + FX queue baking; extracted AI targeting logic and cleaned up AI internals. - Added SFX loading/playback, split music and SFX modules, and mapped full SFX key/id tables; updated docs (survival/player contracts, status refresh, plan checkboxes) and tooling (py-spy recipe, Python 3.13 requirement).
2026-01-24¶
- Added a demo upsell purchase screen, aligned
demo_mode_startsequencing, and improved purchase-screen copy/layout/backplasma to match the original; added an idle attract trigger. - Ported and tested a large batch of spawn templates and timelines across tutorial/survival/rush/quest modes (spawn slots, milestone/wave ticks, quest timeline/tick); added
SpawnIdand builder-based spawn-plan dispatch. - Added spawn-plan tooling: CLI commands, allocation reporting, and a debug view; simulated spawn slot ticking in views.
- Implemented projectile pools and default projectile meta/damage scaling; fixed bonus args + anim-phase resets and preserved
phase_seedrandomness. - Matched menu slide animations and sign shadow pass, and kept the logo sign static between menu screens; added Frida tracing for logo pivot behavior.
- Fixed small-font rendering to be pixel-perfect; documented
fx_detailflags/preset mapping and enabledfx_detailshadows by default. - Added a Frida demo shareware patch script and improved full-version check handling.
- Named
creature_spawn_slot_allocand additional menu/logo callbacks in Ghidra; regenerated exports; enabled pytest-cov coverage reporting by default.
2026-01-23¶
- Ported creature spawning: spawn-plan builder/templates, spawn-id checklist, creature spawning docs, and a
crimson.creaturespackage refactor. - Improved terrain/ground parity: fixed density shift, stamp pivot/orientation, RNG consumption ordering, alpha handling, and first-frame black ground; added partial generation steps and decal baking helpers.
- Expanded Frida terrain tooling (stamp draw tracing, RNG-state capture, auto-dump on generate) and improved VM share file syncing.
- Added/expanded ground dump and quest builder tests (parity fixtures, stamp triplets, diff persistence, and snapshot rounding).
- Refactored engine/views helpers and aligned quest title/level UI overlays.
- Improved font fallbacks/accuracy by preferring PAQ fonts and matching Grim2D mono glyph positioning.
- Advanced demo/menu work with a teaser gameplay sim, upsell overlay, placeholder menu screens, panel layout fixes, terrain stability across menus, and animated quit/exit behavior.
2026-01-22¶
- Added IDA headless export/decompile flow, applied Ghidra maps during exports, and normalized signature parsing/typedef handling.
- Regenerated Ghidra and Binary Ninja exports (including full call graph) with updated Grim2D format wrapper signatures.
- Added a decompile signature diff tool and zipped additional analysis artifacts.
- Added a WSL Ghidra sync helper and documented the cross-OS
ghidra-syncworkflow. - Mapped the mod SDK API and documented the demo/attract mode loop, plus demo-mode scaffolding and labeled globals.
- Improved Frida workflows (attach-only enforcement, configurable log paths, shortcut docs).
- Reworked docs/nav structure, metrics snapshot, status lifecycle, and assorted reference alignments.
2026-01-21¶
- Mapped and expanded mod API structs/vtables, highscore/mod info structs, and additional Ghidra data maps (creatures, projectiles, effects, UI, config/save).
- Updated Grim2D exports and vtable naming, plus Binary Ninja map/import workflows and Ghidra name-map function creation.
- Improved menu and terrain rendering parity (layout, scaling, pivot, sampling, glow pass, hover state, flicker fixes).
- Added a quest-driven ground preview and aligned ground rendering with config sizing.
- Documented menu state0 and terrain pipeline, and added audio/weapon struct docs.
- Added Frida mod API probe and tooling docs, plus zensical cheatsheet/markdown fixer.
- Added a
just zip-decompilecommand.
2026-01-20¶
- Added entrypoint/boot pipeline scaffolding (
crimsonstep-1 runner), boot logs/crash-to-file, cvars/console command wiring, and splash/logo timing improvements. - Documented
crimson.cfgand added loaders/inspectors, defaults alignment, and keybind/name slot docs. - Added/expanded Raylib debug views (sprites, terrain, particles, UI, fonts) plus atlas/terrain/particle/icon previews and quest title layout matching.
- Improved font handling (mono font behavior, filtering, grid alignment, quest title/number positioning) with supporting docs.
- Added Frida probes/scripts for quest title colors, atlas UV selection, and boot music, with docs and hook fixes.
- Updated Ghidra/Binja exports/signatures and added the IGrim2D type header and safe signatures.
- Added bonus/perk code tables, creature type enum, and online high score protocol notes.
- Added screenshot capture for all views (hotkey
P, saves toscreenshots/).
2026-01-19¶
- Implemented quest builders for tiers 1–5, quest metadata, and a CLI for quest dumps.
- Added Frida tooling for quest build analysis and runtime probes (mode bytes, counts, logs).
- Documented console hotkey/secrets flow and updated Ghidra maps/exports accordingly.
- Added a CDB bridge for interactive sessions and expanded WinDbg workflow docs/justfile recipes for runtime sessions.
- Updated detangling notes for config flags and hardcore/full-version behavior.
2026-01-18¶
- Large Ghidra naming/mapping passes across Grim2D, audio, assets, CRT, and gameplay helpers.
- Synced third-party headers and documented version evidence (DirectX/DirectInput, libpng+zlib, ogg/vorbis).
- Built out Frida workflow: hooks, logging, reducers, session templates, and evidence summaries.
- Investigated secrets/credits paths (credits screen mapping, credits-flag probes/watchers, evidence summaries).
- Added a
game.cfg(save/status) editor tool. - Expanded Grim2D API evidence and runtime validation docs.
2026-01-17¶
- Massive data-map labeling for players, projectiles, effects, bonuses, and gameplay counters.
- Expanded Grim2D vtable mapping/evidence and related docs.
- Added atlas export tooling and spawn template generators; expanded atlas/FX docs.
- Added repo tooling (justfile, ghidra pipelines) and headers for analysis.
- Documented weapon/creature/projectile/effect structures and mappings.
2026-01-16¶
- Initialized the repo and extraction pipeline (PAQ/JAZ via Construct) with docs.
- Added an initial small-font renderer and weapons table parsing module, with supporting format notes.
- Added atlas slicing helpers and sprite atlas documentation.
- Established entrypoint tracing, detangling notes, and Ghidra name-map workflows.
- Added early Grim2D mapping docs and metrics tracking.