diff --git a/rpcs3/Emu/Cell/lv2/sys_lwcond.cpp b/rpcs3/Emu/Cell/lv2/sys_lwcond.cpp index 27c552c52e..2882e626d6 100644 --- a/rpcs3/Emu/Cell/lv2/sys_lwcond.cpp +++ b/rpcs3/Emu/Cell/lv2/sys_lwcond.cpp @@ -371,7 +371,7 @@ error_code _sys_lwcond_queue_wait(ppu_thread& ppu, u32 lwcond_id, u32 lwmutex_id break; } - std::lock_guard lock2(mutex->mutex); + std::shared_lock lock2(mutex->mutex); if (std::find(mutex->sq.cbegin(), mutex->sq.cend(), &ppu) == mutex->sq.cend()) { diff --git a/rpcs3/Emu/Cell/lv2/sys_net.cpp b/rpcs3/Emu/Cell/lv2/sys_net.cpp index 7c6e42dce8..c7734d3a56 100644 --- a/rpcs3/Emu/Cell/lv2/sys_net.cpp +++ b/rpcs3/Emu/Cell/lv2/sys_net.cpp @@ -1297,7 +1297,16 @@ error_code sys_net_bnet_sendto(ppu_thread& ppu, s32 s, vm::cptr buf, u32 l int native_flags = 0; int native_result = -1; ::sockaddr_in name{}; - std::string _buf(vm::_ptr(buf.addr()), vm::_ptr(buf.addr()) + len); + std::string _buf; + + if (idm::check(s)) + { + _buf.assign(vm::_ptr(buf.addr()), vm::_ptr(buf.addr()) + len); + } + else + { + return -SYS_NET_EBADF; + } if (addr) { diff --git a/rpcs3/Emu/Cell/lv2/sys_rsx.cpp b/rpcs3/Emu/Cell/lv2/sys_rsx.cpp index b4de79a12c..fbb0ccf211 100644 --- a/rpcs3/Emu/Cell/lv2/sys_rsx.cpp +++ b/rpcs3/Emu/Cell/lv2/sys_rsx.cpp @@ -186,7 +186,7 @@ error_code sys_rsx_context_allocate(vm::ptr context_id, vm::ptr lpar_d dmaControl.put = 0; dmaControl.ref = 0; // Set later to -1 by cellGcmSys - if ((true/*system_mode & something*/ || g_cfg.video.decr_memory_layout) + if ((false/*system_mode & something*/ || g_cfg.video.decr_memory_layout) && g_cfg.core.debug_console_mode) rsx::get_current_renderer()->main_mem_size = 0x20000000; //512MB else