From b72590066fb02aa3f13131a2db2db74305fa75b4 Mon Sep 17 00:00:00 2001 From: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com> Date: Thu, 5 May 2022 02:46:13 -0700 Subject: [PATCH] [Libretro] fix some input issues due to more recent api changes --- Assets/dll/libLibretroBridge.dll | Bin 249164 -> 248652 bytes Assets/dll/libLibretroBridge.so | Bin 32144 -> 32144 bytes LibretroBridge/LibretroBridge.cpp | 8 ---- LibretroBridge/LibretroBridge.h | 40 +++++++++++++---- .../Libretro/Libretro.Api.cs | 42 +++++++++++++----- 5 files changed, 63 insertions(+), 27 deletions(-) diff --git a/Assets/dll/libLibretroBridge.dll b/Assets/dll/libLibretroBridge.dll index c5936b13afc52af0f1571ac1007f28edea4401d4..17401d40b22c8a7a728509540582ea492a27b27a 100644 GIT binary patch delta 17765 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 Jhor3V{{f$aAe#UH diff --git a/Assets/dll/libLibretroBridge.so b/Assets/dll/libLibretroBridge.so index 8e30a15e3ad9d78bed44a41ab67bbe91da3bbabe..bc600c3d42f65896ae28a941d027a82029c1bf0e 100644 GIT binary patch delta 4933 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 N5T;#?Z?5eS{tFJ_=to9Mo(3n>}lv^;>K0wbp)} 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 diff --git a/LibretroBridge/LibretroBridge.cpp b/LibretroBridge/LibretroBridge.cpp index 64be40809a..cbec20b74a 100644 --- a/LibretroBridge/LibretroBridge.cpp +++ b/LibretroBridge/LibretroBridge.cpp @@ -42,7 +42,6 @@ public: std::memset(lightGun, 0, sizeof (lightGun)); std::memset(analog, 0, sizeof (analog)); std::memset(pointer, 0, sizeof (pointer)); - std::memset(sensorAccelerometer, 0, sizeof (sensorAccelerometer)); } static void RetroLog(RETRO_LOG level, const char* fmt, ...) { @@ -443,9 +442,6 @@ public: case RETRO_DEVICE::POINTER: assert(id < sizeof (pointer)); return pointer[id]; - case RETRO_DEVICE::SENSOR_ACCELEROMETER: - assert(id < sizeof (sensorAccelerometer)); - return sensorAccelerometer[id]; default: __builtin_unreachable(); } @@ -519,9 +515,6 @@ public: case RETRO_DEVICE::POINTER: std::memcpy(pointer, input, sizeof (pointer)); break; - case RETRO_DEVICE::SENSOR_ACCELEROMETER: - std::memcpy(sensorAccelerometer, input, sizeof (sensorAccelerometer)); - break; default: __builtin_unreachable(); } @@ -565,7 +558,6 @@ private: s16 lightGun[static_cast(RETRO_DEVICE_ID_LIGHTGUN::LAST)]; s16 analog[static_cast(RETRO_DEVICE_ID_ANALOG::LAST)]; s16 pointer[static_cast(RETRO_DEVICE_ID_POINTER::LAST)]; - s16 sensorAccelerometer[static_cast(RETRO_DEVICE_ID_SENSOR_ACCELEROMETER::LAST)]; }; static CallbackHandler * gCbHandler = nullptr; diff --git a/LibretroBridge/LibretroBridge.h b/LibretroBridge/LibretroBridge.h index ac194bba1f..dce2be043a 100644 --- a/LibretroBridge/LibretroBridge.h +++ b/LibretroBridge/LibretroBridge.h @@ -69,7 +69,6 @@ enum class RETRO_DEVICE { LIGHTGUN = 4, ANALOG = 5, POINTER = 6, - SENSOR_ACCELEROMETER = 7, LAST, }; @@ -77,6 +76,7 @@ enum class RETRO_DEVICE { enum class RETRO_DEVICE_ID_ANALOG { X = 0, Y = 1, + BUTTON = 2, LAST, }; @@ -86,6 +86,13 @@ enum class RETRO_DEVICE_ID_MOUSE { Y = 1, LEFT = 2, RIGHT = 3, + WHEELUP = 4, + WHEELDOWN = 5, + MIDDLE = 6, + HORIZ_WHEELUP = 7, + HORIZ_WHEELDOWN = 8, + BUTTON_4 = 9, + BUTTON_5 = 10, LAST, }; @@ -98,6 +105,16 @@ enum class RETRO_DEVICE_ID_LIGHTGUN { TURBO = 4, PAUSE = 5, START = 6, + SELECT = 7, + AUX_C = 8, + DPAD_UP = 9, + DPAD_DOWN = 10, + DPAD_LEFT = 11, + DPAD_RIGHT = 12, + SCREEN_X = 13, + SCREEN_Y = 14, + IS_OFFSCREEN = 15, + RELOAD = 16, LAST, }; @@ -106,6 +123,7 @@ enum class RETRO_DEVICE_ID_POINTER { X = 0, Y = 1, PRESSED = 2, + COUNT = 3, LAST, }; @@ -268,14 +286,6 @@ enum class RETRO_MOD { SCROLLLOCK = 64, }; -enum class RETRO_DEVICE_ID_SENSOR_ACCELEROMETER { - X = 0, - Y = 1, - Z = 2, - - LAST, -}; - enum class RETRO_DEVICE_ID_JOYPAD { B = 0, Y = 1, @@ -297,6 +307,18 @@ enum class RETRO_DEVICE_ID_JOYPAD { LAST, }; +enum class RETRO_SENSOR { + ACCELEROMETER_X = 0, + ACCELEROMETER_Y = 1, + ACCELEROMETER_Z = 2, + GYROSCOPE_X = 3, + GYROSCOPE_Y = 4, + GYROSCOPE_Z = 5, + ILLUMINANCE = 6, + + LAST, +}; + enum class RETRO_PIXEL_FORMAT { ZRGB1555 = 0, XRGB8888 = 1, diff --git a/src/BizHawk.Emulation.Cores/Libretro/Libretro.Api.cs b/src/BizHawk.Emulation.Cores/Libretro/Libretro.Api.cs index e2ed962f0d..9235386232 100644 --- a/src/BizHawk.Emulation.Cores/Libretro/Libretro.Api.cs +++ b/src/BizHawk.Emulation.Cores/Libretro/Libretro.Api.cs @@ -18,7 +18,6 @@ namespace BizHawk.Emulation.Cores.Libretro LIGHTGUN = 4, ANALOG = 5, POINTER = 6, - SENSOR_ACCELEROMETER = 7, LAST, } @@ -28,6 +27,7 @@ namespace BizHawk.Emulation.Cores.Libretro // LEFT / RIGHT? X = 0, Y = 1, + BUTTON = 2, LAST, } @@ -38,6 +38,13 @@ namespace BizHawk.Emulation.Cores.Libretro Y = 1, LEFT = 2, RIGHT = 3, + WHEELUP = 4, + WHEELDOWN = 5, + MIDDLE = 6, + HORIZ_WHEELUP = 7, + HORIZ_WHEELDOWN = 8, + BUTTON_4 = 9, + BUTTON_5 = 10, LAST, } @@ -51,6 +58,16 @@ namespace BizHawk.Emulation.Cores.Libretro TURBO = 4, PAUSE = 5, START = 6, + SELECT = 7, + AUX_C = 8, + DPAD_UP = 9, + DPAD_DOWN = 10, + DPAD_LEFT = 11, + DPAD_RIGHT = 12, + SCREEN_X = 13, + SCREEN_Y = 14, + IS_OFFSCREEN = 15, + RELOAD = 16, LAST, } @@ -60,6 +77,7 @@ namespace BizHawk.Emulation.Cores.Libretro X = 0, Y = 1, PRESSED = 2, + COUNT = 3, LAST, } @@ -225,15 +243,6 @@ namespace BizHawk.Emulation.Cores.Libretro SCROLLLOCK = 64, } - public enum RETRO_DEVICE_ID_SENSOR_ACCELEROMETER - { - X = 0, - Y = 1, - Z = 2, - - LAST, - } - public enum RETRO_DEVICE_ID_JOYPAD { B = 0, @@ -256,6 +265,19 @@ namespace BizHawk.Emulation.Cores.Libretro LAST, } + public enum RETRO_SENSOR + { + ACCELEROMETER_X = 0, + ACCELEROMETER_Y = 1, + ACCELEROMETER_Z = 2, + GYROSCOPE_X = 3, + GYROSCOPE_Y = 4, + GYROSCOPE_Z = 5, + ILLUMINANCE = 6, + + LAST, + } + public enum RETRO_REGION : uint { NTSC = 0,