Porting Test Drive II from SNES to PC, Part 32: Closing the SNES top-menu transition semantics
The last front-end checkpoint closed the text of the SNES top menu:
Game OptionsPlay TDIIHigh Score
That was useful, but it still left one important gap:
what does each of those signboards do in the actual bank-1 flow?
That gap is now closed too.
The top menu is no longer just a text surface
The decision point is inside L00BAE8, at 01:BB7F.
That routine is the separate $1C6A top-level gate that sits before the later
downstream $0202 corridor.
The three branches now read as:
-
$1C6A = 0/Game Options->jsr L00C0C7 ; jmp L00BAE8 -
$1C6A = 1/Play TDII-> return success toL008B31, which falls through toL008B3E -
$1C6A = 2/High Score->lda #$FFFF ; jsr L00A3CC ; jmp L00BAE8
So the three signboards are now closed at the semantic level, not only the
rendered-label level.
Play TDII is the only advancing branch
This is the important consequence:
Play TDII is the only top-level option that actually advances into the later
front-end setup chain.
That matters because it keeps the SNES flow aligned with the user-guided
sequence:
Ballistic -> initial menu -> Play TDII -> cars -> adversary/clock -> phase -> gameplay
With the current code read, the best fit for that flow is now:
L00BAE8 -> L008B3E -> L00C20B -> L00BE76
That does not fully prove the meaning of every later surface yet.
But it does prove where the initial top-menu handoff actually happens.
Game Options now has a direct static anchor too
The Game Options branch lands in L00C0C7.
That is important because it ties the top-level signboard directly to the
already decoded settings-label family, instead of relying only on longplay
memory or UI guesswork.
So the initial menu is now closed in two ways:
- visible signboard labels from
1E:8000rows15..17 - semantic branch behavior from
L00BAE8
The same signboard image still helps
The rendered rows are still the same committed descriptor family:
What changed is the meaning behind them.
What changes next
The next useful front-end target is no longer “what do these signboards say?”
That part is done.
The next target is to use the now-closed Game Options -> L00C0C7 anchor and
the user-guided menu flow to narrow the exact runtime/callback path of the
initial signboard menu itself, while keeping it separate from the downstream
$0202 corridor that starts after Play TDII.

Top comments (0)