Porting Test Drive II from SNES to PC, Part 33: Closing the SNES downstream rival-grid structure
After closing the top-menu semantics, the next unresolved front-end surface was
the downstream screen at L00C20B.
That was the missing structural step in the current user-guided flow:
Ballistic -> initial menu -> Play TDII -> cars -> adversary/clock -> phase -> gameplay
The structure is now closed.
$1C70 is a real 2x2 selector surface
Inside L00C20B, bank 1 edits $1C70 as a 2-bit field.
That part was already visible in static code.
What closes the surface is the hidden callback at 01:C1D2.
That callback redraws 1E:8000 row 0x1D as a selection box over four
coordinate pairs from 01:C1C2..01:C1D0:
(85, 109)(173, 109)(85, 173)(173, 173)
So $1C70 is no longer just “some unlabeled downstream bitfield”.
It is a concrete post-car, pre-track 2x2 selection grid.
Three cells are explicit rear-car renders
L00C20B itself lays out row 6 from three different descriptor bases before
entering the input loop:
-
16:8000row6 -
18:8000row6 -
1B:8000row6
Those are three explicit rear-car cells, not generic UI glyphs.
The remaining gap is now narrow
This is the useful consequence:
the geometry and OAM ownership of the post-car, pre-track surface are now
closed.
What is still open is the meaning of the bottom-right slot.
Given the static call chain
L00BAE8 -> L008B3E -> L00C20B -> L00BE76
and the user-guided flow
cars -> adversary/clock -> phase
the strongest current read is still:
- three rival-car cells
- one time-only / clock cell
But that last semantic step is still only PROBABLE.
It is not promoted as verified yet.
The car-sheet PNGs are now committed too
One side benefit of this checkpoint is that the front-end OBJ car catalogs now
also have committed PNG sheets in the repo instead of only scratch renders:
- Porsche 959
- Lamborghini Diablo
- Ferrari F40
That keeps later writeups and asset references anchored to committed artifacts
instead of /home/.../tmp directories.




Top comments (0)