# perf_drive.txt without its four dumps (web/tools/bench.mjs --script /tests/web/scripts/perf_nodump.txt):
# a dump reads its frame back, which costs that frame and the next their 120 Hz slots, so the late
# frames of the warm drive then count only the game's own (4 to 6 of ~20 were dumps).
# The perf track's benchmark race (web/tools/bench.mjs): tests/scripts/hfr_drive.txt
# (Quick Race, Circuit, Resort Loop; input timed in game-world ms) with two
# markers for the per-thread CPU counters: cpu_begin at 15 s and cpu_end at
# 45 s of race time, so the counted window is the same stretch of the race in
# every run and ends well before the quit (the exit's work is not in it).
# High-frame-rate A/B (runtime/framerate.c): Quick Race,
# Circuit, Resort Loop; in-race input is timed in game-world ms (Nwms, from
# the "wzero" at race load), so the same driving happens at any frame rate.
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 6000
+0    wzero
+0    log race_loaded
+0    peek 0x8650b8 1
+0    peek 0x883de0 1
+0    peek 0x870cb8 1
+0    peek 0x8900bc 1
+0    peek 0x8900b4 2
7000wms  down UP          # countdown (the intro NIS ends ~6 s after load)
15000wms log cpu_begin
16000wms down LEFT
16700wms up LEFT
24000wms down RIGHT
24500wms up RIGHT
36000wms up UP
36000wms down DOWN
38000wms up DOWN
38000wms down UP
45000wms log cpu_end
50000wms up UP
50000wms log drive_end
+30   quit
