Commit Graph

91 Commits

Author SHA1 Message Date
gamer147
4fca225066 Split Main compositor into partial class 2026-08-02 18:38:12 -04:00
gamer147
f673ce826b Split Main movie playback into partial class 2026-08-02 18:17:25 -04:00
gamer147
a31db0468b Split Main audio into partial class 2026-08-02 17:52:54 -04:00
gamer147
20fd9cb694 Split Main self-test into partial class 2026-08-02 15:52:34 -04:00
gamer147
8c1a656aa4 Add repository front door 2026-08-02 15:31:28 -04:00
gamer147
130ea219f7 Add layered validation driver 2026-08-02 15:17:08 -04:00
gamer147
1daf60e287 Add portable tracked Godot launcher 2026-08-02 15:09:41 -04:00
gamer147
8b7182c0d8 Add validated Linux Godot export 2026-07-31 10:14:33 -04:00
gamer147
d50af8e799 Add Linux x64 FFmpeg native bundle 2026-07-31 09:38:01 -04:00
gamer147
45bd350c1f Remove packaged runtime repository dependency 2026-07-31 08:50:26 -04:00
gamer147
c9a0869dc8 engine: complete portable glyph text backend 2026-07-30 19:47:21 -04:00
gamer147
bb227ea106 engine: retain History and wait presentation 2026-07-30 19:21:38 -04:00
gamer147
e5b4db5eff engine: materialize live ADV glyphs 2026-07-30 19:04:22 -04:00
gamer147
eec99c2c7c engine: render immediate text into surfaces 2026-07-30 18:47:35 -04:00
gamer147
a58108522e engine: add exact Windows GDI glyph backend 2026-07-30 18:35:46 -04:00
gamer147
fe06618439 engine: add deterministic glyph mask core 2026-07-30 18:25:46 -04:00
gamer147
82ac160271 feat(startup): add configurable game root 2026-07-28 23:05:25 -04:00
gamer147
001a5706f6 Implement native layout-3 save restoration 2026-07-24 16:23:01 -04:00
gamer147
8fe610b66d Implement numbered save pair lifecycle 2026-07-24 15:32:55 -04:00
gamer147
70643ceb2b Implement native RT.DAT read history 2026-07-24 15:11:30 -04:00
gamer147
4d8812d5d3 Implement native shared profile persistence 2026-07-24 14:52:05 -04:00
gamer147
6ffd21cd3e Implement native DAT container codec 2026-07-24 14:00:33 -04:00
gamer147
aff9a6fa3c Decode SCINIT scene dispatch registry 2026-07-23 13:08:48 -04:00
gamer147
b536e91fbc Join item and skill message semantics 2026-07-22 23:04:24 -04:00
gamer147
740e10c550 Harden movie playback lifecycle and diagnostics 2026-07-22 09:44:57 -04:00
gamer147
5f115e694f Add isolated FFmpeg movie decoder shim 2026-07-22 00:17:27 -04:00
gamer147
c84952e7d7 Implement root reload and title debug launcher 2026-07-20 22:32:49 -04:00
gamer147
ad022ace51 Implement native ADV Hide Window path 2026-07-18 21:14:06 -04:00
gamer147
3aca514497 feat: add runtime ADV page locator 2026-07-11 22:52:26 -04:00
gamer147
1663f980a7 Document Phase B execution framework 2026-07-11 13:10:22 -04:00
gamer147
9762bf52e0 Track platform portability dependencies 2026-07-11 12:58:49 -04:00
gamer147
ec07c76721 Decode AGF textures through the asset store 2026-07-11 09:55:58 -04:00
gamer147
8e0f769a6e Implement base SYS4 asset store 2026-07-11 09:14:14 -04:00
gamer147
aec131062a chore: pe-sieve32.exe -> bin/ (3rd-party binary convention) + doc refs
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-07 11:46:17 -04:00
gamer147
dde015f7e3 docs: native-engine RE — Ghidra+MCP loop + opcode dispatch table + u00428010 correction
Ghidra+MCP workflow validated. Found the opcode->handler dispatch table
(*(ctx+0x9b8f4+op*4), registered by FUN_00413860) — the general fix for Kelebek VA
drift. Corrected: u00428010 (op 0x1a2) is a save/resource op, NOT decision->scene;
the SCJUMP consumer persists the visited-decision flag. New doc docs/engine-re.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-07 11:29:02 -04:00
gamer147
c7ed3057fd docs: SCJUMP progression decode — canonical doc + references (Task 6)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-07 09:33:41 -04:00
gamer147
77b71bfff4 docs: add globals.toml registry + story-flag tooling to PROJECT-STRUCTURE
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-07 08:40:29 -04:00
gamer147
31a5423ad2 docs: update living refs — engine-dump tooling, gfx drift = state-divergence
tools-reference: dump_engine/probe_handlers/capture_gfx_objects + SYS4AB note.
phase-a-slice-plan: post-opening drift RESOLVED as a state-divergence artifact
(fix = Phase B state flow, not a native-op subsystem). PROJECT-STRUCTURE:
build/{textures,engine-dump}, engine/, tools/frida/.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-07 00:10:45 -04:00
gamer147
102fe1d021 feat(assets): solve asset resolution (SYS4INI per-scene section manifest)
resId -> files[section_base(scene) + resId]. SYS4INI's file list is
sectioned, one per scene (SCxxxx.BIN + its cross-archive asset manifest);
file_number is the index within the section. Unified for set-texture,
play-bgm, play-voice. Fully static/general -> no per-scene capture.

- tools/parse_sys4ini.py: SYS4INI (S4IC422, LZSS) -> build/asset-index.json
- tools/resolve_asset.py: sections + (scene,resId) resolver -> build/asset-sections.json
- validated: 97% structural, SC0000 17/17 vs Frida, 586/595 captured loads
- opcodes.toml: set-texture/create/draw-texture, play-bgm/voice enriched (frida-grounded)
- Frida tooling (capture_load_order all-archive, correlate_scope, ...) + vm0 --settex
- docs: asset-resolution-re (step2 SOLVED), global-memory-re (shelved), tools-reference

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-06 20:48:22 -04:00
gamer147
93092b73d0 docs(opcodes): retire superseded opcode files; update structure + doc pointers
- rm vm-map/opcodes-himegari.json, vm-map/himegari-opcode-notes.md (folded into opcodes.toml; in history)
- PROJECT-STRUCTURE.md: opcodes.toml single-source-of-truth + generated artifacts + convention
- repoint dead references in vm-mapping-plan/sys4-format-notes/himegari-port-reference/phase-a-slice-plan

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-06 13:16:33 -04:00
gamer147
aa3da00bfa chore: initialize age-reimpl repo
Reverse-engineering + open reimplementation workspace for Eushully's AGE/SYS4
engine (first target: Himegari). The repo root is age-reimpl/; the original game
install and the extracted ALF data are siblings outside the repo and are never
tracked. build/ (derived corpora) is gitignored and regenerated by the tools.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-06 12:58:30 -04:00