Commit Graph

293 Commits

Author SHA1 Message Date
gamer147
c81a89d040 Refresh History implementation inventory 2026-07-18 22:43:45 -04:00
gamer147
0e5c0d79c8 Defer read-message skip persistence design 2026-07-18 22:42:17 -04:00
gamer147
56f8adfa2d Correct ADV Hide Window restore behavior 2026-07-18 22:23:06 -04:00
gamer147
d8ead3da6e Implement native ADV Hide Window path 2026-07-18 21:14:06 -04:00
gamer147
6255f42794 Document ADV history and remaining button paths 2026-07-18 20:28:36 -04:00
gamer147
ec2a6c22b0 Pace ADV message skip by engine ticks 2026-07-18 19:04:15 -04:00
gamer147
d52e5b4725 Implement native ADV message skip 2026-07-18 17:32:12 -04:00
gamer147
f049ce786e Define future modding and OMP architecture 2026-07-18 17:17:47 -04:00
gamer147
05518a200f Implement ADV controls and native Auto timing 2026-07-18 17:16:06 -04:00
gamer147
96e5306148 Fix retained background lifecycle 2026-07-12 00:00:45 -04:00
gamer147
fb3a7206ce feat: add runtime ADV page locator 2026-07-11 22:52:26 -04:00
gamer147
b41ae36168 Fix AE001H cyclic color blending 2026-07-11 22:21:10 -04:00
gamer147
f195934324 Fix AE001H translation target query 2026-07-11 21:40:16 -04:00
gamer147
5275ec5f4f Restore ADV wait indicator 2026-07-11 21:12:24 -04:00
gamer147
0bf6b43a32 Fix AE001H spritesheet animation 2026-07-11 20:37:26 -04:00
gamer147
593a24b510 fix(gfx): restore third CG glow 2026-07-11 20:05:51 -04:00
gamer147
1f18a378d3 Optimize identity raster paths 2026-07-11 15:31:56 -04:00
gamer147
0cb72e0d5e Cache compositor source pixels 2026-07-11 14:37:35 -04:00
gamer147
3bee46611a Batch compositor backbuffer updates 2026-07-11 14:28:53 -04:00
gamer147
3b5dbc6c2c Optimize static wait presentation 2026-07-11 13:56:30 -04:00
gamer147
54d11f513d Fix ADV chrome one-shot blending 2026-07-11 13:28:31 -04:00
gamer147
71ceab5458 Document Phase B execution framework 2026-07-11 13:10:22 -04:00
gamer147
ecd5aac4c8 Track platform portability dependencies 2026-07-11 12:58:49 -04:00
gamer147
78174df03a Fix movie compositor publication 2026-07-11 12:41:37 -04:00
gamer147
024accd8d1 Implement SC0000 movie playback lifecycle 2026-07-11 12:27:51 -04:00
gamer147
233f791c10 Migrate audio payloads onto asset VFS 2026-07-11 11:01:11 -04:00
gamer147
e0ca7936e2 Mount SYS4 append asset catalogs 2026-07-11 10:42:33 -04:00
gamer147
a1f6d0ab51 Decode AGF textures through the asset store 2026-07-11 09:55:58 -04:00
gamer147
b6c3b1660d Implement base SYS4 asset store 2026-07-11 09:14:14 -04:00
gamer147
99ce351041 Implement native-backed SC0000 SFX lifecycle 2026-07-11 02:15:17 -04:00
gamer147
377987b5e0 Document Phase-A text rendering fidelity gap 2026-07-10 23:37:18 -04:00
gamer147
9d5a1c2b09 Document native asset VFS roadmap 2026-07-10 23:25:31 -04:00
gamer147
34db35903b Implement native ADV retained text 2026-07-10 22:46:27 -04:00
gamer147
8bee45f483 Refresh retained presentation references 2026-07-10 21:56:57 -04:00
gamer147
82afcf5506 Fix native retained presentation batching 2026-07-10 21:37:42 -04:00
gamer147
992215cc48 Implement native 0x202 color interpolation 2026-07-10 20:49:28 -04:00
gamer147
7f900c8fc6 Implement ADV foreground transition lifecycle 2026-07-10 18:49:53 -04:00
gamer147
bb16a5496a feat: add affine rotation rendering and timeline diagnostics 2026-07-10 17:54:33 -04:00
gamer147
014d128ccd fix: align animation pacing and transforms with native 2026-07-10 15:41:17 -04:00
gamer147
29b2dfca27 docs: mark matrix composition provisional 2026-07-10 10:57:02 -04:00
gamer147
c14c7fdced feat: split native scale and translation channels 2026-07-10 10:28:11 -04:00
gamer147
e899d06fd8 docs: archive EngineCtx design and implementation plan 2026-07-10 09:45:52 -04:00
gamer147
d9611a03b1 feat: model ADV coroutines and retained effect teardown 2026-07-10 09:45:43 -04:00
gamer147
54bd9a7006 docs: scene-entry state snapshot (capture_global_writes + --state)
engine-re.md: the write-log method, plaintext-value insight (store is obfuscated),
vm_operand_write ABI, the packer poll-until-unpacked fix, and the validation
(34k-global capture seeds the VM to match the engine's whole opening). Plus the
resync-tolerant align() / operand-hook blind-spot notes. tools-reference: the new
tool + trace --state.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-09 13:32:52 -04:00
gamer147
d2e9cc5a99 re: record differential oracle outcome + first divergence
engine-re.md: the offset-path diff method, the working capture (operand hook
0x41b940; tick 0x410fb0 sees ecx!=ctx), the two capture caveats (hook-before-load
gating + operand-mode argc>=1 filter), SC0000 codebase id, and the first
divergence found (op 0xa0 jcc @ 0x8d on uninitialized G[0x6c1], the ADV-chrome
enable — a two-boot-gap state hole, not the predicted coroutine yield).
tools-reference.md: trace_engine_ops.py, diff_optrace.py, --trace-json.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-09 12:00:12 -04:00
gamer147
43249f430b plan: differential VM-vs-engine oracle (lever #3, spec + plan)
Control-flow offset-path diff: Frida engine op-tracer (recon-gated
tick/0x41b940 hook) + VM ITraceSink offsets + diff_optrace.py first-
divergence report. Deterministic opening (SC0000 --boot). Ready to
execute in a fresh context; prereq = game running at the opening.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-09 11:06:31 -04:00
gamer147
5cd5abb00a re: hot-helper naming (lever #2, pivoted from STL/CRT auto-naming)
Function ID recon = WEAK (0 matches; bundled FidDbs don't cover the VC9
static runtime) and our library workers are already named. Pivoted to
naming the hottest documented-but-unnamed helpers by call-count: named 5
(~2400 call sites) in Ghidra — vm_operand_fetch@0x41b940 (1021 refs),
vm_operand_write@0x425fb0, vm_operand_lvalue@0x415f30,
__security_check_cookie@0x54f981 (692), operator_new@0x5502be (533).
Validated: gfx_op_0x215 reads near source-level. Spec/plan + engine-re.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-09 10:38:29 -04:00
gamer147
1b151f6e17 re: apply EngineCtx struct to /v2 handlers; doc + canonical-map wiring
Created the EngineCtx Ghidra struct (35 fields, 0xa1000) and retyped all
419 dispatch handlers' this -> EngineCtx* (CUSTOM_STORAGE, ctx in ECX).
Handlers now decompile ctx->cur_ctx_index / ctx->run_state_flags etc.
Validated: sleep_op_0xc8, gfx_op_0x215. tools-reference + engine-re.md
wired; CLAUDE.md canonical-map updated (root, outside repo).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-09 10:08:06 -04:00
gamer147
4a5d64a679 re: EngineCtx field registry (engine-ctx.toml) + builder
Canonical source vm-map/engine-ctx.toml (35 documented ctx fields) +
engine_ctx_build.py (--build/--lint, unit-tested) -> build/engine-ctx.json
+ docs/engine-ctx-reference.md. Applied to Ghidra in the next task.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-09 10:01:54 -04:00
gamer147
e166cab2d5 re(frida): import-map applied to /v2 — 248 Win32 APIs named; validated
Labeled the module-resident IAT at RVA 0x16f000 (imp_<dll>_<func> x248,
0 clobbers). Validated in decomp: FUN_0044f390 -> imp_kernel32_CreateFileA
/ SetFilePointer; sleep_timer_arm -> imp_winmm_timeGetTime (pins
DAT_0056f3d4). d3d9/heap-resolved DLLs unlabeled by design.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-09 09:26:19 -04:00