From 818bde5869d09f8ea502697bb86eb23568771c22 Mon Sep 17 00:00:00 2001 From: Jeffrey Pfau Date: Sun, 26 Jul 2015 18:22:17 -0700 Subject: [PATCH] GBA: Add function for loading default overrides --- src/gba/supervisor/overrides.c | 9 +++++++++ src/gba/supervisor/overrides.h | 1 + src/platform/libretro/libretro.c | 8 +------- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/gba/supervisor/overrides.c b/src/gba/supervisor/overrides.c index 3d48d10d5..85e0f8462 100644 --- a/src/gba/supervisor/overrides.c +++ b/src/gba/supervisor/overrides.c @@ -300,3 +300,12 @@ void GBAOverrideApply(struct GBA* gba, const struct GBACartridgeOverride* overri } } } + +void GBAOverrideApplyDefaults(struct GBA* gba) { + struct GBACartridgeOverride override; + const struct GBACartridge* cart = (const struct GBACartridge*) gba->memory.rom; + memcpy(override.id, &cart->id, sizeof(override.id)); + if (GBAOverrideFind(0, &override)) { + GBAOverrideApply(gba, &override); + } +} diff --git a/src/gba/supervisor/overrides.h b/src/gba/supervisor/overrides.h index cd374572e..9dc7fb67a 100644 --- a/src/gba/supervisor/overrides.h +++ b/src/gba/supervisor/overrides.h @@ -25,5 +25,6 @@ void GBAOverrideSave(struct Configuration*, const struct GBACartridgeOverride* o struct GBA; void GBAOverrideApply(struct GBA*, const struct GBACartridgeOverride*); +void GBAOverrideApplyDefaults(struct GBA*); #endif diff --git a/src/platform/libretro/libretro.c b/src/platform/libretro/libretro.c index 92c1d51a1..1ae1a9fee 100644 --- a/src/platform/libretro/libretro.c +++ b/src/platform/libretro/libretro.c @@ -235,13 +235,7 @@ bool retro_load_game(const struct retro_game_info* game) { save = VFileFromMemory(savedata, SIZE_CART_FLASH1M); GBALoadROM(&gba, rom, save, game->path); - - struct GBACartridgeOverride override; - const struct GBACartridge* cart = (const struct GBACartridge*) gba.memory.rom; - memcpy(override.id, &cart->id, sizeof(override.id)); - if (GBAOverrideFind(0, &override)) { - GBAOverrideApply(&gba, &override); - } + GBAOverrideApplyDefaults(&gba); ARMReset(&cpu); return true;