From 9deb6cd4fa373b5fd0883a077943b9a25c46541d Mon Sep 17 00:00:00 2001 From: FeTetra <166051662+FeTetra@users.noreply.github.com> Date: Fri, 21 Nov 2025 09:07:47 -0500 Subject: [PATCH] Fix ppu_register_function_at with unaligned parameters (#17718) This fixes some crashes in interpreter mode when calling functions like `sys_dbg_write_process_memory` to write data which may not be an instruction. --------- Co-authored-by: Elad <18193363+elad335@users.noreply.github.com> --- rpcs3/Emu/Cell/PPUThread.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/rpcs3/Emu/Cell/PPUThread.cpp b/rpcs3/Emu/Cell/PPUThread.cpp index f0b9b4d462..95536540f5 100644 --- a/rpcs3/Emu/Cell/PPUThread.cpp +++ b/rpcs3/Emu/Cell/PPUThread.cpp @@ -827,6 +827,9 @@ extern void ppu_register_function_at(u32 addr, u32 size, ppu_intrp_func_t ptr = return; } + size = utils::align(size + addr % 4, 4); + addr &= -4; + if (g_cfg.core.ppu_decoder == ppu_decoder_type::llvm) { return;