mirror of
https://github.com/libretro/mgba.git
synced 2024-11-23 16:10:01 +00:00
GBA: Fix some patch loading edge cases
This commit is contained in:
parent
e25efac5fb
commit
3809876179
1
CHANGES
1
CHANGES
@ -7,6 +7,7 @@ Emulation fixes:
|
||||
- GBA Video: Revert scanline latching changes (fixes mgba.io/i/2153, mgba.io/i/2149)
|
||||
Other fixes:
|
||||
- Core: Fix memory leak in opening games from the library
|
||||
- GBA: Fix out of bounds ROM accesses on patched ROMs smaller than 32 MiB
|
||||
- Qt: Fix infrequent deadlock when using sync to video
|
||||
- Qt: Fix applying savetype-only overrides
|
||||
- Util: Fix loading UPS patches that affect the last byte of the file
|
||||
|
@ -501,7 +501,11 @@ void GBAApplyPatch(struct GBA* gba, struct Patch* patch) {
|
||||
}
|
||||
if (gba->romVf) {
|
||||
#ifndef FIXED_ROM_BUFFER
|
||||
gba->romVf->unmap(gba->romVf, gba->memory.rom, gba->pristineRomSize);
|
||||
if (!gba->isPristine) {
|
||||
mappedMemoryFree(gba->memory.rom, SIZE_CART0);
|
||||
} else {
|
||||
gba->romVf->unmap(gba->romVf, gba->memory.rom, gba->pristineRomSize);
|
||||
}
|
||||
#endif
|
||||
gba->romVf->close(gba->romVf);
|
||||
gba->romVf = NULL;
|
||||
@ -510,7 +514,7 @@ void GBAApplyPatch(struct GBA* gba, struct Patch* patch) {
|
||||
gba->memory.rom = newRom;
|
||||
gba->memory.hw.gpioBase = &((uint16_t*) gba->memory.rom)[GPIO_REG_DATA >> 1];
|
||||
gba->memory.romSize = patchedSize;
|
||||
gba->memory.romMask = SIZE_CART0 - 1;
|
||||
gba->memory.romMask = toPow2(patchedSize) - 1;
|
||||
gba->romCrc32 = doCrc32(gba->memory.rom, gba->memory.romSize);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user