gamer147
e79bbe5047
docs(a2b): implementation plan for the engine-driven background layer
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-06 15:44:07 -04:00
gamer147
421c5c3fb3
docs(a2b): spec for the engine-driven background layer (SC0000)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-06 15:37:05 -04:00
gamer147
8b864db36e
fix(a2a): advance on mouse click (use _Input; root Control ate clicks in _UnhandledInput)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-06 15:09:23 -04:00
gamer147
894873da50
feat(a2a): CJK font for the message window; mark A2a done in the slice plan
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-06 14:52:40 -04:00
gamer147
6eb9b4abfc
feat(a2a): worker-thread ADV host + blocking wait-for-input + headless self-test
...
SELFTEST OK: 186 lines match vm0 trace; real SemaphoreSlim gate + CallDeferred exercised headless.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-06 14:51:07 -04:00
gamer147
412965c9ca
feat(a2a): Godot 4.7 .NET project scaffold referencing Age.Engine (headless smoke)
...
SMOKE: Paths resolves to age-reimpl inside Godot; Age.Engine parses SC0000 in-process.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-06 14:49:57 -04:00
gamer147
9d9b5e4e45
feat(a2a): add IHost.WaitForInput hook (wait-for-input 0x72); trace parity preserved
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-06 14:48:46 -04:00
gamer147
708f887a58
docs(a2a): implementation plan for the interactive dialogue loop
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-06 14:42:15 -04:00
gamer147
8cbb01c969
docs(a2a): spec for the interactive dialogue loop (Godot + Age.Engine)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-06 14:31:57 -04:00
gamer147
2ea21c1e63
docs: mark A1 (C# VM core) done in the slice plan
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-06 14:01:33 -04:00
gamer147
6feba77b8e
feat(a1): CLI (run/trace) + vm0.py --trace + per-scene differential test (A1 green)
...
C# VM is byte-identical to vm0.py across all 297 SC/SP scenes (offsets+halt+steps);
RECOVER passes; SC0000 = 27994 steps / 186 lines matching the Python prototype.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-06 13:55:11 -04:00
gamer147
8df5536529
feat(a1): VM core (operands+pointer semantics, handlers, emit-cap) + RECOVER
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-06 13:53:03 -04:00
gamer147
cb5527cdd4
feat(a1): SYS4 container parser (header + code decode + data_array_end shrink)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-06 13:51:32 -04:00
gamer147
876e92facc
feat(a1): SYS4 XOR-FF cp932 string codec
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-06 13:50:35 -04:00
gamer147
ae495967f9
feat(a1): .NET 8 solution scaffold + Model + OpcodeTable loader
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-06 13:49:02 -04:00
gamer147
a2b49445b1
docs(a1): implementation plan for the C# VM core
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-06 13:45:05 -04:00
gamer147
f6a71b2f42
docs(a1): spec for the C# VM core (headless, trace-diff vs vm0.py)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-06 13:32:42 -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
4f0b802d18
feat(opcodes): migrate to opcodes.toml as single source of truth; regenerate artifacts
...
- 248 opcodes seeded from Kelebek + corpus arg-types; 23 inferences migrated
- source = provenance (frida/unicorn methods = inference + confirm_by, not grounded)
- 0x90/0x97 enriched with depends_on + details
- differential-verified: SC0830/MENU disasm byte-identical, vm0 --test PASS, sweep 282/294
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-06 13:11:33 -04:00
gamer147
71a43ab48a
feat(opcodes): emit opcodes.json, opcode-reference.md, coverage
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-06 13:04:35 -04:00
gamer147
0364207dff
feat(opcodes): emit drop-in age_opcodes_himegari.py shim; wire --build/--lint
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-06 13:03:33 -04:00
gamer147
1f2a5f2bf1
feat(opcodes): bootstrap seeds 248 skeletons from Kelebek + corpus arg-types
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-06 13:02:28 -04:00
gamer147
06d1e286b9
feat(opcodes): linter (dangling-ref, confidence-ceiling, vocabulary)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-06 13:01:20 -04:00
gamer147
b33e1740cb
feat(opcodes): data model + loader for opcodes.toml
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-06 13:00:31 -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