-
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
-