# A DVD cover shoot, then the cover in the crib's DVD viewer.  The game takes
# the cover's picture with a lockable render target (0x5C3120: the middle of
# the screen StretchRect'ed into it, LockRect, the pixels into the cover's save
# "<NAME> DVD 1" and its texture); the WebGPU renderer reads the target back for
# it (gpu_web.c metal_read_texture), and before that the covers were black
# (Discord, 2026-10-24).  From a career save in stage 2 (s2_start), with the
# renderer (the null one has no pixels to give):
#   node web/tools/roam-pair.mjs --solo --page play --out <dir> --seed ~/projects/nsfu2/work/seed/career/s2_start
#     --a Ann:career_cover.txt --env NFSU2_ROAM=0 --env NFSU2_CAREER_BOT_SHOWFIRST=1 --env NFSU2_CAREER_BOT_VISUAL=10
#     --fetch "NFS Underground 2/CLAUDE DVD 1/CLAUDE DVD 1"
# Good: "[gpu] texture <id> (512x512) read back for the game: done", the dump
# dvd_view shows the cover (Bayview's Best), and the fetched file (36-byte
# header, then 512x512 BGRA) is not all zeros.
0     bot on                          # free roam, then the stage's first DVD shoot (Take Picture)
+0    waitfng UI_ShowCase_Preview.fng 8000
+0    waitfng MC_Main.fng 3000        # the cover saved
+0    waitfng HUD_SingleRace.fng 3000
+0    bot off
+300  shopgo CRIB_1
+300  tapfe RETURN UI_EngageShopDialog.fng 120 2400
+120  tap LEFT
+30   tap RETURN                      # enter the crib
+0    waitfe UI_CareerCrib.fng 3000
+120  tap RIGHT
+40   tap RIGHT
+40   tap RIGHT
+40   tap RIGHT
+40   tap RIGHT
+60   tap RETURN                      # View Rewards
+180  tap RIGHT
+60   tap RETURN                      # DVD covers
+0    waitfe UI_MagazineSelect.fng 600
+240  tap RETURN                      # Bayview's Best: its save loads
+300  tap RETURN                      # Load complete: Continue
+300  dump dvd_view
+30   quit
