# A steering wheel ("pad connect wheel": the virtual pad offered to the game
# as a driving device, runtime/dinput_pad.c): Quick Race from the wheel's
# buttons, then in the race its steering, which follows the wheel at once
# (0x4061c0) where a pad's turns the car's wheels towards the stick at a
# limited rate (0x416bb0), the pedals, and the wheel's own buttons: Cross (A)
# nitrous, Square (X) e-brake.  "@in+OFF" peeks the player's input controller
# (dinput_pad.c): +0x1e0 the steering angle the car gets (16 bits, what
# 0x41dfc0 made of +0x2c8), +0x2c8 steer (-1..1, + = left), +0x2d0 analog
# throttle byte, +0x2dc brake, +0x2ec e-brake (0..1); 0x8656f8 NITRO_BOOST.
# pad_wheel_pad.txt is the same with a pad, for the steering's comparison.
0     pad connect wheel
+0    tappaduntil START MC_Background.fng 120 4000
+200  tappad A                                       # no profile
+0    waitfng GarageMain.fng 3000
+300  tappaduntil A UI_QRModeSelect.fng 150 3000
+200  tappaduntil A UI_QRTrackSelect.fng 150 1500
+200  tappaduntil A UI_QRModeOptions.fng 150 1500
+200  tappaduntil A UI_QRCarSelect.fng 150 1500
+200  tappaduntil A PC_Loading.fng 150 1500
+0    waitmem 0x8654a4 6 3000
+600  dump race_go                                   # countdown over
+0    log --- steering: half left, 2 and 30 frames later; then half right ---
+0    axis LX -0.5
+2    peek @in+0x1e0 2
+0    peek @in+0x2c8
+28   peek @in+0x1e0 2
+0    axis LX 0.5
+2    peek @in+0x1e0 2
+28   peek @in+0x1e0 2
+0    axis LX 0
+30   peek @in+0x1e0 2
+0    log --- gas pedal (RT) ---
+0    trigger RT 0.5
+20   peek @in+0x2d0 2
+0    trigger RT 1
+20   peek @in+0x2d0 2
+0    trigger RT 0
+0    log --- brake pedal (LT) ---
+0    trigger LT 1
+20   peek @in+0x2dc
+0    trigger LT 0
+20   peek @in+0x2dc
+0    log --- e-brake (Square, X) ---
+0    pad X down
+20   peek @in+0x2ec
+0    pad X up
+20   peek @in+0x2ec
+0    log --- nitrous (Cross, A) ---
+0    trigger RT 1
+120  pad A down
+20   peek 0x8656f8
+0    pad A up
+20   peek 0x8656f8
+0    trigger RT 0
+0    log --- pause (Options, Start) / resume (Circle, B) ---
+0    tappad START
+0    waitfng UI_Pause.fng 600
+60   tappad B
+120  dump resumed
+60   quit
