From b1bcaed3a2186db2bfd90c1facafb045277b8a2e Mon Sep 17 00:00:00 2001 From: Andy Vandijck Date: Wed, 23 Jul 2025 10:07:32 +0200 Subject: [PATCH] Remap matrix on load Remap matrix on load --- src/core/gba/gba.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/core/gba/gba.cpp b/src/core/gba/gba.cpp index 1296c154..55058ce0 100644 --- a/src/core/gba/gba.cpp +++ b/src/core/gba/gba.cpp @@ -645,7 +645,6 @@ unsigned int CPUWriteState(uint8_t* data) if (ident == 'M') { utilWriteMem(data, &GBAMatrix, sizeof(GBAMatrix)); - log("Saved matrix data"); } } @@ -700,7 +699,12 @@ bool CPUReadState(const uint8_t* data) if (ident == 'M') { utilReadMem(&GBAMatrix, data, sizeof(GBAMatrix)); - log("Saved matrix data"); + + for (int i = 0; i < 16; ++i) { + GBAMatrix.paddr = GBAMatrix.mappings[i]; + GBAMatrix.vaddr = i << 9; + _remapMatrix(&GBAMatrix); + } } } @@ -776,7 +780,6 @@ static bool CPUWriteState(gzFile gzFile) if (ident == 'M') { utilGzWrite(gzFile, &GBAMatrix, sizeof(GBAMatrix)); - log("Saved matrix data"); } } @@ -917,7 +920,12 @@ static bool CPUReadState(gzFile gzFile) if (ident == 'M') { utilGzRead(gzFile, &GBAMatrix, sizeof(GBAMatrix)); - log("Loaded matrix data"); + + for (int i = 0; i < 16; ++i) { + GBAMatrix.paddr = GBAMatrix.mappings[i]; + GBAMatrix.vaddr = i << 9; + _remapMatrix(&GBAMatrix); + } } }