Last updated: 2026-10-25.
- Read CloneCD raw images (2352-byte sectors).
- Read Alcohol images with 96-byte subchannel (2448-byte sectors).
- Read ISO 9660 images and stream files as
io.ReaderAt. - Identify the first-press disc: it is a voice-only disc.
- Crack the ARC directory: count + 36-byte records + additive key
arcana. - Verify the table against offsets and against known manifests.
- Implement the ARCANA LZSS codec.
- Implement the
KWD1wrapper. - Unpack every archive from the DVD-ROM edition.
- Unpack the shop-demo archives and the
arcanademo archives.
- Go HTTP server with
/api/script,/api/assets,/media/.... - CP932 script parser with full-width normalization and labels.
- React 19 + Vite + TypeScript frontend.
- 640×480 canvas stage.
- BMP image loading, LRU cache and next-image prefetch.
- Transitions:
クロス,ワイプ,ワイプ2,上下,円1,円2. - Pause-aware clock.
- BGM playback and loop.
- Sound-effect and voice playback.
- Script commands:
BMP,UPD,WAIT,MUS,SEV,JMP,END. - Shop-demo loop (
JMP デモスタート). -
cmd/extractCLI for directories and ISO images. - CP932 dialogue parser with multi-line quotes and speaker names;
説narration is normalized to an unnamed speaker. - Text box, typewriter, click/Enter to advance,
¥page breaks. - Layered stage: background + L/R/C character stands, composited at natural size with a black color key (fixes stretched sprites).
- DVD pack selection and lazy
LODscript loading. - Opening
yr1_00.txtplays toLOD YR1_01. - Scene/chapter links in the URL (
?pack=dvd&scene=yr1_02&cmd=123). - Batched Google Translate sidecar for all DVD dialogue/choices;
L/toolbar/Settings language switching with Japanese fallback. - Line-level repair pass for partially translated Google output; only moans/onomatopoeia remain untranslated.
-
scripts/repair_translations.pyto rebuild partially translated pages. - Save at choice points; toolbar remains usable above the choice overlay.
- Navigator Branches tab for scene-local choice targets and route changes.
- Chapter browser grouped by actual
STStitles; branch jumps require confirmation. - Global chapter-level story map at
/api/storymap, with explicit route changes. - Side panels share one tabbed dock (Archives / Navigator / Settings) instead of overflowing side-by-side.
- Ghidra helper scripts and durable reverse-engineering notes committed under
tools/ghidraanddocs/engine/reverse-engineering.md. - Advancing dialogue stops the previous voice clip; SE channels remain independent.
- Gallery event/recollection cards show covers, heroine labels and a related Story link; event scenes are kept out of the story route.
- Removed the experimental story-interlude path after confirming
e…scripts are CG/event recollection content. - Gallery scene selection from the title screen clears title URL/state and starts the scene.
- Gallery Scenes is an event/CG recollection browser with cover thumbnails, heroine labels and 八尋編 / 朧編 grouping.
- 18+ in-story scene route/choice guide, Mitama market/cultural context,
Tony/Ran and Itou Mai voice-actor notes, plus voice-production/
work-culture/marketing notes in
docs/guides. - Archive manager: Recent/Pinned/Chapters, search, notes, pinning, thumbnails, overwrite/delete, save current, legacy-slot migration; snapshots record the 八尋/朧 route and show it on archive cards.
- SQLite archive persistence (
data/mitama-saves.db) with REST API, localStorage cache/fallback and offline delete queue. - Page/chapter navigator: command scrubbing, dialogue previews, chapter grouping, filtering and direct scene entry.
- Archives and navigator docked as side windows beside the stage (including fullscreen) instead of centered modal overlays.
- Single-select choices (
SLTandMSLT);SENDmenu terminator. - Case-insensitive
LODresolution (fixesYR1_02→yr1_02.txt). - Chapter transition from
yr1_01toYR1_02. - KWD1
.XAaudio decoder (pkg/xa), verified byte-for-byte againstxadec.dllunder Wine. - Server-side
.xa→ WAV conversion at/api/audiowith an in-memory cache. - BGM and voice playback from the DVD data.
-
kunoichi.arcextracted into the DVD pack (female voices). - Scene URLs auto-start and rebuild stage/flags/BGM.
-
-devGo-server mode proxies the frontend to the Vite dev server while keeping/apiand/mediaon Go. - Resuming at a TEXT line replays the preceding
SEVvoice. - Engine debug panel (
D/?debug=1) and/api/debugAPIs. - Canvas stage with a DOM dialogue overlay; selectable text and fit-to-viewport layout.
- Original title screen with new/continue, gallery, settings and quit entries; new game shows the original 八尋/朧 主人公選択 screen; scene links still auto-start. The Settings → Title entry returns to it and Continue resumes the current position.
- Space hides dialogue and HUD; click/Enter restores/advances.
-
?opens a keyboard-shortcut help overlay; the toolbar has no pause button and uses a text mute control. - Fullscreen keeps a letterboxed 4:3 stage.
- Inline voice/SE annotations are hidden and played as page cues.
- Header/footer removed; controls live on the dialogue box and in ☰ Settings (pack, volume, debug).
- Background stack semantics:
BMP BLACK 消去reveals the background underneath instead of clearing it. - Dialogue box is opaque and the DOM overlay updates per typewriter tick (no stale/accumulated box alpha).
- Adjustable dialogue opacity and immersive subtitle mode in Settings (persisted per browser); Settings opens as a docked side window.
- Typewriter modes: character, word and instant; fixed the first-frame
slice(0, -1)flash caused by a negative RAF elapsed time. - Hover-English tooltip for Japanese dialogue, with Settings sidebar and
Hshortcut. - Optional HD asset overlay + waifu2x upscaling pipeline for smoother character stands and backgrounds, with 4× → 2× → original priority.
- Independent BGM/SE volumes and unified settings persistence
(
mitama.settings.v1). - Replay-voice button beside the speaker name tag (current page/line), using a microphone icon; speaker abbreviations expanded to full names.
- Gallery: CG viewer, scene review, music player with official BGM titles/durations, seen tracking and CG-to-script story jumps.
- URL-addressable title, protagonist select, and Gallery tabs, including
refresh-safe
view/tab/fromstate. - Refactor: App settings/archive/keyboard/battle modules and Player audio/dialogue/stage modules extracted.
- Full-game flags (
IFT,FLG,EQU,INC,DEC,FCK,RND). - Flags are included in save snapshots.
-
MAP/PARTYstate tracking, includes archive snapshots and resume. -
.pty/.chrbattle definition parser and/api/battleendpoints. - Playable simplified battle screen: shared party HP, enemy strikers,
剣/術/受 actions, victory/defeat, flag
20branching. - Battle BGM and idle/action sprites from
.o/.spt/.mtn(color-keyed). - Battle auto-resolve modes (win/lose/random) remain in Settings.
- Weighted enemy actions from
:actionrate, special techniques from:special/:spname, and special attack motions. - Motion
se/c_se/se_attack,flash,effectem, movement offsets and parsedwaitmov/attackend. -
:actionratepower range and optional:win/:losejingles. - Exact attack/hit/damage formula and map encounters.
- Interactive map movement and encounters (map scenes are currently
script-driven through
BMP MAPxxx+MSLT). -
sprite.arc/.spt/.mtnsprite animation. - Server-side save files compatible with
save%02d.dat.
Flesh out the battle screen with .o / .spt / .mtn sprites, battle BGM and
the actual action-rate/special-move rules. Then implement map movement and
encounters. Audio, chapter loading and story branching are working.
- Extracted files are ordinary
.bmp/.wav/.txtwhere possible, so the player and debugging tools can use native browser support. - The UDF DVD image is currently unpacked with 7-Zip. A small read-only UDF reader is a later task; it is not required for engine work.
- The shop-demo executable is the behavioral reference for the command VM; the DVD executable is the reference for the full command set and flag model.
- Assets are never committed.
data/and.cache/are gitignored.