diff --git a/rpcs3/Emu/Cell/SPURecompilerCore.cpp b/rpcs3/Emu/Cell/SPURecompilerCore.cpp index e444dca66a..52563b2e0d 100644 --- a/rpcs3/Emu/Cell/SPURecompilerCore.cpp +++ b/rpcs3/Emu/Cell/SPURecompilerCore.cpp @@ -13,12 +13,19 @@ static const g_imm_table_struct g_imm_table; SPURecompilerCore::SPURecompilerCore(SPUThread& cpu) -: m_enc(new SPURecompiler(cpu, *this)) -, inter(new SPUInterpreter(cpu)) -, CPU(cpu) -, first(true) + : m_enc(new SPURecompiler(cpu, *this)) + , inter(new SPUInterpreter(cpu)) + , CPU(cpu) + , first(true) { memset(entry, 0, sizeof(entry)); + X86CpuInfo inf; + X86CpuUtil::detect(&inf); + if (!inf.hasFeature(kX86CpuFeatureSse41)) + { + LOG_ERROR(SPU, "SPU Recompiler requires SSE4.1 instruction set support"); + Emu.Pause(); + } } SPURecompilerCore::~SPURecompilerCore() diff --git a/rpcs3/Emu/SysCalls/Modules/cellL10n.cpp b/rpcs3/Emu/SysCalls/Modules/cellL10n.cpp index ea34d10566..d918962343 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellL10n.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellL10n.cpp @@ -44,7 +44,7 @@ int UTF16stoUTF8s(mem16_ptr_t utf16, mem64_t utf16_len, mem8_ptr_t utf8, mem64_t if (!utf16.IsGood() || !utf16_len.IsGood() || !utf8_len.IsGood()) return SRCIllegal; - std::u16string wstr =(char16_t*)Memory.VirtualToRealAddr(utf16); + std::u16string wstr =(char16_t*)Memory.VirtualToRealAddr(utf16.GetAddr()); wstr.resize(utf16_len.GetValue()); // TODO: Is this really the role of utf16_len in this function? #ifdef _MSC_VER std::wstring_convert,char16_t> convert; diff --git a/rpcs3/Emu/SysCalls/Modules/libmixer.cpp b/rpcs3/Emu/SysCalls/Modules/libmixer.cpp index 3532fbf1e7..147e37c812 100644 --- a/rpcs3/Emu/SysCalls/Modules/libmixer.cpp +++ b/rpcs3/Emu/SysCalls/Modules/libmixer.cpp @@ -361,7 +361,7 @@ int cellSurMixerCreate(const mem_ptr_t config) break; } - if (mixcount > (port.tag + 14)) // preemptive buffer filling (probably hack) + if (mixcount > (port.tag + 0)) // adding positive value (1-15): preemptive buffer filling (hack) { std::this_thread::sleep_for(std::chrono::milliseconds(1)); continue;