diff --git a/rpcs3/Emu/GS/GL/GLGSRender.cpp b/rpcs3/Emu/GS/GL/GLGSRender.cpp index 2ead98763e..5fd145ad32 100644 --- a/rpcs3/Emu/GS/GL/GLGSRender.cpp +++ b/rpcs3/Emu/GS/GL/GLGSRender.cpp @@ -1174,6 +1174,12 @@ void GLGSRender::Flip() checkForGlError("glScissor"); } + for (uint i = 0; iFlip(m_context); static u8* src_buffer = nullptr; static u32 width = 0; diff --git a/rpcs3/Emu/SysCalls/Modules/cellAudio.cpp b/rpcs3/Emu/SysCalls/Modules/cellAudio.cpp index ccd4258299..ccbeef54ac 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellAudio.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellAudio.cpp @@ -140,7 +140,7 @@ int cellAudioInit() auto buf = (be_t*)&Memory[buf_addr]; - static const float k = 0.5f; // may be 1.0f + static const float k = 1.0f; // may be 1.0f const float m = port.level; if (port.channel == 2) diff --git a/rpcs3/Emu/SysCalls/Modules/cellPamf.cpp b/rpcs3/Emu/SysCalls/Modules/cellPamf.cpp index 9d134b1127..99f33d230a 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellPamf.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellPamf.cpp @@ -112,7 +112,7 @@ int cellPamfGetHeaderSize(mem_ptr_t pAddr, u64 fileSize, mem64_t pSi cellPamf.Warning("cellPamfGetHeaderSize(pAddr=0x%x, fileSize=%d, pSize_addr=0x%x)", pAddr.GetAddr(), fileSize, pSize.GetAddr()); - if (!pAddr.IsGood() || !pSize.IsGood()) + if (!Memory.IsGoodAddr(pAddr.GetAddr(), 2048) || !pSize.IsGood()) return CELL_PAMF_ERROR_INVALID_ARG; //if ((u32)pAddr->magic != 0x464d4150) @@ -128,7 +128,7 @@ int cellPamfGetHeaderSize2(mem_ptr_t pAddr, u64 fileSize, u32 attrib cellPamf.Warning("cellPamfGetHeaderSize2(pAddr=0x%x, fileSize=%d, attribute=0x%x, pSize_addr=0x%x)", pAddr.GetAddr(), fileSize, attribute, pSize.GetAddr()); - if (!pAddr.IsGood() || !pSize.IsGood()) + if (!Memory.IsGoodAddr(pAddr.GetAddr(), 2048) || !pSize.IsGood()) return CELL_PAMF_ERROR_INVALID_ARG; //if ((u32)pAddr->magic != 0x464d4150) @@ -144,7 +144,7 @@ int cellPamfGetStreamOffsetAndSize(mem_ptr_t pAddr, u64 fileSize, me cellPamf.Warning("cellPamfGetStreamOffsetAndSize(pAddr=0x%x, fileSize=%d, pOffset_addr=0x%x, pSize_addr=0x%x)", pAddr.GetAddr(), fileSize, pOffset.GetAddr(), pSize.GetAddr()); - if (!pAddr.IsGood() || !pOffset.IsGood() || !pSize.IsGood()) + if (!Memory.IsGoodAddr(pAddr.GetAddr(), 2048) || !pOffset.IsGood() || !pSize.IsGood()) return CELL_PAMF_ERROR_INVALID_ARG; //if ((u32)pAddr->magic != 0x464d4150) @@ -161,7 +161,7 @@ int cellPamfVerify(mem_ptr_t pAddr, u64 fileSize) { cellPamf.Warning("cellPamfVerify(pAddr=0x%x, fileSize=%d)", pAddr.GetAddr(), fileSize); - if (!pAddr.IsGood()) + if (!Memory.IsGoodAddr(pAddr.GetAddr(), 2048)) return CELL_PAMF_ERROR_INVALID_ARG; return CELL_OK; @@ -176,7 +176,7 @@ int cellPamfReaderInitialize(mem_ptr_t pSelf, mem_ptr_tsignal.GetOwner() == tid) + if (ef->signal.unlock(tid, tid) == SMR_OK) { SMutexLocker lock(ef->m_mutex); @@ -200,7 +200,7 @@ int sys_event_flag_wait(u32 eflag_id, u64 bitptn, u32 mode, mem64_t result, u64 int sys_event_flag_trywait(u32 eflag_id, u64 bitptn, u32 mode, mem64_t result) { - sys_event_flag.Warning("sys_event_flag_trywait(eflag_id=%d, bitptn=0x%llx, mode=0x%x, result_addr=0x%x)", + sys_event_flag.Log("sys_event_flag_trywait(eflag_id=%d, bitptn=0x%llx, mode=0x%x, result_addr=0x%x)", eflag_id, bitptn, mode, result.GetAddr()); if (result.IsGood()) result = 0; @@ -257,7 +257,7 @@ int sys_event_flag_trywait(u32 eflag_id, u64 bitptn, u32 mode, mem64_t result) int sys_event_flag_set(u32 eflag_id, u64 bitptn) { - sys_event_flag.Warning("sys_event_flag_set(eflag_id=%d, bitptn=0x%llx)", eflag_id, bitptn); + sys_event_flag.Log("sys_event_flag_set(eflag_id=%d, bitptn=0x%llx)", eflag_id, bitptn); EventFlag* ef; if(!sys_event_flag.CheckId(eflag_id, ef)) return CELL_ESRCH; @@ -282,7 +282,7 @@ int sys_event_flag_set(u32 eflag_id, u64 bitptn) int sys_event_flag_clear(u32 eflag_id, u64 bitptn) { - sys_event_flag.Warning("sys_event_flag_clear(eflag_id=%d, bitptn=0x%llx)", eflag_id, bitptn); + sys_event_flag.Log("sys_event_flag_clear(eflag_id=%d, bitptn=0x%llx)", eflag_id, bitptn); EventFlag* ef; if(!sys_event_flag.CheckId(eflag_id, ef)) return CELL_ESRCH; @@ -295,7 +295,7 @@ int sys_event_flag_clear(u32 eflag_id, u64 bitptn) int sys_event_flag_cancel(u32 eflag_id, mem32_t num) { - sys_event_flag.Warning("sys_event_flag_cancel(eflag_id=%d, num_addr=0x%x)", eflag_id, num.GetAddr()); + sys_event_flag.Log("sys_event_flag_cancel(eflag_id=%d, num_addr=0x%x)", eflag_id, num.GetAddr()); EventFlag* ef; if(!sys_event_flag.CheckId(eflag_id, ef)) return CELL_ESRCH; @@ -314,7 +314,6 @@ int sys_event_flag_cancel(u32 eflag_id, mem32_t num) for (u32 i = 0; i < tids.size(); i++) { - if (Emu.IsStopped()) break; ef->signal.lock(tids[i]); } @@ -339,7 +338,7 @@ int sys_event_flag_cancel(u32 eflag_id, mem32_t num) int sys_event_flag_get(u32 eflag_id, mem64_t flags) { - sys_event_flag.Warning("sys_event_flag_get(eflag_id=%d, flags_addr=0x%x)", eflag_id, flags.GetAddr()); + sys_event_flag.Log("sys_event_flag_get(eflag_id=%d, flags_addr=0x%x)", eflag_id, flags.GetAddr()); EventFlag* ef; if(!sys_event_flag.CheckId(eflag_id, ef)) return CELL_ESRCH; @@ -349,7 +348,8 @@ int sys_event_flag_get(u32 eflag_id, mem64_t flags) return CELL_EFAULT; } - flags = ef->flags; // ??? + SMutexLocker lock(ef->m_mutex); + flags = ef->flags; return CELL_OK; }