diff --git a/rpcs3/Emu/Memory/Memory.h b/rpcs3/Emu/Memory/Memory.h index bd1f9e66a4..dc390520fe 100644 --- a/rpcs3/Emu/Memory/Memory.h +++ b/rpcs3/Emu/Memory/Memory.h @@ -768,7 +768,6 @@ public: } }; -typedef mem_t mem16_t; typedef mem_t mem32_t; typedef mem_t mem64_t; diff --git a/rpcs3/Emu/SysCalls/Modules/cellSpurs.cpp b/rpcs3/Emu/SysCalls/Modules/cellSpurs.cpp index d32c2b7bc6..6d0e93bbdb 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellSpurs.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellSpurs.cpp @@ -325,10 +325,10 @@ s64 cellSpursEventFlagDetachLv2EventQueue(mem_ptr_t eventFla #endif } -s64 cellSpursEventFlagWait(mem_ptr_t eventFlag, mem16_t mask, u32 mode) +s64 cellSpursEventFlagWait(mem_ptr_t eventFlag, vm::ptr> mask, u32 mode) { #ifdef PRX_DEBUG - cellSpurs->Warning("cellSpursEventFlagWait(eventFlag_addr=0x%x, mask_addr=0x%x, mode=%d)", eventFlag.GetAddr(), mask.GetAddr(), mode); + cellSpurs->Warning("cellSpursEventFlagWait(eventFlag_addr=0x%x, mask_addr=0x%x, mode=%d)", eventFlag.GetAddr(), mask.addr(), mode); return GetCurrentPPUThread().FastCall2(libsre + 0x15E68, libsre_rtoc); #else UNIMPLEMENTED_FUNC(cellSpurs); @@ -358,10 +358,10 @@ s64 cellSpursEventFlagSet(mem_ptr_t eventFlag, u16 bits) #endif } -s64 cellSpursEventFlagTryWait(mem_ptr_t eventFlag, mem16_t mask, u32 mode) +s64 cellSpursEventFlagTryWait(mem_ptr_t eventFlag, vm::ptr> mask, u32 mode) { #ifdef PRX_DEBUG - cellSpurs->Warning("cellSpursEventFlagTryWait(eventFlag_addr=0x%x, mask_addr=0x%x, mode=0x%x)", eventFlag.GetAddr(), mask.GetAddr(), mode); + cellSpurs->Warning("cellSpursEventFlagTryWait(eventFlag_addr=0x%x, mask_addr=0x%x, mode=0x%x)", eventFlag.GetAddr(), mask.addr(), mode); return GetCurrentPPUThread().FastCall2(libsre + 0x15E70, libsre_rtoc); #else UNIMPLEMENTED_FUNC(cellSpurs); diff --git a/rpcs3/Emu/SysCalls/Modules/libmixer.cpp b/rpcs3/Emu/SysCalls/Modules/libmixer.cpp index f9e16dfa0b..3380f00c31 100644 --- a/rpcs3/Emu/SysCalls/Modules/libmixer.cpp +++ b/rpcs3/Emu/SysCalls/Modules/libmixer.cpp @@ -361,6 +361,7 @@ int cellSurMixerCreate(const mem_ptr_t config) for (auto& p : ssp) if (p.m_active && p.m_created) { + auto v = vm::ptr::make(p.m_addr); // 16-bit LE audio data float left = 0.0f; float right = 0.0f; float speed = fabs(p.m_speed); @@ -398,15 +399,12 @@ int cellSurMixerCreate(const mem_ptr_t config) p.m_position += (u32)pos_inc; if (p.m_channels == 1) // get mono data { - mem16_t v(p.m_addr + pos * sizeof(u16)); - left = right = (float)(s16)re16(v.GetValue()) / 0x8000 * p.m_level; + left = right = (float)v[pos] / 0x8000 * p.m_level; } else if (p.m_channels == 2) // get stereo data { - mem16_t v1(p.m_addr + (pos * 2 + 0) * sizeof(u16)); - mem16_t v2(p.m_addr + (pos * 2 + 1) * sizeof(u16)); - left = (float)(s16)re16(v1.GetValue()) / 0x8000 * p.m_level; - right = (float)(s16)re16(v2.GetValue()) / 0x8000 * p.m_level; + left = (float)v[pos * 2 + 0] / 0x8000 * p.m_level; + right = (float)v[pos * 2 + 1] / 0x8000 * p.m_level; } if (p.m_connected) // mix {