From 1768721e7e2669373f5472ab56690cc9b0904097 Mon Sep 17 00:00:00 2001 From: Jeffrey Pfau Date: Thu, 4 Feb 2016 22:25:04 -0800 Subject: [PATCH] SDL: Add back patch loading --- src/gba/core.c | 15 ++++++++++----- src/platform/sdl/main.c | 9 +++++++++ 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/gba/core.c b/src/gba/core.c index 6938d9c23..62d81bcd1 100644 --- a/src/gba/core.c +++ b/src/gba/core.c @@ -12,6 +12,7 @@ #include "gba/renderers/video-software.h" #include "gba/serialize.h" #include "util/memory.h" +#include "util/patch.h" #include "util/vfs.h" struct GBACore { @@ -123,11 +124,15 @@ static bool _GBACoreLoadSave(struct mCore* core, struct VFile* vf) { } static bool _GBACoreLoadPatch(struct mCore* core, struct VFile* vf) { - // TODO - UNUSED(core); - UNUSED(vf); - mLOG(GBA, STUB, "Patches are not yet supported"); - return false; + if (!vf) { + return false; + } + struct Patch patch; + if (!loadPatch(vf, &patch)) { + return false; + } + GBAApplyPatch(core->board, &patch); + return true; } static void _GBACoreUnloadROM(struct mCore* core) { diff --git a/src/platform/sdl/main.c b/src/platform/sdl/main.c index cd3e5bea2..0de047b5a 100644 --- a/src/platform/sdl/main.c +++ b/src/platform/sdl/main.c @@ -210,6 +210,15 @@ int mSDLRun(struct mSDLRenderer* renderer, struct mArguments* args) { mCoreAutoloadSave(renderer->core); // TODO: Create debugger + if (args->patch) { + struct VFile* patch = VFileOpen(args->patch, O_RDONLY); + if (patch) { + renderer->core->loadPatch(renderer->core, patch); + } + } else { + mCoreAutoloadPatch(renderer->core); + } + renderer->audio.samples = renderer->core->opts.audioBuffers; renderer->audio.sampleRate = 44100;