# High-frame-rate A/B, long run (runtime/framerate.c): Quick
# Race, Circuit, Resort Loop.  The player launches at GO (~9.4 s world time
# after load) and stops before the first corner; the three AI cars then race
# on their own.  All in-race timing is game-world ms (Nwms from "wzero").
# Menus are synchronised on the front-end screens (waitfng/tapuntil), so the
# navigation works at 60, 120 and 240 and with a slow boot on a loaded
# machine; "wzero" then takes the start of the race (GameFlow 6) as the
# world-time origin.
0       waitfng UG_LS_Splash.fng 12000                  # title
+1000ms tapuntil RETURN MC_Background.fng 120 3000      # title -> profile prompt
+600ms  tapuntil RETURN GarageMain.fng 120 3000         # "No" -> main menu
+1500ms tapuntil RETURN UI_QRModeSelect.fng 240 3000    # Quick Race
+800ms  tapuntil RETURN UI_QRTrackSelect.fng 240 3000   # Circuit
+800ms  tapuntil RETURN UI_QRModeOptions.fng 240 3000   # Resort Loop
+800ms  tapuntil RETURN UI_QRCarSelect.fng 240 3000     # options
+800ms  tapuntil RETURN GenericDialog_SMALL.fng 240 3000 # car -> transmission
+800ms  tapuntil RETURN PC_Loading.fng 240 3000         # transmission -> loading
+0    waitmem 0x8654a4 6 12000
+0    wzero
+0    log race_loaded
+0    peek 0x8650b8 1        # replay/highlight recorder object (0x578E90 is a no-op while [obj+4] == 0)
+0    peek 0x178068a0 4      # that object in these runs (bump heap: same address every run)
+0    peek 0x870cb8 1        # car environment-map faces-per-frame mode (0x5C3971)
7000wms   down UP           # countdown: rev, launch at GO
9600wms   dump launch_9.6
10000wms  dump launch_10.0
10500wms  dump launch_10.5
12500wms  up UP
12500wms  down DOWN
15500wms  up DOWN
30000wms  peek 0x178068a0 2  # recorder still idle in the race?
30000wms  dump ai_30
60000wms  dump ai_60
90000wms  dump ai_90
100000wms log ai_end
+30   quit
