all repos — mgba @ 2d49a41a30bca9ad47457ad8825fc13b9e82de81

mGBA Game Boy Advance Emulator

SDL: Fix cheats not loading
Vicki Pfau vi@endrift.com
Sat, 15 Jul 2017 07:14:42 -0700
commit

2d49a41a30bca9ad47457ad8825fc13b9e82de81

parent

5d0ab484573f1c5bb057129374cb1e7b56139393

2 files changed, 16 insertions(+), 0 deletions(-)

jump to
M CHANGESCHANGES

@@ -77,6 +77,7 @@ - Qt: Fix game unpausing after frame advancing and refocusing

- SDL: Fix game crash check - SDL: Fix race condition with audio thread when starting - SDL: Fix showing version number + - SDL: Fix cheats not loading - Test: Fix crash when loading invalid file - Test: Fix crash when fuzzing fails to load a file - Test: Don't rely on core for frames elapsed
M src/platform/sdl/main.csrc/platform/sdl/main.c

@@ -21,6 +21,7 @@ #include "platform/python/engine.h"

#endif #endif +#include <mgba/core/cheats.h> #include <mgba/core/core.h> #include <mgba/core/config.h> #include <mgba/core/input.h>

@@ -104,6 +105,16 @@ freeArguments(&args);

return 1; } + struct mCheatDevice* device = NULL; + if (args.cheatsFile && (device = renderer.core->cheatDevice(renderer.core))) { + struct VFile* vf = VFileOpen(args.cheatsFile, O_RDONLY); + if (vf) { + mCheatDeviceClear(device); + mCheatParseFile(device, vf); + vf->close(vf); + } + } + mInputMapInit(&renderer.core->inputMap, &GBAInputInfo); mCoreInitConfig(renderer.core, PORT); applyArguments(&args, &subparser, &renderer.core->config);

@@ -147,6 +158,10 @@ // TODO: Use opts and config

ret = mSDLRun(&renderer, &args); mSDLDetachPlayer(&renderer.events, &renderer.player); mInputMapDeinit(&renderer.core->inputMap); + + if (device) { + mCheatDeviceDestroy(device); + } mSDLDeinit(&renderer);