From 7f728f3eb64a75c4f9fdbc635c9d2b1ce40e810d Mon Sep 17 00:00:00 2001 From: Ozkan Sezer Date: Fri, 15 Oct 2021 08:51:02 +0300 Subject: [PATCH] enabled os2 joystick code (if anyone has actually a use for it...) --- docs/README-os2.md | 38 ++++++++++++++++++++++++++++++++++++++ include/SDL_config_os2.h | 7 +++---- 2 files changed, 41 insertions(+), 4 deletions(-) diff --git a/docs/README-os2.md b/docs/README-os2.md index 2b7bb2bf0..1d9182e76 100644 --- a/docs/README-os2.md +++ b/docs/README-os2.md @@ -52,3 +52,41 @@ Installing: version installed, close all SDL2 applications before replacing the old copy. Also make sure that any other older versions of DLLs are removed from your system. + + +Joysticks in SDL2: +------------------ + +The joystick code in SDL2 is a direct forward-port from the SDL-1.2 version. +Here is the original documentation from SDL-1.2: + +The Joystick detection only works for standard joysticks (2 buttons, 2 axes +and the like). Therefore, if you use a non-standard joystick, you should +specify its features in the SDL_OS2_JOYSTICK environment variable in a batch +file or CONFIG.SYS, so SDL applications can provide full capability to your +device. The syntax is: + +SET SDL_OS2_JOYSTICK=[JOYSTICK_NAME] [AXES] [BUTTONS] [HATS] [BALLS] + +So, it you have a Gravis GamePad with 4 axes, 2 buttons, 2 hats and 0 balls, +the line should be: + +SET SDL_OS2_JOYSTICK=Gravis_GamePad 4 2 2 0 + +If you want to add spaces in your joystick name, just surround it with +quotes or double-quotes: + +SET SDL_OS2_JOYSTICK='Gravis GamePad' 4 2 2 0 + +or + +SET SDL_OS2_JOYSTICK="Gravis GamePad" 4 2 2 0 + + Note however that Balls and Hats are not supported under OS/2, and the +value will be ignored... but it is wise to define these correctly because +in the future those can be supported. + + Also the number of buttons is limited to 2 when using two joysticks, +4 when using one joystick with 4 axes, 6 when using a joystick with 3 axes +and 8 when using a joystick with 2 axes. Notice however these are limitations +of the Joystick Port hardware, not OS/2. diff --git a/include/SDL_config_os2.h b/include/SDL_config_os2.h index 82bdb595a..5835c91d1 100644 --- a/include/SDL_config_os2.h +++ b/include/SDL_config_os2.h @@ -33,14 +33,13 @@ #define SDL_POWER_DISABLED 1 #define SDL_HAPTIC_DISABLED 1 -#define SDL_JOYSTICK_DISABLED 1 -/*#undef SDL_JOYSTICK_OS2 */ -/*#undef SDL_JOYSTICK_HIDAPI */ -/*#undef SDL_JOYSTICK_VIRTUAL */ #define SDL_SENSOR_DUMMY 1 #define SDL_VIDEO_DRIVER_DUMMY 1 #define SDL_VIDEO_DRIVER_OS2 1 +#define SDL_JOYSTICK_OS2 1 +/*#undef SDL_JOYSTICK_HIDAPI */ +/*#undef SDL_JOYSTICK_VIRTUAL */ /* Enable OpenGL support */ /* #undef SDL_VIDEO_OPENGL */