From f00afe0758a14db76f847aa6fa9108c0291dc4ab Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Fri, 14 Aug 2020 21:31:32 -0700 Subject: [PATCH] GBA: Fix endianness issues in renderer proxy --- CHANGES | 1 + src/gba/extra/proxy.c | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index c2a5ab1d4..91407caaa 100644 --- a/CHANGES +++ b/CHANGES @@ -40,6 +40,7 @@ Other fixes: - FFmpeg: Fix some small memory leaks - FFmpeg: Fix encoding of time base - GBA: Disable more checks when loading GS save with checks disabled (fixes mgba.io/i/1851) + - GBA: Fix endianness issues in renderer proxy - Qt: Force OpenGL paint engine creation thread (fixes mgba.io/i/1642) - Qt: Fix static compilation in MinGW (fixes mgba.io/i/1769) - Qt: Fix a race condition in the frame inspector diff --git a/src/gba/extra/proxy.c b/src/gba/extra/proxy.c index 54f2e96ab..d267f0457 100644 --- a/src/gba/extra/proxy.c +++ b/src/gba/extra/proxy.c @@ -178,13 +178,13 @@ static bool _parsePacket(struct mVideoLogger* logger, const struct mVideoLoggerD break; case DIRTY_PALETTE: if (item->address < SIZE_PALETTE_RAM) { - logger->palette[item->address >> 1] = item->value; + STORE_16LE(item->value, item->address, logger->palette); proxyRenderer->backend->writePalette(proxyRenderer->backend, item->address, item->value); } break; case DIRTY_OAM: if (item->address < SIZE_OAM) { - logger->oam[item->address] = item->value; + STORE_16LE(item->value, item->address << 1, logger->oam); proxyRenderer->backend->writeOAM(proxyRenderer->backend, item->address); } break;