From adbecd00ec9e526da37f50da5f117d306f2bd463 Mon Sep 17 00:00:00 2001 From: naari3 Date: Sat, 21 Feb 2026 14:38:38 +0900 Subject: [PATCH] AMMediaboard: fix TestHardware string endianness in legacy Execute path The legacy Execute1 path (offset=0, length=0) was using Write_U32 (big-endian) to write the "TEST OK" status string. However, the PPC display code in segaboot reads this buffer with lwz followed by manual bswap32, so the data must be stored in little-endian. Use Write_U32_Swap to match the other two TestHardware paths. --- Source/Core/Core/HW/DVD/AMMediaboard.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/Core/Core/HW/DVD/AMMediaboard.cpp b/Source/Core/Core/HW/DVD/AMMediaboard.cpp index 4a327449eb..181dae3225 100644 --- a/Source/Core/Core/HW/DVD/AMMediaboard.cpp +++ b/Source/Core/Core/HW/DVD/AMMediaboard.cpp @@ -2112,8 +2112,8 @@ u32 ExecuteCommand(std::array& dicmd_buf, u32* diimm_buf, u32 address, u // On real systems it shows the status about the DIMM/GD-ROM here // We just show "TEST OK" - memory.Write_U32(0x54455354, s_media_buffer_32[12]); - memory.Write_U32(0x204F4B00, s_media_buffer_32[12] + 4); + memory.Write_U32_Swap(0x54455354, s_media_buffer_32[12]); + memory.Write_U32_Swap(0x204F4B00, s_media_buffer_32[12] + 4); s_media_buffer_32[1] = s_media_buffer_32[9]; break;