re: state 4's edges are selected by an event code -- 6 of 26 handled

Continuing Q6's last item: the condition on each edge.

sub_821C6458's third argument is an EVENT CODE, and state 4 -- reached
straight after the main menu is installed, so the input-waiting state --
dispatches on it through a second jump table at 0x821c6b7c, 26 cases.
Six are handled and twenty fall through changing nothing:

  event 0 -> state 0 (TITLE_SCREEN, back to the title)
  events 3, 5, 8, 25 -> state 8 (LOADING)
  event 10 -> state 5

So the edges I listed last iteration as "4 -> 0, 5, 8x4" are each now
attributed to a specific event, and the input state's graph is complete.

One thing I deliberately did NOT promote. The main menu has five items, B
returns to the title, and this table has one event to the title, four to
LOADING and one elsewhere. That is a tempting fit -- B plus four items
that load an external archive plus EXTRAS staying inside GP_TITLE -- and
it matches everything measured. It is also a count-match and nothing
more: the events are unnamed, nothing shows event 3 is a particular menu
row, and state 5 installs no named screen so the EXTRAS half has no
support at all. Written down as an observation with that said plainly,
because the same shape of reasoning already cost me DIFFICULTY and
EXTRA_MENU two iterations ago.

Still open: what the event numbers mean, the conditions on edges out of
the other states, and what states 1/3/5/6/7/9 do.
This commit is contained in:
Sylpheed RE agent
2026-08-28 20:00:49 +00:00
parent 6e92ae4597
commit 52275ddd53
3 changed files with 78 additions and 4 deletions

View File

@@ -212,8 +212,14 @@ authored version can be deleted.
`LOADING`. `4 → 0` is the only edge back to the title, reached from `2 → 4` —
which matches Ⓑ-returns-to-title as measured. Full graph in
[`data/title-state-machine.txt`](../re/data/title-state-machine.txt).
🟡 The **conditions** on the edges are not decoded, so the port still takes the
order from measurement; the graph corroborates it rather than replacing it. The sequence itself is fully measured:
✅ **State 4's edge conditions are an event code** — `sub_821C6458`'s third
argument. State 4 is the input-waiting state (reached straight after the menu
is installed) and handles 6 of 26 events: **`0` → title**, **`3`, `5`, `8`,
`25` → `LOADING`**, `10` → state 5.
🟡 What the event *numbers* mean is not decoded — button id, menu row, or
message id — so the port still takes the button→destination map from
measurement. The one-to-title / four-to-loading shape matches the five-item
menu with Ⓑ, but that is a **count-match, not a mapping**. The sequence itself is fully measured:
splash → `ADV.wmv` → title + `PRESS Ⓐ` → (idle ~8–10 s → `ADV.wmv` in full →
title) → Ⓐ → main menu, with Ⓑ from the main menu returning to the title.
@@ -290,7 +296,7 @@ here until 2026-08-28 and is now settled.)
| ❔ | **the other ~319 SE cues** (Q8) | located one at a time by triggering them; only the three the menu needs have been done |
| 🟡 | **the paint-order tie-break** (Q3) | eight candidates refuted; costs one element's blend on one screen |
| 🟡 | **GamePart ids behind the buttons** (Q4) | the *screens* are measured; the ids are a name match onto the executable's class names |
| 🟡 | **the boot transitions in code** (Q6) | **the state machine is decoded** — `state = this+136`, ten states, jump table at `0x821C6498`, 18 literal transitions; states 0/2/8 install `TITLE_SCREEN`/`TITLE_MENU`/`LOADING`. Still unread: the **condition** on each edge |
| 🟡 | **the boot transitions in code** (Q6) | state machine **decoded** (10 states, 18 edges) and state 4's edges are selected by an **event code** — 6 of 26 handled: `0`→title, `3/5/8/25`→`LOADING`, `10`→state 5. Still unknown: what the event *numbers* mean |
| ❔ | **builds 0/1 and 10/11**, the `DELTASABER` plates (Q2) | never seen anywhere in the boot path, the title-side screens or the attract loop. A mission load is the remaining candidate and this container kills runs before one completes |
(An earlier version of this table called the audio items blocked on "an emulator