diff --git a/src/xenia/kernel/xam/xam_enum.cc b/src/xenia/kernel/xam/xam_enum.cc index 91d70acb5..15ca58bcc 100644 --- a/src/xenia/kernel/xam/xam_enum.cc +++ b/src/xenia/kernel/xam/xam_enum.cc @@ -114,7 +114,7 @@ dword_result_t XamGetPrivateEnumStructureFromHandle_entry( return X_STATUS_SUCCESS; } -DECLARE_XAM_EXPORT1(XamGetPrivateEnumStructureFromHandle, kNone, kStub); +DECLARE_XAM_EXPORT1(XamGetPrivateEnumStructureFromHandle, kNone, kImplemented); dword_result_t XamProfileCreateEnumerator_entry(dword_t device_id, lpdword_t handle_ptr) { diff --git a/src/xenia/kernel/xam/xam_net.cc b/src/xenia/kernel/xam/xam_net.cc index 0cdf6976e..d74310093 100644 --- a/src/xenia/kernel/xam/xam_net.cc +++ b/src/xenia/kernel/xam/xam_net.cc @@ -258,8 +258,8 @@ dword_result_t NetDll_WSAStartup_entry(dword_t caller, word_t version, int ret = 0; #ifdef XE_PLATFORM_WIN32 - WSADATA wsaData; - ZeroMemory(&wsaData, sizeof(WSADATA)); + WSADATA wsaData = {}; + ret = WSAStartup(version, &wsaData); #endif @@ -269,19 +269,9 @@ dword_result_t NetDll_WSAStartup_entry(dword_t caller, word_t version, #ifdef XE_PLATFORM_WIN32 data_ptr->version = wsaData.wVersion; data_ptr->version_high = wsaData.wHighVersion; - data_ptr->max_sockets = wsaData.iMaxSockets; - data_ptr->max_udpdg = wsaData.iMaxUdpDg; - std::memcpy(&data_ptr->description, wsaData.szDescription, 0x100); - std::memcpy(&data_ptr->system_status, wsaData.szSystemStatus, 0x80); #else - // Match Windows behavior with reasonable values data_ptr->version = version.value(); - data_ptr->version_high = version.value(); - data_ptr->max_sockets = 100; - data_ptr->max_udpdg = 1024; - // WinSock 2.2 typically returns empty strings for these fields - std::memset(&data_ptr->description, 0, 0x100); - std::memset(&data_ptr->system_status, 0, 0x80); + data_ptr->version_high = 0x0202; #endif // Some games (5841099F) want this value round-tripped - they'll compare if