DEV Community

Nivando Soares
Nivando Soares

Posted on

Porting Test Drive II from SNES to PC, Part 47: Probing late A/B response on the default-rival corridor

Porting Test Drive II from SNES to PC, Part 47: Probing late A/B response on the default-rival corridor

After demoting the mutable game_11.mss save from “gameplay seed” to
front-end menu state, the next question was straightforward:

is there already a deterministic power-on path that reacts like gameplay, even
if the old save does not?

The answer is now yes, with an important qualifier.

The default-rival post-02:9016 corridor is input-sensitive.

It is not just an infinitely repeated passive frame.

But it still does not close the “verified gameplay seed” gate yet.

The new candidate comes from power-on, not from game_11.mss

I reused the already recovered power-on route into the default-rival lane and
then injected late A or B starting at frame 2050.

The first solid result came from the boot probes:

  • all three lanes keep the same callback surface through 2048..2208
    • 02:9016 main
    • 01:96A0 IRQ
    • 02:8F3C NMI
  • both A and B first diverge in state_0960 at frame 2050
    • A: 0 -> 128
    • B: 0 -> 32768

So the corridor is definitely reacting to late input.

That already moves it out of the “probably just the same menu frame forever”
bucket.

A is the rich lane, B is the control lane

B does change state, but it stays sparse:

  • beyond state_0960, the probe delta set is nearly empty
  • visible divergence against no-input is only at 2052, 2068, and 2084

A is much more interesting:

  • dp_0054 first diverges at 2052
  • dp_0053 and state_09a8 first diverge at 2053
  • state_137c first diverges at 2104
  • the first visible divergence against no-input appears at frame 2052
  • by 2054, the lane is also diverging over a lower-dashboard region

That makes A the better next proving lane, while B becomes a good control
run.

The visual change is small, but it is real

No-input frame 2056:

No-input frame 2056

Late-A frame 2056:

A-hold frame 2056

The interesting part is not that the whole frame explodes.

It does not.

The useful result is that the lane now has bounded, repeatable, post-input
visual fallout plus matching state fallout.

That is a much better active target than the old bad savestate.

What still stays open

This checkpoint does not promote the corridor to a verified gameplay seed.

The inherited selector family still stays latched:

  • $1C6A = 1
  • $1C70 = 0
  • $1C76 = 1
  • $0202 = 0xFFFF

So the next gate is now tighter:

  • extend the A-responsive lane until it produces unmistakable world/gameplay motion, or
  • catch the moment where it finally exits that inherited top-menu selector family

That is enough to move Lane 3 forward without pretending the proof is already
stronger than it is.

Top comments (0)