Commit Graph

  • e52186a268 docs(gfx): correct 'immediate-mode slot-0' -> engine is RETAINED (native-verified) gamer147 2026-07-08 08:24:30 -04:00
  • 89e4b26215 docs(gfx): record the animation opening slice results + honest AE* finding gamer147 2026-07-07 23:56:11 -04:00
  • 08b5dbdbb6 feat(gfx): Godot per-object alpha tween + alpha-aware blit + --shot-settle gamer147 2026-07-07 23:48:23 -04:00
  • bcb95f3bb5 feat(gfx): surface anim channel to the compositor via RenderObject.AnimState gamer147 2026-07-07 23:39:18 -04:00
  • 0495628b99 feat(gfx): dispatch anim-start 0x234 + set-anim-clock 0x238 (revised global-clock model) gamer147 2026-07-07 23:38:15 -04:00
  • 328c25bc56 feat(gfx): label + dispatch set-anim-transform 0x21e/0x220 into GfxState gamer147 2026-07-07 23:37:28 -04:00
  • 6339b93c72 feat(gfx): GfxState animation-channel model (per-object transform + global clock) gamer147 2026-07-07 23:34:52 -04:00
  • 53b84b8daf docs(gfx): decode anim_start/set_anim_clock + confirm SC0000 opening anim subset gamer147 2026-07-07 23:19:15 -04:00
  • bc9b817301 docs(gfx): implementation plan for the sprite animation subsystem (opening slice) gamer147 2026-07-07 23:05:43 -04:00
  • f69b295c0e docs(gfx): RE the 0x21c-0x243 sprite animation cluster + subsystem spec gamer147 2026-07-07 22:57:42 -04:00
  • a8f742cf57 feat(tools): per-scene opcode completeness tracker + 0x259 marker fix gamer147 2026-07-07 22:57:25 -04:00
  • 962e55b43d fix(gfx): op 0x215 query registry is separate from the geometry store gamer147 2026-07-07 22:09:11 -04:00
  • 0458d8e5f2 feat(gfx): Godot per-frame compositor on the surface/object model + restore --boot gamer147 2026-07-07 20:38:07 -04:00
  • 6775be2ac5 feat(gfx): surface+object render model (replaces flat layers) gamer147 2026-07-07 20:28:47 -04:00
  • 48d1284a75 docs(gfx): RE the full render model (surfaces+objects+handle-order composite); redo spec+Phase1 gamer147 2026-07-07 20:22:40 -04:00
  • b24655ecec feat(gfx): gfx oracle dumps the retained layer list gamer147 2026-07-07 19:46:54 -04:00
  • 6dda931bc0 feat(gfx): draw-texture records a retained layer in GfxState gamer147 2026-07-07 19:46:21 -04:00
  • fc9e46ee85 feat(gfx): retained DrawLayer list in GfxState (thread-safe) gamer147 2026-07-07 19:45:28 -04:00
  • 339d1bab4c docs(gfx): animated-compositor design spec + Phase 1 plan + animation RE gamer147 2026-07-07 19:41:13 -04:00
  • 9859fd88b9 docs(gfx): render drift RESOLVED (native ops + system boot); align living docs gamer147 2026-07-07 19:09:34 -04:00
  • 62fa3231bc fix(gfx): 0x1f7 is a registry ERASE, not a create gamer147 2026-07-07 19:05:31 -04:00
  • a6b07356c7 feat(gfx): gfx --boot runs SYSTEM4 state prefix (INITCONFIG/INIT2/INIT) before the scene gamer147 2026-07-07 18:44:39 -04:00
  • e9818b9d71 feat(gfx): CLI gfx oracle reports per-object slots gamer147 2026-07-07 18:08:41 -04:00
  • fc55532ade test(gfx): drift regression — independent per-object geometry gamer147 2026-07-07 18:03:30 -04:00
  • 85e821a4f4 feat(gfx): colored-draw ops store packed ARGB; alpha blend deferred + guarded gamer147 2026-07-07 18:02:59 -04:00
  • 648ccca2e7 feat(gfx): execute gfx command-buffer query/set/lifecycle ops in the VM gamer147 2026-07-07 17:48:31 -04:00
  • 7c03371519 chore(gfx): set dispatch labels for the gfx command-buffer ops gamer147 2026-07-07 17:44:32 -04:00
  • f66b5e7f16 feat(gfx): GfxState host-agnostic command-buffer model gamer147 2026-07-07 17:33:51 -04:00
  • dac684a5e6 docs(gfx): Phase 3 TDD plan + resolve vector-pairing risk in the spec gamer147 2026-07-07 17:24:44 -04:00
  • a4e173fc0f docs(gfx): Phase 2 design spec — host-side gfx command-buffer model gamer147 2026-07-07 17:14:29 -04:00
  • e0ac60e668 docs(gfx): reverse the full gfx command-buffer op contract (Phase 1) gamer147 2026-07-07 17:01:14 -04:00
  • e6f6803a15 docs(gfx): implementation plan for the gfx command-buffer subsystem gamer147 2026-07-07 16:50:29 -04:00
  • ea4bf99fab docs(gfx): settle render drift as native cmd-buffer op 0x215 (Ghidra), align docs gamer147 2026-07-07 16:40:59 -04:00
  • 72a43c9298 docs(roadmap): backlog the state-divergence differ (trace-facility consumer) gamer147 2026-07-07 15:50:07 -04:00
  • f700a61213 Merge feat/engine-diagnostics: engine-level diagnostics trace facility gamer147 2026-07-07 15:29:35 -04:00
  • ad5fa85d82 chore(godot): track GodotTraceSink.cs.uid (Godot import artifact) gamer147 2026-07-07 15:27:51 -04:00
  • 527fba02e8 feat(cli): --trace flag streams engine diagnostics (run/play/sweep) gamer147 2026-07-07 15:25:59 -04:00
  • d202990b7b refactor(godot): report subroutines via GodotTraceSink, not the IHost queue gamer147 2026-07-07 15:23:25 -04:00
  • 2a71847a5d refactor(hosting): drop CallScript/OnStub from IHost (now trace events) gamer147 2026-07-07 15:22:40 -04:00
  • e010393b8a feat(diagnostics): VM emits trace events + CallScriptDispatches stat gamer147 2026-07-07 15:21:28 -04:00
  • 10cf79a41b feat(diagnostics): ITraceSink seam + TraceEvent + Null/Text sinks gamer147 2026-07-07 15:19:40 -04:00
  • 6981bd0e41 docs: engine diagnostics implementation plan gamer147 2026-07-07 15:14:23 -04:00
  • 59a67a240d docs: engine diagnostics / trace-facility design spec gamer147 2026-07-07 15:05:13 -04:00
  • 41663c8116 docs: mark A1/A2a vm0-parity + 186-selftest records as superseded gamer147 2026-07-07 14:22:04 -04:00
  • 7c751200bb docs: sync living references + roadmap to call-script solved/executing gamer147 2026-07-07 14:21:09 -04:00
  • 7f92a35966 Add subroutine-execution diagnostics + Godot --scene gamer147 2026-07-07 14:10:55 -04:00
  • 6597dae746 docs: record provider-everywhere wiring + synthesize-test-data principle gamer147 2026-07-07 13:50:09 -04:00
  • 8031f8e33a Wire provider into Godot (play + selftest); honest full-handling selftest gamer147 2026-07-07 13:48:47 -04:00
  • 6604a1fa54 Test on synthesized scenes with full handling, not crippled real scenes gamer147 2026-07-07 13:45:42 -04:00
  • 96d12992a6 Merge feat/callscript-resolution: call-script resolution + C# VM execution gamer147 2026-07-07 13:22:44 -04:00
  • 3b50dab0d2 docs: record call-script execution results (slice plan) + impl plan gamer147 2026-07-07 13:20:05 -04:00
  • 6b3d90182e Wire Sys4ScriptProvider into CLI run/play/sweep; validate real subroutine execution gamer147 2026-07-07 13:18:30 -04:00
  • 4c27707d57 Execute call-script: nested frame, shared globals, return to caller gamer147 2026-07-07 13:13:57 -04:00
  • 3f9117363c Refactor VM to ExecFrame + tag emitted lines with source script (no behavior change) gamer147 2026-07-07 13:11:50 -04:00
  • c8c79c9831 Add IScriptProvider + Sys4ScriptProvider (call-script id -> Script) gamer147 2026-07-07 13:09:50 -04:00
  • 3d88c13c72 Add design spec: call-script execution in the C# VM gamer147 2026-07-07 12:44:51 -04:00
  • 14ad23b8c7 Resolve call-script dispatch: id = raw SYS4INI file index gamer147 2026-07-07 12:44:51 -04:00
  • 057a26a97a docs: propagate u00428010/op-0x1a2 correction into opcodes.toml + name-resolution gamer147 2026-07-07 11:47:35 -04:00
  • 1323ec8852 chore: pe-sieve32.exe -> bin/ (3rd-party binary convention) + doc refs gamer147 2026-07-07 11:46:17 -04:00
  • 47dbdbd5fc docs: correct u00428010/op-0x1a2 finding via anchored dispatch table gamer147 2026-07-07 11:35:42 -04:00
  • 0ae4f607c0 docs: native-engine RE — Ghidra+MCP loop + opcode dispatch table + u00428010 correction gamer147 2026-07-07 11:29:02 -04:00
  • 320070f56f docs: implementation plan for Ghidra+MCP native-RE workflow (u00428010) gamer147 2026-07-07 10:35:55 -04:00
  • 5667a17b64 docs: design spec for Ghidra+MCP native-RE workflow (target u00428010) gamer147 2026-07-07 10:28:11 -04:00
  • 20a2fd7f2b Merge feat/scjump-decode: SCJUMP progression decision-logic decode gamer147 2026-07-07 09:47:19 -04:00
  • 50f13ccf78 docs: SCJUMP progression decode — canonical doc + references (Task 6) gamer147 2026-07-07 09:33:41 -04:00
  • d08157d689 feat: name SCJUMP progression counters in globals registry (Task 5) gamer147 2026-07-07 09:31:54 -04:00
  • e76fb6b373 feat: --verify execution-driven VM cross-check for SCJUMP decode (Task 4) gamer147 2026-07-07 09:30:10 -04:00
  • a67ebfa263 feat: emit SCJUMP decision table (json+md, registry-named) (Task 3) gamer147 2026-07-07 09:20:33 -04:00
  • ad27167c95 feat: SCJUMP guarded-DFS decode -> decision list (Task 2) gamer147 2026-07-07 09:18:29 -04:00
  • 0b348a87d5 feat: SCJUMP decoder scaffold — CFG acyclic check + chapter dispatch (Task 1) gamer147 2026-07-07 09:17:30 -04:00
  • 7318940b35 docs: implementation plan for SCJUMP decision-logic decode gamer147 2026-07-07 09:08:28 -04:00
  • 82fad44bbe docs: design spec for SCJUMP static decision-logic decode gamer147 2026-07-07 09:00:45 -04:00
  • 64c4ffda9d curate: name game_started, recategorize render/gfx false-positives out of story-flag gamer147 2026-07-07 08:45:15 -04:00
  • 9210b2ef39 docs: add globals.toml registry + story-flag tooling to PROJECT-STRUCTURE gamer147 2026-07-07 08:40:29 -04:00
  • a1d2d02f9a Merge feat/globals-registry-story-flags: globals.toml registry + story-flag miner gamer147 2026-07-07 08:36:45 -04:00
  • 169075fe37 feat: curate story-flags into registry + docs (Task 6) gamer147 2026-07-07 08:33:51 -04:00
  • f0d7775d15 feat: story_flags --bootstrap seeds skeletons into globals.toml (Task 5) gamer147 2026-07-07 08:27:31 -04:00
  • 681737604c feat: static story-flag miner -> candidates JSON (Task 4) gamer147 2026-07-07 08:26:03 -04:00
  • 69c788b65a feat: sys4load labels globals from merged build/globals.json (Task 3) gamer147 2026-07-07 08:24:36 -04:00
  • 84a8da765f feat: globals_build --build merge + generated JSON/MD (Task 2) gamer147 2026-07-07 08:23:17 -04:00
  • 7306423505 feat: globals.toml registry source + loader/lint (Task 1) gamer147 2026-07-07 08:21:59 -04:00
  • b4c9e1cc0e docs: implementation plan for globals.toml registry + story-flag miner gamer147 2026-07-07 08:19:48 -04:00
  • 5bc99bd723 docs: design spec for globals.toml registry + story-flag miner gamer147 2026-07-07 08:10:40 -04:00
  • 34dfa2f747 feat(godot): --seed 0xADDR=VAL for the playable frontend + doc CLI/frontend commands gamer147 2026-07-07 07:54:22 -04:00
  • 8012b5d25c feat(phase-b): sweep seeds — story-state explorer (which scenes a flag affects) gamer147 2026-07-07 00:32:04 -04:00
  • 1bfa374a78 Merge: Phase B — cross-scene state substrate gamer147 2026-07-07 00:28:56 -04:00
  • d46940158c feat(phase-b): sweep [--boot] — corpus-scale VM+state validation harness gamer147 2026-07-07 00:28:36 -04:00
  • f6d1384b00 feat(phase-b): GameSession snapshot save/load (JSON) gamer147 2026-07-07 00:26:23 -04:00
  • ec40fa1d37 feat(phase-b): boot data tables — play --boot runs *INIT into session state gamer147 2026-07-07 00:23:22 -04:00
  • b762b3d1c0 feat(phase-b): cross-scene state — GameSession + play runner gamer147 2026-07-07 00:19:11 -04:00
  • dc78a92ecd docs(phase-b): design — cross-scene state (persistent globals + runner) gamer147 2026-07-07 00:17:25 -04:00
  • 9b3b922c30 Merge: gfx-object-manager RE — drift root cause + engine-dump unlock gamer147 2026-07-07 00:10:58 -04:00
  • 6233f58e6c docs: update living refs — engine-dump tooling, gfx drift = state-divergence gamer147 2026-07-07 00:10:45 -04:00
  • 16fe754422 feat(frida): capture_gfx_objects + finding — drift is state-divergence gamer147 2026-07-07 00:04:49 -04:00
  • fbc78b0c00 feat(frida): probe_handlers — confirms interpreter runs from module 0x400000 gamer147 2026-07-06 23:51:18 -04:00
  • 70db77af46 fix(frida): dump_engine — use ptr.readByteArray (frida 17), skip system DLLs gamer147 2026-07-06 23:43:54 -04:00
  • f16e5bd7b8 feat(frida): dump_engine.py — dump unpacked engine code from live process gamer147 2026-07-06 23:33:02 -04:00
  • 986f2080a0 docs: SYS4AB.BIN = XOR-0xFF(AGE.EXE), same packed binary (dead end for static RE) gamer147 2026-07-06 23:29:37 -04:00
  • 2951425108 docs(opcodes): 0x215 = native graphics-object query (root cause of gfx drift) gamer147 2026-07-06 23:21:08 -04:00
  • d177a31185 Merge: A2b graphics geometry (0x208 keystone + blit compositor) gamer147 2026-07-06 23:06:39 -04:00