From cfce7a2aab8ee8062bc4c54d096703edee5f5e6f Mon Sep 17 00:00:00 2001 From: magumagu Date: Wed, 4 May 2016 17:45:46 -0700 Subject: [PATCH] Fix IPCHLE to make NeoGamma work. NeoGamma is explicitly sending a nonsense command to the Bluetooth module; make sure to respond with something sane. Fixes issue 9470, a regression from PR #1856. --- Source/Core/Core/IPC_HLE/WII_IPC_HLE_Device_usb.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Source/Core/Core/IPC_HLE/WII_IPC_HLE_Device_usb.cpp b/Source/Core/Core/IPC_HLE/WII_IPC_HLE_Device_usb.cpp index a30c34d8a0..f5666badf4 100644 --- a/Source/Core/Core/IPC_HLE/WII_IPC_HLE_Device_usb.cpp +++ b/Source/Core/Core/IPC_HLE/WII_IPC_HLE_Device_usb.cpp @@ -178,8 +178,10 @@ IPCCommandResult CWII_IPC_HLE_Device_usb_oh1_57e_305::Close(u32 _CommandAddress, IPCCommandResult CWII_IPC_HLE_Device_usb_oh1_57e_305::IOCtl(u32 _CommandAddress) { - //ERROR_LOG(WII_IPC_WIIMOTE, "Passing ioctl to ioctlv"); - return IOCtlV(_CommandAddress); // FIXME: Hack + // NeoGamma (homebrew) is known to use this path. + ERROR_LOG(WII_IPC_WIIMOTE, "Bad IOCtl in CWII_IPC_HLE_Device_usb_oh1_57e_305"); + Memory::Write_U32(FS_EINVAL, _CommandAddress + 4); + return GetDefaultReply(); } IPCCommandResult CWII_IPC_HLE_Device_usb_oh1_57e_305::IOCtlV(u32 _CommandAddress)