____ _ _ / ___|___ _ __ | |_ _ __ ___ | |___ | | / _ \| '_ \| __| '__/ _ \| / __| [Controls] | |__| (_) | | | | |_| | | (_) | \__ \ by TheOuterLinux \____\___/|_| |_|\__|_| \___/|_|___/(https://theouterlinux.gitlab.io) Last updated: 2023/02/21 The following is a compare/contrast list of how 'Game Maker 8' for WinXP and 'LateralGM+Enigma' on GNU/Linux understand the joystick functions. If you are wondering about "gamepad" functions, there are none on for Game Maker 8 and LaterGM+Enigma for GNU/Linux recognizes that the functions exists; however, they give compile errors that suggest that perhaps those functions only work on Windows. Controls via GML are typically used like the following... KEYBOARD if keyboard_key_press(ord"Z"){ ...then do some stuff } if keyboard_key_press(vk_left){ ...move player left } ...Fortunately, the keyboard keys are mostly universal so if you want something to happen when the "Z" key is pressed, then it should work just fine on both Game Maker and LaterGM+Enigma. JOYSTICK if joystick_exists(0){ if joystick_check_button(0,1){ ...fire a missle? } if joystick_rpos(0,-1){ ...turn player counter-clockwise? } if joystick_direction(0) = "vk_numpad8"{ ...move player forward } } ...You want to use the "joystick_exists(0)" part because if you check for joystick buttons and so forth but have no joystick, then the game will probably crash or freeze. I would also like to note that in the case of joystick_direction, the "vk_numpad4" and "vk_numpad6" are reversed on GNU/Linux; meaning that you will have to differentiate, amoung many other controls, between Game Maker 8 on WinXP and LaterGM+Enigma. Example: if joystick_exists(0){ if directory_exists("C:\"){ if joystick_direction(0) = "vk_numpad4"{ ...move player left } } else{ if joystick_direction(0) = "vk_numpad4"{ ....move player right } } ...This also means vk_numpad directions related to up-left, up-right, down-left, and down-right are also "flipped" in comparison to Game Maker on WinXP versus LaterGM+Enigma. ######################################################################## .-------------------------------------------------------. | USB SNES CONTROLLER | |-------------------------------------------------------| || Control | Game Maker 8 | LateralGM+Enigma | ||-----------------+----------------+-------------------| ||DPAD CONTROLS |####################################| ||-----------------+----------------.-------------------| || DPad_Up | vk_numpad8 | vk_numpad8 | || DPad_Down | vk_numpad2 | vk_numpad2 | || DPad_Left | vk_numpad4 | vk_numpad6 | || DPad_Right | vk_numpad6 | vk_numpad4 | || DPad_UpLeft | vk_numpad7 | vk_numpad1 | || DPad_UpRight | vk_numpad9 | vk_numpad3 | || DPad_DownLeft | vk_numpad1 | vk_numpad9 | || DPad_DownRight | vk_numpad3 | vk_numpad7 | ||-----------------+----------------'-------------------| ||BUTTON CONTROLS |####################################| ||-----------------+----------------+-------------------| || A | 2 | 1 | || B | 3 | 2 | || X | 1 | 0 | || Y | 4 | 3 | || Left Trigger | 5 | 4 | || Right Trigger | 6 | 5 | || Start | 10 | 9 | || Select | 9 | 8 | `-------------------------------------------------------' ######################################################################## I have no idea why Game Maker 8 on WinXP cannot recognize the DPad... .----------------------------------------------------------------------. | USB N64 CONTROLLER | |----------------------------------------------------------------------| || Control | Game Maker 8 | LateralGM+Enigma | ||---------------------+-----------------------+-----------------------| ||DPAD CONTROLS |###############################################| ||---------------------+-----------------------.-----------------------| || DPad_Up | ??? | joystick_upos(0,-1) | || DPad_Down | ??? | joystick_upos(0,1) | || DPad_Left | ??? | joystick_rpos(0,-1) | || DPad_Right | ??? | joystick_rpos(0,1) | || DPad_UpLeft | ??? | N/A | || DPad_UpRight | ??? | N/A | || DPad_DownLeft | ??? | N/A | || DPad_DownRight | ??? | N/A | ||---------------------+-----------------------'-----------------------| ||ANALOG CONTROLS |###############################################| ||---------------------+-----------------------+-----------------------| || Joystick_Up | joystick_ypos(0,-1) | vk_numpad8 | || Joystick_Down | joystick_ypos(0,1) | vk_numpad2 | || Joystick_Left | joystick_xpos(0,-1) | vk_numpad6 | || Joystick_Right | joystick_xpos(0,1) | vk_numpad4 | || Joystick_UpLeft | N/A | vk_numpad1 | || Joystick_UpRight | N/A | vk_numpad3 | || Joystick_DownLeft | N/A | vk_numpad9 | || Joystick_DownRight | N/A | vk_numpad7 | ||---------------------+-----------------------'-----------------------| ||BUTTON CONTROLS |###############################################| ||---------------------+-----------------------+-----------------------| || A | 2 | 1 | || B | 3 | 2 | || C_Up | 10 | 9 | || C_Down | 1 | 0 | || C_Left | 4 | 3 | || C_Right | 9 | 8 | || Left Trigger | 5 | 4 | || Right Trigger | 6 | 5 | || Z | 7 | 6 | || Start | ??? | 12 | `----------------------------------------------------------------------' ######################################################################## I have no idea why Game Maker 8 on WinXP cannot recognize the DPad... .----------------------------------------------------------------------. | USB GAMECUBE CONTROLLER | |----------------------------------------------------------------------| || Control | Game Maker 8 | LateralGM+Enigma | ||---------------------+-----------------------'-----------------------| ||DPAD CONTROLS |###############################################| ||---------------------+-----------------------.-----------------------| || DPad_Up | ??? | joystick_vpos(0,-1) | || DPad_Down | ??? | joystick_vpos(0,1) | || DPad_Left | ??? | joystick_upos(0,-1) | || DPad_Right | ??? | joystick_upos(0,1) | || DPad_UpLeft | ??? | N/A | || DPad_UpRight | ??? | N/A | || DPad_DownLeft | ??? | N/A | || DPad_DownRight | ??? | N/A | ||---------------------+-----------------------'-----------------------| ||ANALOG CONTROLS |###############################################| ||---------------------+-----------------------+-----------------------| || Joystick_Up | joystick_ypos(0,-1) | vk_numpad8 | || Joystick_Down | joystick_ypos(0,1) | vk_numpad2 | || Joystick_Left | joystick_xpos(0,-1) | vk_numpad6 | || Joystick_Right | joystick_xpos(0,1) | vk_numpad4 | || Joystick_UpLeft | N/A | vk_numpad1 | || Joystick_UpRight | N/A | vk_numpad3 | || Joystick_DownLeft | N/A | vk_numpad9 | || Joystick_DownRight | N/A | vk_numpad7 | || | | | || C_Up | joystick_rpos(0,-1) | joystick_rpos(0,-1) | || C_Down | joystick_rpos(0,1) | joystick_rpos(0,1) | || C_Left | joystick_zpos(0,-1) | joystick_zpos(0,-1) | || C_Right | joystick_zpos(0,1) | joystick_zpos(0,1) | || C_UpLeft | N/A | N/A | || C_UpRight | N/A | N/A | || C_DownLeft | N/A | N/A | || C_DownRight | N/A | | ||---------------------+-----------------------'-----------------------| ||BUTTON CONTROLS |###############################################| ||---------------------+-----------------------+-----------------------| || A | 3 | 2 | || B | 4 | 3 | || X | 2 | 1 | || Y | 1 | 0 | || Left Trigger | 5 | 4 | || Right Trigger | 6 | 5 | || Z | 7 | 6 | || Start | 10 | 9 | `----------------------------------------------------------------------' ######################################################################## .----------------------------------------------------------------------. | USB DUAL-ANALOG CONTROLLER | |----------------------------------------------------------------------| || Control | Game Maker 8 | LateralGM+Enigma | ||----------------------+-----------------------'----------------------| ||DPAD CONTROLS |##############################################| ||----------------------+-----------------------.----------------------| || DPad_Up | vk_numpad8 | joystick_upos(0,-1) | || DPad_Down | vk_numpad2 | joystick_upos(0,1) | || DPad_Left | vk_numpad4 | joystick_rpos(0,-1) | || DPad_Right | vk_numpad6 | joystick_rpos(0,1) | || DPad_UpLeft | vk_numpad7 | N/A | || DPad_UpRight | vk_numpad9 | N/A | || DPad_DownLeft | vk_numpad1 | N/A | || DPad_DownRight | vk_numpad3 | N/A | ||----------------------+-----------------------'----------------------| ||ANALOG CONTROLS |##############################################| ||----------------------+-----------------------+----------------------| || LJoystick_Up | vk_numpad8 | vk_numpad8 | || LJoystick_Down | vk_numpad2 | vk_numpad2 | || LJoystick_Left | vk_numpad6 | vk_numpad6 | || LJoystick_Right | vk_numpad4 | vk_numpad4 | || LJoystick_UpLeft | vk_numpad1 | vk_numpad1 | || LJoystick_UpRight | vk_numpad3 | vk_numpad3 | || LJoystick_DownLeft | vk_numpad9 | vk_numpad9 | || LJoystick_DownRight | vk_numpad7 | vk_numpad7 | || | | | || RJoystick_Up | joystick_ypos(0,-1) | joystick_ypos(0,-1) | || RJoystick_Down | joystick_ypos(0,1) | joystick_ypos(0,1) | || RJoystick_Left | joystick_zpos(0,-1) | joystick_zpos(0,-1) | || RJoystick_Right | joystick_zpos(0,1) | joystick_zpos(0,1) | || RJoystick_UpLeft | N/A | N/A | || RJoystick_UpRight | N/A | N/A | || RJoystick_DownLeft | N/A | N/A | || RJoystick_DownRight | N/A | N/A | ||----------------------+-----------------------'----------------------| ||BUTTON CONTROLS |##############################################| ||----------------------+-----------------------+----------------------| || A (2; Circle) | 2 | 1 | || B (3; X) | 3 | 2 | || X (1; Triangle) | 1 | 0 | || Y (4; Square) | 4 | 3 | || L1 | 5 | 4 | || L2 | 7 | 6 | || L3 | 11 | 10 | || R1 | 6 | 5 | || R2 | 8 | 7 | || R3 | 12 | 11 | || Start | 10 | 9 | || Select | 9 | 8 | `----------------------------------------------------------------------' ######################################################################## You may notice in the following chart that I have no idea how Game Maker 8 on WinXP behaves with a PS3 controller; this is because I have not been able to find a way to install the "Dual Shock 3 Sixaxis" drivers on a 32-bit WinXP system. There seems to be a few options when doing an Internet search, but WinXP does not recognize the installation packages I have found so far as compatible. The drivers for the PS3 controller are included with the kernel on most modern GNU/Linux distributions. You may also notices that the PS3 controller has pressure-sensitive triggers for what used to be the L2 and R2 buttons on the Dual Shock 2 controller. So, when you see "joystick_ypos(0,1)" or "joystick_upos(0,1)", that refers to pressing these triggers all the way down; there is no "...(0,-1)" for the ypos and upos joystick functions. .----------------------------------------------------------------------. | USB PS3 CONTROLLER | |----------------------------------------------------------------------| || Control | Game Maker 8 | LateralGM+Enigma | ||----------------------+-----------------------+----------------------| ||DPAD CONTROLS |##############################################| ||----------------------+-----------------------.----------------------| || DPad_Up | ??? | ??? | || DPad_Down | ??? | ??? | || DPad_Left | ??? | ??? | || DPad_Right | ??? | ??? | || DPad_UpLeft | ??? | ??? | || DPad_UpRight | ??? | ??? | || DPad_DownLeft | ??? | ??? | || DPad_DownRight | ??? | ??? | ||----------------------+-----------------------'----------------------| ||ANALOG CONTROLS |##############################################| ||----------------------+-----------------------+----------------------| || LJoystick_Up | ??? | vk_numpad8 | || LJoystick_Down | ??? | vk_numpad2 | || LJoystick_Left | ??? | vk_numpad6 | || LJoystick_Right | ??? | vk_numpad4 | || LJoystick_UpLeft | ??? | vk_numpad1 | || LJoystick_UpRight | ??? | vk_numpad3 | || LJoystick_DownLeft | ??? | vk_numpad9 | || LJoystick_DownRight | ??? | vk_numpad7 | || | | | || RJoystick_Up | ??? | joystick_rpos(0,-1) | || RJoystick_Down | ??? | joystick_rpos(0,1) | || RJoystick_Left | ??? | joystick_zpos(0,-1) | || RJoystick_Right | ??? | joystick_zpos(0,1) | || RJoystick_UpLeft | ??? | N/A | || RJoystick_UpRight | ??? | N/A | || RJoystick_DownLeft | ??? | N/A | || RJoystick_DownRight | ??? | N/A | ||----------------------+-----------------------'----------------------| ||BUTTON CONTROLS |##############################################| ||----------------------+-----------------------+----------------------| || Triangle | ??? | 2 | || Circle | ??? | 1 | || X | ??? | 0 | || Square | ??? | 3 | || L1 | ??? | 4 | || LT (L2) | ??? | joystick_ypos(0,1) | || L3 | ??? | 11 | || R1 | ??? | 6 | || RT (R2) | ??? | joystick_upos(0,1) | || R3 | ??? | 12 | || Start | ??? | 9 | || Select | ??? | 8 | || PS3 Button | ??? | 10 | `----------------------------------------------------------------------' ######################################################################## Just in case you need it, I found a 32-bit WinXP compatible driver: https://archive.org/compress/xbox-360-64-eng/formats=WINDOWS%20EXECUTABLE&file=/xbox-360-64-eng.zip Otherwise, on GNU/Linux systems, Xbox 360 controller drivers are included with the kernel on most modern distributions. HOWEVER, the DPad still does not seem to be recogized on either system; I have no idea why. .----------------------------------------------------------------------. | USB XBOX 360 CONTROLLER | |----------------------------------------------------------------------| || Control | Game Maker 8 | LateralGM+Enigma | ||----------------------+-----------------------+----------------------| ||DPAD CONTROLS |##############################################| ||----------------------+-----------------------.----------------------| || DPad_Up | ??? | ??? | || DPad_Down | ??? | ??? | || DPad_Left | ??? | ??? | || DPad_Right | ??? | ??? | || DPad_UpLeft | ??? | ??? | || DPad_UpRight | ??? | ??? | || DPad_DownLeft | ??? | ??? | || DPad_DownRight | ??? | ??? | ||----------------------+-----------------------'----------------------| ||ANALOG CONTROLS |##############################################| ||----------------------+-----------------------+----------------------| || LJoystick_Up | vk_numpad8 | vk_numpad8 | || LJoystick_Down | vk_numpad2 | vk_numpad2 | || LJoystick_Left | vk_numpad4 | vk_numpad6 | || LJoystick_Right | vk_numpad6 | vk_numpad4 | || LJoystick_UpLeft | vk_numpad7 | vk_numpad1 | || LJoystick_UpRight | vk_numpad9 | vk_numpad3 | || LJoystick_DownLeft | vk_numpad1 | vk_numpad9 | || LJoystick_DownRight | vk_numpad3 | vk_numpad7 | || | | | || RJoystick_Up | joystick_rpos(0,-1) | joystick_rpos(0,-1) | || RJoystick_Down | joystick_rpos(0,1) | joystick_rpos(0,1) | || RJoystick_Left | joystick_upos(0,-1) | joystick_zpos(0,-1) | || RJoystick_Right | joystick_upos(0,1) | joystick_zpos(0,1) | || RJoystick_UpLeft | N/A | N/A | || RJoystick_UpRight | N/A | N/A | || RJoystick_DownLeft | N/A | N/A | || RJoystick_DownRight | N/A | N/A | ||----------------------+-----------------------'----------------------| ||BUTTON CONTROLS |##############################################| ||----------------------+-----------------------+----------------------| || A | 1 | 0 | || B | 2 | 1 | || X | 3 | 2 | || Y | 4 | 3 | || LB (L1) | 5 | 4 | || LT (L2) | joystick_zpos(0,-1) | joystick_upos(0,-1) | || L3 | 9 | 9 | || RB (R1) | 6 | 5 | || RT (R2) | joystick_zpos(0,1) | joystick_upos(0,1) | || R3 | 10 | 10 | || Start | 8 | 7 | || Back | 7 | 6 | || Xbox Button | 0 | 8 | `----------------------------------------------------------------------'