Fix overdumping GBA ROMs

Thanks to gba-link-cable-dumper
https://github.com/FIX94/gba-link-cable-dumper/blob/master/gba/source/main.c#L19-L40
This commit is contained in:
Pk11 2021-11-02 18:39:46 -05:00
parent cf0a86fa0b
commit 568c4dde5f

View File

@ -932,14 +932,20 @@ void gbaCartDump(void) {
font->update(false); font->update(false);
// Determine ROM size // Determine ROM size
u32 romSize = 0x02000000; u32 romSize;
for (u32 i = 0x09FE0000; i > 0x08000000; i -= 0x20000) { for (romSize = (1 << 20); romSize < (1 << 25); romSize <<= 1) {
if (*(u32*)(i) == 0xFFFE0000) { vu16 *rompos = (vu16*)(0x08000000 + romSize);
romSize -= 0x20000; bool romend = true;
} else { for (int j = 0; j < 0x1000; j++) {
break; if (rompos[j] != j) {
romend = false;
break;
}
} }
if (romend)
break;
} }
// Dump! // Dump!
remove(destPath); remove(destPath);
// Reset data at virtual address // Reset data at virtual address