summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Parlane <parlane@gmail.com>2012-01-31 19:12:21 +1300
committerMatthew Parlane <parlane@gmail.com>2012-01-31 19:12:21 +1300
commit82ffbc338aec4df617121fd9bca39f8485e0435e (patch)
tree5ac8ab8dc75a296f4db12f7d1899da5198d8853e
parent9a712a9fab032c295d4431ab0410bfcbd62af6f4 (diff)
status for network has to be 3 to enter settings, fixed files so they can have more than one handle opened at a time.
-rw-r--r--Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp2
-rw-r--r--Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_FileIO.cpp4
-rw-r--r--Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_fs.cpp11
-rw-r--r--Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_fs.h8
-rw-r--r--Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_net.cpp2
5 files changed, 14 insertions, 13 deletions
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<std::pair<u32,std::string> > 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)