DirectInput.pas
上传用户:hylc_2004
上传日期:2014-01-23
资源大小:46800k
文件大小:319k
源码类别:

Delphi控件源码

开发平台:

Delphi

  1.   DIAXIS_FLYINGC_RUDDER                   = $04025205; (* Yaw ship left/right *)
  2.   {$EXTERNALSYM DIAXIS_FLYINGC_RUDDER}
  3.   DIAXIS_FLYINGC_FLAPS                    = $04055A06; (* Flaps *)
  4.   {$EXTERNALSYM DIAXIS_FLYINGC_FLAPS}
  5.   DIBUTTON_FLYINGC_FLAPSUP                = $04006404; (* Increment stepping up until fully retracted *)
  6.   {$EXTERNALSYM DIBUTTON_FLYINGC_FLAPSUP}
  7.   DIBUTTON_FLYINGC_FLAPSDOWN              = $04006405; (* Decrement stepping down until fully extended *)
  8.   {$EXTERNALSYM DIBUTTON_FLYINGC_FLAPSDOWN}
  9.   DIBUTTON_FLYINGC_BRAKE_LINK             = $04046CE0; (* Fallback brake button *)
  10.   {$EXTERNALSYM DIBUTTON_FLYINGC_BRAKE_LINK}
  11.   DIBUTTON_FLYINGC_FASTER_LINK            = $0403D4E0; (* Fallback throttle up button *)
  12.   {$EXTERNALSYM DIBUTTON_FLYINGC_FASTER_LINK}
  13.   DIBUTTON_FLYINGC_SLOWER_LINK            = $0403D4E8; (* Fallback throttle down button *)
  14.   {$EXTERNALSYM DIBUTTON_FLYINGC_SLOWER_LINK}
  15.   DIBUTTON_FLYINGC_GLANCE_LEFT_LINK       = $0407C4E4; (* Fallback Glance Left button *)
  16.   {$EXTERNALSYM DIBUTTON_FLYINGC_GLANCE_LEFT_LINK}
  17.   DIBUTTON_FLYINGC_GLANCE_RIGHT_LINK      = $0407C4EC; (* Fallback Glance Right button *)
  18.   {$EXTERNALSYM DIBUTTON_FLYINGC_GLANCE_RIGHT_LINK}
  19.   DIBUTTON_FLYINGC_GLANCE_UP_LINK         = $0407C4E0; (* Fallback Glance Up button *)
  20.   {$EXTERNALSYM DIBUTTON_FLYINGC_GLANCE_UP_LINK}
  21.   DIBUTTON_FLYINGC_GLANCE_DOWN_LINK       = $0407C4E8; (* Fallback Glance Down button *)
  22.   {$EXTERNALSYM DIBUTTON_FLYINGC_GLANCE_DOWN_LINK}
  23.   DIBUTTON_FLYINGC_DEVICE                 = $040044FE; (* Show input device and controls *)
  24.   {$EXTERNALSYM DIBUTTON_FLYINGC_DEVICE}
  25.   DIBUTTON_FLYINGC_PAUSE                  = $040044FC; (* Start / Pause / Restart game *)
  26.   {$EXTERNALSYM DIBUTTON_FLYINGC_PAUSE}
  27. (*--- Flight Simulator - Military
  28.       Aerial combat is the primary objective  ---*)
  29.   DIVIRTUAL_FLYING_MILITARY               = $05000000;
  30.   {$EXTERNALSYM DIVIRTUAL_FLYING_MILITARY}
  31.   DIAXIS_FLYINGM_BANK                     = $05008A01; (* Bank - Roll ship left / right *)
  32.   {$EXTERNALSYM DIAXIS_FLYINGM_BANK}
  33.   DIAXIS_FLYINGM_PITCH                    = $05010A02; (* Pitch - Nose up / down *)
  34.   {$EXTERNALSYM DIAXIS_FLYINGM_PITCH}
  35.   DIAXIS_FLYINGM_THROTTLE                 = $05039203; (* Throttle - faster / slower *)
  36.   {$EXTERNALSYM DIAXIS_FLYINGM_THROTTLE}
  37.   DIBUTTON_FLYINGM_FIRE                   = $05000C01; (* Fire *)
  38.   {$EXTERNALSYM DIBUTTON_FLYINGM_FIRE}
  39.   DIBUTTON_FLYINGM_WEAPONS                = $05000C02; (* Select next weapon *)
  40.   {$EXTERNALSYM DIBUTTON_FLYINGM_WEAPONS}
  41.   DIBUTTON_FLYINGM_TARGET                 = $05000C03; (* Selects next available target *)
  42.   {$EXTERNALSYM DIBUTTON_FLYINGM_TARGET}
  43.   DIBUTTON_FLYINGM_MENU                   = $050004FD; (* Show menu options *)
  44.   {$EXTERNALSYM DIBUTTON_FLYINGM_MENU}
  45. (*--- Priority 2 controls                            ---*)
  46.   DIHATSWITCH_FLYINGM_GLANCE              = $05004601; (* Look around *)
  47.   {$EXTERNALSYM DIHATSWITCH_FLYINGM_GLANCE}
  48.   DIBUTTON_FLYINGM_COUNTER                = $05005C04; (* Activate counter measures *)
  49.   {$EXTERNALSYM DIBUTTON_FLYINGM_COUNTER}
  50.   DIAXIS_FLYINGM_RUDDER                   = $05024A04; (* Rudder - Yaw ship left/right *)
  51.   {$EXTERNALSYM DIAXIS_FLYINGM_RUDDER}
  52.   DIAXIS_FLYINGM_BRAKE                    = $05046205; (* Brake-axis *)
  53.   {$EXTERNALSYM DIAXIS_FLYINGM_BRAKE}
  54.   DIBUTTON_FLYINGM_VIEW                   = $05006405; (* Cycle through view options *)
  55.   {$EXTERNALSYM DIBUTTON_FLYINGM_VIEW}
  56.   DIBUTTON_FLYINGM_DISPLAY                = $05006406; (* Select next dashboard option *)
  57.   {$EXTERNALSYM DIBUTTON_FLYINGM_DISPLAY}
  58.   DIAXIS_FLYINGM_FLAPS                    = $05055206; (* Flaps *)
  59.   {$EXTERNALSYM DIAXIS_FLYINGM_FLAPS}
  60.   DIBUTTON_FLYINGM_FLAPSUP                = $05005407; (* Increment stepping up until fully retracted *)
  61.   {$EXTERNALSYM DIBUTTON_FLYINGM_FLAPSUP}
  62.   DIBUTTON_FLYINGM_FLAPSDOWN              = $05005408; (* Decrement stepping down until fully extended *)
  63.   {$EXTERNALSYM DIBUTTON_FLYINGM_FLAPSDOWN}
  64.   DIBUTTON_FLYINGM_FIRESECONDARY          = $05004C09; (* Alternative fire button *)
  65.   {$EXTERNALSYM DIBUTTON_FLYINGM_FIRESECONDARY}
  66.   DIBUTTON_FLYINGM_GEAR                   = $0500640A; (* Gear up / down *)
  67.   {$EXTERNALSYM DIBUTTON_FLYINGM_GEAR}
  68.   DIBUTTON_FLYINGM_BRAKE_LINK             = $050464E0; (* Fallback brake button *)
  69.   {$EXTERNALSYM DIBUTTON_FLYINGM_BRAKE_LINK}
  70.   DIBUTTON_FLYINGM_FASTER_LINK            = $0503D4E0; (* Fallback throttle up button *)
  71.   {$EXTERNALSYM DIBUTTON_FLYINGM_FASTER_LINK}
  72.   DIBUTTON_FLYINGM_SLOWER_LINK            = $0503D4E8; (* Fallback throttle down button *)
  73.   {$EXTERNALSYM DIBUTTON_FLYINGM_SLOWER_LINK}
  74.   DIBUTTON_FLYINGM_GLANCE_LEFT_LINK       = $0507C4E4; (* Fallback Glance Left button *)
  75.   {$EXTERNALSYM DIBUTTON_FLYINGM_GLANCE_LEFT_LINK}
  76.   DIBUTTON_FLYINGM_GLANCE_RIGHT_LINK      = $0507C4EC; (* Fallback Glance Right button *)
  77.   {$EXTERNALSYM DIBUTTON_FLYINGM_GLANCE_RIGHT_LINK}
  78.   DIBUTTON_FLYINGM_GLANCE_UP_LINK         = $0507C4E0; (* Fallback Glance Up button *)
  79.   {$EXTERNALSYM DIBUTTON_FLYINGM_GLANCE_UP_LINK}
  80.   DIBUTTON_FLYINGM_GLANCE_DOWN_LINK       = $0507C4E8; (* Fallback Glance Down button *)
  81.   {$EXTERNALSYM DIBUTTON_FLYINGM_GLANCE_DOWN_LINK}
  82.   DIBUTTON_FLYINGM_DEVICE                 = $050044FE; (* Show input device and controls *)
  83.   {$EXTERNALSYM DIBUTTON_FLYINGM_DEVICE}
  84.   DIBUTTON_FLYINGM_PAUSE                  = $050044FC; (* Start / Pause / Restart game *)
  85.   {$EXTERNALSYM DIBUTTON_FLYINGM_PAUSE}
  86. (*--- Flight Simulator - Combat Helicopter
  87.       Combat from helicopter is primary objective  ---*)
  88.   DIVIRTUAL_FLYING_HELICOPTER             = $06000000;
  89.   {$EXTERNALSYM DIVIRTUAL_FLYING_HELICOPTER}
  90.   DIAXIS_FLYINGH_BANK                     = $06008A01; (* Bank - Roll ship left / right *)
  91.   {$EXTERNALSYM DIAXIS_FLYINGH_BANK}
  92.   DIAXIS_FLYINGH_PITCH                    = $06010A02; (* Pitch - Nose up / down *)
  93.   {$EXTERNALSYM DIAXIS_FLYINGH_PITCH}
  94.   DIAXIS_FLYINGH_COLLECTIVE               = $06018A03; (* Collective - Blade pitch/power *)
  95.   {$EXTERNALSYM DIAXIS_FLYINGH_COLLECTIVE}
  96.   DIBUTTON_FLYINGH_FIRE                   = $06001401; (* Fire *)
  97.   {$EXTERNALSYM DIBUTTON_FLYINGH_FIRE}
  98.   DIBUTTON_FLYINGH_WEAPONS                = $06001402; (* Select next weapon *)
  99.   {$EXTERNALSYM DIBUTTON_FLYINGH_WEAPONS}
  100.   DIBUTTON_FLYINGH_TARGET                 = $06001403; (* Selects next available target *)
  101.   {$EXTERNALSYM DIBUTTON_FLYINGH_TARGET}
  102.   DIBUTTON_FLYINGH_MENU                   = $060004FD; (* Show menu options *)
  103.   {$EXTERNALSYM DIBUTTON_FLYINGH_MENU}
  104. (*--- Priority 2 controls                            ---*)
  105.   DIHATSWITCH_FLYINGH_GLANCE              = $06004601; (* Look around *)
  106.   {$EXTERNALSYM DIHATSWITCH_FLYINGH_GLANCE}
  107.   DIAXIS_FLYINGH_TORQUE                   = $06025A04; (* Torque - Rotate ship around left / right axis *)
  108.   {$EXTERNALSYM DIAXIS_FLYINGH_TORQUE}
  109.   DIAXIS_FLYINGH_THROTTLE                 = $0603DA05; (* Throttle *)
  110.   {$EXTERNALSYM DIAXIS_FLYINGH_THROTTLE}
  111.   DIBUTTON_FLYINGH_COUNTER                = $06005404; (* Activate counter measures *)
  112.   {$EXTERNALSYM DIBUTTON_FLYINGH_COUNTER}
  113.   DIBUTTON_FLYINGH_VIEW                   = $06006405; (* Cycle through view options *)
  114.   {$EXTERNALSYM DIBUTTON_FLYINGH_VIEW}
  115.   DIBUTTON_FLYINGH_GEAR                   = $06006406; (* Gear up / down *)
  116.   {$EXTERNALSYM DIBUTTON_FLYINGH_GEAR}
  117.   DIBUTTON_FLYINGH_FIRESECONDARY          = $06004C07; (* Alternative fire button *)
  118.   {$EXTERNALSYM DIBUTTON_FLYINGH_FIRESECONDARY}
  119.   DIBUTTON_FLYINGH_FASTER_LINK            = $0603DCE0; (* Fallback throttle up button *)
  120.   {$EXTERNALSYM DIBUTTON_FLYINGH_FASTER_LINK}
  121.   DIBUTTON_FLYINGH_SLOWER_LINK            = $0603DCE8; (* Fallback throttle down button *)
  122.   {$EXTERNALSYM DIBUTTON_FLYINGH_SLOWER_LINK}
  123.   DIBUTTON_FLYINGH_GLANCE_LEFT_LINK       = $0607C4E4; (* Fallback Glance Left button *)
  124.   {$EXTERNALSYM DIBUTTON_FLYINGH_GLANCE_LEFT_LINK}
  125.   DIBUTTON_FLYINGH_GLANCE_RIGHT_LINK      = $0607C4EC; (* Fallback Glance Right button *)
  126.   {$EXTERNALSYM DIBUTTON_FLYINGH_GLANCE_RIGHT_LINK}
  127.   DIBUTTON_FLYINGH_GLANCE_UP_LINK         = $0607C4E0; (* Fallback Glance Up button *)
  128.   {$EXTERNALSYM DIBUTTON_FLYINGH_GLANCE_UP_LINK}
  129.   DIBUTTON_FLYINGH_GLANCE_DOWN_LINK       = $0607C4E8; (* Fallback Glance Down button *)
  130.   {$EXTERNALSYM DIBUTTON_FLYINGH_GLANCE_DOWN_LINK}
  131.   DIBUTTON_FLYINGH_DEVICE                 = $060044FE; (* Show input device and controls *)
  132.   {$EXTERNALSYM DIBUTTON_FLYINGH_DEVICE}
  133.   DIBUTTON_FLYINGH_PAUSE                  = $060044FC; (* Start / Pause / Restart game *)
  134.   {$EXTERNALSYM DIBUTTON_FLYINGH_PAUSE}
  135. (*--- Space Simulator - Combat
  136.       Space Simulator with weapons  ---*)
  137.   DIVIRTUAL_SPACESIM                      = $07000000;
  138.   {$EXTERNALSYM DIVIRTUAL_SPACESIM}
  139.   DIAXIS_SPACESIM_LATERAL                 = $07008201; (* Move ship left / right *)
  140.   {$EXTERNALSYM DIAXIS_SPACESIM_LATERAL}
  141.   DIAXIS_SPACESIM_MOVE                    = $07010202; (* Move ship forward/backward *)
  142.   {$EXTERNALSYM DIAXIS_SPACESIM_MOVE}
  143.   DIAXIS_SPACESIM_THROTTLE                = $07038203; (* Throttle - Engine speed *)
  144.   {$EXTERNALSYM DIAXIS_SPACESIM_THROTTLE}
  145.   DIBUTTON_SPACESIM_FIRE                  = $07000401; (* Fire *)
  146.   {$EXTERNALSYM DIBUTTON_SPACESIM_FIRE}
  147.   DIBUTTON_SPACESIM_WEAPONS               = $07000402; (* Select next weapon *)
  148.   {$EXTERNALSYM DIBUTTON_SPACESIM_WEAPONS}
  149.   DIBUTTON_SPACESIM_TARGET                = $07000403; (* Selects next available target *)
  150.   {$EXTERNALSYM DIBUTTON_SPACESIM_TARGET}
  151.   DIBUTTON_SPACESIM_MENU                  = $070004FD; (* Show menu options *)
  152.   {$EXTERNALSYM DIBUTTON_SPACESIM_MENU}
  153. (*--- Priority 2 controls                            ---*)
  154.   DIHATSWITCH_SPACESIM_GLANCE             = $07004601; (* Look around *)
  155.   {$EXTERNALSYM DIHATSWITCH_SPACESIM_GLANCE}
  156.   DIAXIS_SPACESIM_CLIMB                   = $0701C204; (* Climb - Pitch ship up/down *)
  157.   {$EXTERNALSYM DIAXIS_SPACESIM_CLIMB}
  158.   DIAXIS_SPACESIM_ROTATE                  = $07024205; (* Rotate - Turn ship left/right *)
  159.   {$EXTERNALSYM DIAXIS_SPACESIM_ROTATE}
  160.   DIBUTTON_SPACESIM_VIEW                  = $07004404; (* Cycle through view options *)
  161.   {$EXTERNALSYM DIBUTTON_SPACESIM_VIEW}
  162.   DIBUTTON_SPACESIM_DISPLAY               = $07004405; (* Select next dashboard / heads up display option *)
  163.   {$EXTERNALSYM DIBUTTON_SPACESIM_DISPLAY}
  164.   DIBUTTON_SPACESIM_RAISE                 = $07004406; (* Raise ship while maintaining current pitch *)
  165.   {$EXTERNALSYM DIBUTTON_SPACESIM_RAISE}
  166.   DIBUTTON_SPACESIM_LOWER                 = $07004407; (* Lower ship while maintaining current pitch *)
  167.   {$EXTERNALSYM DIBUTTON_SPACESIM_LOWER}
  168.   DIBUTTON_SPACESIM_GEAR                  = $07004408; (* Gear up / down *)
  169.   {$EXTERNALSYM DIBUTTON_SPACESIM_GEAR}
  170.   DIBUTTON_SPACESIM_FIRESECONDARY         = $07004409; (* Alternative fire button *)
  171.   {$EXTERNALSYM DIBUTTON_SPACESIM_FIRESECONDARY}
  172.   DIBUTTON_SPACESIM_LEFT_LINK             = $0700C4E4; (* Fallback move left button *)
  173.   {$EXTERNALSYM DIBUTTON_SPACESIM_LEFT_LINK}
  174.   DIBUTTON_SPACESIM_RIGHT_LINK            = $0700C4EC; (* Fallback move right button *)
  175.   {$EXTERNALSYM DIBUTTON_SPACESIM_RIGHT_LINK}
  176.   DIBUTTON_SPACESIM_FORWARD_LINK          = $070144E0; (* Fallback move forward button *)
  177.   {$EXTERNALSYM DIBUTTON_SPACESIM_FORWARD_LINK}
  178.   DIBUTTON_SPACESIM_BACKWARD_LINK         = $070144E8; (* Fallback move backwards button *)
  179.   {$EXTERNALSYM DIBUTTON_SPACESIM_BACKWARD_LINK}
  180.   DIBUTTON_SPACESIM_FASTER_LINK           = $0703C4E0; (* Fallback throttle up button *)
  181.   {$EXTERNALSYM DIBUTTON_SPACESIM_FASTER_LINK}
  182.   DIBUTTON_SPACESIM_SLOWER_LINK           = $0703C4E8; (* Fallback throttle down button *)
  183.   {$EXTERNALSYM DIBUTTON_SPACESIM_SLOWER_LINK}
  184.   DIBUTTON_SPACESIM_TURN_LEFT_LINK        = $070244E4; (* Fallback turn left button *)
  185.   {$EXTERNALSYM DIBUTTON_SPACESIM_TURN_LEFT_LINK}
  186.   DIBUTTON_SPACESIM_TURN_RIGHT_LINK       = $070244EC; (* Fallback turn right button *)
  187.   {$EXTERNALSYM DIBUTTON_SPACESIM_TURN_RIGHT_LINK}
  188.   DIBUTTON_SPACESIM_GLANCE_LEFT_LINK      = $0707C4E4; (* Fallback Glance Left button *)
  189.   {$EXTERNALSYM DIBUTTON_SPACESIM_GLANCE_LEFT_LINK}
  190.   DIBUTTON_SPACESIM_GLANCE_RIGHT_LINK     = $0707C4EC; (* Fallback Glance Right button *)
  191.   {$EXTERNALSYM DIBUTTON_SPACESIM_GLANCE_RIGHT_LINK}
  192.   DIBUTTON_SPACESIM_GLANCE_UP_LINK        = $0707C4E0; (* Fallback Glance Up button *)
  193.   {$EXTERNALSYM DIBUTTON_SPACESIM_GLANCE_UP_LINK}
  194.   DIBUTTON_SPACESIM_GLANCE_DOWN_LINK      = $0707C4E8; (* Fallback Glance Down button *)
  195.   {$EXTERNALSYM DIBUTTON_SPACESIM_GLANCE_DOWN_LINK}
  196.   DIBUTTON_SPACESIM_DEVICE                = $070044FE; (* Show input device and controls *)
  197.   {$EXTERNALSYM DIBUTTON_SPACESIM_DEVICE}
  198.   DIBUTTON_SPACESIM_PAUSE                 = $070044FC; (* Start / Pause / Restart game *)
  199.   {$EXTERNALSYM DIBUTTON_SPACESIM_PAUSE}
  200. (*--- Fighting - First Person
  201.       Hand to Hand combat is primary objective  ---*)
  202.   DIVIRTUAL_FIGHTING_HAND2HAND            = $08000000;
  203.   {$EXTERNALSYM DIVIRTUAL_FIGHTING_HAND2HAND}
  204.   DIAXIS_FIGHTINGH_LATERAL                = $08008201; (* Sidestep left/right *)
  205.   {$EXTERNALSYM DIAXIS_FIGHTINGH_LATERAL}
  206.   DIAXIS_FIGHTINGH_MOVE                   = $08010202; (* Move forward/backward *)
  207.   {$EXTERNALSYM DIAXIS_FIGHTINGH_MOVE}
  208.   DIBUTTON_FIGHTINGH_PUNCH                = $08000401; (* Punch *)
  209.   {$EXTERNALSYM DIBUTTON_FIGHTINGH_PUNCH}
  210.   DIBUTTON_FIGHTINGH_KICK                 = $08000402; (* Kick *)
  211.   {$EXTERNALSYM DIBUTTON_FIGHTINGH_KICK}
  212.   DIBUTTON_FIGHTINGH_BLOCK                = $08000403; (* Block *)
  213.   {$EXTERNALSYM DIBUTTON_FIGHTINGH_BLOCK}
  214.   DIBUTTON_FIGHTINGH_CROUCH               = $08000404; (* Crouch *)
  215.   {$EXTERNALSYM DIBUTTON_FIGHTINGH_CROUCH}
  216.   DIBUTTON_FIGHTINGH_JUMP                 = $08000405; (* Jump *)
  217.   {$EXTERNALSYM DIBUTTON_FIGHTINGH_JUMP}
  218.   DIBUTTON_FIGHTINGH_SPECIAL1             = $08000406; (* Apply first special move *)
  219.   {$EXTERNALSYM DIBUTTON_FIGHTINGH_SPECIAL1}
  220.   DIBUTTON_FIGHTINGH_SPECIAL2             = $08000407; (* Apply second special move *)
  221.   {$EXTERNALSYM DIBUTTON_FIGHTINGH_SPECIAL2}
  222.   DIBUTTON_FIGHTINGH_MENU                 = $080004FD; (* Show menu options *)
  223.   {$EXTERNALSYM DIBUTTON_FIGHTINGH_MENU}
  224. (*--- Priority 2 controls                            ---*)
  225.   DIBUTTON_FIGHTINGH_SELECT               = $08004408; (* Select special move *)
  226.   {$EXTERNALSYM DIBUTTON_FIGHTINGH_SELECT}
  227.   DIHATSWITCH_FIGHTINGH_SLIDE             = $08004601; (* Look around *)
  228.   {$EXTERNALSYM DIHATSWITCH_FIGHTINGH_SLIDE}
  229.   DIBUTTON_FIGHTINGH_DISPLAY              = $08004409; (* Shows next on-screen display option *)
  230.   {$EXTERNALSYM DIBUTTON_FIGHTINGH_DISPLAY}
  231.   DIAXIS_FIGHTINGH_ROTATE                 = $08024203; (* Rotate - Turn body left/right *)
  232.   {$EXTERNALSYM DIAXIS_FIGHTINGH_ROTATE}
  233.   DIBUTTON_FIGHTINGH_DODGE                = $0800440A; (* Dodge *)
  234.   {$EXTERNALSYM DIBUTTON_FIGHTINGH_DODGE}
  235.   DIBUTTON_FIGHTINGH_LEFT_LINK            = $0800C4E4; (* Fallback left sidestep button *)
  236.   {$EXTERNALSYM DIBUTTON_FIGHTINGH_LEFT_LINK}
  237.   DIBUTTON_FIGHTINGH_RIGHT_LINK           = $0800C4EC; (* Fallback right sidestep button *)
  238.   {$EXTERNALSYM DIBUTTON_FIGHTINGH_RIGHT_LINK}
  239.   DIBUTTON_FIGHTINGH_FORWARD_LINK         = $080144E0; (* Fallback forward button *)
  240.   {$EXTERNALSYM DIBUTTON_FIGHTINGH_FORWARD_LINK}
  241.   DIBUTTON_FIGHTINGH_BACKWARD_LINK        = $080144E8; (* Fallback backward button *)
  242.   {$EXTERNALSYM DIBUTTON_FIGHTINGH_BACKWARD_LINK}
  243.   DIBUTTON_FIGHTINGH_DEVICE               = $080044FE; (* Show input device and controls *)
  244.   {$EXTERNALSYM DIBUTTON_FIGHTINGH_DEVICE}
  245.   DIBUTTON_FIGHTINGH_PAUSE                = $080044FC; (* Start / Pause / Restart game *)
  246.   {$EXTERNALSYM DIBUTTON_FIGHTINGH_PAUSE}
  247. (*--- Fighting - First Person Shooting
  248.       Navigation and combat are primary objectives  ---*)
  249.   DIVIRTUAL_FIGHTING_FPS                  = $09000000;
  250.   {$EXTERNALSYM DIVIRTUAL_FIGHTING_FPS}
  251.   DIAXIS_FPS_ROTATE                       = $09008201; (* Rotate character left/right *)
  252.   {$EXTERNALSYM DIAXIS_FPS_ROTATE}
  253.   DIAXIS_FPS_MOVE                         = $09010202; (* Move forward/backward *)
  254.   {$EXTERNALSYM DIAXIS_FPS_MOVE}
  255.   DIBUTTON_FPS_FIRE                       = $09000401; (* Fire *)
  256.   {$EXTERNALSYM DIBUTTON_FPS_FIRE}
  257.   DIBUTTON_FPS_WEAPONS                    = $09000402; (* Select next weapon *)
  258.   {$EXTERNALSYM DIBUTTON_FPS_WEAPONS}
  259.   DIBUTTON_FPS_APPLY                      = $09000403; (* Use item *)
  260.   {$EXTERNALSYM DIBUTTON_FPS_APPLY}
  261.   DIBUTTON_FPS_SELECT                     = $09000404; (* Select next inventory item *)
  262.   {$EXTERNALSYM DIBUTTON_FPS_SELECT}
  263.   DIBUTTON_FPS_CROUCH                     = $09000405; (* Crouch/ climb down/ swim down *)
  264.   {$EXTERNALSYM DIBUTTON_FPS_CROUCH}
  265.   DIBUTTON_FPS_JUMP                       = $09000406; (* Jump/ climb up/ swim up *)
  266.   {$EXTERNALSYM DIBUTTON_FPS_JUMP}
  267.   DIAXIS_FPS_LOOKUPDOWN                   = $09018203; (* Look up / down  *)
  268.   {$EXTERNALSYM DIAXIS_FPS_LOOKUPDOWN}
  269.   DIBUTTON_FPS_STRAFE                     = $09000407; (* Enable strafing while active *)
  270.   {$EXTERNALSYM DIBUTTON_FPS_STRAFE}
  271.   DIBUTTON_FPS_MENU                       = $090004FD; (* Show menu options *)
  272.   {$EXTERNALSYM DIBUTTON_FPS_MENU}
  273. (*--- Priority 2 controls                            ---*)
  274.   DIHATSWITCH_FPS_GLANCE                  = $09004601; (* Look around *)
  275.   {$EXTERNALSYM DIHATSWITCH_FPS_GLANCE}
  276.   DIBUTTON_FPS_DISPLAY                    = $09004408; (* Shows next on-screen display option/ map *)
  277.   {$EXTERNALSYM DIBUTTON_FPS_DISPLAY}
  278.   DIAXIS_FPS_SIDESTEP                     = $09024204; (* Sidestep *)
  279.   {$EXTERNALSYM DIAXIS_FPS_SIDESTEP}
  280.   DIBUTTON_FPS_DODGE                      = $09004409; (* Dodge *)
  281.   {$EXTERNALSYM DIBUTTON_FPS_DODGE}
  282.   DIBUTTON_FPS_GLANCEL                    = $0900440A; (* Glance Left *)
  283.   {$EXTERNALSYM DIBUTTON_FPS_GLANCEL}
  284.   DIBUTTON_FPS_GLANCER                    = $0900440B; (* Glance Right *)
  285.   {$EXTERNALSYM DIBUTTON_FPS_GLANCER}
  286.   DIBUTTON_FPS_FIRESECONDARY              = $0900440C; (* Alternative fire button *)
  287.   {$EXTERNALSYM DIBUTTON_FPS_FIRESECONDARY}
  288.   DIBUTTON_FPS_ROTATE_LEFT_LINK           = $0900C4E4; (* Fallback rotate left button *)
  289.   {$EXTERNALSYM DIBUTTON_FPS_ROTATE_LEFT_LINK}
  290.   DIBUTTON_FPS_ROTATE_RIGHT_LINK          = $0900C4EC; (* Fallback rotate right button *)
  291.   {$EXTERNALSYM DIBUTTON_FPS_ROTATE_RIGHT_LINK}
  292.   DIBUTTON_FPS_FORWARD_LINK               = $090144E0; (* Fallback forward button *)
  293.   {$EXTERNALSYM DIBUTTON_FPS_FORWARD_LINK}
  294.   DIBUTTON_FPS_BACKWARD_LINK              = $090144E8; (* Fallback backward button *)
  295.   {$EXTERNALSYM DIBUTTON_FPS_BACKWARD_LINK}
  296.   DIBUTTON_FPS_GLANCE_UP_LINK             = $0901C4E0; (* Fallback look up button *)
  297.   {$EXTERNALSYM DIBUTTON_FPS_GLANCE_UP_LINK}
  298.   DIBUTTON_FPS_GLANCE_DOWN_LINK           = $0901C4E8; (* Fallback look down button *)
  299.   {$EXTERNALSYM DIBUTTON_FPS_GLANCE_DOWN_LINK}
  300.   DIBUTTON_FPS_STEP_LEFT_LINK             = $090244E4; (* Fallback step left button *)
  301.   {$EXTERNALSYM DIBUTTON_FPS_STEP_LEFT_LINK}
  302.   DIBUTTON_FPS_STEP_RIGHT_LINK            = $090244EC; (* Fallback step right button *)
  303.   {$EXTERNALSYM DIBUTTON_FPS_STEP_RIGHT_LINK}
  304.   DIBUTTON_FPS_DEVICE                     = $090044FE; (* Show input device and controls *)
  305.   {$EXTERNALSYM DIBUTTON_FPS_DEVICE}
  306.   DIBUTTON_FPS_PAUSE                      = $090044FC; (* Start / Pause / Restart game *)
  307.   {$EXTERNALSYM DIBUTTON_FPS_PAUSE}
  308. (*--- Fighting - Third Person action
  309.       Perspective of camera is behind the main character  ---*)
  310.   DIVIRTUAL_FIGHTING_THIRDPERSON          = $0A000000;
  311.   {$EXTERNALSYM DIVIRTUAL_FIGHTING_THIRDPERSON}
  312.   DIAXIS_TPS_TURN                         = $0A020201; (* Turn left/right *)
  313.   {$EXTERNALSYM DIAXIS_TPS_TURN}
  314.   DIAXIS_TPS_MOVE                         = $0A010202; (* Move forward/backward *)
  315.   {$EXTERNALSYM DIAXIS_TPS_MOVE}
  316.   DIBUTTON_TPS_RUN                        = $0A000401; (* Run or walk toggle switch *)
  317.   {$EXTERNALSYM DIBUTTON_TPS_RUN}
  318.   DIBUTTON_TPS_ACTION                     = $0A000402; (* Action Button *)
  319.   {$EXTERNALSYM DIBUTTON_TPS_ACTION}
  320.   DIBUTTON_TPS_SELECT                     = $0A000403; (* Select next weapon *)
  321.   {$EXTERNALSYM DIBUTTON_TPS_SELECT}
  322.   DIBUTTON_TPS_USE                        = $0A000404; (* Use inventory item currently selected *)
  323.   {$EXTERNALSYM DIBUTTON_TPS_USE}
  324.   DIBUTTON_TPS_JUMP                       = $0A000405; (* Character Jumps *)
  325.   {$EXTERNALSYM DIBUTTON_TPS_JUMP}
  326.   DIBUTTON_TPS_MENU                       = $0A0004FD; (* Show menu options *)
  327.   {$EXTERNALSYM DIBUTTON_TPS_MENU}
  328. (*--- Priority 2 controls                            ---*)
  329.   DIHATSWITCH_TPS_GLANCE                  = $0A004601; (* Look around *)
  330.   {$EXTERNALSYM DIHATSWITCH_TPS_GLANCE}
  331.   DIBUTTON_TPS_VIEW                       = $0A004406; (* Select camera view *)
  332.   {$EXTERNALSYM DIBUTTON_TPS_VIEW}
  333.   DIBUTTON_TPS_STEPLEFT                   = $0A004407; (* Character takes a left step *)
  334.   {$EXTERNALSYM DIBUTTON_TPS_STEPLEFT}
  335.   DIBUTTON_TPS_STEPRIGHT                  = $0A004408; (* Character takes a right step *)
  336.   {$EXTERNALSYM DIBUTTON_TPS_STEPRIGHT}
  337.   DIAXIS_TPS_STEP                         = $0A00C203; (* Character steps left/right *)
  338.   {$EXTERNALSYM DIAXIS_TPS_STEP}
  339.   DIBUTTON_TPS_DODGE                      = $0A004409; (* Character dodges or ducks *)
  340.   {$EXTERNALSYM DIBUTTON_TPS_DODGE}
  341.   DIBUTTON_TPS_INVENTORY                  = $0A00440A; (* Cycle through inventory *)
  342.   {$EXTERNALSYM DIBUTTON_TPS_INVENTORY}
  343.   DIBUTTON_TPS_TURN_LEFT_LINK             = $0A0244E4; (* Fallback turn left button *)
  344.   {$EXTERNALSYM DIBUTTON_TPS_TURN_LEFT_LINK}
  345.   DIBUTTON_TPS_TURN_RIGHT_LINK            = $0A0244EC; (* Fallback turn right button *)
  346.   {$EXTERNALSYM DIBUTTON_TPS_TURN_RIGHT_LINK}
  347.   DIBUTTON_TPS_FORWARD_LINK               = $0A0144E0; (* Fallback forward button *)
  348.   {$EXTERNALSYM DIBUTTON_TPS_FORWARD_LINK}
  349.   DIBUTTON_TPS_BACKWARD_LINK              = $0A0144E8; (* Fallback backward button *)
  350.   {$EXTERNALSYM DIBUTTON_TPS_BACKWARD_LINK}
  351.   DIBUTTON_TPS_GLANCE_UP_LINK             = $0A07C4E0; (* Fallback look up button *)
  352.   {$EXTERNALSYM DIBUTTON_TPS_GLANCE_UP_LINK}
  353.   DIBUTTON_TPS_GLANCE_DOWN_LINK           = $0A07C4E8; (* Fallback look down button *)
  354.   {$EXTERNALSYM DIBUTTON_TPS_GLANCE_DOWN_LINK}
  355.   DIBUTTON_TPS_GLANCE_LEFT_LINK           = $0A07C4E4; (* Fallback glance up button *)
  356.   {$EXTERNALSYM DIBUTTON_TPS_GLANCE_LEFT_LINK}
  357.   DIBUTTON_TPS_GLANCE_RIGHT_LINK          = $0A07C4EC; (* Fallback glance right button *)
  358.   {$EXTERNALSYM DIBUTTON_TPS_GLANCE_RIGHT_LINK}
  359.   DIBUTTON_TPS_DEVICE                     = $0A0044FE; (* Show input device and controls *)
  360.   {$EXTERNALSYM DIBUTTON_TPS_DEVICE}
  361.   DIBUTTON_TPS_PAUSE                      = $0A0044FC; (* Start / Pause / Restart game *)
  362.   {$EXTERNALSYM DIBUTTON_TPS_PAUSE}
  363. (*--- Strategy - Role Playing
  364.       Navigation and problem solving are primary actions  ---*)
  365.   DIVIRTUAL_STRATEGY_ROLEPLAYING          = $0B000000;
  366.   {$EXTERNALSYM DIVIRTUAL_STRATEGY_ROLEPLAYING}
  367.   DIAXIS_STRATEGYR_LATERAL                = $0B008201; (* sidestep - left/right *)
  368.   {$EXTERNALSYM DIAXIS_STRATEGYR_LATERAL}
  369.   DIAXIS_STRATEGYR_MOVE                   = $0B010202; (* move forward/backward *)
  370.   {$EXTERNALSYM DIAXIS_STRATEGYR_MOVE}
  371.   DIBUTTON_STRATEGYR_GET                  = $0B000401; (* Acquire item *)
  372.   {$EXTERNALSYM DIBUTTON_STRATEGYR_GET}
  373.   DIBUTTON_STRATEGYR_APPLY                = $0B000402; (* Use selected item *)
  374.   {$EXTERNALSYM DIBUTTON_STRATEGYR_APPLY}
  375.   DIBUTTON_STRATEGYR_SELECT               = $0B000403; (* Select nextitem *)
  376.   {$EXTERNALSYM DIBUTTON_STRATEGYR_SELECT}
  377.   DIBUTTON_STRATEGYR_ATTACK               = $0B000404; (* Attack *)
  378.   {$EXTERNALSYM DIBUTTON_STRATEGYR_ATTACK}
  379.   DIBUTTON_STRATEGYR_CAST                 = $0B000405; (* Cast Spell *)
  380.   {$EXTERNALSYM DIBUTTON_STRATEGYR_CAST}
  381.   DIBUTTON_STRATEGYR_CROUCH               = $0B000406; (* Crouch *)
  382.   {$EXTERNALSYM DIBUTTON_STRATEGYR_CROUCH}
  383.   DIBUTTON_STRATEGYR_JUMP                 = $0B000407; (* Jump *)
  384.   {$EXTERNALSYM DIBUTTON_STRATEGYR_JUMP}
  385.   DIBUTTON_STRATEGYR_MENU                 = $0B0004FD; (* Show menu options *)
  386.   {$EXTERNALSYM DIBUTTON_STRATEGYR_MENU}
  387. (*--- Priority 2 controls                            ---*)
  388.   DIHATSWITCH_STRATEGYR_GLANCE            = $0B004601; (* Look around *)
  389.   {$EXTERNALSYM DIHATSWITCH_STRATEGYR_GLANCE}
  390.   DIBUTTON_STRATEGYR_MAP                  = $0B004408; (* Cycle through map options *)
  391.   {$EXTERNALSYM DIBUTTON_STRATEGYR_MAP}
  392.   DIBUTTON_STRATEGYR_DISPLAY              = $0B004409; (* Shows next on-screen display option *)
  393.   {$EXTERNALSYM DIBUTTON_STRATEGYR_DISPLAY}
  394.   DIAXIS_STRATEGYR_ROTATE                 = $0B024203; (* Turn body left/right *)
  395.   {$EXTERNALSYM DIAXIS_STRATEGYR_ROTATE}
  396.   DIBUTTON_STRATEGYR_LEFT_LINK            = $0B00C4E4; (* Fallback sidestep left button *)
  397.   {$EXTERNALSYM DIBUTTON_STRATEGYR_LEFT_LINK}
  398.   DIBUTTON_STRATEGYR_RIGHT_LINK           = $0B00C4EC; (* Fallback sidestep right button *)
  399.   {$EXTERNALSYM DIBUTTON_STRATEGYR_RIGHT_LINK}
  400.   DIBUTTON_STRATEGYR_FORWARD_LINK         = $0B0144E0; (* Fallback move forward button *)
  401.   {$EXTERNALSYM DIBUTTON_STRATEGYR_FORWARD_LINK}
  402.   DIBUTTON_STRATEGYR_BACK_LINK            = $0B0144E8; (* Fallback move backward button *)
  403.   {$EXTERNALSYM DIBUTTON_STRATEGYR_BACK_LINK}
  404.   DIBUTTON_STRATEGYR_ROTATE_LEFT_LINK     = $0B0244E4; (* Fallback turn body left button *)
  405.   {$EXTERNALSYM DIBUTTON_STRATEGYR_ROTATE_LEFT_LINK}
  406.   DIBUTTON_STRATEGYR_ROTATE_RIGHT_LINK    = $0B0244EC; (* Fallback turn body right button *)
  407.   {$EXTERNALSYM DIBUTTON_STRATEGYR_ROTATE_RIGHT_LINK}
  408.   DIBUTTON_STRATEGYR_DEVICE               = $0B0044FE; (* Show input device and controls *)
  409.   {$EXTERNALSYM DIBUTTON_STRATEGYR_DEVICE}
  410.   DIBUTTON_STRATEGYR_PAUSE                = $0B0044FC; (* Start / Pause / Restart game *)
  411.   {$EXTERNALSYM DIBUTTON_STRATEGYR_PAUSE}
  412. (*--- Strategy - Turn based
  413.       Navigation and problem solving are primary actions  ---*)
  414.   DIVIRTUAL_STRATEGY_TURN                 = $0C000000;
  415.   {$EXTERNALSYM DIVIRTUAL_STRATEGY_TURN}
  416.   DIAXIS_STRATEGYT_LATERAL                = $0C008201; (* Sidestep left/right *)
  417.   {$EXTERNALSYM DIAXIS_STRATEGYT_LATERAL}
  418.   DIAXIS_STRATEGYT_MOVE                   = $0C010202; (* Move forward/backwards *)
  419.   {$EXTERNALSYM DIAXIS_STRATEGYT_MOVE}
  420.   DIBUTTON_STRATEGYT_SELECT               = $0C000401; (* Select unit or object *)
  421.   {$EXTERNALSYM DIBUTTON_STRATEGYT_SELECT}
  422.   DIBUTTON_STRATEGYT_INSTRUCT             = $0C000402; (* Cycle through instructions *)
  423.   {$EXTERNALSYM DIBUTTON_STRATEGYT_INSTRUCT}
  424.   DIBUTTON_STRATEGYT_APPLY                = $0C000403; (* Apply selected instruction *)
  425.   {$EXTERNALSYM DIBUTTON_STRATEGYT_APPLY}
  426.   DIBUTTON_STRATEGYT_TEAM                 = $0C000404; (* Select next team / cycle through all *)
  427.   {$EXTERNALSYM DIBUTTON_STRATEGYT_TEAM}
  428.   DIBUTTON_STRATEGYT_TURN                 = $0C000405; (* Indicate turn over *)
  429.   {$EXTERNALSYM DIBUTTON_STRATEGYT_TURN}
  430.   DIBUTTON_STRATEGYT_MENU                 = $0C0004FD; (* Show menu options *)
  431.   {$EXTERNALSYM DIBUTTON_STRATEGYT_MENU}
  432. (*--- Priority 2 controls                            ---*)
  433.   DIBUTTON_STRATEGYT_ZOOM                 = $0C004406; (* Zoom - in / out *)
  434.   {$EXTERNALSYM DIBUTTON_STRATEGYT_ZOOM}
  435.   DIBUTTON_STRATEGYT_MAP                  = $0C004407; (* cycle through map options *)
  436.   {$EXTERNALSYM DIBUTTON_STRATEGYT_MAP}
  437.   DIBUTTON_STRATEGYT_DISPLAY              = $0C004408; (* shows next on-screen display options *)
  438.   {$EXTERNALSYM DIBUTTON_STRATEGYT_DISPLAY}
  439.   DIBUTTON_STRATEGYT_LEFT_LINK            = $0C00C4E4; (* Fallback sidestep left button *)
  440.   {$EXTERNALSYM DIBUTTON_STRATEGYT_LEFT_LINK}
  441.   DIBUTTON_STRATEGYT_RIGHT_LINK           = $0C00C4EC; (* Fallback sidestep right button *)
  442.   {$EXTERNALSYM DIBUTTON_STRATEGYT_RIGHT_LINK}
  443.   DIBUTTON_STRATEGYT_FORWARD_LINK         = $0C0144E0; (* Fallback move forward button *)
  444.   {$EXTERNALSYM DIBUTTON_STRATEGYT_FORWARD_LINK}
  445.   DIBUTTON_STRATEGYT_BACK_LINK            = $0C0144E8; (* Fallback move back button *)
  446.   {$EXTERNALSYM DIBUTTON_STRATEGYT_BACK_LINK}
  447.   DIBUTTON_STRATEGYT_DEVICE               = $0C0044FE; (* Show input device and controls *)
  448.   {$EXTERNALSYM DIBUTTON_STRATEGYT_DEVICE}
  449.   DIBUTTON_STRATEGYT_PAUSE                = $0C0044FC; (* Start / Pause / Restart game *)
  450.   {$EXTERNALSYM DIBUTTON_STRATEGYT_PAUSE}
  451. (*--- Sports - Hunting
  452.       Hunting                ---*)
  453.   DIVIRTUAL_SPORTS_HUNTING                = $0D000000;
  454.   {$EXTERNALSYM DIVIRTUAL_SPORTS_HUNTING}
  455.   DIAXIS_HUNTING_LATERAL                  = $0D008201; (* sidestep left/right *)
  456.   {$EXTERNALSYM DIAXIS_HUNTING_LATERAL}
  457.   DIAXIS_HUNTING_MOVE                     = $0D010202; (* move forward/backwards *)
  458.   {$EXTERNALSYM DIAXIS_HUNTING_MOVE}
  459.   DIBUTTON_HUNTING_FIRE                   = $0D000401; (* Fire selected weapon *)
  460.   {$EXTERNALSYM DIBUTTON_HUNTING_FIRE}
  461.   DIBUTTON_HUNTING_AIM                    = $0D000402; (* Select aim/move *)
  462.   {$EXTERNALSYM DIBUTTON_HUNTING_AIM}
  463.   DIBUTTON_HUNTING_WEAPON                 = $0D000403; (* Select next weapon *)
  464.   {$EXTERNALSYM DIBUTTON_HUNTING_WEAPON}
  465.   DIBUTTON_HUNTING_BINOCULAR              = $0D000404; (* Look through Binoculars *)
  466.   {$EXTERNALSYM DIBUTTON_HUNTING_BINOCULAR}
  467.   DIBUTTON_HUNTING_CALL                   = $0D000405; (* Make animal call *)
  468.   {$EXTERNALSYM DIBUTTON_HUNTING_CALL}
  469.   DIBUTTON_HUNTING_MAP                    = $0D000406; (* View Map *)
  470.   {$EXTERNALSYM DIBUTTON_HUNTING_MAP}
  471.   DIBUTTON_HUNTING_SPECIAL                = $0D000407; (* Special game operation *)
  472.   {$EXTERNALSYM DIBUTTON_HUNTING_SPECIAL}
  473.   DIBUTTON_HUNTING_MENU                   = $0D0004FD; (* Show menu options *)
  474.   {$EXTERNALSYM DIBUTTON_HUNTING_MENU}
  475. (*--- Priority 2 controls                            ---*)
  476.   DIHATSWITCH_HUNTING_GLANCE              = $0D004601; (* Look around *)
  477.   {$EXTERNALSYM DIHATSWITCH_HUNTING_GLANCE}
  478.   DIBUTTON_HUNTING_DISPLAY                = $0D004408; (* show next on-screen display option *)
  479.   {$EXTERNALSYM DIBUTTON_HUNTING_DISPLAY}
  480.   DIAXIS_HUNTING_ROTATE                   = $0D024203; (* Turn body left/right *)
  481.   {$EXTERNALSYM DIAXIS_HUNTING_ROTATE}
  482.   DIBUTTON_HUNTING_CROUCH                 = $0D004409; (* Crouch/ Climb / Swim down *)
  483.   {$EXTERNALSYM DIBUTTON_HUNTING_CROUCH}
  484.   DIBUTTON_HUNTING_JUMP                   = $0D00440A; (* Jump/ Climb up / Swim up *)
  485.   {$EXTERNALSYM DIBUTTON_HUNTING_JUMP}
  486.   DIBUTTON_HUNTING_FIRESECONDARY          = $0D00440B; (* Alternative fire button *)
  487.   {$EXTERNALSYM DIBUTTON_HUNTING_FIRESECONDARY}
  488.   DIBUTTON_HUNTING_LEFT_LINK              = $0D00C4E4; (* Fallback sidestep left button *)
  489.   {$EXTERNALSYM DIBUTTON_HUNTING_LEFT_LINK}
  490.   DIBUTTON_HUNTING_RIGHT_LINK             = $0D00C4EC; (* Fallback sidestep right button *)
  491.   {$EXTERNALSYM DIBUTTON_HUNTING_RIGHT_LINK}
  492.   DIBUTTON_HUNTING_FORWARD_LINK           = $0D0144E0; (* Fallback move forward button *)
  493.   {$EXTERNALSYM DIBUTTON_HUNTING_FORWARD_LINK}
  494.   DIBUTTON_HUNTING_BACK_LINK              = $0D0144E8; (* Fallback move back button *)
  495.   {$EXTERNALSYM DIBUTTON_HUNTING_BACK_LINK}
  496.   DIBUTTON_HUNTING_ROTATE_LEFT_LINK       = $0D0244E4; (* Fallback turn body left button *)
  497.   {$EXTERNALSYM DIBUTTON_HUNTING_ROTATE_LEFT_LINK}
  498.   DIBUTTON_HUNTING_ROTATE_RIGHT_LINK      = $0D0244EC; (* Fallback turn body right button *)
  499.   {$EXTERNALSYM DIBUTTON_HUNTING_ROTATE_RIGHT_LINK}
  500.   DIBUTTON_HUNTING_DEVICE                 = $0D0044FE; (* Show input device and controls *)
  501.   {$EXTERNALSYM DIBUTTON_HUNTING_DEVICE}
  502.   DIBUTTON_HUNTING_PAUSE                  = $0D0044FC; (* Start / Pause / Restart game *)
  503.   {$EXTERNALSYM DIBUTTON_HUNTING_PAUSE}
  504. (*--- Sports - Fishing
  505.       Catching Fish is primary objective   ---*)
  506.   DIVIRTUAL_SPORTS_FISHING                = $0E000000;
  507.   {$EXTERNALSYM DIVIRTUAL_SPORTS_FISHING}
  508.   DIAXIS_FISHING_LATERAL                  = $0E008201; (* sidestep left/right *)
  509.   {$EXTERNALSYM DIAXIS_FISHING_LATERAL}
  510.   DIAXIS_FISHING_MOVE                     = $0E010202; (* move forward/backwards *)
  511.   {$EXTERNALSYM DIAXIS_FISHING_MOVE}
  512.   DIBUTTON_FISHING_CAST                   = $0E000401; (* Cast line *)
  513.   {$EXTERNALSYM DIBUTTON_FISHING_CAST}
  514.   DIBUTTON_FISHING_TYPE                   = $0E000402; (* Select cast type *)
  515.   {$EXTERNALSYM DIBUTTON_FISHING_TYPE}
  516.   DIBUTTON_FISHING_BINOCULAR              = $0E000403; (* Look through Binocular *)
  517.   {$EXTERNALSYM DIBUTTON_FISHING_BINOCULAR}
  518.   DIBUTTON_FISHING_BAIT                   = $0E000404; (* Select type of Bait *)
  519.   {$EXTERNALSYM DIBUTTON_FISHING_BAIT}
  520.   DIBUTTON_FISHING_MAP                    = $0E000405; (* View Map *)
  521.   {$EXTERNALSYM DIBUTTON_FISHING_MAP}
  522.   DIBUTTON_FISHING_MENU                   = $0E0004FD; (* Show menu options *)
  523.   {$EXTERNALSYM DIBUTTON_FISHING_MENU}
  524. (*--- Priority 2 controls                            ---*)
  525.   DIHATSWITCH_FISHING_GLANCE              = $0E004601; (* Look around *)
  526.   {$EXTERNALSYM DIHATSWITCH_FISHING_GLANCE}
  527.   DIBUTTON_FISHING_DISPLAY                = $0E004406; (* Show next on-screen display option *)
  528.   {$EXTERNALSYM DIBUTTON_FISHING_DISPLAY}
  529.   DIAXIS_FISHING_ROTATE                   = $0E024203; (* Turn character left / right *)
  530.   {$EXTERNALSYM DIAXIS_FISHING_ROTATE}
  531.   DIBUTTON_FISHING_CROUCH                 = $0E004407; (* Crouch/ Climb / Swim down *)
  532.   {$EXTERNALSYM DIBUTTON_FISHING_CROUCH}
  533.   DIBUTTON_FISHING_JUMP                   = $0E004408; (* Jump/ Climb up / Swim up *)
  534.   {$EXTERNALSYM DIBUTTON_FISHING_JUMP}
  535.   DIBUTTON_FISHING_LEFT_LINK              = $0E00C4E4; (* Fallback sidestep left button *)
  536.   {$EXTERNALSYM DIBUTTON_FISHING_LEFT_LINK}
  537.   DIBUTTON_FISHING_RIGHT_LINK             = $0E00C4EC; (* Fallback sidestep right button *)
  538.   {$EXTERNALSYM DIBUTTON_FISHING_RIGHT_LINK}
  539.   DIBUTTON_FISHING_FORWARD_LINK           = $0E0144E0; (* Fallback move forward button *)
  540.   {$EXTERNALSYM DIBUTTON_FISHING_FORWARD_LINK}
  541.   DIBUTTON_FISHING_BACK_LINK              = $0E0144E8; (* Fallback move back button *)
  542.   {$EXTERNALSYM DIBUTTON_FISHING_BACK_LINK}
  543.   DIBUTTON_FISHING_ROTATE_LEFT_LINK       = $0E0244E4; (* Fallback turn body left button *)
  544.   {$EXTERNALSYM DIBUTTON_FISHING_ROTATE_LEFT_LINK}
  545.   DIBUTTON_FISHING_ROTATE_RIGHT_LINK      = $0E0244EC; (* Fallback turn body right button *)
  546.   {$EXTERNALSYM DIBUTTON_FISHING_ROTATE_RIGHT_LINK}
  547.   DIBUTTON_FISHING_DEVICE                 = $0E0044FE; (* Show input device and controls *)
  548.   {$EXTERNALSYM DIBUTTON_FISHING_DEVICE}
  549.   DIBUTTON_FISHING_PAUSE                  = $0E0044FC; (* Start / Pause / Restart game *)
  550.   {$EXTERNALSYM DIBUTTON_FISHING_PAUSE}
  551. (*--- Sports - Baseball - Batting
  552.       Batter control is primary objective  ---*)
  553.   DIVIRTUAL_SPORTS_BASEBALL_BAT           = $0F000000;
  554.   {$EXTERNALSYM DIVIRTUAL_SPORTS_BASEBALL_BAT}
  555.   DIAXIS_BASEBALLB_LATERAL                = $0F008201; (* Aim left / right *)
  556.   {$EXTERNALSYM DIAXIS_BASEBALLB_LATERAL}
  557.   DIAXIS_BASEBALLB_MOVE                   = $0F010202; (* Aim up / down *)
  558.   {$EXTERNALSYM DIAXIS_BASEBALLB_MOVE}
  559.   DIBUTTON_BASEBALLB_SELECT               = $0F000401; (* cycle through swing options *)
  560.   {$EXTERNALSYM DIBUTTON_BASEBALLB_SELECT}
  561.   DIBUTTON_BASEBALLB_NORMAL               = $0F000402; (* normal swing *)
  562.   {$EXTERNALSYM DIBUTTON_BASEBALLB_NORMAL}
  563.   DIBUTTON_BASEBALLB_POWER                = $0F000403; (* swing for the fence *)
  564.   {$EXTERNALSYM DIBUTTON_BASEBALLB_POWER}
  565.   DIBUTTON_BASEBALLB_BUNT                 = $0F000404; (* bunt *)
  566.   {$EXTERNALSYM DIBUTTON_BASEBALLB_BUNT}
  567.   DIBUTTON_BASEBALLB_STEAL                = $0F000405; (* Base runner attempts to steal a base *)
  568.   {$EXTERNALSYM DIBUTTON_BASEBALLB_STEAL}
  569.   DIBUTTON_BASEBALLB_BURST                = $0F000406; (* Base runner invokes burst of speed *)
  570.   {$EXTERNALSYM DIBUTTON_BASEBALLB_BURST}
  571.   DIBUTTON_BASEBALLB_SLIDE                = $0F000407; (* Base runner slides into base *)
  572.   {$EXTERNALSYM DIBUTTON_BASEBALLB_SLIDE}
  573.   DIBUTTON_BASEBALLB_CONTACT              = $0F000408; (* Contact swing *)
  574.   {$EXTERNALSYM DIBUTTON_BASEBALLB_CONTACT}
  575.   DIBUTTON_BASEBALLB_MENU                 = $0F0004FD; (* Show menu options *)
  576.   {$EXTERNALSYM DIBUTTON_BASEBALLB_MENU}
  577. (*--- Priority 2 controls                            ---*)
  578.   DIBUTTON_BASEBALLB_NOSTEAL              = $0F004409; (* Base runner goes back to a base *)
  579.   {$EXTERNALSYM DIBUTTON_BASEBALLB_NOSTEAL}
  580.   DIBUTTON_BASEBALLB_BOX                  = $0F00440A; (* Enter or exit batting box *)
  581.   {$EXTERNALSYM DIBUTTON_BASEBALLB_BOX}
  582.   DIBUTTON_BASEBALLB_LEFT_LINK            = $0F00C4E4; (* Fallback sidestep left button *)
  583.   {$EXTERNALSYM DIBUTTON_BASEBALLB_LEFT_LINK}
  584.   DIBUTTON_BASEBALLB_RIGHT_LINK           = $0F00C4EC; (* Fallback sidestep right button *)
  585.   {$EXTERNALSYM DIBUTTON_BASEBALLB_RIGHT_LINK}
  586.   DIBUTTON_BASEBALLB_FORWARD_LINK         = $0F0144E0; (* Fallback move forward button *)
  587.   {$EXTERNALSYM DIBUTTON_BASEBALLB_FORWARD_LINK}
  588.   DIBUTTON_BASEBALLB_BACK_LINK            = $0F0144E8; (* Fallback move back button *)
  589.   {$EXTERNALSYM DIBUTTON_BASEBALLB_BACK_LINK}
  590.   DIBUTTON_BASEBALLB_DEVICE               = $0F0044FE; (* Show input device and controls *)
  591.   {$EXTERNALSYM DIBUTTON_BASEBALLB_DEVICE}
  592.   DIBUTTON_BASEBALLB_PAUSE                = $0F0044FC; (* Start / Pause / Restart game *)
  593.   {$EXTERNALSYM DIBUTTON_BASEBALLB_PAUSE}
  594. (*--- Sports - Baseball - Pitching
  595.       Pitcher control is primary objective   ---*)
  596.   DIVIRTUAL_SPORTS_BASEBALL_PITCH         = $10000000;
  597.   {$EXTERNALSYM DIVIRTUAL_SPORTS_BASEBALL_PITCH}
  598.   DIAXIS_BASEBALLP_LATERAL                = $10008201; (* Aim left / right *)
  599.   {$EXTERNALSYM DIAXIS_BASEBALLP_LATERAL}
  600.   DIAXIS_BASEBALLP_MOVE                   = $10010202; (* Aim up / down *)
  601.   {$EXTERNALSYM DIAXIS_BASEBALLP_MOVE}
  602.   DIBUTTON_BASEBALLP_SELECT               = $10000401; (* cycle through pitch selections *)
  603.   {$EXTERNALSYM DIBUTTON_BASEBALLP_SELECT}
  604.   DIBUTTON_BASEBALLP_PITCH                = $10000402; (* throw pitch *)
  605.   {$EXTERNALSYM DIBUTTON_BASEBALLP_PITCH}
  606.   DIBUTTON_BASEBALLP_BASE                 = $10000403; (* select base to throw to *)
  607.   {$EXTERNALSYM DIBUTTON_BASEBALLP_BASE}
  608.   DIBUTTON_BASEBALLP_THROW                = $10000404; (* throw to base *)
  609.   {$EXTERNALSYM DIBUTTON_BASEBALLP_THROW}
  610.   DIBUTTON_BASEBALLP_FAKE                 = $10000405; (* Fake a throw to a base *)
  611.   {$EXTERNALSYM DIBUTTON_BASEBALLP_FAKE}
  612.   DIBUTTON_BASEBALLP_MENU                 = $100004FD; (* Show menu options *)
  613.   {$EXTERNALSYM DIBUTTON_BASEBALLP_MENU}
  614. (*--- Priority 2 controls                            ---*)
  615.   DIBUTTON_BASEBALLP_WALK                 = $10004406; (* Throw intentional walk / pitch out *)
  616.   {$EXTERNALSYM DIBUTTON_BASEBALLP_WALK}
  617.   DIBUTTON_BASEBALLP_LOOK                 = $10004407; (* Look at runners on bases *)
  618.   {$EXTERNALSYM DIBUTTON_BASEBALLP_LOOK}
  619.   DIBUTTON_BASEBALLP_LEFT_LINK            = $1000C4E4; (* Fallback sidestep left button *)
  620.   {$EXTERNALSYM DIBUTTON_BASEBALLP_LEFT_LINK}
  621.   DIBUTTON_BASEBALLP_RIGHT_LINK           = $1000C4EC; (* Fallback sidestep right button *)
  622.   {$EXTERNALSYM DIBUTTON_BASEBALLP_RIGHT_LINK}
  623.   DIBUTTON_BASEBALLP_FORWARD_LINK         = $100144E0; (* Fallback move forward button *)
  624.   {$EXTERNALSYM DIBUTTON_BASEBALLP_FORWARD_LINK}
  625.   DIBUTTON_BASEBALLP_BACK_LINK            = $100144E8; (* Fallback move back button *)
  626.   {$EXTERNALSYM DIBUTTON_BASEBALLP_BACK_LINK}
  627.   DIBUTTON_BASEBALLP_DEVICE               = $100044FE; (* Show input device and controls *)
  628.   {$EXTERNALSYM DIBUTTON_BASEBALLP_DEVICE}
  629.   DIBUTTON_BASEBALLP_PAUSE                = $100044FC; (* Start / Pause / Restart game *)
  630.   {$EXTERNALSYM DIBUTTON_BASEBALLP_PAUSE}
  631. (*--- Sports - Baseball - Fielding
  632.       Fielder control is primary objective  ---*)
  633.   DIVIRTUAL_SPORTS_BASEBALL_FIELD         = $11000000;
  634.   {$EXTERNALSYM DIVIRTUAL_SPORTS_BASEBALL_FIELD}
  635.   DIAXIS_BASEBALLF_LATERAL                = $11008201; (* Aim left / right *)
  636.   {$EXTERNALSYM DIAXIS_BASEBALLF_LATERAL}
  637.   DIAXIS_BASEBALLF_MOVE                   = $11010202; (* Aim up / down *)
  638.   {$EXTERNALSYM DIAXIS_BASEBALLF_MOVE}
  639.   DIBUTTON_BASEBALLF_NEAREST              = $11000401; (* Switch to fielder nearest to the ball *)
  640.   {$EXTERNALSYM DIBUTTON_BASEBALLF_NEAREST}
  641.   DIBUTTON_BASEBALLF_THROW1               = $11000402; (* Make conservative throw *)
  642.   {$EXTERNALSYM DIBUTTON_BASEBALLF_THROW1}
  643.   DIBUTTON_BASEBALLF_THROW2               = $11000403; (* Make aggressive throw *)
  644.   {$EXTERNALSYM DIBUTTON_BASEBALLF_THROW2}
  645.   DIBUTTON_BASEBALLF_BURST                = $11000404; (* Invoke burst of speed *)
  646.   {$EXTERNALSYM DIBUTTON_BASEBALLF_BURST}
  647.   DIBUTTON_BASEBALLF_JUMP                 = $11000405; (* Jump to catch ball *)
  648.   {$EXTERNALSYM DIBUTTON_BASEBALLF_JUMP}
  649.   DIBUTTON_BASEBALLF_DIVE                 = $11000406; (* Dive to catch ball *)
  650.   {$EXTERNALSYM DIBUTTON_BASEBALLF_DIVE}
  651.   DIBUTTON_BASEBALLF_MENU                 = $110004FD; (* Show menu options *)
  652.   {$EXTERNALSYM DIBUTTON_BASEBALLF_MENU}
  653. (*--- Priority 2 controls                            ---*)
  654.   DIBUTTON_BASEBALLF_SHIFTIN              = $11004407; (* Shift the infield positioning *)
  655.   {$EXTERNALSYM DIBUTTON_BASEBALLF_SHIFTIN}
  656.   DIBUTTON_BASEBALLF_SHIFTOUT             = $11004408; (* Shift the outfield positioning *)
  657.   {$EXTERNALSYM DIBUTTON_BASEBALLF_SHIFTOUT}
  658.   DIBUTTON_BASEBALLF_AIM_LEFT_LINK        = $1100C4E4; (* Fallback aim left button *)
  659.   {$EXTERNALSYM DIBUTTON_BASEBALLF_AIM_LEFT_LINK}
  660.   DIBUTTON_BASEBALLF_AIM_RIGHT_LINK       = $1100C4EC; (* Fallback aim right button *)
  661.   {$EXTERNALSYM DIBUTTON_BASEBALLF_AIM_RIGHT_LINK}
  662.   DIBUTTON_BASEBALLF_FORWARD_LINK         = $110144E0; (* Fallback move forward button *)
  663.   {$EXTERNALSYM DIBUTTON_BASEBALLF_FORWARD_LINK}
  664.   DIBUTTON_BASEBALLF_BACK_LINK            = $110144E8; (* Fallback move back button *)
  665.   {$EXTERNALSYM DIBUTTON_BASEBALLF_BACK_LINK}
  666.   DIBUTTON_BASEBALLF_DEVICE               = $110044FE; (* Show input device and controls *)
  667.   {$EXTERNALSYM DIBUTTON_BASEBALLF_DEVICE}
  668.   DIBUTTON_BASEBALLF_PAUSE                = $110044FC; (* Start / Pause / Restart game *)
  669.   {$EXTERNALSYM DIBUTTON_BASEBALLF_PAUSE}
  670. (*--- Sports - Basketball - Offense
  671.       Offense  ---*)
  672.   DIVIRTUAL_SPORTS_BASKETBALL_OFFENSE     = $12000000;
  673.   {$EXTERNALSYM DIVIRTUAL_SPORTS_BASKETBALL_OFFENSE}
  674.   DIAXIS_BBALLO_LATERAL                   = $12008201; (* left / right *)
  675.   {$EXTERNALSYM DIAXIS_BBALLO_LATERAL}
  676.   DIAXIS_BBALLO_MOVE                      = $12010202; (* up / down *)
  677.   {$EXTERNALSYM DIAXIS_BBALLO_MOVE}
  678.   DIBUTTON_BBALLO_SHOOT                   = $12000401; (* shoot basket *)
  679.   {$EXTERNALSYM DIBUTTON_BBALLO_SHOOT}
  680.   DIBUTTON_BBALLO_DUNK                    = $12000402; (* dunk basket *)
  681.   {$EXTERNALSYM DIBUTTON_BBALLO_DUNK}
  682.   DIBUTTON_BBALLO_PASS                    = $12000403; (* throw pass *)
  683.   {$EXTERNALSYM DIBUTTON_BBALLO_PASS}
  684.   DIBUTTON_BBALLO_FAKE                    = $12000404; (* fake shot or pass *)
  685.   {$EXTERNALSYM DIBUTTON_BBALLO_FAKE}
  686.   DIBUTTON_BBALLO_SPECIAL                 = $12000405; (* apply special move *)
  687.   {$EXTERNALSYM DIBUTTON_BBALLO_SPECIAL}
  688.   DIBUTTON_BBALLO_PLAYER                  = $12000406; (* select next player *)
  689.   {$EXTERNALSYM DIBUTTON_BBALLO_PLAYER}
  690.   DIBUTTON_BBALLO_BURST                   = $12000407; (* invoke burst *)
  691.   {$EXTERNALSYM DIBUTTON_BBALLO_BURST}
  692.   DIBUTTON_BBALLO_CALL                    = $12000408; (* call for ball / pass to me *)
  693.   {$EXTERNALSYM DIBUTTON_BBALLO_CALL}
  694.   DIBUTTON_BBALLO_MENU                    = $120004FD; (* Show menu options *)
  695.   {$EXTERNALSYM DIBUTTON_BBALLO_MENU}
  696. (*--- Priority 2 controls                            ---*)
  697.   DIHATSWITCH_BBALLO_GLANCE               = $12004601; (* scroll view *)
  698.   {$EXTERNALSYM DIHATSWITCH_BBALLO_GLANCE}
  699.   DIBUTTON_BBALLO_SCREEN                  = $12004409; (* Call for screen *)
  700.   {$EXTERNALSYM DIBUTTON_BBALLO_SCREEN}
  701.   DIBUTTON_BBALLO_PLAY                    = $1200440A; (* Call for specific offensive play *)
  702.   {$EXTERNALSYM DIBUTTON_BBALLO_PLAY}
  703.   DIBUTTON_BBALLO_JAB                     = $1200440B; (* Initiate fake drive to basket *)
  704.   {$EXTERNALSYM DIBUTTON_BBALLO_JAB}
  705.   DIBUTTON_BBALLO_POST                    = $1200440C; (* Perform post move *)
  706.   {$EXTERNALSYM DIBUTTON_BBALLO_POST}
  707.   DIBUTTON_BBALLO_TIMEOUT                 = $1200440D; (* Time Out *)
  708.   {$EXTERNALSYM DIBUTTON_BBALLO_TIMEOUT}
  709.   DIBUTTON_BBALLO_SUBSTITUTE              = $1200440E; (* substitute one player for another *)
  710.   {$EXTERNALSYM DIBUTTON_BBALLO_SUBSTITUTE}
  711.   DIBUTTON_BBALLO_LEFT_LINK               = $1200C4E4; (* Fallback sidestep left button *)
  712.   {$EXTERNALSYM DIBUTTON_BBALLO_LEFT_LINK}
  713.   DIBUTTON_BBALLO_RIGHT_LINK              = $1200C4EC; (* Fallback sidestep right button *)
  714.   {$EXTERNALSYM DIBUTTON_BBALLO_RIGHT_LINK}
  715.   DIBUTTON_BBALLO_FORWARD_LINK            = $120144E0; (* Fallback move forward button *)
  716.   {$EXTERNALSYM DIBUTTON_BBALLO_FORWARD_LINK}
  717.   DIBUTTON_BBALLO_BACK_LINK               = $120144E8; (* Fallback move back button *)
  718.   {$EXTERNALSYM DIBUTTON_BBALLO_BACK_LINK}
  719.   DIBUTTON_BBALLO_DEVICE                  = $120044FE; (* Show input device and controls *)
  720.   {$EXTERNALSYM DIBUTTON_BBALLO_DEVICE}
  721.   DIBUTTON_BBALLO_PAUSE                   = $120044FC; (* Start / Pause / Restart game *)
  722.   {$EXTERNALSYM DIBUTTON_BBALLO_PAUSE}
  723. (*--- Sports - Basketball - Defense
  724.       Defense  ---*)
  725.   DIVIRTUAL_SPORTS_BASKETBALL_DEFENSE     = $13000000;
  726.   {$EXTERNALSYM DIVIRTUAL_SPORTS_BASKETBALL_DEFENSE}
  727.   DIAXIS_BBALLD_LATERAL                   = $13008201; (* left / right *)
  728.   {$EXTERNALSYM DIAXIS_BBALLD_LATERAL}
  729.   DIAXIS_BBALLD_MOVE                      = $13010202; (* up / down *)
  730.   {$EXTERNALSYM DIAXIS_BBALLD_MOVE}
  731.   DIBUTTON_BBALLD_JUMP                    = $13000401; (* jump to block shot *)
  732.   {$EXTERNALSYM DIBUTTON_BBALLD_JUMP}
  733.   DIBUTTON_BBALLD_STEAL                   = $13000402; (* attempt to steal ball *)
  734.   {$EXTERNALSYM DIBUTTON_BBALLD_STEAL}
  735.   DIBUTTON_BBALLD_FAKE                    = $13000403; (* fake block or steal *)
  736.   {$EXTERNALSYM DIBUTTON_BBALLD_FAKE}
  737.   DIBUTTON_BBALLD_SPECIAL                 = $13000404; (* apply special move *)
  738.   {$EXTERNALSYM DIBUTTON_BBALLD_SPECIAL}
  739.   DIBUTTON_BBALLD_PLAYER                  = $13000405; (* select next player *)
  740.   {$EXTERNALSYM DIBUTTON_BBALLD_PLAYER}
  741.   DIBUTTON_BBALLD_BURST                   = $13000406; (* invoke burst *)
  742.   {$EXTERNALSYM DIBUTTON_BBALLD_BURST}
  743.   DIBUTTON_BBALLD_PLAY                    = $13000407; (* call for specific defensive play *)
  744.   {$EXTERNALSYM DIBUTTON_BBALLD_PLAY}
  745.   DIBUTTON_BBALLD_MENU                    = $130004FD; (* Show menu options *)
  746.   {$EXTERNALSYM DIBUTTON_BBALLD_MENU}
  747. (*--- Priority 2 controls                            ---*)
  748.   DIHATSWITCH_BBALLD_GLANCE               = $13004601; (* scroll view *)
  749.   {$EXTERNALSYM DIHATSWITCH_BBALLD_GLANCE}
  750.   DIBUTTON_BBALLD_TIMEOUT                 = $13004408; (* Time Out *)
  751.   {$EXTERNALSYM DIBUTTON_BBALLD_TIMEOUT}
  752.   DIBUTTON_BBALLD_SUBSTITUTE              = $13004409; (* substitute one player for another *)
  753.   {$EXTERNALSYM DIBUTTON_BBALLD_SUBSTITUTE}
  754.   DIBUTTON_BBALLD_LEFT_LINK               = $1300C4E4; (* Fallback sidestep left button *)
  755.   {$EXTERNALSYM DIBUTTON_BBALLD_LEFT_LINK}
  756.   DIBUTTON_BBALLD_RIGHT_LINK              = $1300C4EC; (* Fallback sidestep right button *)
  757.   {$EXTERNALSYM DIBUTTON_BBALLD_RIGHT_LINK}
  758.   DIBUTTON_BBALLD_FORWARD_LINK            = $130144E0; (* Fallback move forward button *)
  759.   {$EXTERNALSYM DIBUTTON_BBALLD_FORWARD_LINK}
  760.   DIBUTTON_BBALLD_BACK_LINK               = $130144E8; (* Fallback move back button *)
  761.   {$EXTERNALSYM DIBUTTON_BBALLD_BACK_LINK}
  762.   DIBUTTON_BBALLD_DEVICE                  = $130044FE; (* Show input device and controls *)
  763.   {$EXTERNALSYM DIBUTTON_BBALLD_DEVICE}
  764.   DIBUTTON_BBALLD_PAUSE                   = $130044FC; (* Start / Pause / Restart game *)
  765.   {$EXTERNALSYM DIBUTTON_BBALLD_PAUSE}
  766. (*--- Sports - Football - Play
  767.       Play selection  ---*)
  768.   DIVIRTUAL_SPORTS_FOOTBALL_FIELD         = $14000000;
  769.   {$EXTERNALSYM DIVIRTUAL_SPORTS_FOOTBALL_FIELD}
  770.   DIBUTTON_FOOTBALLP_PLAY                 = $14000401; (* cycle through available plays *)
  771.   {$EXTERNALSYM DIBUTTON_FOOTBALLP_PLAY}
  772.   DIBUTTON_FOOTBALLP_SELECT               = $14000402; (* select play *)
  773.   {$EXTERNALSYM DIBUTTON_FOOTBALLP_SELECT}
  774.   DIBUTTON_FOOTBALLP_HELP                 = $14000403; (* Bring up pop-up help *)
  775.   {$EXTERNALSYM DIBUTTON_FOOTBALLP_HELP}
  776.   DIBUTTON_FOOTBALLP_MENU                 = $140004FD; (* Show menu options *)
  777.   {$EXTERNALSYM DIBUTTON_FOOTBALLP_MENU}
  778. (*--- Priority 2 controls                            ---*)
  779.   DIBUTTON_FOOTBALLP_DEVICE               = $140044FE; (* Show input device and controls *)
  780.   {$EXTERNALSYM DIBUTTON_FOOTBALLP_DEVICE}
  781.   DIBUTTON_FOOTBALLP_PAUSE                = $140044FC; (* Start / Pause / Restart game *)
  782.   {$EXTERNALSYM DIBUTTON_FOOTBALLP_PAUSE}
  783. (*--- Sports - Football - QB
  784.       Offense: Quarterback / Kicker  ---*)
  785.   DIVIRTUAL_SPORTS_FOOTBALL_QBCK          = $15000000;
  786.   {$EXTERNALSYM DIVIRTUAL_SPORTS_FOOTBALL_QBCK}
  787.   DIAXIS_FOOTBALLQ_LATERAL                = $15008201; (* Move / Aim: left / right *)
  788.   {$EXTERNALSYM DIAXIS_FOOTBALLQ_LATERAL}
  789.   DIAXIS_FOOTBALLQ_MOVE                   = $15010202; (* Move / Aim: up / down *)
  790.   {$EXTERNALSYM DIAXIS_FOOTBALLQ_MOVE}
  791.   DIBUTTON_FOOTBALLQ_SELECT               = $15000401; (* Select *)
  792.   {$EXTERNALSYM DIBUTTON_FOOTBALLQ_SELECT}
  793.   DIBUTTON_FOOTBALLQ_SNAP                 = $15000402; (* snap ball - start play *)
  794.   {$EXTERNALSYM DIBUTTON_FOOTBALLQ_SNAP}
  795.   DIBUTTON_FOOTBALLQ_JUMP                 = $15000403; (* jump over defender *)
  796.   {$EXTERNALSYM DIBUTTON_FOOTBALLQ_JUMP}
  797.   DIBUTTON_FOOTBALLQ_SLIDE                = $15000404; (* Dive/Slide *)
  798.   {$EXTERNALSYM DIBUTTON_FOOTBALLQ_SLIDE}
  799.   DIBUTTON_FOOTBALLQ_PASS                 = $15000405; (* throws pass to receiver *)
  800.   {$EXTERNALSYM DIBUTTON_FOOTBALLQ_PASS}
  801.   DIBUTTON_FOOTBALLQ_FAKE                 = $15000406; (* pump fake pass or fake kick *)
  802.   {$EXTERNALSYM DIBUTTON_FOOTBALLQ_FAKE}
  803.   DIBUTTON_FOOTBALLQ_MENU                 = $150004FD; (* Show menu options *)
  804.   {$EXTERNALSYM DIBUTTON_FOOTBALLQ_MENU}
  805. (*--- Priority 2 controls                            ---*)
  806.   DIBUTTON_FOOTBALLQ_FAKESNAP             = $15004407; (* Fake snap  *)
  807.   {$EXTERNALSYM DIBUTTON_FOOTBALLQ_FAKESNAP}
  808.   DIBUTTON_FOOTBALLQ_MOTION               = $15004408; (* Send receivers in motion *)
  809.   {$EXTERNALSYM DIBUTTON_FOOTBALLQ_MOTION}
  810.   DIBUTTON_FOOTBALLQ_AUDIBLE              = $15004409; (* Change offensive play at line of scrimmage *)
  811.   {$EXTERNALSYM DIBUTTON_FOOTBALLQ_AUDIBLE}
  812.   DIBUTTON_FOOTBALLQ_LEFT_LINK            = $1500C4E4; (* Fallback sidestep left button *)
  813.   {$EXTERNALSYM DIBUTTON_FOOTBALLQ_LEFT_LINK}
  814.   DIBUTTON_FOOTBALLQ_RIGHT_LINK           = $1500C4EC; (* Fallback sidestep right button *)
  815.   {$EXTERNALSYM DIBUTTON_FOOTBALLQ_RIGHT_LINK}
  816.   DIBUTTON_FOOTBALLQ_FORWARD_LINK         = $150144E0; (* Fallback move forward button *)
  817.   {$EXTERNALSYM DIBUTTON_FOOTBALLQ_FORWARD_LINK}
  818.   DIBUTTON_FOOTBALLQ_BACK_LINK            = $150144E8; (* Fallback move back button *)
  819.   {$EXTERNALSYM DIBUTTON_FOOTBALLQ_BACK_LINK}
  820.   DIBUTTON_FOOTBALLQ_DEVICE               = $150044FE; (* Show input device and controls *)
  821.   {$EXTERNALSYM DIBUTTON_FOOTBALLQ_DEVICE}
  822.   DIBUTTON_FOOTBALLQ_PAUSE                = $150044FC; (* Start / Pause / Restart game *)
  823.   {$EXTERNALSYM DIBUTTON_FOOTBALLQ_PAUSE}
  824. (*--- Sports - Football - Offense
  825.       Offense - Runner  ---*)
  826.   DIVIRTUAL_SPORTS_FOOTBALL_OFFENSE       = $16000000;
  827.   {$EXTERNALSYM DIVIRTUAL_SPORTS_FOOTBALL_OFFENSE}
  828.   DIAXIS_FOOTBALLO_LATERAL                = $16008201; (* Move / Aim: left / right *)
  829.   {$EXTERNALSYM DIAXIS_FOOTBALLO_LATERAL}
  830.   DIAXIS_FOOTBALLO_MOVE                   = $16010202; (* Move / Aim: up / down *)
  831.   {$EXTERNALSYM DIAXIS_FOOTBALLO_MOVE}
  832.   DIBUTTON_FOOTBALLO_JUMP                 = $16000401; (* jump or hurdle over defender *)
  833.   {$EXTERNALSYM DIBUTTON_FOOTBALLO_JUMP}
  834.   DIBUTTON_FOOTBALLO_LEFTARM              = $16000402; (* holds out left arm *)
  835.   {$EXTERNALSYM DIBUTTON_FOOTBALLO_LEFTARM}
  836.   DIBUTTON_FOOTBALLO_RIGHTARM             = $16000403; (* holds out right arm *)
  837.   {$EXTERNALSYM DIBUTTON_FOOTBALLO_RIGHTARM}
  838.   DIBUTTON_FOOTBALLO_THROW                = $16000404; (* throw pass or lateral ball to another runner *)
  839.   {$EXTERNALSYM DIBUTTON_FOOTBALLO_THROW}
  840.   DIBUTTON_FOOTBALLO_SPIN                 = $16000405; (* Spin to avoid defenders *)
  841.   {$EXTERNALSYM DIBUTTON_FOOTBALLO_SPIN}
  842.   DIBUTTON_FOOTBALLO_MENU                 = $160004FD; (* Show menu options *)
  843.   {$EXTERNALSYM DIBUTTON_FOOTBALLO_MENU}
  844. (*--- Priority 2 controls                            ---*)
  845.   DIBUTTON_FOOTBALLO_JUKE                 = $16004406; (* Use special move to avoid defenders *)
  846.   {$EXTERNALSYM DIBUTTON_FOOTBALLO_JUKE}
  847.   DIBUTTON_FOOTBALLO_SHOULDER             = $16004407; (* Lower shoulder to run over defenders *)
  848.   {$EXTERNALSYM DIBUTTON_FOOTBALLO_SHOULDER}
  849.   DIBUTTON_FOOTBALLO_TURBO                = $16004408; (* Speed burst past defenders *)
  850.   {$EXTERNALSYM DIBUTTON_FOOTBALLO_TURBO}
  851.   DIBUTTON_FOOTBALLO_DIVE                 = $16004409; (* Dive over defenders *)
  852.   {$EXTERNALSYM DIBUTTON_FOOTBALLO_DIVE}
  853.   DIBUTTON_FOOTBALLO_ZOOM                 = $1600440A; (* Zoom view in / out *)
  854.   {$EXTERNALSYM DIBUTTON_FOOTBALLO_ZOOM}
  855.   DIBUTTON_FOOTBALLO_SUBSTITUTE           = $1600440B; (* substitute one player for another *)
  856.   {$EXTERNALSYM DIBUTTON_FOOTBALLO_SUBSTITUTE}
  857.   DIBUTTON_FOOTBALLO_LEFT_LINK            = $1600C4E4; (* Fallback sidestep left button *)
  858.   {$EXTERNALSYM DIBUTTON_FOOTBALLO_LEFT_LINK}
  859.   DIBUTTON_FOOTBALLO_RIGHT_LINK           = $1600C4EC; (* Fallback sidestep right button *)
  860.   {$EXTERNALSYM DIBUTTON_FOOTBALLO_RIGHT_LINK}
  861.   DIBUTTON_FOOTBALLO_FORWARD_LINK         = $160144E0; (* Fallback move forward button *)
  862.   {$EXTERNALSYM DIBUTTON_FOOTBALLO_FORWARD_LINK}
  863.   DIBUTTON_FOOTBALLO_BACK_LINK            = $160144E8; (* Fallback move back button *)
  864.   {$EXTERNALSYM DIBUTTON_FOOTBALLO_BACK_LINK}
  865.   DIBUTTON_FOOTBALLO_DEVICE               = $160044FE; (* Show input device and controls *)
  866.   {$EXTERNALSYM DIBUTTON_FOOTBALLO_DEVICE}
  867.   DIBUTTON_FOOTBALLO_PAUSE                = $160044FC; (* Start / Pause / Restart game *)
  868.   {$EXTERNALSYM DIBUTTON_FOOTBALLO_PAUSE}
  869. (*--- Sports - Football - Defense
  870.       Defense     ---*)
  871.   DIVIRTUAL_SPORTS_FOOTBALL_DEFENSE       = $17000000;
  872.   {$EXTERNALSYM DIVIRTUAL_SPORTS_FOOTBALL_DEFENSE}
  873.   DIAXIS_FOOTBALLD_LATERAL                = $17008201; (* Move / Aim: left / right *)
  874.   {$EXTERNALSYM DIAXIS_FOOTBALLD_LATERAL}
  875.   DIAXIS_FOOTBALLD_MOVE                   = $17010202; (* Move / Aim: up / down *)
  876.   {$EXTERNALSYM DIAXIS_FOOTBALLD_MOVE}
  877.   DIBUTTON_FOOTBALLD_PLAY                 = $17000401; (* cycle through available plays *)
  878.   {$EXTERNALSYM DIBUTTON_FOOTBALLD_PLAY}
  879.   DIBUTTON_FOOTBALLD_SELECT               = $17000402; (* select player closest to the ball *)
  880.   {$EXTERNALSYM DIBUTTON_FOOTBALLD_SELECT}
  881.   DIBUTTON_FOOTBALLD_JUMP                 = $17000403; (* jump to intercept or block *)
  882.   {$EXTERNALSYM DIBUTTON_FOOTBALLD_JUMP}
  883.   DIBUTTON_FOOTBALLD_TACKLE               = $17000404; (* tackler runner *)
  884.   {$EXTERNALSYM DIBUTTON_FOOTBALLD_TACKLE}
  885.   DIBUTTON_FOOTBALLD_FAKE                 = $17000405; (* hold down to fake tackle or intercept *)
  886.   {$EXTERNALSYM DIBUTTON_FOOTBALLD_FAKE}
  887.   DIBUTTON_FOOTBALLD_SUPERTACKLE          = $17000406; (* Initiate special tackle *)
  888.   {$EXTERNALSYM DIBUTTON_FOOTBALLD_SUPERTACKLE}
  889.   DIBUTTON_FOOTBALLD_MENU                 = $170004FD; (* Show menu options *)
  890.   {$EXTERNALSYM DIBUTTON_FOOTBALLD_MENU}
  891. (*--- Priority 2 controls                            ---*)
  892.   DIBUTTON_FOOTBALLD_SPIN                 = $17004407; (* Spin to beat offensive line *)
  893.   {$EXTERNALSYM DIBUTTON_FOOTBALLD_SPIN}
  894.   DIBUTTON_FOOTBALLD_SWIM                 = $17004408; (* Swim to beat the offensive line *)
  895.   {$EXTERNALSYM DIBUTTON_FOOTBALLD_SWIM}
  896.   DIBUTTON_FOOTBALLD_BULLRUSH             = $17004409; (* Bull rush the offensive line *)
  897.   {$EXTERNALSYM DIBUTTON_FOOTBALLD_BULLRUSH}
  898.   DIBUTTON_FOOTBALLD_RIP                  = $1700440A; (* Rip the offensive line *)
  899.   {$EXTERNALSYM DIBUTTON_FOOTBALLD_RIP}
  900.   DIBUTTON_FOOTBALLD_AUDIBLE              = $1700440B; (* Change defensive play at the line of scrimmage *)
  901.   {$EXTERNALSYM DIBUTTON_FOOTBALLD_AUDIBLE}
  902.   DIBUTTON_FOOTBALLD_ZOOM                 = $1700440C; (* Zoom view in / out *)
  903.   {$EXTERNALSYM DIBUTTON_FOOTBALLD_ZOOM}
  904.   DIBUTTON_FOOTBALLD_SUBSTITUTE           = $1700440D; (* substitute one player for another *)
  905.   {$EXTERNALSYM DIBUTTON_FOOTBALLD_SUBSTITUTE}
  906.   DIBUTTON_FOOTBALLD_LEFT_LINK            = $1700C4E4; (* Fallback sidestep left button *)
  907.   {$EXTERNALSYM DIBUTTON_FOOTBALLD_LEFT_LINK}
  908.   DIBUTTON_FOOTBALLD_RIGHT_LINK           = $1700C4EC; (* Fallback sidestep right button *)
  909.   {$EXTERNALSYM DIBUTTON_FOOTBALLD_RIGHT_LINK}
  910.   DIBUTTON_FOOTBALLD_FORWARD_LINK         = $170144E0; (* Fallback move forward button *)
  911.   {$EXTERNALSYM DIBUTTON_FOOTBALLD_FORWARD_LINK}
  912.   DIBUTTON_FOOTBALLD_BACK_LINK            = $170144E8; (* Fallback move back button *)
  913.   {$EXTERNALSYM DIBUTTON_FOOTBALLD_BACK_LINK}
  914.   DIBUTTON_FOOTBALLD_DEVICE               = $170044FE; (* Show input device and controls *)
  915.   {$EXTERNALSYM DIBUTTON_FOOTBALLD_DEVICE}
  916.   DIBUTTON_FOOTBALLD_PAUSE                = $170044FC; (* Start / Pause / Restart game *)
  917.   {$EXTERNALSYM DIBUTTON_FOOTBALLD_PAUSE}
  918. (*--- Sports - Golf
  919.                                 ---*)
  920.   DIVIRTUAL_SPORTS_GOLF                   = $18000000;
  921.   {$EXTERNALSYM DIVIRTUAL_SPORTS_GOLF}
  922.   DIAXIS_GOLF_LATERAL                     = $18008201; (* Move / Aim: left / right *)
  923.   {$EXTERNALSYM DIAXIS_GOLF_LATERAL}
  924.   DIAXIS_GOLF_MOVE                        = $18010202; (* Move / Aim: up / down *)
  925.   {$EXTERNALSYM DIAXIS_GOLF_MOVE}
  926.   DIBUTTON_GOLF_SWING                     = $18000401; (* swing club *)
  927.   {$EXTERNALSYM DIBUTTON_GOLF_SWING}
  928.   DIBUTTON_GOLF_SELECT                    = $18000402; (* cycle between: club / swing strength / ball arc / ball spin *)
  929.   {$EXTERNALSYM DIBUTTON_GOLF_SELECT}
  930.   DIBUTTON_GOLF_UP                        = $18000403; (* increase selection *)
  931.   {$EXTERNALSYM DIBUTTON_GOLF_UP}
  932.   DIBUTTON_GOLF_DOWN                      = $18000404; (* decrease selection *)
  933.   {$EXTERNALSYM DIBUTTON_GOLF_DOWN}
  934.   DIBUTTON_GOLF_TERRAIN                   = $18000405; (* shows terrain detail *)
  935.   {$EXTERNALSYM DIBUTTON_GOLF_TERRAIN}
  936.   DIBUTTON_GOLF_FLYBY                     = $18000406; (* view the hole via a flyby *)
  937.   {$EXTERNALSYM DIBUTTON_GOLF_FLYBY}
  938.   DIBUTTON_GOLF_MENU                      = $180004FD; (* Show menu options *)
  939.   {$EXTERNALSYM DIBUTTON_GOLF_MENU}
  940. (*--- Priority 2 controls                            ---*)
  941.   DIHATSWITCH_GOLF_SCROLL                 = $18004601; (* scroll view *)
  942.   {$EXTERNALSYM DIHATSWITCH_GOLF_SCROLL}
  943.   DIBUTTON_GOLF_ZOOM                      = $18004407; (* Zoom view in / out *)
  944.   {$EXTERNALSYM DIBUTTON_GOLF_ZOOM}
  945.   DIBUTTON_GOLF_TIMEOUT                   = $18004408; (* Call for time out *)
  946.   {$EXTERNALSYM DIBUTTON_GOLF_TIMEOUT}
  947.   DIBUTTON_GOLF_SUBSTITUTE                = $18004409; (* substitute one player for another *)
  948.   {$EXTERNALSYM DIBUTTON_GOLF_SUBSTITUTE}
  949.   DIBUTTON_GOLF_LEFT_LINK                 = $1800C4E4; (* Fallback sidestep left button *)
  950.   {$EXTERNALSYM DIBUTTON_GOLF_LEFT_LINK}
  951.   DIBUTTON_GOLF_RIGHT_LINK                = $1800C4EC; (* Fallback sidestep right button *)
  952.   {$EXTERNALSYM DIBUTTON_GOLF_RIGHT_LINK}
  953.   DIBUTTON_GOLF_FORWARD_LINK              = $180144E0; (* Fallback move forward button *)
  954.   {$EXTERNALSYM DIBUTTON_GOLF_FORWARD_LINK}
  955.   DIBUTTON_GOLF_BACK_LINK                 = $180144E8; (* Fallback move back button *)
  956.   {$EXTERNALSYM DIBUTTON_GOLF_BACK_LINK}
  957.   DIBUTTON_GOLF_DEVICE                    = $180044FE; (* Show input device and controls *)
  958.   {$EXTERNALSYM DIBUTTON_GOLF_DEVICE}
  959.   DIBUTTON_GOLF_PAUSE                     = $180044FC; (* Start / Pause / Restart game *)
  960.   {$EXTERNALSYM DIBUTTON_GOLF_PAUSE}
  961. (*--- Sports - Hockey - Offense
  962.       Offense       ---*)
  963.   DIVIRTUAL_SPORTS_HOCKEY_OFFENSE         = $19000000;
  964.   {$EXTERNALSYM DIVIRTUAL_SPORTS_HOCKEY_OFFENSE}
  965.   DIAXIS_HOCKEYO_LATERAL                  = $19008201; (* Move / Aim: left / right *)
  966.   {$EXTERNALSYM DIAXIS_HOCKEYO_LATERAL}
  967.   DIAXIS_HOCKEYO_MOVE                     = $19010202; (* Move / Aim: up / down *)
  968.   {$EXTERNALSYM DIAXIS_HOCKEYO_MOVE}
  969.   DIBUTTON_HOCKEYO_SHOOT                  = $19000401; (* Shoot *)
  970.   {$EXTERNALSYM DIBUTTON_HOCKEYO_SHOOT}
  971.   DIBUTTON_HOCKEYO_PASS                   = $19000402; (* pass the puck *)
  972.   {$EXTERNALSYM DIBUTTON_HOCKEYO_PASS}
  973.   DIBUTTON_HOCKEYO_BURST                  = $19000403; (* invoke speed burst *)
  974.   {$EXTERNALSYM DIBUTTON_HOCKEYO_BURST}
  975.   DIBUTTON_HOCKEYO_SPECIAL                = $19000404; (* invoke special move *)
  976.   {$EXTERNALSYM DIBUTTON_HOCKEYO_SPECIAL}
  977.   DIBUTTON_HOCKEYO_FAKE                   = $19000405; (* hold down to fake pass or kick *)
  978.   {$EXTERNALSYM DIBUTTON_HOCKEYO_FAKE}
  979.   DIBUTTON_HOCKEYO_MENU                   = $190004FD; (* Show menu options *)
  980.   {$EXTERNALSYM DIBUTTON_HOCKEYO_MENU}
  981. (*--- Priority 2 controls                            ---*)
  982.   DIHATSWITCH_HOCKEYO_SCROLL              = $19004601; (* scroll view *)
  983.   {$EXTERNALSYM DIHATSWITCH_HOCKEYO_SCROLL}
  984.   DIBUTTON_HOCKEYO_ZOOM                   = $19004406; (* Zoom view in / out *)
  985.   {$EXTERNALSYM DIBUTTON_HOCKEYO_ZOOM}
  986.   DIBUTTON_HOCKEYO_STRATEGY               = $19004407; (* Invoke coaching menu for strategy help *)
  987.   {$EXTERNALSYM DIBUTTON_HOCKEYO_STRATEGY}
  988.   DIBUTTON_HOCKEYO_TIMEOUT                = $19004408; (* Call for time out *)
  989.   {$EXTERNALSYM DIBUTTON_HOCKEYO_TIMEOUT}
  990.   DIBUTTON_HOCKEYO_SUBSTITUTE             = $19004409; (* substitute one player for another *)
  991.   {$EXTERNALSYM DIBUTTON_HOCKEYO_SUBSTITUTE}
  992.   DIBUTTON_HOCKEYO_LEFT_LINK              = $1900C4E4; (* Fallback sidestep left button *)
  993.   {$EXTERNALSYM DIBUTTON_HOCKEYO_LEFT_LINK}
  994.   DIBUTTON_HOCKEYO_RIGHT_LINK             = $1900C4EC; (* Fallback sidestep right button *)
  995.   {$EXTERNALSYM DIBUTTON_HOCKEYO_RIGHT_LINK}
  996.   DIBUTTON_HOCKEYO_FORWARD_LINK           = $190144E0; (* Fallback move forward button *)
  997.   {$EXTERNALSYM DIBUTTON_HOCKEYO_FORWARD_LINK}
  998.   DIBUTTON_HOCKEYO_BACK_LINK              = $190144E8; (* Fallback move back button *)
  999.   {$EXTERNALSYM DIBUTTON_HOCKEYO_BACK_LINK}
  1000.   DIBUTTON_HOCKEYO_DEVICE                 = $190044FE; (* Show input device and controls *)
  1001.   {$EXTERNALSYM DIBUTTON_HOCKEYO_DEVICE}
  1002.   DIBUTTON_HOCKEYO_PAUSE                  = $190044FC; (* Start / Pause / Restart game *)
  1003.   {$EXTERNALSYM DIBUTTON_HOCKEYO_PAUSE}
  1004. (*--- Sports - Hockey - Defense
  1005.       Defense       ---*)
  1006.   DIVIRTUAL_SPORTS_HOCKEY_DEFENSE         = $1A000000;
  1007.   {$EXTERNALSYM DIVIRTUAL_SPORTS_HOCKEY_DEFENSE}
  1008.   DIAXIS_HOCKEYD_LATERAL                  = $1A008201; (* Move / Aim: left / right *)
  1009.   {$EXTERNALSYM DIAXIS_HOCKEYD_LATERAL}
  1010.   DIAXIS_HOCKEYD_MOVE                     = $1A010202; (* Move / Aim: up / down *)
  1011.   {$EXTERNALSYM DIAXIS_HOCKEYD_MOVE}
  1012.   DIBUTTON_HOCKEYD_PLAYER                 = $1A000401; (* control player closest to the puck *)
  1013.   {$EXTERNALSYM DIBUTTON_HOCKEYD_PLAYER}
  1014.   DIBUTTON_HOCKEYD_STEAL                  = $1A000402; (* attempt steal *)
  1015.   {$EXTERNALSYM DIBUTTON_HOCKEYD_STEAL}
  1016.   DIBUTTON_HOCKEYD_BURST                  = $1A000403; (* speed burst or body check *)
  1017.   {$EXTERNALSYM DIBUTTON_HOCKEYD_BURST}
  1018.   DIBUTTON_HOCKEYD_BLOCK                  = $1A000404; (* block puck *)
  1019.   {$EXTERNALSYM DIBUTTON_HOCKEYD_BLOCK}
  1020.   DIBUTTON_HOCKEYD_FAKE                   = $1A000405; (* hold down to fake tackle or intercept *)
  1021.   {$EXTERNALSYM DIBUTTON_HOCKEYD_FAKE}
  1022.   DIBUTTON_HOCKEYD_MENU                   = $1A0004FD; (* Show menu options *)
  1023.   {$EXTERNALSYM DIBUTTON_HOCKEYD_MENU}
  1024. (*--- Priority 2 controls                            ---*)
  1025.   DIHATSWITCH_HOCKEYD_SCROLL              = $1A004601; (* scroll view *)
  1026.   {$EXTERNALSYM DIHATSWITCH_HOCKEYD_SCROLL}
  1027.   DIBUTTON_HOCKEYD_ZOOM                   = $1A004406; (* Zoom view in / out *)
  1028.   {$EXTERNALSYM DIBUTTON_HOCKEYD_ZOOM}
  1029.   DIBUTTON_HOCKEYD_STRATEGY               = $1A004407; (* Invoke coaching menu for strategy help *)
  1030.   {$EXTERNALSYM DIBUTTON_HOCKEYD_STRATEGY}
  1031.   DIBUTTON_HOCKEYD_TIMEOUT                = $1A004408; (* Call for time out *)
  1032.   {$EXTERNALSYM DIBUTTON_HOCKEYD_TIMEOUT}
  1033.   DIBUTTON_HOCKEYD_SUBSTITUTE             = $1A004409; (* substitute one player for another *)
  1034.   {$EXTERNALSYM DIBUTTON_HOCKEYD_SUBSTITUTE}
  1035.   DIBUTTON_HOCKEYD_LEFT_LINK              = $1A00C4E4; (* Fallback sidestep left button *)
  1036.   {$EXTERNALSYM DIBUTTON_HOCKEYD_LEFT_LINK}
  1037.   DIBUTTON_HOCKEYD_RIGHT_LINK             = $1A00C4EC; (* Fallback sidestep right button *)
  1038.   {$EXTERNALSYM DIBUTTON_HOCKEYD_RIGHT_LINK}
  1039.   DIBUTTON_HOCKEYD_FORWARD_LINK           = $1A0144E0; (* Fallback move forward button *)
  1040.   {$EXTERNALSYM DIBUTTON_HOCKEYD_FORWARD_LINK}
  1041.   DIBUTTON_HOCKEYD_BACK_LINK              = $1A0144E8; (* Fallback move back button *)
  1042.   {$EXTERNALSYM DIBUTTON_HOCKEYD_BACK_LINK}
  1043.   DIBUTTON_HOCKEYD_DEVICE                 = $1A0044FE; (* Show input device and controls *)
  1044.   {$EXTERNALSYM DIBUTTON_HOCKEYD_DEVICE}
  1045.   DIBUTTON_HOCKEYD_PAUSE                  = $1A0044FC; (* Start / Pause / Restart game *)
  1046.   {$EXTERNALSYM DIBUTTON_HOCKEYD_PAUSE}
  1047. (*--- Sports - Hockey - Goalie
  1048.       Goal tending  ---*)
  1049.   DIVIRTUAL_SPORTS_HOCKEY_GOALIE          = $1B000000;
  1050.   {$EXTERNALSYM DIVIRTUAL_SPORTS_HOCKEY_GOALIE}
  1051.   DIAXIS_HOCKEYG_LATERAL                  = $1B008201; (* Move / Aim: left / right *)
  1052.   {$EXTERNALSYM DIAXIS_HOCKEYG_LATERAL}
  1053.   DIAXIS_HOCKEYG_MOVE                     = $1B010202; (* Move / Aim: up / down *)
  1054.   {$EXTERNALSYM DIAXIS_HOCKEYG_MOVE}
  1055.   DIBUTTON_HOCKEYG_PASS                   = $1B000401; (* pass puck *)
  1056.   {$EXTERNALSYM DIBUTTON_HOCKEYG_PASS}
  1057.   DIBUTTON_HOCKEYG_POKE                   = $1B000402; (* poke / check / hack *)
  1058.   {$EXTERNALSYM DIBUTTON_HOCKEYG_POKE}
  1059.   DIBUTTON_HOCKEYG_STEAL                  = $1B000403; (* attempt steal *)
  1060.   {$EXTERNALSYM DIBUTTON_HOCKEYG_STEAL}
  1061.   DIBUTTON_HOCKEYG_BLOCK                  = $1B000404; (* block puck *)
  1062.   {$EXTERNALSYM DIBUTTON_HOCKEYG_BLOCK}
  1063.   DIBUTTON_HOCKEYG_MENU                   = $1B0004FD; (* Show menu options *)
  1064.   {$EXTERNALSYM DIBUTTON_HOCKEYG_MENU}
  1065. (*--- Priority 2 controls                            ---*)
  1066.   DIHATSWITCH_HOCKEYG_SCROLL              = $1B004601; (* scroll view *)
  1067.   {$EXTERNALSYM DIHATSWITCH_HOCKEYG_SCROLL}
  1068.   DIBUTTON_HOCKEYG_ZOOM                   = $1B004405; (* Zoom view in / out *)
  1069.   {$EXTERNALSYM DIBUTTON_HOCKEYG_ZOOM}
  1070.   DIBUTTON_HOCKEYG_STRATEGY               = $1B004406; (* Invoke coaching menu for strategy help *)
  1071.   {$EXTERNALSYM DIBUTTON_HOCKEYG_STRATEGY}
  1072.   DIBUTTON_HOCKEYG_TIMEOUT                = $1B004407; (* Call for time out *)
  1073.   {$EXTERNALSYM DIBUTTON_HOCKEYG_TIMEOUT}
  1074.   DIBUTTON_HOCKEYG_SUBSTITUTE             = $1B004408; (* substitute one player for another *)
  1075.   {$EXTERNALSYM DIBUTTON_HOCKEYG_SUBSTITUTE}
  1076.   DIBUTTON_HOCKEYG_LEFT_LINK              = $1B00C4E4; (* Fallback sidestep left button *)
  1077.   {$EXTERNALSYM DIBUTTON_HOCKEYG_LEFT_LINK}
  1078.   DIBUTTON_HOCKEYG_RIGHT_LINK             = $1B00C4EC; (* Fallback sidestep right button *)
  1079.   {$EXTERNALSYM DIBUTTON_HOCKEYG_RIGHT_LINK}
  1080.   DIBUTTON_HOCKEYG_FORWARD_LINK           = $1B0144E0; (* Fallback move forward button *)
  1081.   {$EXTERNALSYM DIBUTTON_HOCKEYG_FORWARD_LINK}
  1082.   DIBUTTON_HOCKEYG_BACK_LINK              = $1B0144E8; (* Fallback move back button *)
  1083.   {$EXTERNALSYM DIBUTTON_HOCKEYG_BACK_LINK}
  1084.   DIBUTTON_HOCKEYG_DEVICE                 = $1B0044FE; (* Show input device and controls *)
  1085.   {$EXTERNALSYM DIBUTTON_HOCKEYG_DEVICE}
  1086.   DIBUTTON_HOCKEYG_PAUSE                  = $1B0044FC; (* Start / Pause / Restart game *)
  1087.   {$EXTERNALSYM DIBUTTON_HOCKEYG_PAUSE}
  1088. (*--- Sports - Mountain Biking
  1089.                      ---*)
  1090.   DIVIRTUAL_SPORTS_BIKING_MOUNTAIN        = $1C000000;
  1091.   {$EXTERNALSYM DIVIRTUAL_SPORTS_BIKING_MOUNTAIN}
  1092.   DIAXIS_BIKINGM_TURN                     = $1C008201; (* left / right *)
  1093.   {$EXTERNALSYM DIAXIS_BIKINGM_TURN}
  1094.   DIAXIS_BIKINGM_PEDAL                    = $1C010202; (* Pedal faster / slower / brake *)
  1095.   {$EXTERNALSYM DIAXIS_BIKINGM_PEDAL}
  1096.   DIBUTTON_BIKINGM_JUMP                   = $1C000401; (* jump over obstacle *)
  1097.   {$EXTERNALSYM DIBUTTON_BIKINGM_JUMP}
  1098.   DIBUTTON_BIKINGM_CAMERA                 = $1C000402; (* switch camera view *)
  1099.   {$EXTERNALSYM DIBUTTON_BIKINGM_CAMERA}
  1100.   DIBUTTON_BIKINGM_SPECIAL1               = $1C000403; (* perform first special move *)
  1101.   {$EXTERNALSYM DIBUTTON_BIKINGM_SPECIAL1}
  1102.   DIBUTTON_BIKINGM_SELECT                 = $1C000404; (* Select *)
  1103.   {$EXTERNALSYM DIBUTTON_BIKINGM_SELECT}
  1104.   DIBUTTON_BIKINGM_SPECIAL2               = $1C000405; (* perform second special move *)
  1105.   {$EXTERNALSYM DIBUTTON_BIKINGM_SPECIAL2}
  1106.   DIBUTTON_BIKINGM_MENU                   = $1C0004FD; (* Show menu options *)
  1107.   {$EXTERNALSYM DIBUTTON_BIKINGM_MENU}
  1108. (*--- Priority 2 controls                            ---*)
  1109.   DIHATSWITCH_BIKINGM_SCROLL              = $1C004601; (* scroll view *)
  1110.   {$EXTERNALSYM DIHATSWITCH_BIKINGM_SCROLL}
  1111.   DIBUTTON_BIKINGM_ZOOM                   = $1C004406; (* Zoom view in / out *)
  1112.   {$EXTERNALSYM DIBUTTON_BIKINGM_ZOOM}
  1113.   DIAXIS_BIKINGM_BRAKE                    = $1C044203; (* Brake axis  *)
  1114.   {$EXTERNALSYM DIAXIS_BIKINGM_BRAKE}
  1115.   DIBUTTON_BIKINGM_LEFT_LINK              = $1C00C4E4; (* Fallback turn left button *)
  1116.   {$EXTERNALSYM DIBUTTON_BIKINGM_LEFT_LINK}
  1117.   DIBUTTON_BIKINGM_RIGHT_LINK             = $1C00C4EC; (* Fallback turn right button *)
  1118.   {$EXTERNALSYM DIBUTTON_BIKINGM_RIGHT_LINK}
  1119.   DIBUTTON_BIKINGM_FASTER_LINK            = $1C0144E0; (* Fallback pedal faster button *)
  1120.   {$EXTERNALSYM DIBUTTON_BIKINGM_FASTER_LINK}
  1121.   DIBUTTON_BIKINGM_SLOWER_LINK            = $1C0144E8; (* Fallback pedal slower button *)
  1122.   {$EXTERNALSYM DIBUTTON_BIKINGM_SLOWER_LINK}
  1123.   DIBUTTON_BIKINGM_BRAKE_BUTTON_LINK      = $1C0444E8; (* Fallback brake button *)
  1124.   {$EXTERNALSYM DIBUTTON_BIKINGM_BRAKE_BUTTON_LINK}
  1125.   DIBUTTON_BIKINGM_DEVICE                 = $1C0044FE; (* Show input device and controls *)
  1126.   {$EXTERNALSYM DIBUTTON_BIKINGM_DEVICE}
  1127.   DIBUTTON_BIKINGM_PAUSE                  = $1C0044FC; (* Start / Pause / Restart game *)
  1128.   {$EXTERNALSYM DIBUTTON_BIKINGM_PAUSE}
  1129. (*--- Sports: Skiing / Snowboarding / Skateboarding
  1130.         ---*)
  1131.   DIVIRTUAL_SPORTS_SKIING                 = $1D000000;
  1132.   {$EXTERNALSYM DIVIRTUAL_SPORTS_SKIING}
  1133.   DIAXIS_SKIING_TURN                      = $1D008201; (* left / right *)
  1134.   {$EXTERNALSYM DIAXIS_SKIING_TURN}
  1135.   DIAXIS_SKIING_SPEED                     = $1D010202; (* faster / slower *)
  1136.   {$EXTERNALSYM DIAXIS_SKIING_SPEED}
  1137.   DIBUTTON_SKIING_JUMP                    = $1D000401; (* Jump *)
  1138.   {$EXTERNALSYM DIBUTTON_SKIING_JUMP}
  1139.   DIBUTTON_SKIING_CROUCH                  = $1D000402; (* crouch down *)
  1140.   {$EXTERNALSYM DIBUTTON_SKIING_CROUCH}
  1141.   DIBUTTON_SKIING_CAMERA                  = $1D000403; (* switch camera view *)
  1142.   {$EXTERNALSYM DIBUTTON_SKIING_CAMERA}
  1143.   DIBUTTON_SKIING_SPECIAL1                = $1D000404; (* perform first special move *)
  1144.   {$EXTERNALSYM DIBUTTON_SKIING_SPECIAL1}
  1145.   DIBUTTON_SKIING_SELECT                  = $1D000405; (* Select *)
  1146.   {$EXTERNALSYM DIBUTTON_SKIING_SELECT}
  1147.   DIBUTTON_SKIING_SPECIAL2                = $1D000406; (* perform second special move *)
  1148.   {$EXTERNALSYM DIBUTTON_SKIING_SPECIAL2}
  1149.   DIBUTTON_SKIING_MENU                    = $1D0004FD; (* Show menu options *)
  1150.   {$EXTERNALSYM DIBUTTON_SKIING_MENU}
  1151. (*--- Priority 2 controls                            ---*)
  1152.   DIHATSWITCH_SKIING_GLANCE               = $1D004601; (* scroll view *)
  1153.   {$EXTERNALSYM DIHATSWITCH_SKIING_GLANCE}
  1154.   DIBUTTON_SKIING_ZOOM                    = $1D004407; (* Zoom view in / out *)
  1155.   {$EXTERNALSYM DIBUTTON_SKIING_ZOOM}
  1156.   DIBUTTON_SKIING_LEFT_LINK               = $1D00C4E4; (* Fallback turn left button *)
  1157.   {$EXTERNALSYM DIBUTTON_SKIING_LEFT_LINK}
  1158.   DIBUTTON_SKIING_RIGHT_LINK              = $1D00C4EC; (* Fallback turn right button *)
  1159.   {$EXTERNALSYM DIBUTTON_SKIING_RIGHT_LINK}
  1160.   DIBUTTON_SKIING_FASTER_LINK             = $1D0144E0; (* Fallback increase speed button *)
  1161.   {$EXTERNALSYM DIBUTTON_SKIING_FASTER_LINK}
  1162.   DIBUTTON_SKIING_SLOWER_LINK             = $1D0144E8; (* Fallback decrease speed button *)
  1163.   {$EXTERNALSYM DIBUTTON_SKIING_SLOWER_LINK}
  1164.   DIBUTTON_SKIING_DEVICE                  = $1D0044FE; (* Show input device and controls *)
  1165.   {$EXTERNALSYM DIBUTTON_SKIING_DEVICE}
  1166.   DIBUTTON_SKIING_PAUSE                   = $1D0044FC; (* Start / Pause / Restart game *)
  1167.   {$EXTERNALSYM DIBUTTON_SKIING_PAUSE}
  1168. (*--- Sports - Soccer - Offense
  1169.       Offense       ---*)
  1170.   DIVIRTUAL_SPORTS_SOCCER_OFFENSE         = $1E000000;
  1171.   {$EXTERNALSYM DIVIRTUAL_SPORTS_SOCCER_OFFENSE}
  1172.   DIAXIS_SOCCERO_LATERAL                  = $1E008201; (* Move / Aim: left / right *)
  1173.   {$EXTERNALSYM DIAXIS_SOCCERO_LATERAL}
  1174.   DIAXIS_SOCCERO_MOVE                     = $1E010202; (* Move / Aim: up / down *)
  1175.   {$EXTERNALSYM DIAXIS_SOCCERO_MOVE}
  1176.   DIAXIS_SOCCERO_BEND                     = $1E018203; (* Bend to soccer shot/pass *)
  1177.   {$EXTERNALSYM DIAXIS_SOCCERO_BEND}
  1178.   DIBUTTON_SOCCERO_SHOOT                  = $1E000401; (* Shoot the ball *)
  1179.   {$EXTERNALSYM DIBUTTON_SOCCERO_SHOOT}
  1180.   DIBUTTON_SOCCERO_PASS                   = $1E000402; (* Pass  *)
  1181.   {$EXTERNALSYM DIBUTTON_SOCCERO_PASS}
  1182.   DIBUTTON_SOCCERO_FAKE                   = $1E000403; (* Fake *)
  1183.   {$EXTERNALSYM DIBUTTON_SOCCERO_FAKE}
  1184.   DIBUTTON_SOCCERO_PLAYER                 = $1E000404; (* Select next player *)
  1185.   {$EXTERNALSYM DIBUTTON_SOCCERO_PLAYER}
  1186.   DIBUTTON_SOCCERO_SPECIAL1               = $1E000405; (* Apply special move *)
  1187.   {$EXTERNALSYM DIBUTTON_SOCCERO_SPECIAL1}
  1188.   DIBUTTON_SOCCERO_SELECT                 = $1E000406; (* Select special move *)
  1189.   {$EXTERNALSYM DIBUTTON_SOCCERO_SELECT}
  1190.   DIBUTTON_SOCCERO_MENU                   = $1E0004FD; (* Show menu options *)
  1191.   {$EXTERNALSYM DIBUTTON_SOCCERO_MENU}
  1192. (*--- Priority 2 controls                            ---*)
  1193.   DIHATSWITCH_SOCCERO_GLANCE              = $1E004601; (* scroll view *)
  1194.   {$EXTERNALSYM DIHATSWITCH_SOCCERO_GLANCE}
  1195.   DIBUTTON_SOCCERO_SUBSTITUTE             = $1E004407; (* Substitute one player for another *)
  1196.   {$EXTERNALSYM DIBUTTON_SOCCERO_SUBSTITUTE}
  1197.   DIBUTTON_SOCCERO_SHOOTLOW               = $1E004408; (* Shoot the ball low *)
  1198.   {$EXTERNALSYM DIBUTTON_SOCCERO_SHOOTLOW}
  1199.   DIBUTTON_SOCCERO_SHOOTHIGH              = $1E004409; (* Shoot the ball high *)
  1200.   {$EXTERNALSYM DIBUTTON_SOCCERO_SHOOTHIGH}
  1201.   DIBUTTON_SOCCERO_PASSTHRU               = $1E00440A; (* Make a thru pass *)
  1202.   {$EXTERNALSYM DIBUTTON_SOCCERO_PASSTHRU}
  1203.   DIBUTTON_SOCCERO_SPRINT                 = $1E00440B; (* Sprint / turbo boost *)
  1204.   {$EXTERNALSYM DIBUTTON_SOCCERO_SPRINT}
  1205.   DIBUTTON_SOCCERO_CONTROL                = $1E00440C; (* Obtain control of the ball *)
  1206.   {$EXTERNALSYM DIBUTTON_SOCCERO_CONTROL}
  1207.   DIBUTTON_SOCCERO_HEAD                   = $1E00440D; (* Attempt to head the ball *)
  1208.   {$EXTERNALSYM DIBUTTON_SOCCERO_HEAD}
  1209.   DIBUTTON_SOCCERO_LEFT_LINK              = $1E00C4E4; (* Fallback sidestep left button *)
  1210.   {$EXTERNALSYM DIBUTTON_SOCCERO_LEFT_LINK}
  1211.   DIBUTTON_SOCCERO_RIGHT_LINK             = $1E00C4EC; (* Fallback sidestep right button *)
  1212.   {$EXTERNALSYM DIBUTTON_SOCCERO_RIGHT_LINK}
  1213.   DIBUTTON_SOCCERO_FORWARD_LINK           = $1E0144E0; (* Fallback move forward button *)
  1214.   {$EXTERNALSYM DIBUTTON_SOCCERO_FORWARD_LINK}
  1215.   DIBUTTON_SOCCERO_BACK_LINK              = $1E0144E8; (* Fallback move back button *)
  1216.   {$EXTERNALSYM DIBUTTON_SOCCERO_BACK_LINK}
  1217.   DIBUTTON_SOCCERO_DEVICE                 = $1E0044FE; (* Show input device and controls *)
  1218.   {$EXTERNALSYM DIBUTTON_SOCCERO_DEVICE}
  1219.   DIBUTTON_SOCCERO_PAUSE                  = $1E0044FC; (* Start / Pause / Restart game *)
  1220.   {$EXTERNALSYM DIBUTTON_SOCCERO_PAUSE}
  1221. (*--- Sports - Soccer - Defense
  1222.       Defense       ---*)
  1223.   DIVIRTUAL_SPORTS_SOCCER_DEFENSE         = $1F000000;
  1224.   {$EXTERNALSYM DIVIRTUAL_SPORTS_SOCCER_DEFENSE}
  1225.   DIAXIS_SOCCERD_LATERAL                  = $1F008201; (* Move / Aim: left / right *)
  1226.   {$EXTERNALSYM DIAXIS_SOCCERD_LATERAL}
  1227.   DIAXIS_SOCCERD_MOVE                     = $1F010202; (* Move / Aim: up / down *)
  1228.   {$EXTERNALSYM DIAXIS_SOCCERD_MOVE}
  1229.   DIBUTTON_SOCCERD_BLOCK                  = $1F000401; (* Attempt to block shot *)
  1230.   {$EXTERNALSYM DIBUTTON_SOCCERD_BLOCK}
  1231.   DIBUTTON_SOCCERD_STEAL                  = $1F000402; (* Attempt to steal ball *)
  1232.   {$EXTERNALSYM DIBUTTON_SOCCERD_STEAL}
  1233.   DIBUTTON_SOCCERD_FAKE                   = $1F000403; (* Fake a block or a steal *)
  1234.   {$EXTERNALSYM DIBUTTON_SOCCERD_FAKE}
  1235.   DIBUTTON_SOCCERD_PLAYER                 = $1F000404; (* Select next player *)
  1236.   {$EXTERNALSYM DIBUTTON_SOCCERD_PLAYER}
  1237.   DIBUTTON_SOCCERD_SPECIAL                = $1F000405; (* Apply special move *)
  1238.   {$EXTERNALSYM DIBUTTON_SOCCERD_SPECIAL}
  1239.   DIBUTTON_SOCCERD_SELECT                 = $1F000406; (* Select special move *)
  1240.   {$EXTERNALSYM DIBUTTON_SOCCERD_SELECT}
  1241.   DIBUTTON_SOCCERD_SLIDE                  = $1F000407; (* Attempt a slide tackle *)
  1242.   {$EXTERNALSYM DIBUTTON_SOCCERD_SLIDE}
  1243.   DIBUTTON_SOCCERD_MENU                   = $1F0004FD; (* Show menu options *)
  1244.   {$EXTERNALSYM DIBUTTON_SOCCERD_MENU}
  1245. (*--- Priority 2 controls                            ---*)
  1246.   DIHATSWITCH_SOCCERD_GLANCE              = $1F004601; (* scroll view *)
  1247.   {$EXTERNALSYM DIHATSWITCH_SOCCERD_GLANCE}
  1248.   DIBUTTON_SOCCERD_FOUL                   = $1F004408; (* Initiate a foul / hard-foul *)
  1249.   {$EXTERNALSYM DIBUTTON_SOCCERD_FOUL}
  1250.   DIBUTTON_SOCCERD_HEAD                   = $1F004409; (* Attempt a Header *)
  1251.   {$EXTERNALSYM DIBUTTON_SOCCERD_HEAD}
  1252.   DIBUTTON_SOCCERD_CLEAR                  = $1F00440A; (* Attempt to clear the ball down the field *)
  1253.   {$EXTERNALSYM DIBUTTON_SOCCERD_CLEAR}
  1254.   DIBUTTON_SOCCERD_GOALIECHARGE           = $1F00440B; (* Make the goalie charge out of the box *)
  1255.   {$EXTERNALSYM DIBUTTON_SOCCERD_GOALIECHARGE}
  1256.   DIBUTTON_SOCCERD_SUBSTITUTE             = $1F00440C; (* Substitute one player for another *)
  1257.   {$EXTERNALSYM DIBUTTON_SOCCERD_SUBSTITUTE}
  1258.   DIBUTTON_SOCCERD_LEFT_LINK              = $1F00C4E4; (* Fallback sidestep left button *)
  1259.   {$EXTERNALSYM DIBUTTON_SOCCERD_LEFT_LINK}
  1260.   DIBUTTON_SOCCERD_RIGHT_LINK             = $1F00C4EC; (* Fallback sidestep right button *)
  1261.   {$EXTERNALSYM DIBUTTON_SOCCERD_RIGHT_LINK}
  1262.   DIBUTTON_SOCCERD_FORWARD_LINK           = $1F0144E0; (* Fallback move forward button *)
  1263.   {$EXTERNALSYM DIBUTTON_SOCCERD_FORWARD_LINK}
  1264.   DIBUTTON_SOCCERD_BACK_LINK              = $1F0144E8; (* Fallback move back button *)
  1265.   {$EXTERNALSYM DIBUTTON_SOCCERD_BACK_LINK}
  1266.   DIBUTTON_SOCCERD_DEVICE                 = $1F0044FE; (* Show input device and controls *)
  1267.   {$EXTERNALSYM DIBUTTON_SOCCERD_DEVICE}
  1268.   DIBUTTON_SOCCERD_PAUSE                  = $1F0044FC; (* Start / Pause / Restart game *)
  1269.   {$EXTERNALSYM DIBUTTON_SOCCERD_PAUSE}
  1270. (*--- Sports - Racquet
  1271.       Tennis - Table-Tennis - Squash   ---*)
  1272.   DIVIRTUAL_SPORTS_RACQUET                = $20000000;
  1273.   {$EXTERNALSYM DIVIRTUAL_SPORTS_RACQUET}
  1274.   DIAXIS_RACQUET_LATERAL                  = $20008201; (* Move / Aim: left / right *)
  1275.   {$EXTERNALSYM DIAXIS_RACQUET_LATERAL}
  1276.   DIAXIS_RACQUET_MOVE                     = $20010202; (* Move / Aim: up / down *)
  1277.   {$EXTERNALSYM DIAXIS_RACQUET_MOVE}
  1278.   DIBUTTON_RACQUET_SWING                  = $20000401; (* Swing racquet *)
  1279.   {$EXTERNALSYM DIBUTTON_RACQUET_SWING}
  1280.   DIBUTTON_RACQUET_BACKSWING              = $20000402; (* Swing backhand *)
  1281.   {$EXTERNALSYM DIBUTTON_RACQUET_BACKSWING}
  1282.   DIBUTTON_RACQUET_SMASH                  = $20000403; (* Smash shot *)
  1283.   {$EXTERNALSYM DIBUTTON_RACQUET_SMASH}
  1284.   DIBUTTON_RACQUET_SPECIAL                = $20000404; (* Special shot *)
  1285.   {$EXTERNALSYM DIBUTTON_RACQUET_SPECIAL}
  1286.   DIBUTTON_RACQUET_SELECT                 = $20000405; (* Select special shot *)
  1287.   {$EXTERNALSYM DIBUTTON_RACQUET_SELECT}
  1288.   DIBUTTON_RACQUET_MENU                   = $200004FD; (* Show menu options *)
  1289.   {$EXTERNALSYM DIBUTTON_RACQUET_MENU}
  1290. (*--- Priority 2 controls                            ---*)
  1291.   DIHATSWITCH_RACQUET_GLANCE              = $20004601; (* scroll view *)
  1292.   {$EXTERNALSYM DIHATSWITCH_RACQUET_GLANCE}
  1293.   DIBUTTON_RACQUET_TIMEOUT                = $20004406; (* Call for time out *)
  1294.   {$EXTERNALSYM DIBUTTON_RACQUET_TIMEOUT}
  1295.   DIBUTTON_RACQUET_SUBSTITUTE             = $20004407; (* Substitute one player for another *)
  1296.   {$EXTERNALSYM DIBUTTON_RACQUET_SUBSTITUTE}
  1297.   DIBUTTON_RACQUET_LEFT_LINK              = $2000C4E4; (* Fallback sidestep left button *)
  1298.   {$EXTERNALSYM DIBUTTON_RACQUET_LEFT_LINK}
  1299.   DIBUTTON_RACQUET_RIGHT_LINK             = $2000C4EC; (* Fallback sidestep right button *)
  1300.   {$EXTERNALSYM DIBUTTON_RACQUET_RIGHT_LINK}
  1301.   DIBUTTON_RACQUET_FORWARD_LINK           = $200144E0; (* Fallback move forward button *)
  1302.   {$EXTERNALSYM DIBUTTON_RACQUET_FORWARD_LINK}
  1303.   DIBUTTON_RACQUET_BACK_LINK              = $200144E8; (* Fallback move back button *)
  1304.   {$EXTERNALSYM DIBUTTON_RACQUET_BACK_LINK}
  1305.   DIBUTTON_RACQUET_DEVICE                 = $200044FE; (* Show input device and controls *)
  1306.   {$EXTERNALSYM DIBUTTON_RACQUET_DEVICE}
  1307.   DIBUTTON_RACQUET_PAUSE                  = $200044FC; (* Start / Pause / Restart game *)
  1308.   {$EXTERNALSYM DIBUTTON_RACQUET_PAUSE}
  1309. (*--- Arcade- 2D
  1310.       Side to Side movement        ---*)
  1311.   DIVIRTUAL_ARCADE_SIDE2SIDE              = $21000000;
  1312.   {$EXTERNALSYM DIVIRTUAL_ARCADE_SIDE2SIDE}
  1313.   DIAXIS_ARCADES_LATERAL                  = $21008201; (* left / right *)
  1314.   {$EXTERNALSYM DIAXIS_ARCADES_LATERAL}
  1315.   DIAXIS_ARCADES_MOVE                     = $21010202; (* up / down *)
  1316.   {$EXTERNALSYM DIAXIS_ARCADES_MOVE}
  1317.   DIBUTTON_ARCADES_THROW                  = $21000401; (* throw object *)
  1318.   {$EXTERNALSYM DIBUTTON_ARCADES_THROW}
  1319.   DIBUTTON_ARCADES_CARRY                  = $21000402; (* carry object *)
  1320.   {$EXTERNALSYM DIBUTTON_ARCADES_CARRY}
  1321.   DIBUTTON_ARCADES_ATTACK                 = $21000403; (* attack *)
  1322.   {$EXTERNALSYM DIBUTTON_ARCADES_ATTACK}
  1323.   DIBUTTON_ARCADES_SPECIAL                = $21000404; (* apply special move *)
  1324.   {$EXTERNALSYM DIBUTTON_ARCADES_SPECIAL}
  1325.   DIBUTTON_ARCADES_SELECT                 = $21000405; (* select special move *)
  1326.   {$EXTERNALSYM DIBUTTON_ARCADES_SELECT}
  1327.   DIBUTTON_ARCADES_MENU                   = $210004FD; (* Show menu options *)
  1328.   {$EXTERNALSYM DIBUTTON_ARCADES_MENU}
  1329. (*--- Priority 2 controls                            ---*)
  1330.   DIHATSWITCH_ARCADES_VIEW                = $21004601; (* scroll view left / right / up / down *)
  1331.   {$EXTERNALSYM DIHATSWITCH_ARCADES_VIEW}
  1332.   DIBUTTON_ARCADES_LEFT_LINK              = $2100C4E4; (* Fallback sidestep left button *)
  1333.   {$EXTERNALSYM DIBUTTON_ARCADES_LEFT_LINK}
  1334.   DIBUTTON_ARCADES_RIGHT_LINK             = $2100C4EC; (* Fallback sidestep right button *)
  1335.   {$EXTERNALSYM DIBUTTON_ARCADES_RIGHT_LINK}
  1336.   DIBUTTON_ARCADES_FORWARD_LINK           = $210144E0; (* Fallback move forward button *)
  1337.   {$EXTERNALSYM DIBUTTON_ARCADES_FORWARD_LINK}
  1338.   DIBUTTON_ARCADES_BACK_LINK              = $210144E8; (* Fallback move back button *)
  1339.   {$EXTERNALSYM DIBUTTON_ARCADES_BACK_LINK}
  1340.   DIBUTTON_ARCADES_VIEW_UP_LINK           = $2107C4E0; (* Fallback scroll view up button *)
  1341.   {$EXTERNALSYM DIBUTTON_ARCADES_VIEW_UP_LINK}
  1342.   DIBUTTON_ARCADES_VIEW_DOWN_LINK         = $2107C4E8; (* Fallback scroll view down button *)
  1343.   {$EXTERNALSYM DIBUTTON_ARCADES_VIEW_DOWN_LINK}
  1344.   DIBUTTON_ARCADES_VIEW_LEFT_LINK         = $2107C4E4; (* Fallback scroll view left button *)
  1345.   {$EXTERNALSYM DIBUTTON_ARCADES_VIEW_LEFT_LINK}
  1346.   DIBUTTON_ARCADES_VIEW_RIGHT_LINK        = $2107C4EC; (* Fallback scroll view right button *)
  1347.   {$EXTERNALSYM DIBUTTON_ARCADES_VIEW_RIGHT_LINK}
  1348.   DIBUTTON_ARCADES_DEVICE                 = $210044FE; (* Show input device and controls *)
  1349.   {$EXTERNALSYM DIBUTTON_ARCADES_DEVICE}
  1350.   DIBUTTON_ARCADES_PAUSE                  = $210044FC; (* Start / Pause / Restart game *)
  1351.   {$EXTERNALSYM DIBUTTON_ARCADES_PAUSE}
  1352. (*--- Arcade - Platform Game
  1353.       Character moves around on screen  ---*)
  1354.   DIVIRTUAL_ARCADE_PLATFORM               = $22000000;
  1355.   {$EXTERNALSYM DIVIRTUAL_ARCADE_PLATFORM}
  1356.   DIAXIS_ARCADEP_LATERAL                  = $22008201; (* Left / right *)
  1357.   {$EXTERNALSYM DIAXIS_ARCADEP_LATERAL}
  1358.   DIAXIS_ARCADEP_MOVE                     = $22010202; (* Up / down *)
  1359.   {$EXTERNALSYM DIAXIS_ARCADEP_MOVE}
  1360.   DIBUTTON_ARCADEP_JUMP                   = $22000401; (* Jump *)
  1361.   {$EXTERNALSYM DIBUTTON_ARCADEP_JUMP}
  1362.   DIBUTTON_ARCADEP_FIRE                   = $22000402; (* Fire *)
  1363.   {$EXTERNALSYM DIBUTTON_ARCADEP_FIRE}
  1364.   DIBUTTON_ARCADEP_CROUCH                 = $22000403; (* Crouch *)
  1365.   {$EXTERNALSYM DIBUTTON_ARCADEP_CROUCH}
  1366.   DIBUTTON_ARCADEP_SPECIAL                = $22000404; (* Apply special move *)
  1367.   {$EXTERNALSYM DIBUTTON_ARCADEP_SPECIAL}
  1368.   DIBUTTON_ARCADEP_SELECT                 = $22000405; (* Select special move *)
  1369.   {$EXTERNALSYM DIBUTTON_ARCADEP_SELECT}
  1370.   DIBUTTON_ARCADEP_MENU                   = $220004FD; (* Show menu options *)
  1371.   {$EXTERNALSYM DIBUTTON_ARCADEP_MENU}
  1372. (*--- Priority 2 controls                            ---*)
  1373.   DIHATSWITCH_ARCADEP_VIEW                = $22004601; (* Scroll view *)
  1374.   {$EXTERNALSYM DIHATSWITCH_ARCADEP_VIEW}
  1375.   DIBUTTON_ARCADEP_FIRESECONDARY          = $22004406; (* Alternative fire button *)
  1376.   {$EXTERNALSYM DIBUTTON_ARCADEP_FIRESECONDARY}
  1377.   DIBUTTON_ARCADEP_LEFT_LINK              = $2200C4E4; (* Fallback sidestep left button *)
  1378.   {$EXTERNALSYM DIBUTTON_ARCADEP_LEFT_LINK}
  1379.   DIBUTTON_ARCADEP_RIGHT_LINK             = $2200C4EC; (* Fallback sidestep right button *)
  1380.   {$EXTERNALSYM DIBUTTON_ARCADEP_RIGHT_LINK}
  1381.   DIBUTTON_ARCADEP_FORWARD_LINK           = $220144E0; (* Fallback move forward button *)
  1382.   {$EXTERNALSYM DIBUTTON_ARCADEP_FORWARD_LINK}
  1383.   DIBUTTON_ARCADEP_BACK_LINK              = $220144E8; (* Fallback move back button *)
  1384.   {$EXTERNALSYM DIBUTTON_ARCADEP_BACK_LINK}
  1385.   DIBUTTON_ARCADEP_VIEW_UP_LINK           = $2207C4E0; (* Fallback scroll view up button *)
  1386.   {$EXTERNALSYM DIBUTTON_ARCADEP_VIEW_UP_LINK}
  1387.   DIBUTTON_ARCADEP_VIEW_DOWN_LINK         = $2207C4E8; (* Fallback scroll view down button *)
  1388.   {$EXTERNALSYM DIBUTTON_ARCADEP_VIEW_DOWN_LINK}
  1389.   DIBUTTON_ARCADEP_VIEW_LEFT_LINK         = $2207C4E4; (* Fallback scroll view left button *)
  1390.   {$EXTERNALSYM DIBUTTON_ARCADEP_VIEW_LEFT_LINK}
  1391.   DIBUTTON_ARCADEP_VIEW_RIGHT_LINK        = $2207C4EC; (* Fallback scroll view right button *)
  1392.   {$EXTERNALSYM DIBUTTON_ARCADEP_VIEW_RIGHT_LINK}
  1393.   DIBUTTON_ARCADEP_DEVICE                 = $220044FE; (* Show input device and controls *)
  1394.   {$EXTERNALSYM DIBUTTON_ARCADEP_DEVICE}
  1395.   DIBUTTON_ARCADEP_PAUSE                  = $220044FC; (* Start / Pause / Restart game *)
  1396.   {$EXTERNALSYM DIBUTTON_ARCADEP_PAUSE}
  1397. (*--- CAD - 2D Object Control
  1398.       Controls to select and move objects in 2D  ---*)
  1399.   DIVIRTUAL_CAD_2DCONTROL                 = $23000000;
  1400.   {$EXTERNALSYM DIVIRTUAL_CAD_2DCONTROL}
  1401.   DIAXIS_2DCONTROL_LATERAL                = $23008201; (* Move view left / right *)
  1402.   {$EXTERNALSYM DIAXIS_2DCONTROL_LATERAL}
  1403.   DIAXIS_2DCONTROL_MOVE                   = $23010202; (* Move view up / down *)
  1404.   {$EXTERNALSYM DIAXIS_2DCONTROL_MOVE}
  1405.   DIAXIS_2DCONTROL_INOUT                  = $23018203; (* Zoom - in / out *)
  1406.   {$EXTERNALSYM DIAXIS_2DCONTROL_INOUT}
  1407.   DIBUTTON_2DCONTROL_SELECT               = $23000401; (* Select Object *)
  1408.   {$EXTERNALSYM DIBUTTON_2DCONTROL_SELECT}
  1409.   DIBUTTON_2DCONTROL_SPECIAL1             = $23000402; (* Do first special operation *)
  1410.   {$EXTERNALSYM DIBUTTON_2DCONTROL_SPECIAL1}
  1411.   DIBUTTON_2DCONTROL_SPECIAL              = $23000403; (* Select special operation *)
  1412.   {$EXTERNALSYM DIBUTTON_2DCONTROL_SPECIAL}
  1413.   DIBUTTON_2DCONTROL_SPECIAL2             = $23000404; (* Do second special operation *)
  1414.   {$EXTERNALSYM DIBUTTON_2DCONTROL_SPECIAL2}
  1415.   DIBUTTON_2DCONTROL_MENU                 = $230004FD; (* Show menu options *)
  1416.   {$EXTERNALSYM DIBUTTON_2DCONTROL_MENU}
  1417. (*--- Priority 2 controls                            ---*)
  1418.   DIHATSWITCH_2DCONTROL_HATSWITCH         = $23004601; (* Hat switch *)
  1419.   {$EXTERNALSYM DIHATSWITCH_2DCONTROL_HATSWITCH}
  1420.   DIAXIS_2DCONTROL_ROTATEZ                = $23024204; (* Rotate view clockwise / counterclockwise *)
  1421.   {$EXTERNALSYM DIAXIS_2DCONTROL_ROTATEZ}
  1422.   DIBUTTON_2DCONTROL_DISPLAY              = $23004405; (* Shows next on-screen display options *)
  1423.   {$EXTERNALSYM DIBUTTON_2DCONTROL_DISPLAY}
  1424.   DIBUTTON_2DCONTROL_DEVICE               = $230044FE; (* Show input device and controls *)
  1425.   {$EXTERNALSYM DIBUTTON_2DCONTROL_DEVICE}
  1426.   DIBUTTON_2DCONTROL_PAUSE                = $230044FC; (* Start / Pause / Restart game *)
  1427.   {$EXTERNALSYM DIBUTTON_2DCONTROL_PAUSE}
  1428. (*--- CAD - 3D object control
  1429.       Controls to select and move objects within a 3D environment  ---*)
  1430.   DIVIRTUAL_CAD_3DCONTROL                 = $24000000;
  1431.   {$EXTERNALSYM DIVIRTUAL_CAD_3DCONTROL}
  1432.   DIAXIS_3DCONTROL_LATERAL                = $24008201; (* Move view left / right *)
  1433.   {$EXTERNALSYM DIAXIS_3DCONTROL_LATERAL}
  1434.   DIAXIS_3DCONTROL_MOVE                   = $24010202; (* Move view up / down *)
  1435.   {$EXTERNALSYM DIAXIS_3DCONTROL_MOVE}
  1436.   DIAXIS_3DCONTROL_INOUT                  = $24018203; (* Zoom - in / out *)
  1437.   {$EXTERNALSYM DIAXIS_3DCONTROL_INOUT}
  1438.   DIBUTTON_3DCONTROL_SELECT               = $24000401; (* Select Object *)
  1439.   {$EXTERNALSYM DIBUTTON_3DCONTROL_SELECT}
  1440.   DIBUTTON_3DCONTROL_SPECIAL1             = $24000402; (* Do first special operation *)
  1441.   {$EXTERNALSYM DIBUTTON_3DCONTROL_SPECIAL1}
  1442.   DIBUTTON_3DCONTROL_SPECIAL              = $24000403; (* Select special operation *)
  1443.   {$EXTERNALSYM DIBUTTON_3DCONTROL_SPECIAL}
  1444.   DIBUTTON_3DCONTROL_SPECIAL2             = $24000404; (* Do second special operation *)
  1445.   {$EXTERNALSYM DIBUTTON_3DCONTROL_SPECIAL2}
  1446.   DIBUTTON_3DCONTROL_MENU                 = $240004FD; (* Show menu options *)
  1447.   {$EXTERNALSYM DIBUTTON_3DCONTROL_MENU}
  1448. (*--- Priority 2 controls                            ---*)
  1449.   DIHATSWITCH_3DCONTROL_HATSWITCH         = $24004601; (* Hat switch *)
  1450.   {$EXTERNALSYM DIHATSWITCH_3DCONTROL_HATSWITCH}
  1451.   DIAXIS_3DCONTROL_ROTATEX                = $24034204; (* Rotate view forward or up / backward or down *)
  1452.   {$EXTERNALSYM DIAXIS_3DCONTROL_ROTATEX}
  1453.   DIAXIS_3DCONTROL_ROTATEY                = $2402C205; (* Rotate view clockwise / counterclockwise *)
  1454.   {$EXTERNALSYM DIAXIS_3DCONTROL_ROTATEY}
  1455.   DIAXIS_3DCONTROL_ROTATEZ                = $24024206; (* Rotate view left / right *)
  1456.   {$EXTERNALSYM DIAXIS_3DCONTROL_ROTATEZ}
  1457.   DIBUTTON_3DCONTROL_DISPLAY              = $24004405; (* Show next on-screen display options *)
  1458.   {$EXTERNALSYM DIBUTTON_3DCONTROL_DISPLAY}
  1459.   DIBUTTON_3DCONTROL_DEVICE               = $240044FE; (* Show input device and controls *)
  1460.   {$EXTERNALSYM DIBUTTON_3DCONTROL_DEVICE}
  1461.   DIBUTTON_3DCONTROL_PAUSE                = $240044FC; (* Start / Pause / Restart game *)
  1462.   {$EXTERNALSYM DIBUTTON_3DCONTROL_PAUSE}
  1463. (*--- CAD - 3D Navigation - Fly through
  1464.       Controls for 3D modeling  ---*)
  1465.   DIVIRTUAL_CAD_FLYBY                     = $25000000;
  1466.   {$EXTERNALSYM DIVIRTUAL_CAD_FLYBY}
  1467.   DIAXIS_CADF_LATERAL                     = $25008201; (* move view left / right *)
  1468.   {$EXTERNALSYM DIAXIS_CADF_LATERAL}
  1469.   DIAXIS_CADF_MOVE                        = $25010202; (* move view up / down *)
  1470.   {$EXTERNALSYM DIAXIS_CADF_MOVE}
  1471.   DIAXIS_CADF_INOUT                       = $25018203; (* in / out *)
  1472.   {$EXTERNALSYM DIAXIS_CADF_INOUT}
  1473.   DIBUTTON_CADF_SELECT                    = $25000401; (* Select Object *)
  1474.   {$EXTERNALSYM DIBUTTON_CADF_SELECT}
  1475.   DIBUTTON_CADF_SPECIAL1                  = $25000402; (* do first special operation *)
  1476.   {$EXTERNALSYM DIBUTTON_CADF_SPECIAL1}
  1477.   DIBUTTON_CADF_SPECIAL                   = $25000403; (* Select special operation *)
  1478.   {$EXTERNALSYM DIBUTTON_CADF_SPECIAL}
  1479.   DIBUTTON_CADF_SPECIAL2                  = $25000404; (* do second special operation *)
  1480.   {$EXTERNALSYM DIBUTTON_CADF_SPECIAL2}
  1481.   DIBUTTON_CADF_MENU                      = $250004FD; (* Show menu options *)
  1482.   {$EXTERNALSYM DIBUTTON_CADF_MENU}
  1483. (*--- Priority 2 controls                            ---*)
  1484.   DIHATSWITCH_CADF_HATSWITCH              = $25004601; (* Hat switch *)
  1485.   {$EXTERNALSYM DIHATSWITCH_CADF_HATSWITCH}
  1486.   DIAXIS_CADF_ROTATEX                     = $25034204; (* Rotate view forward or up / backward or down *)
  1487.   {$EXTERNALSYM DIAXIS_CADF_ROTATEX}
  1488.   DIAXIS_CADF_ROTATEY                     = $2502C205; (* Rotate view clockwise / counterclockwise *)
  1489.   {$EXTERNALSYM DIAXIS_CADF_ROTATEY}
  1490.   DIAXIS_CADF_ROTATEZ                     = $25024206; (* Rotate view left / right *)
  1491.   {$EXTERNALSYM DIAXIS_CADF_ROTATEZ}
  1492.   DIBUTTON_CADF_DISPLAY                   = $25004405; (* shows next on-screen display options *)
  1493.   {$EXTERNALSYM DIBUTTON_CADF_DISPLAY}
  1494.   DIBUTTON_CADF_DEVICE                    = $250044FE; (* Show input device and controls *)
  1495.   {$EXTERNALSYM DIBUTTON_CADF_DEVICE}
  1496.   DIBUTTON_CADF_PAUSE                     = $250044FC; (* Start / Pause / Restart game *)
  1497.   {$EXTERNALSYM DIBUTTON_CADF_PAUSE}
  1498. (*--- CAD - 3D Model Control
  1499.       Controls for 3D modeling  ---*)
  1500.   DIVIRTUAL_CAD_MODEL                     = $26000000;
  1501.   {$EXTERNALSYM DIVIRTUAL_CAD_MODEL}
  1502.   DIAXIS_CADM_LATERAL                     = $26008201; (* move view left / right *)
  1503.   {$EXTERNALSYM DIAXIS_CADM_LATERAL}
  1504.   DIAXIS_CADM_MOVE                        = $26010202; (* move view up / down *)
  1505.   {$EXTERNALSYM DIAXIS_CADM_MOVE}
  1506.   DIAXIS_CADM_INOUT                       = $26018203; (* in / out *)
  1507.   {$EXTERNALSYM DIAXIS_CADM_INOUT}
  1508.   DIBUTTON_CADM_SELECT                    = $26000401; (* Select Object *)
  1509.   {$EXTERNALSYM DIBUTTON_CADM_SELECT}
  1510.   DIBUTTON_CADM_SPECIAL1                  = $26000402; (* do first special operation *)
  1511.   {$EXTERNALSYM DIBUTTON_CADM_SPECIAL1}
  1512.   DIBUTTON_CADM_SPECIAL                   = $26000403; (* Select special operation *)
  1513.   {$EXTERNALSYM DIBUTTON_CADM_SPECIAL}
  1514.   DIBUTTON_CADM_SPECIAL2                  = $26000404; (* do second special operation *)
  1515.   {$EXTERNALSYM DIBUTTON_CADM_SPECIAL2}
  1516.   DIBUTTON_CADM_MENU                      = $260004FD; (* Show menu options *)
  1517.   {$EXTERNALSYM DIBUTTON_CADM_MENU}
  1518. (*--- Priority 2 controls                            ---*)
  1519.   DIHATSWITCH_CADM_HATSWITCH              = $26004601; (* Hat switch *)
  1520.   {$EXTERNALSYM DIHATSWITCH_CADM_HATSWITCH}
  1521.   DIAXIS_CADM_ROTATEX                     = $26034204; (* Rotate view forward or up / backward or down *)
  1522.   {$EXTERNALSYM DIAXIS_CADM_ROTATEX}
  1523.   DIAXIS_CADM_ROTATEY                     = $2602C205; (* Rotate view clockwise / counterclockwise *)
  1524.   {$EXTERNALSYM DIAXIS_CADM_ROTATEY}
  1525.   DIAXIS_CADM_ROTATEZ                     = $26024206; (* Rotate view left / right *)
  1526.   {$EXTERNALSYM DIAXIS_CADM_ROTATEZ}
  1527.   DIBUTTON_CADM_DISPLAY                   = $26004405; (* shows next on-screen display options *)
  1528.   {$EXTERNALSYM DIBUTTON_CADM_DISPLAY}
  1529.   DIBUTTON_CADM_DEVICE                    = $260044FE; (* Show input device and controls *)
  1530.   {$EXTERNALSYM DIBUTTON_CADM_DEVICE}
  1531.   DIBUTTON_CADM_PAUSE                     = $260044FC; (* Start / Pause / Restart game *)
  1532.   {$EXTERNALSYM DIBUTTON_CADM_PAUSE}
  1533. (*--- Control - Media Equipment
  1534.       Remote        ---*)
  1535.   DIVIRTUAL_REMOTE_CONTROL                = $27000000;
  1536.   {$EXTERNALSYM DIVIRTUAL_REMOTE_CONTROL}
  1537.   DIAXIS_REMOTE_SLIDER                    = $27050201; (* Slider for adjustment: volume / color / bass / etc *)
  1538.   {$EXTERNALSYM DIAXIS_REMOTE_SLIDER}
  1539.   DIBUTTON_REMOTE_MUTE                    = $27000401; (* Set volume on current device to zero *)
  1540.   {$EXTERNALSYM DIBUTTON_REMOTE_MUTE}
  1541.   DIBUTTON_REMOTE_SELECT                  = $27000402; (* Next/previous: channel/ track / chapter / picture / station *)
  1542.   {$EXTERNALSYM DIBUTTON_REMOTE_SELECT}
  1543.   DIBUTTON_REMOTE_PLAY                    = $27002403; (* Start or pause entertainment on current device *)
  1544.   {$EXTERNALSYM DIBUTTON_REMOTE_PLAY}
  1545.   DIBUTTON_REMOTE_CUE                     = $27002404; (* Move through current media *)
  1546.   {$EXTERNALSYM DIBUTTON_REMOTE_CUE}
  1547.   DIBUTTON_REMOTE_REVIEW                  = $27002405; (* Move through current media *)
  1548.   {$EXTERNALSYM DIBUTTON_REMOTE_REVIEW}
  1549.   DIBUTTON_REMOTE_CHANGE                  = $27002406; (* Select next device *)
  1550.   {$EXTERNALSYM DIBUTTON_REMOTE_CHANGE}
  1551.   DIBUTTON_REMOTE_RECORD                  = $27002407; (* Start recording the current media *)
  1552.   {$EXTERNALSYM DIBUTTON_REMOTE_RECORD}
  1553.   DIBUTTON_REMOTE_MENU                    = $270004FD; (* Show menu options *)
  1554.   {$EXTERNALSYM DIBUTTON_REMOTE_MENU}
  1555. (*--- Priority 2 controls                            ---*)
  1556.   DIAXIS_REMOTE_SLIDER2                   = $27054202; (* Slider for adjustment: volume *)
  1557.   {$EXTERNALSYM DIAXIS_REMOTE_SLIDER2}
  1558.   DIBUTTON_REMOTE_TV                      = $27005C08; (* Select TV *)
  1559.   {$EXTERNALSYM DIBUTTON_REMOTE_TV}
  1560.   DIBUTTON_REMOTE_CABLE                   = $27005C09; (* Select cable box *)
  1561.   {$EXTERNALSYM DIBUTTON_REMOTE_CABLE}
  1562.   DIBUTTON_REMOTE_CD                      = $27005C0A; (* Select CD player *)
  1563.   {$EXTERNALSYM DIBUTTON_REMOTE_CD}
  1564.   DIBUTTON_REMOTE_VCR                     = $27005C0B; (* Select VCR *)
  1565.   {$EXTERNALSYM DIBUTTON_REMOTE_VCR}
  1566.   DIBUTTON_REMOTE_TUNER                   = $27005C0C; (* Select tuner *)
  1567.   {$EXTERNALSYM DIBUTTON_REMOTE_TUNER}
  1568.   DIBUTTON_REMOTE_DVD                     = $27005C0D; (* Select DVD player *)
  1569.   {$EXTERNALSYM DIBUTTON_REMOTE_DVD}
  1570.   DIBUTTON_REMOTE_ADJUST                  = $27005C0E; (* Enter device adjustment menu *)
  1571.   {$EXTERNALSYM DIBUTTON_REMOTE_ADJUST}
  1572.   DIBUTTON_REMOTE_DIGIT0                  = $2700540F; (* Digit 0 *)
  1573.   {$EXTERNALSYM DIBUTTON_REMOTE_DIGIT0}
  1574.   DIBUTTON_REMOTE_DIGIT1                  = $27005410; (* Digit 1 *)
  1575.   {$EXTERNALSYM DIBUTTON_REMOTE_DIGIT1}
  1576.   DIBUTTON_REMOTE_DIGIT2                  = $27005411; (* Digit 2 *)
  1577.   {$EXTERNALSYM DIBUTTON_REMOTE_DIGIT2}
  1578.   DIBUTTON_REMOTE_DIGIT3                  = $27005412; (* Digit 3 *)
  1579.   {$EXTERNALSYM DIBUTTON_REMOTE_DIGIT3}
  1580.   DIBUTTON_REMOTE_DIGIT4                  = $27005413; (* Digit 4 *)
  1581.   {$EXTERNALSYM DIBUTTON_REMOTE_DIGIT4}
  1582.   DIBUTTON_REMOTE_DIGIT5                  = $27005414; (* Digit 5 *)
  1583.   {$EXTERNALSYM DIBUTTON_REMOTE_DIGIT5}
  1584.   DIBUTTON_REMOTE_DIGIT6                  = $27005415; (* Digit 6 *)
  1585.   {$EXTERNALSYM DIBUTTON_REMOTE_DIGIT6}
  1586.   DIBUTTON_REMOTE_DIGIT7                  = $27005416; (* Digit 7 *)
  1587.   {$EXTERNALSYM DIBUTTON_REMOTE_DIGIT7}
  1588.   DIBUTTON_REMOTE_DIGIT8                  = $27005417; (* Digit 8 *)
  1589.   {$EXTERNALSYM DIBUTTON_REMOTE_DIGIT8}
  1590.   DIBUTTON_REMOTE_DIGIT9                  = $27005418; (* Digit 9 *)
  1591.   {$EXTERNALSYM DIBUTTON_REMOTE_DIGIT9}
  1592.   DIBUTTON_REMOTE_DEVICE                  = $270044FE; (* Show input device and controls *)
  1593.   {$EXTERNALSYM DIBUTTON_REMOTE_DEVICE}
  1594.   DIBUTTON_REMOTE_PAUSE                   = $270044FC; (* Start / Pause / Restart game *)
  1595.   {$EXTERNALSYM DIBUTTON_REMOTE_PAUSE}
  1596. (*--- Control- Web
  1597.       Help or Browser            ---*)
  1598.   DIVIRTUAL_BROWSER_CONTROL               = $28000000;
  1599.   {$EXTERNALSYM DIVIRTUAL_BROWSER_CONTROL}
  1600.   DIAXIS_BROWSER_LATERAL                  = $28008201; (* Move on screen pointer *)
  1601.   {$EXTERNALSYM DIAXIS_BROWSER_LATERAL}
  1602.   DIAXIS_BROWSER_MOVE                     = $28010202; (* Move on screen pointer *)
  1603.   {$EXTERNALSYM DIAXIS_BROWSER_MOVE}
  1604.   DIBUTTON_BROWSER_SELECT                 = $28000401; (* Select current item *)
  1605.   {$EXTERNALSYM DIBUTTON_BROWSER_SELECT}
  1606.   DIAXIS_BROWSER_VIEW                     = $28018203; (* Move view up/down *)
  1607.   {$EXTERNALSYM DIAXIS_BROWSER_VIEW}
  1608.   DIBUTTON_BROWSER_REFRESH                = $28000402; (* Refresh *)
  1609.   {$EXTERNALSYM DIBUTTON_BROWSER_REFRESH}
  1610.   DIBUTTON_BROWSER_MENU                   = $280004FD; (* Show menu options *)
  1611.   {$EXTERNALSYM DIBUTTON_BROWSER_MENU}
  1612. (*--- Priority 2 controls                            ---*)
  1613.   DIBUTTON_BROWSER_SEARCH                 = $28004403; (* Use search tool *)
  1614.   {$EXTERNALSYM DIBUTTON_BROWSER_SEARCH}
  1615.   DIBUTTON_BROWSER_STOP                   = $28004404; (* Cease current update *)
  1616.   {$EXTERNALSYM DIBUTTON_BROWSER_STOP}
  1617.   DIBUTTON_BROWSER_HOME                   = $28004405; (* Go directly to "home" location *)
  1618.   {$EXTERNALSYM DIBUTTON_BROWSER_HOME}
  1619.   DIBUTTON_BROWSER_FAVORITES              = $28004406; (* Mark current site as favorite *)
  1620.   {$EXTERNALSYM DIBUTTON_BROWSER_FAVORITES}
  1621.   DIBUTTON_BROWSER_NEXT                   = $28004407; (* Select Next page *)
  1622.   {$EXTERNALSYM DIBUTTON_BROWSER_NEXT}
  1623.   DIBUTTON_BROWSER_PREVIOUS               = $28004408; (* Select Previous page *)
  1624.   {$EXTERNALSYM DIBUTTON_BROWSER_PREVIOUS}
  1625.   DIBUTTON_BROWSER_HISTORY                = $28004409; (* Show/Hide History *)
  1626.   {$EXTERNALSYM DIBUTTON_BROWSER_HISTORY}
  1627.   DIBUTTON_BROWSER_PRINT                  = $2800440A; (* Print current page *)
  1628.   {$EXTERNALSYM DIBUTTON_BROWSER_PRINT}
  1629.   DIBUTTON_BROWSER_DEVICE                 = $280044FE; (* Show input device and controls *)
  1630.   {$EXTERNALSYM DIBUTTON_BROWSER_DEVICE}
  1631.   DIBUTTON_BROWSER_PAUSE                  = $280044FC; (* Start / Pause / Restart game *)
  1632.   {$EXTERNALSYM DIBUTTON_BROWSER_PAUSE}
  1633. (*--- Driving Simulator - Giant Walking Robot
  1634.       Walking tank with weapons  ---*)
  1635.   DIVIRTUAL_DRIVING_MECHA                 = $29000000;
  1636.   {$EXTERNALSYM DIVIRTUAL_DRIVING_MECHA}
  1637.   DIAXIS_MECHA_STEER                      = $29008201; (* Turns mecha left/right *)
  1638.   {$EXTERNALSYM DIAXIS_MECHA_STEER}
  1639.   DIAXIS_MECHA_TORSO                      = $29010202; (* Tilts torso forward/backward *)
  1640.   {$EXTERNALSYM DIAXIS_MECHA_TORSO}
  1641.   DIAXIS_MECHA_ROTATE                     = $29020203; (* Turns torso left/right *)
  1642.   {$EXTERNALSYM DIAXIS_MECHA_ROTATE}
  1643.   DIAXIS_MECHA_THROTTLE                   = $29038204; (* Engine Speed *)
  1644.   {$EXTERNALSYM DIAXIS_MECHA_THROTTLE}
  1645.   DIBUTTON_MECHA_FIRE                     = $29000401; (* Fire *)
  1646.   {$EXTERNALSYM DIBUTTON_MECHA_FIRE}
  1647.   DIBUTTON_MECHA_WEAPONS                  = $29000402; (* Select next weapon group *)
  1648.   {$EXTERNALSYM DIBUTTON_MECHA_WEAPONS}
  1649.   DIBUTTON_MECHA_TARGET                   = $29000403; (* Select closest enemy available target *)
  1650.   {$EXTERNALSYM DIBUTTON_MECHA_TARGET}
  1651.   DIBUTTON_MECHA_REVERSE                  = $29000404; (* Toggles throttle in/out of reverse *)
  1652.   {$EXTERNALSYM DIBUTTON_MECHA_REVERSE}
  1653.   DIBUTTON_MECHA_ZOOM                     = $29000405; (* Zoom in/out targeting reticule *)
  1654.   {$EXTERNALSYM DIBUTTON_MECHA_ZOOM}
  1655.   DIBUTTON_MECHA_JUMP                     = $29000406; (* Fires jump jets *)
  1656.   {$EXTERNALSYM DIBUTTON_MECHA_JUMP}
  1657.   DIBUTTON_MECHA_MENU                     = $290004FD; (* Show menu options *)
  1658.   {$EXTERNALSYM DIBUTTON_MECHA_MENU}
  1659. (*--- Priority 2 controls                            ---*)
  1660.   DIBUTTON_MECHA_CENTER                   = $29004407; (* Center torso to legs *)
  1661.   {$EXTERNALSYM DIBUTTON_MECHA_CENTER}
  1662.   DIHATSWITCH_MECHA_GLANCE                = $29004601; (* Look around *)
  1663.   {$EXTERNALSYM DIHATSWITCH_MECHA_GLANCE}
  1664.   DIBUTTON_MECHA_VIEW                     = $29004408; (* Cycle through view options *)
  1665.   {$EXTERNALSYM DIBUTTON_MECHA_VIEW}
  1666.   DIBUTTON_MECHA_FIRESECONDARY            = $29004409; (* Alternative fire button *)
  1667.   {$EXTERNALSYM DIBUTTON_MECHA_FIRESECONDARY}
  1668.   DIBUTTON_MECHA_LEFT_LINK                = $2900C4E4; (* Fallback steer left button *)
  1669.   {$EXTERNALSYM DIBUTTON_MECHA_LEFT_LINK}
  1670.   DIBUTTON_MECHA_RIGHT_LINK               = $2900C4EC; (* Fallback steer right button *)
  1671.   {$EXTERNALSYM DIBUTTON_MECHA_RIGHT_LINK}
  1672.   DIBUTTON_MECHA_FORWARD_LINK             = $290144E0; (* Fallback tilt torso forward button *)
  1673.   {$EXTERNALSYM DIBUTTON_MECHA_FORWARD_LINK}
  1674.   DIBUTTON_MECHA_BACK_LINK                = $290144E8; (* Fallback tilt toroso backward button *)
  1675.   {$EXTERNALSYM DIBUTTON_MECHA_BACK_LINK}
  1676.   DIBUTTON_MECHA_ROTATE_LEFT_LINK         = $290244E4; (* Fallback rotate toroso right button *)
  1677.   {$EXTERNALSYM DIBUTTON_MECHA_ROTATE_LEFT_LINK}
  1678.   DIBUTTON_MECHA_ROTATE_RIGHT_LINK        = $290244EC; (* Fallback rotate torso left button *)
  1679.   {$EXTERNALSYM DIBUTTON_MECHA_ROTATE_RIGHT_LINK}
  1680.   DIBUTTON_MECHA_FASTER_LINK              = $2903C4E0; (* Fallback increase engine speed *)
  1681.   {$EXTERNALSYM DIBUTTON_MECHA_FASTER_LINK}
  1682.   DIBUTTON_MECHA_SLOWER_LINK              = $2903C4E8; (* Fallback decrease engine speed *)
  1683.   {$EXTERNALSYM DIBUTTON_MECHA_SLOWER_LINK}
  1684.   DIBUTTON_MECHA_DEVICE                   = $290044FE; (* Show input device and controls *)
  1685.   {$EXTERNALSYM DIBUTTON_MECHA_DEVICE}
  1686.   DIBUTTON_MECHA_PAUSE                    = $290044FC; (* Start / Pause / Restart game *)
  1687.   {$EXTERNALSYM DIBUTTON_MECHA_PAUSE}
  1688. (*
  1689.  *  "ANY" semantics can be used as a last resort to get mappings for actions
  1690.  *  that match nothing in the chosen virtual genre.  These semantics will be
  1691.  *  mapped at a lower priority that virtual genre semantics.  Also, hardware
  1692.  *  vendors will not be able to provide sensible mappings for these unless
  1693.  *  they provide application specific mappings.
  1694.  *)
  1695.   DIAXIS_ANY_X_1                          = $FF00C201;
  1696.   {$EXTERNALSYM DIAXIS_ANY_X_1}
  1697.   DIAXIS_ANY_X_2                          = $FF00C202;
  1698.   {$EXTERNALSYM DIAXIS_ANY_X_2}
  1699.   DIAXIS_ANY_Y_1                          = $FF014201;
  1700.   {$EXTERNALSYM DIAXIS_ANY_Y_1}
  1701.   DIAXIS_ANY_Y_2                          = $FF014202;
  1702.   {$EXTERNALSYM DIAXIS_ANY_Y_2}
  1703.   DIAXIS_ANY_Z_1                          = $FF01C201;
  1704.   {$EXTERNALSYM DIAXIS_ANY_Z_1}
  1705.   DIAXIS_ANY_Z_2                          = $FF01C202;
  1706.   {$EXTERNALSYM DIAXIS_ANY_Z_2}
  1707.   DIAXIS_ANY_R_1                          = $FF024201;
  1708.   {$EXTERNALSYM DIAXIS_ANY_R_1}
  1709.   DIAXIS_ANY_R_2                          = $FF024202;
  1710.   {$EXTERNALSYM DIAXIS_ANY_R_2}
  1711.   DIAXIS_ANY_U_1                          = $FF02C201;
  1712.   {$EXTERNALSYM DIAXIS_ANY_U_1}
  1713.   DIAXIS_ANY_U_2                          = $FF02C202;
  1714.   {$EXTERNALSYM DIAXIS_ANY_U_2}
  1715.   DIAXIS_ANY_V_1                          = $FF034201;
  1716.   {$EXTERNALSYM DIAXIS_ANY_V_1}
  1717.   DIAXIS_ANY_V_2                          = $FF034202;
  1718.   {$EXTERNALSYM DIAXIS_ANY_V_2}
  1719.   DIAXIS_ANY_A_1                          = $FF03C201;
  1720.   {$EXTERNALSYM DIAXIS_ANY_A_1}
  1721.   DIAXIS_ANY_A_2                          = $FF03C202;
  1722.   {$EXTERNALSYM DIAXIS_ANY_A_2}
  1723.   DIAXIS_ANY_B_1                          = $FF044201;
  1724.   {$EXTERNALSYM DIAXIS_ANY_B_1}
  1725.   DIAXIS_ANY_B_2                          = $FF044202;
  1726.   {$EXTERNALSYM DIAXIS_ANY_B_2}
  1727.   DIAXIS_ANY_C_1                          = $FF04C201;
  1728.   {$EXTERNALSYM DIAXIS_ANY_C_1}
  1729.   DIAXIS_ANY_C_2                          = $FF04C202;
  1730.   {$EXTERNALSYM DIAXIS_ANY_C_2}
  1731.   DIAXIS_ANY_S_1                          = $FF054201;
  1732.   {$EXTERNALSYM DIAXIS_ANY_S_1}
  1733.   DIAXIS_ANY_S_2                          = $FF054202;
  1734.   {$EXTERNALSYM DIAXIS_ANY_S_2}
  1735.   DIAXIS_ANY_1                            = $FF004201;
  1736.   {$EXTERNALSYM DIAXIS_ANY_1}
  1737.   DIAXIS_ANY_2                            = $FF004202;
  1738.   {$EXTERNALSYM DIAXIS_ANY_2}
  1739.   DIAXIS_ANY_3                            = $FF004203;
  1740.   {$EXTERNALSYM DIAXIS_ANY_3}
  1741.   DIAXIS_ANY_4                            = $FF004204;
  1742.   {$EXTERNALSYM DIAXIS_ANY_4}
  1743.   DIPOV_ANY_1                             = $FF004601;
  1744.   {$EXTERNALSYM DIPOV_ANY_1}
  1745.   DIPOV_ANY_2                             = $FF004602;
  1746.   {$EXTERNALSYM DIPOV_ANY_2}
  1747.   DIPOV_ANY_3                             = $FF004603;
  1748.   {$EXTERNALSYM DIPOV_ANY_3}
  1749.   DIPOV_ANY_4                             = $FF004604;
  1750.   {$EXTERNALSYM DIPOV_ANY_4}
  1751. // #define DIBUTTON_ANY(instance)                  ( 0xFF004400 | instance )
  1752. function DIBUTTON_ANY(instance: Cardinal): Cardinal;
  1753. {$EXTERNALSYM DIBUTTON_ANY}
  1754. (****************************************************************************
  1755.  *
  1756.  *  Definitions for non-IDirectInput (VJoyD) features defined more recently
  1757.  *  than the current sdk files
  1758.  *
  1759.  ****************************************************************************)
  1760. //#ifdef _INC_MMSYSTEM
  1761. //#ifndef MMNOJOY
  1762. //#ifndef __VJOYDX_INCLUDED__
  1763. //#define __VJOYDX_INCLUDED__
  1764. const
  1765. (*
  1766.  * Flag to indicate that the dwReserved2 field of the JOYINFOEX structure
  1767.  * contains mini-driver specific data to be passed by VJoyD to the mini-
  1768.  * driver instead of doing a poll.
  1769.  *)
  1770.   JOY_PASSDRIVERDATA          = $10000000;
  1771.   {$EXTERNALSYM JOY_PASSDRIVERDATA}
  1772. (*
  1773.  * Informs the joystick driver that the configuration has been changed
  1774.  * and should be reloaded from the registery.
  1775.  * dwFlags is reserved and should be set to zero
  1776.  *)
  1777. const
  1778.   WinMMDll = 'WinMM.dll';
  1779. {$IFDEF DIRECTINPUT_DYNAMIC_LINK}
  1780. var
  1781.   joyConfigChanged: function(dwFlags: DWORD): MMRESULT; stdcall;
  1782. {$ELSE}
  1783. function joyConfigChanged(dwFlags: DWORD): MMRESULT; stdcall; external WinMMDll;
  1784. {$ENDIF}
  1785. {$EXTERNALSYM joyConfigChanged}
  1786. (*
  1787.  * Invoke the joystick control panel directly, using the passed window handle
  1788.  * as the parent of the dialog.  This API is only supported for compatibility
  1789.  * purposes; new applications should use the RunControlPanel method of a
  1790.  * device interface for a game controller.
  1791.  * The API is called by using the function pointer returned by
  1792.  * GetProcAddress( hCPL, TEXT("ShowJoyCPL") ) where hCPL is a HMODULE returned
  1793.  * by LoadLibrary( TEXT("joy.cpl") ).  The typedef is provided to allow
  1794.  * declaration and casting of an appropriately typed variable.
  1795.  *)
  1796. const
  1797.   JoyCPL = 'joy.cpl';
  1798. type
  1799.   TShowJoyCPL =  procedure(hWnd: HWND); stdcall;
  1800. {$IFDEF DIRECTINPUT_DYNAMIC_LINK}
  1801. var
  1802.   ShowJoyCPL: TShowJoyCPL;
  1803. {$ELSE}
  1804. procedure ShowJoyCPL(hWnd: HWND); stdcall; external JoyCPL;
  1805. {$ENDIF}
  1806. {$EXTERNALSYM ShowJoyCPL}
  1807. const
  1808. (*
  1809.  * Hardware Setting indicating that the device is a headtracker
  1810.  *)
  1811.   JOY_HWS_ISHEADTRACKER       = $02000000;
  1812.   {$EXTERNALSYM JOY_HWS_ISHEADTRACKER}
  1813. (*
  1814.  * Hardware Setting indicating that the VxD is used to replace
  1815.  * the standard analog polling
  1816.  *)
  1817.   JOY_HWS_ISGAMEPORTDRIVER    = $04000000;
  1818.   {$EXTERNALSYM JOY_HWS_ISGAMEPORTDRIVER}
  1819. (*
  1820.  * Hardware Setting indicating that the driver needs a standard
  1821.  * gameport in order to communicate with the device.
  1822.  *)
  1823.   JOY_HWS_ISANALOGPORTDRIVER  = $08000000;
  1824.   {$EXTERNALSYM JOY_HWS_ISANALOGPORTDRIVER}
  1825. (*
  1826.  * Hardware Setting indicating that VJoyD should not load this
  1827.  * driver, it will be loaded externally and will register with
  1828.  * VJoyD of it's own accord.
  1829.  *)
  1830.   JOY_HWS_AUTOLOAD            = $10000000;
  1831.   {$EXTERNALSYM JOY_HWS_AUTOLOAD}
  1832. (*
  1833.  * Hardware Setting indicating that the driver acquires any
  1834.  * resources needed without needing a devnode through VJoyD.
  1835.  *)
  1836.   JOY_HWS_NODEVNODE           = $20000000;
  1837.   {$EXTERNALSYM JOY_HWS_NODEVNODE}
  1838. (*
  1839.  * Hardware Setting indicating that the device is a gameport bus
  1840.  *)
  1841.   JOY_HWS_ISGAMEPORTBUS       = $80000000;
  1842.   {$EXTERNALSYM JOY_HWS_ISGAMEPORTBUS}
  1843.   JOY_HWS_GAMEPORTBUSBUSY     = $00000001;
  1844.   {$EXTERNALSYM JOY_HWS_GAMEPORTBUSBUSY}
  1845. (*
  1846.  * Usage Setting indicating that the settings are volatile and
  1847.  * should be removed if still present on a reboot.
  1848.  *)
  1849.   JOY_US_VOLATILE             = $00000008;
  1850.   {$EXTERNALSYM JOY_US_VOLATILE}
  1851. //#endif  (* __VJOYDX_INCLUDED__ *)
  1852. //#endif  (* not MMNOJOY *)
  1853. //#endif  (* _INC_MMSYSTEM *)
  1854. (****************************************************************************
  1855.  *
  1856.  *  Definitions for non-IDirectInput (VJoyD) features defined more recently
  1857.  *  than the current ddk files
  1858.  *
  1859.  ****************************************************************************)
  1860. //#ifdef _INC_MMDDK
  1861. //#ifndef MMNOJOYDEV
  1862. //#ifndef __VJOYDXD_INCLUDED__
  1863. //#define __VJOYDXD_INCLUDED__
  1864. const
  1865. (*
  1866.  * Poll type in which the do_other field of the JOYOEMPOLLDATA
  1867.  * structure contains mini-driver specific data passed from an app.
  1868.  *)
  1869.   JOY_OEMPOLL_PASSDRIVERDATA  = 7;
  1870.   {$EXTERNALSYM JOY_OEMPOLL_PASSDRIVERDATA}
  1871. //#endif  (* __VJOYDXD_INCLUDED__ *)
  1872. //#endif  (* not MMNOJOYDEV *)
  1873. //#endif  (* _INC_MMDDK *)
  1874. implementation
  1875. //#define DIEFT_GETTYPE(n)            LOBYTE(n)
  1876. function DIEFT_GETTYPE(n: Cardinal): Byte;
  1877. begin
  1878.   Result := LOBYTE(n);
  1879. end;
  1880. // #define GET_DIDEVICE_TYPE(dwDevType)    LOBYTE(dwDevType)
  1881. function GET_DIDEVICE_TYPE(dwDevType: DWORD): Byte;
  1882. begin
  1883.   Result := LOBYTE(dwDevType);
  1884. end;
  1885. // #define GET_DIDEVICE_SUBTYPE(dwDevType) HIBYTE(dwDevType)
  1886. function GET_DIDEVICE_SUBTYPE(dwDevType: DWORD): Byte;
  1887. begin
  1888.   Result := HiByte(Word(dwDevType));
  1889. end;
  1890. // #define DIDFT_MAKEINSTANCE(n) ((WORD)(n) << 8)
  1891. function DIDFT_MAKEINSTANCE(n: Cardinal): Cardinal;
  1892. begin
  1893.   Result := Word(n) shl 8;
  1894. end;
  1895. // #define DIDFT_GETTYPE(n)     LOBYTE(n)
  1896. function DIDFT_GETTYPE(n: Cardinal): Byte;
  1897. begin
  1898.   Result := LOBYTE(n);
  1899. end;
  1900. // #define DIDFT_GETINSTANCE(n) LOWORD((n) >> 8)
  1901. function DIDFT_GETINSTANCE(n: Cardinal): Cardinal;
  1902. begin
  1903.   Result := LOWORD(n) shr 8;
  1904. end;
  1905. // #define DIDFT_ENUMCOLLECTION(n) ((WORD)(n) << 8)
  1906. function DIDFT_ENUMCOLLECTION(n: Cardinal): Cardinal;
  1907. begin
  1908.   Result := Word(n) shl 8;
  1909. end;
  1910. {$IFDEF DIRECTINPUT_VERSION_5b} (* #if(DIRECTINPUT_VERSION >= 0x050a) *)
  1911. // #define DIMAKEUSAGEDWORD(UsagePage, Usage) 
  1912. //                                 (DWORD)MAKELONG(Usage, UsagePage)
  1913. function DIMAKEUSAGEDWORD(UsagePage, Usage: Word): DWORD;
  1914. begin
  1915.   Result:= DWORD(MakeLong(UsagePage, Usage));
  1916. end;
  1917. {$ENDIF} (* DIRECTINPUT_VERSION >= 0x050a *)
  1918. //  #define DIJOFS_SLIDER(n)   (FIELD_OFFSET(DIJOYSTATE, rglSlider) + 
  1919. //                              (n) * sizeof(LONG))
  1920. function DIJOFS_SLIDER(n: Cardinal): Cardinal;
  1921. begin
  1922.   Result := Cardinal(@PDIJoyState(nil)^.rglSlider) + n*SizeOf(DWORD); //  + 24;
  1923. end;
  1924. // #define DIJOFS_POV(n)      (FIELD_OFFSET(DIJOYSTATE, rgdwPOV) + 
  1925. //                              (n) * sizeof(DWORD))
  1926. function DIJOFS_POV(n: Cardinal): Cardinal;
  1927. begin
  1928.   Result := Cardinal(@PDIJoyState(nil).rgdwPOV) + n*SizeOf(DWORD); //  + 32;
  1929. end;
  1930. // #define DIJOFS_BUTTON(n)   (FIELD_OFFSET(DIJOYSTATE, rgbButtons) + (n))
  1931. function DIJOFS_BUTTON(n: Cardinal): Cardinal;
  1932. begin
  1933.   Result := Cardinal(@PDIJoyState(nil).rgbButtons) + n*SizeOf(DWORD); //  + 48;
  1934. end;
  1935. // #define DIBUTTON_ANY(instance)                  ( 0xFF004400 | instance )
  1936. function DIBUTTON_ANY(instance: Cardinal): Cardinal;
  1937. begin
  1938.   Result := $FF004400 or instance;
  1939. end;
  1940. {$IFDEF DIRECTINPUT_DYNAMIC_LINK}
  1941. var
  1942.   DirectInputLib: THandle = 0;
  1943.   DirectInput8Lib: THandle = 0;
  1944.   WinMMLib: THandle = 0;
  1945.   JoyCPLLib: THandle = 0;
  1946. function DirectInputLoaded: Boolean;
  1947. begin
  1948.   Result:= (DirectInputLib <> 0) and (DirectInput8Lib<>0);
  1949. end;
  1950. function UnLoadDirectInput: Boolean;
  1951. begin
  1952.   Result:= True;
  1953.   if (DirectInputLib <> 0) then
  1954.   begin
  1955.     Result:= Result and FreeLibrary(DirectInputLib);
  1956.     DirectInputCreateA:= nil;
  1957.     DirectInputCreateW:= nil;
  1958.     DirectInputCreate:= nil;
  1959.     DirectInputCreateEx:= nil;
  1960.     DirectInputLib:= 0;
  1961.   end;
  1962.   if (DirectInput8Lib <> 0) then
  1963.   begin
  1964.     Result:= Result and FreeLibrary(DirectInput8Lib);
  1965.     DirectInput8Create:= nil;
  1966.     DirectInput8Lib:= 0;
  1967.   end;
  1968.   if (WinMMLib <> 0) then
  1969.   begin
  1970.     Result:= Result and FreeLibrary(WinMMLib);
  1971.     joyConfigChanged:= nil;
  1972.     WinMMLib:= 0;
  1973.   end;
  1974.   if (JoyCPLLib <> 0) then
  1975.   begin
  1976.     Result:= Result and FreeLibrary(JoyCPLLib);
  1977.     ShowJoyCPL:= nil;
  1978.     JoyCPLLib:= 0;
  1979.   end;
  1980. end;
  1981. function LoadDirectInput: Boolean;
  1982. begin
  1983.   Result:= DirectInputLoaded;
  1984.   if (not Result) then
  1985.   begin
  1986.     DirectInputLib:= LoadLibrary(DirectInputDll);
  1987.     if (DirectInputLib<>0) then
  1988.     begin
  1989.       DirectInputCreateA:= GetProcAddress(DirectInputLib, 'DirectInputCreateA');
  1990.       DirectInputCreateW:= GetProcAddress(DirectInputLib, 'DirectInputCreateW');
  1991.       {$IFDEF UNICODE}
  1992.       DirectInputCreate:= GetProcAddress(DirectInputLib, 'DirectInputCreateW');
  1993.       {$ELSE}
  1994.       DirectInputCreate:= GetProcAddress(DirectInputLib, 'DirectInputCreateA');
  1995.       {$ENDIF}
  1996.       DirectInputCreateEx:= GetProcAddress(DirectInputLib, 'DirectInputCreateEx');
  1997.     end;
  1998.     DirectInput8Lib:= LoadLibrary(DirectInput8Dll);
  1999.     if (DirectInput8Lib<>0) then
  2000.     begin
  2001.       DirectInput8Create:= GetProcAddress(DirectInputLib, 'DirectInput8Create');
  2002.     end;
  2003.     WinMMLib:= LoadLibrary(WinMMDll);
  2004.     if (WinMMLib <> 0) then
  2005.     begin
  2006.       joyConfigChanged:= GetProcAddress(WinMMLib, 'joyConfigChanged');
  2007.     end;
  2008.     JoyCPLLib:= LoadLibrary(JoyCPL);
  2009.     if (JoyCPLLib <> 0) then
  2010.     begin
  2011.       ShowJoyCPL:= GetProcAddress(JoyCPLLib, 'ShowJoyCPL');
  2012.     end;
  2013.     // At least basic procedure is found!
  2014.     Result:= Assigned(DirectInputCreate) or Assigned(DirectInput8Create);
  2015.     if not Result then UnLoadDirectInput;
  2016.   end;
  2017. end;
  2018. {$ELSE}
  2019. function DirectInputLoaded: Boolean;
  2020. begin // Stub function for static linking
  2021.   Result:= True;
  2022. end;
  2023. function UnLoadDirectInput: Boolean;
  2024. begin // Stub function for static linking
  2025.   Result:= True; // should emulate "normal" behaviour
  2026. end;
  2027. function LoadDirectInput: Boolean;
  2028. begin // Stub function for static linking
  2029.   Result:= True;
  2030. end;
  2031. {$ENDIF}
  2032. {$IFDEF DIRECTINPUT_DYNAMIC_LINK}
  2033. initialization
  2034. {$IFNDEF DIRECTINPUT_DYNAMIC_LINK_EXPLICIT}
  2035.   LoadDirectInput;
  2036. {$ENDIF}
  2037. finalization
  2038.   UnLoadDirectInput;
  2039. {$ENDIF}
  2040. end.