re: SHAB is the per-stage record table -- record 0 is Stage 01, and c is its best time
EXTRAS -> MISSION SELECT renders per-stage records and they match the table. Stage 01 shows "High Score 4612 P EASY / Best Time 05:24.77 EASY" while SHAB[0] is (2, 4101, 324773, FILETIME): 324773 ms IS 5m24.773s, the displayed best time. Sixteen records, sixteen story stages -> the table is indexed by stage, and record 0 is Stage 01, the only stage this save has cleared. a = 2 difficulty of the record (both entries tagged EASY) b = 4101 NOT the displayed high score 4612; equals GHAD +24/+28 c = 324773 best clear time in ms -- confirmed against the screen d,e FILETIME This also explains the probe that filled SHAB[1] and changed nothing: the table holds stage RECORDS, not progress, and Stage 02 has never been cleared so its record is legitimately empty. Promotes the earlier "per-stage result record" guess to confirmed for the layout. Route: title -> EXTRAS -> MISSION SELECT. Only cleared stages are selectable (16 d-pad presses never left Stage 01) and the screen has its own difficulty selector (Y). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -248,6 +248,37 @@ the Details panel, which makes **a per-stage result record** the obvious 🟡 re
|
||||
(one stage finished → one record filled). Falsifiable the moment a second stage
|
||||
is cleared: `SHAB[1]` should fill.
|
||||
|
||||
## The `SHAB` table is the per-stage record table — record 0 is Stage 01 ✅
|
||||
|
||||
**2026-08-11.** `EXTRAS → MISSION SELECT` renders per-stage records, and they
|
||||
match the table. For Stage 01 the screen shows
|
||||
|
||||
> `High Score 4612 P EASY` · `Best Time 05:24.77 EASY`
|
||||
|
||||
and `SHAB[0]` is `(a=2, b=4101, c=324773, FILETIME 2026-07-23 20:07:23)`, where
|
||||
**`c = 324773 ms = 5 m 24.773 s`** — exactly the displayed best time. With
|
||||
sixteen records and sixteen story stages (see the `.rdata` section above), the
|
||||
table is **indexed by stage**, and record 0 is Stage 01 — the only stage this
|
||||
save has cleared.
|
||||
|
||||
| field | record 0 | reading |
|
||||
|---|---|---|
|
||||
| `a` | 2 | 🟡 the **difficulty of the record** — the screen tags both entries `EASY`, and 2 is the only value present |
|
||||
| `b` | 4101 | ❔ **not** the displayed high score (4612). It equals GHAD `+24`/`+28`, so it is a points figure, not the score with bonus |
|
||||
| `c` | **324773** | ✅ **best clear time, ms** — `05:24.77` on screen |
|
||||
| `d,e` | FILETIME | when the record was set |
|
||||
|
||||
This also explains a probe that looked like a dead end: filling `SHAB[1]` changed
|
||||
nothing on the save screen because the table holds **stage records, not
|
||||
progress** — and Stage 02, where this save sits, has never been cleared, so its
|
||||
record is legitimately empty. It promotes the earlier 🟡 "per-stage result
|
||||
record" guess to ✅ for the layout, with the time field named exactly.
|
||||
|
||||
Evidence: [`captures/mission-select-stage01-record.png`](../captures/mission-select-stage01-record.png).
|
||||
The route is `EXTRAS → MISSION SELECT` from the title menu; only cleared stages
|
||||
are selectable (16 d-pad presses never left Stage 01), and the screen carries its
|
||||
own **difficulty selector** (`Y`).
|
||||
|
||||
## What this does and does not unlock
|
||||
|
||||
It settles the format. It does **not** yet settle which field is stage-unlock
|
||||
|
||||
Reference in New Issue
Block a user