From d3668239490da0535258b4d709a662b8c134fdac Mon Sep 17 00:00:00 2001 From: Nekotekina Date: Sun, 26 Nov 2017 15:44:08 +0300 Subject: [PATCH] RSX: fix fix (406E semaphore release) --- rpcs3/Emu/RSX/rsx_methods.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/rpcs3/Emu/RSX/rsx_methods.cpp b/rpcs3/Emu/RSX/rsx_methods.cpp index 11c8fc89a0..8abf843c2b 100644 --- a/rpcs3/Emu/RSX/rsx_methods.cpp +++ b/rpcs3/Emu/RSX/rsx_methods.cpp @@ -78,6 +78,14 @@ namespace rsx void semaphore_release(thread* rsx, u32 _reg, u32 arg) { const u32 addr = get_address(method_registers.semaphore_offset_406e(), method_registers.semaphore_context_dma_406e()); + + if (addr >> 28 == 0x4) + { + // TODO: check no reservation area instead + vm::ps3::write32(addr, arg); + return; + } + vm::reader_lock lock; vm::ps3::write32(addr, arg); vm::notify(addr, 4);