diff --git a/Core/HLE/sceIo.cpp b/Core/HLE/sceIo.cpp index 9e51317ef7..4fda93dcba 100644 --- a/Core/HLE/sceIo.cpp +++ b/Core/HLE/sceIo.cpp @@ -73,6 +73,14 @@ extern "C" { // For EMULATOR_DEVCTL__GET_SCALE #include +#if PPSSPP_PLATFORM(WINDOWS) && !PPSSPP_PLATFORM(UWP) && !PPSSPP_PLATFORM(ARM64) +extern float PluginDataLT; +extern float PluginDataRT; +extern std::map PluginDataKeys; +extern float PluginDataMouseDeltaX; +extern float PluginDataMouseDeltaY; +#endif + static const int ERROR_ERRNO_IO_ERROR = 0x80010005; static const int ERROR_MEMSTICK_DEVCTL_BAD_PARAMS = 0x80220081; static const int ERROR_MEMSTICK_DEVCTL_TOO_MANY_CALLBACKS = 0x80220082; @@ -2067,26 +2075,25 @@ static u32 sceIoDevctl(const char *name, int cmd, u32 argAddr, int argLen, u32 o } return 0; case EMULATOR_DEVCTL__GET_LTRT: +#if PPSSPP_PLATFORM(WINDOWS) && !PPSSPP_PLATFORM(UWP) && !PPSSPP_PLATFORM(ARM64) if (Memory::IsValidAddress(outPtr)) { - extern float PluginDataLT; - extern float PluginDataRT; Memory::Write_Float(PluginDataLT, outPtr); Memory::Write_Float(PluginDataRT, outPtr + sizeof(float)); } +#endif return 0; case EMULATOR_DEVCTL__GET_VKEY: +#if PPSSPP_PLATFORM(WINDOWS) && !PPSSPP_PLATFORM(UWP) && !PPSSPP_PLATFORM(ARM64) if (Memory::IsValidAddress(outPtr)) { - extern std::map PluginDataKeys; Memory::Write_U8(PluginDataKeys[argAddr], outPtr); } +#endif return 0; case EMULATOR_DEVCTL__GET_MOUSE_DELTA: -#if PPSSPP_PLATFORM(WINDOWS) +#if PPSSPP_PLATFORM(WINDOWS) && !PPSSPP_PLATFORM(UWP) && !PPSSPP_PLATFORM(ARM64) if (Memory::IsValidAddress(outPtr)) { - extern float g_mouseDeltaX; - extern float g_mouseDeltaY; - Memory::Write_Float(g_mouseDeltaX, outPtr); - Memory::Write_Float(g_mouseDeltaY, outPtr + sizeof(float)); + Memory::Write_Float(PluginDataMouseDeltaX, outPtr); + Memory::Write_Float(PluginDataMouseDeltaY, outPtr + sizeof(float)); } #endif return 0; diff --git a/UI/NativeApp.cpp b/UI/NativeApp.cpp index 6ec12a14f6..6999c06071 100644 --- a/UI/NativeApp.cpp +++ b/UI/NativeApp.cpp @@ -143,6 +143,8 @@ float PluginDataLT; float PluginDataRT; +float PluginDataMouseDeltaX; +float PluginDataMouseDeltaY; std::map PluginDataKeys; ScreenManager *screenManager; diff --git a/Windows/RawInput.cpp b/Windows/RawInput.cpp index c23efbcf88..ca0dc95597 100644 --- a/Windows/RawInput.cpp +++ b/Windows/RawInput.cpp @@ -55,6 +55,9 @@ #define HID_USAGE_GENERIC_MULTIAXIS ((USHORT) 0x07) #endif +extern float PluginDataMouseDeltaX; +extern float PluginDataMouseDeltaY; + namespace WindowsRawInput { static std::set keyboardKeysDown; static void *rawInputBuffer; @@ -320,6 +323,9 @@ namespace WindowsRawInput { g_mouseDeltaX += raw->data.mouse.lLastX; g_mouseDeltaY += raw->data.mouse.lLastY; + PluginDataMouseDeltaX = g_mouseDeltaX; + PluginDataMouseDeltaY = g_mouseDeltaY; + const int rawInputDownID[5] = { RI_MOUSE_LEFT_BUTTON_DOWN, RI_MOUSE_RIGHT_BUTTON_DOWN,