From 4c3e618f6ea3f167e27cd6f3f013ea72d358b9a0 Mon Sep 17 00:00:00 2001 From: Lesserkuma Date: Sat, 17 Jun 2023 14:20:57 +0200 Subject: [PATCH 1/2] [GBA] Corrected ROM name length --- Cart_Reader/GBA.ino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cart_Reader/GBA.ino b/Cart_Reader/GBA.ino index e8d82d6..a1e972b 100644 --- a/Cart_Reader/GBA.ino +++ b/Cart_Reader/GBA.ino @@ -761,7 +761,7 @@ void getCartInfo_GBA() { } // Get name - buildRomName(romName, &sdBuffer[0xA0], 11); + buildRomName(romName, &sdBuffer[0xA0], 12); // Get ROM version romVersion = sdBuffer[0xBC]; From d1bfd53593490e8cf09a9e21de83ca0a551f5a7a Mon Sep 17 00:00:00 2001 From: Lesserkuma Date: Sat, 17 Jun 2023 14:24:17 +0200 Subject: [PATCH 2/2] [GBA] Fixed reading 32 MB carts that use EEPROM saves --- Cart_Reader/GBA.ino | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Cart_Reader/GBA.ino b/Cart_Reader/GBA.ino index a1e972b..09427c2 100644 --- a/Cart_Reader/GBA.ino +++ b/Cart_Reader/GBA.ino @@ -893,6 +893,18 @@ void readROM_GBA() { processedProgressBar += 512; draw_progressbar(processedProgressBar, totalProgressBar); } + + // Fix unmapped ROM area of cartridges with 32 MB ROM + EEPROM save type + if ((cartSize == 0x2000000) && ((saveType == 1) || (saveType == 2))) { + byte padding_byte[256]; + char tempStr[32]; + myFile.seek(0x1FFFEFF); + myFile.read(padding_byte, 1); + sprintf(tempStr, "Fixing ROM padding (0x%02X)", padding_byte[0]); + println_Msg(tempStr); + memset(padding_byte+1, padding_byte[0], 255); + myFile.write(padding_byte, 256); + } // Close the file: myFile.close();