01-09-2017, 03:08 PM -
(01-08-2017, 05:27 PM)ssshadow Wrote: Changes made
In \Emu\Cell\PPUThread.cpp change:
Into:Code:if (context.gpr[1] < context.stack_addr)
{
LOG_ERROR(PPU, "Stack overflow (size=0x%x, align=0x%x, SP=0x%llx, stack=*0x%x)" HERE, size, align_v, old_pos, context.stack_addr);
const u32 addr = static_cast<u32>(context.gpr[1]);
vm::ps3::_ref<nse_t<u32>>(addr + size) = old_pos;
std::memset(vm::base(addr), 0, size);
return addr;
}
else
{
const u32 addr = static_cast<u32>(context.gpr[1]);
vm::ps3::_ref<nse_t<u32>>(addr + size) = old_pos;
std::memset(vm::base(addr), 0, size);
return addr;
}
Code:const u32 addr = static_cast<u32>(context.gpr[1]);
vm::ps3::_ref<nse_t<u32>>(addr + size) = old_pos;
std::memset(vm::base(addr), 0, size);
return addr;
Thx but me have set with this
Quote: if (context.gpr[1] < context.stack_addr)for rpcs3 indicate in error in LOG , and rpcs3 indicate this error for boot, after boot have no error
{
LOG_ERROR(PPU, "Stack overflow (size=0x%x, align=0x%x, SP=0x%llx, stack=*0x%x)" HERE, size, align_v, old_pos, context.stack_addr);
const u32 addr = static_cast<u32>(context.gpr[1]);
vm::ps3::_ref<nse_t<u32>>(addr + size) = old_pos;
std::memset(vm::base(addr), 0, size);
return addr;
}
else
{
const u32 addr = static_cast<u32>(context.gpr[1]);
vm::ps3::_ref<nse_t<u32>>(addr + size) = old_pos;
std::memset(vm::base(addr), 0, size);
return addr;
}
Quote:E {PPU[0x70000000] Thread (main_thread) [0x00b48a50]} PPU: Stack overflow (size=0x8, align=0x4, SP=0x2034c360, stack=*0xd0000000)
(in file Emu\Cell\PPUThread.cpp:411)
E {PPU[0x70000000] Thread (main_thread) [0x00b48a50]} PPU: Stack overflow (size=0x8, align=0x4, SP=0x2034c360, stack=*0xd0000000)
(in file Emu\Cell\PPUThread.cpp:411)
E {PPU[0x70000000] Thread (main_thread) [0x00b48a50]} PPU: Stack overflow (size=0x8, align=0x4, SP=0x2034c120, stack=*0xd0000000)
(in file Emu\Cell\PPUThread.cpp:411)