diff --git a/rpcs3/Emu/Cell/Modules/sceNp.cpp b/rpcs3/Emu/Cell/Modules/sceNp.cpp index 660282ea8d..9d1b1925a3 100644 --- a/rpcs3/Emu/Cell/Modules/sceNp.cpp +++ b/rpcs3/Emu/Cell/Modules/sceNp.cpp @@ -965,7 +965,7 @@ error_code sceNpBasicSetPresenceDetails2(vm::cptr pr error_code sceNpBasicSendMessage(vm::cptr to, vm::cptr data, u32 size) { - sceNp.todo("sceNpBasicSendMessage(to=*0x%x, data=*0x%x, size=%d)", to, data, size); + sceNp.warning("sceNpBasicSendMessage(to=*0x%x, data=*0x%x, size=%d)", to, data, size); auto& nph = g_fxo->get>(); @@ -2742,10 +2742,14 @@ error_code sceNpLookupNpId(s32 transId, vm::cptr onlineId, vm::pt return SCE_NP_COMMUNITY_ERROR_INVALID_ONLINE_ID; } + // Hack - better than nothing for now + memset(npId.get_ptr(), 0, sizeof(SceNpId)); + memcpy(npId->handle.data, onlineId->data, sizeof(npId->handle.data) - 1); + return CELL_OK; } -error_code sceNpLookupNpIdAsync(s32 transId, vm::ptr onlineId, vm::ptr npId, s32 prio, vm::ptr option) +error_code sceNpLookupNpIdAsync(s32 transId, vm::cptr onlineId, vm::ptr npId, s32 prio, vm::ptr option) { sceNp.todo("sceNpLookupNpIdAsync(transId=%d, onlineId=*0x%x, npId=*0x%x, prio=%d, option=*0x%x)", transId, onlineId, npId, prio, option); @@ -2771,6 +2775,10 @@ error_code sceNpLookupNpIdAsync(s32 transId, vm::ptr onlineId, vm return SCE_NP_COMMUNITY_ERROR_INVALID_ONLINE_ID; } + // Hack - better than nothing for now + memset(npId.get_ptr(), 0, sizeof(SceNpId)); + memcpy(npId->handle.data, onlineId->data, sizeof(npId->handle.data) - 1); + return CELL_OK; } diff --git a/rpcs3/Emu/NP/np_handler.cpp b/rpcs3/Emu/NP/np_handler.cpp index c530af806d..70678c1461 100644 --- a/rpcs3/Emu/NP/np_handler.cpp +++ b/rpcs3/Emu/NP/np_handler.cpp @@ -1124,7 +1124,7 @@ namespace np basic_event to_add{}; to_add.event = event; - to_add.data = std::move(msg->second.data); + to_add.data = msg->second.data; strcpy_trunc(to_add.from.userId.handle.data, msg->first); strcpy_trunc(to_add.from.name.data, msg->first); diff --git a/rpcs3/Emu/NP/rpcn_client.cpp b/rpcs3/Emu/NP/rpcn_client.cpp index 7eea16e03d..b0272af655 100644 --- a/rpcs3/Emu/NP/rpcn_client.cpp +++ b/rpcs3/Emu/NP/rpcn_client.cpp @@ -964,7 +964,7 @@ namespace rpcn } friend_online_data infos(online, std::move(pr_com_id), std::move(pr_title), std::move(pr_status), std::move(pr_comment), std::move(pr_data)); - friends.insert(std::make_pair(std::move(friend_name), std::move(infos))); + friends.insert_or_assign(std::move(friend_name), std::move(infos)); } }; @@ -2262,7 +2262,7 @@ namespace rpcn friend_infos.requests_received.erase(username); friend_infos.requests_sent.erase(username); - friend_infos.friends.insert(std::make_pair(username, friend_online_data(online, 0))); + friend_infos.friends.insert_or_assign(username, friend_online_data(online, 0)); call_callbacks(ntype, username, online); break;