diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp index 9c0991fb4f..51d388c926 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp @@ -287,7 +287,7 @@ void ExecuteCommand(u32 _Address) DeviceID = GetDeviceIDByName(DeviceName); // check if a device with this name has been created already - if (DeviceID == -1) + if (DeviceName.find("/dev/") == std::string::npos || DeviceID == -1) { if (DeviceName.find("/dev/") != std::string::npos) { diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_FileIO.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_FileIO.cpp index d17e50e0cd..c0aece3407 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_FileIO.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_FileIO.cpp @@ -168,7 +168,7 @@ bool CWII_IPC_HLE_Device_FileIO::Open(u32 _CommandAddress, u32 _Mode) else if (ReturnValue == 0) { ERROR_LOG(WII_IPC_FILEIO, " FileIO failed open: %s (%s) - I/O Error", m_Filename.c_str(), Modes[_Mode]); - ReturnValue = FS_INVALID_ARGUMENT; + ReturnValue = FS_RESULT_FATAL; } if (_CommandAddress) @@ -179,7 +179,7 @@ bool CWII_IPC_HLE_Device_FileIO::Open(u32 _CommandAddress, u32 _Mode) bool CWII_IPC_HLE_Device_FileIO::Seek(u32 _CommandAddress) { - u32 ReturnValue = FS_INVALID_ARGUMENT; + u32 ReturnValue = FS_RESULT_FATAL; const s32 SeekPosition = Memory::Read_U32(_CommandAddress + 0xC); const s32 Mode = Memory::Read_U32(_CommandAddress + 0x10); diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_fs.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_fs.cpp index 88372f3303..824cf264a2 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_fs.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_fs.cpp @@ -109,17 +109,16 @@ bool CWII_IPC_HLE_Device_fs::IOCtlV(u32 _CommandAddress) if (!File::Exists(DirName)) { WARN_LOG(WII_IPC_FILEIO, "FS: Search not found: %s", DirName.c_str()); - ReturnValue = FS_DIRFILE_NOT_FOUND; + ReturnValue = FS_FILE_NOT_EXIST; break; } - - // AyuanX: what if we return "found one successfully" if it is a file? else if (!File::IsDirectory(DirName)) { // It's not a directory, so error. - // Games don't usually seem to care WHICH error they get, as long as it's <0 - WARN_LOG(WII_IPC_FILEIO, "\tNot a directory - return FS_INVALID_ARGUMENT"); - ReturnValue = FS_INVALID_ARGUMENT; + // Games don't usually seem to care WHICH error they get, as long as it's < + // Well the system menu CARES! + WARN_LOG(WII_IPC_FILEIO, "\tNot a directory - return FS_RESULT_FATAL"); + ReturnValue = FS_RESULT_FATAL; break; } diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_fs.h b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_fs.h index be78de7e39..1afb01cf8d 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_fs.h +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_fs.h @@ -31,12 +31,14 @@ struct NANDStat }; enum { - FS_RESULT_OK = 0, + FS_RESULT_OK = 0, + FS_INVALID = -4, FS_DIRFILE_NOT_FOUND = -6, - FS_INVALID_ARGUMENT = -101, + FS_RESULT_FATAL = -101, + FS_NO_ACCESS = -102, FS_FILE_EXIST = -105, FS_FILE_NOT_EXIST = -106, - FS_RESULT_FATAL = -128, + FS_NO_HANDLE = -106, }; class CWII_IPC_HLE_Device_fs : public IWII_IPC_HLE_Device diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_net.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_net.cpp index 410b0e2446..a55e92dc86 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_net.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_net.cpp @@ -80,7 +80,7 @@ it failed) extern std::queue > g_ReplyQueueLater; const u8 default_address[] = { 0x00, 0x17, 0xAB, 0x99, 0x99, 0x99 }; -int status = 5; +int status = 3; // ********************************************************************************** // Handle /dev/net/kd/request requests CWII_IPC_HLE_Device_net_kd_request::CWII_IPC_HLE_Device_net_kd_request(u32 _DeviceID, const std::string& _rDeviceName)