diff --git a/rpcs3/Emu/Cell/PPUThread.cpp b/rpcs3/Emu/Cell/PPUThread.cpp index 59b18a548b..8fdfedb59b 100644 --- a/rpcs3/Emu/Cell/PPUThread.cpp +++ b/rpcs3/Emu/Cell/PPUThread.cpp @@ -501,7 +501,14 @@ std::vector> ppu_thread::dump_callstack_list() const //std::shared_lock rlock(vm::g_mutex); // Needs optimizations // Determine stack range - const u32 stack_ptr = static_cast(gpr[1]); + const u64 r1 = gpr[1]; + + if (r1 > UINT32_MAX || r1 % 0x10) + { + return {}; + } + + const u32 stack_ptr = static_cast(r1); if (!vm::check_addr(stack_ptr, 1, vm::page_writable)) {