From 288e75f672ae6bc795210f2b3c67be5cf1c2e01c Mon Sep 17 00:00:00 2001 From: Hector Martin Date: Thu, 1 Dec 2016 06:35:12 +0900 Subject: [PATCH] Wii IPC HLE: Fix IPC missing reply fail --- Source/Core/Core/IPC_HLE/WII_IPC_HLE.cpp | 10 ++++++++++ .../Core/Core/IPC_HLE/WII_IPC_HLE_Device_usb_ven.cpp | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) 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);