summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authormagumagu <magumagu9@gmail.com>2016-05-04 17:45:46 -0700
committermagumagu <magumagu9@gmail.com>2016-05-07 11:37:21 -0700
commitcfce7a2aab8ee8062bc4c54d096703edee5f5e6f (patch)
tree01d668132a76ad665bb976c266e1b36c1b0d963b /Source/Core
parentb7795044bbfc71bf57370ab02ff1346434484ffc (diff)
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.
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Core/IPC_HLE/WII_IPC_HLE_Device_usb.cpp6
1 files 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)