summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorHector Martin <marcan@marcan.st>2016-12-01 06:35:12 +0900
committerHector Martin <marcan@marcan.st>2016-12-01 06:38:51 +0900
commit288e75f672ae6bc795210f2b3c67be5cf1c2e01c (patch)
treef28aa5ef9b09c6510eb14cefdae4ffcdbe638ac4 /Source/Core
parent2b906e3fc45a908704863db847d995a4b9b63374 (diff)
Wii IPC HLE: Fix IPC missing reply fail
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Core/IPC_HLE/WII_IPC_HLE.cpp10
-rw-r--r--Source/Core/Core/IPC_HLE/WII_IPC_HLE_Device_usb_ven.cpp2
2 files changed, 11 insertions, 1 deletions
diff --git a/Source/Core/Core/IPC_HLE/WII_IPC_HLE.cpp b/Source/Core/Core/IPC_HLE/WII_IPC_HLE.cpp
index 83d8397331..b59bb7f552 100644
--- a/Source/Core/Core/IPC_HLE/WII_IPC_HLE.cpp
+++ b/Source/Core/Core/IPC_HLE/WII_IPC_HLE.cpp
@@ -533,6 +533,11 @@ void ExecuteCommand(u32 address)
{
result = device->IOCtl(address);
}
+ else
+ {
+ Memory::Write_U32(FS_EINVAL, address + 4);
+ result = IWII_IPC_HLE_Device::GetDefaultReply();
+ }
break;
}
case IPC_CMD_IOCTLV:
@@ -541,6 +546,11 @@ void ExecuteCommand(u32 address)
{
result = device->IOCtlV(address);
}
+ else
+ {
+ Memory::Write_U32(FS_EINVAL, address + 4);
+ result = IWII_IPC_HLE_Device::GetDefaultReply();
+ }
break;
}
default:
diff --git a/Source/Core/Core/IPC_HLE/WII_IPC_HLE_Device_usb_ven.cpp b/Source/Core/Core/IPC_HLE/WII_IPC_HLE_Device_usb_ven.cpp
index c1d7670847..87f9cecedd 100644
--- a/Source/Core/Core/IPC_HLE/WII_IPC_HLE_Device_usb_ven.cpp
+++ b/Source/Core/Core/IPC_HLE/WII_IPC_HLE_Device_usb_ven.cpp
@@ -50,7 +50,7 @@ IPCCommandResult CWII_IPC_HLE_Device_usb_ven::IOCtlV(u32 command_address)
IPCCommandResult CWII_IPC_HLE_Device_usb_ven::IOCtl(u32 command_address)
{
- IPCCommandResult reply = GetNoReply();
+ IPCCommandResult reply = GetDefaultReply();
u32 command = Memory::Read_U32(command_address + 0x0c);
u32 buffer_in = Memory::Read_U32(command_address + 0x10);
u32 buffer_in_size = Memory::Read_U32(command_address + 0x14);