SDL: Fix cheats not loading

This commit is contained in:
Vicki Pfau 2017-07-15 07:14:42 -07:00
parent 531cc1593b
commit a2084da52a
2 changed files with 16 additions and 0 deletions

View File

@ -68,6 +68,7 @@ Bugfixes:
- 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

View File

@ -14,6 +14,7 @@
#include "feature/editline/cli-el-backend.h"
#endif
#include <mgba/core/cheats.h>
#include <mgba/core/core.h>
#include <mgba/core/config.h>
#include <mgba/core/input.h>
@ -97,6 +98,16 @@ int main(int argc, char** argv) {
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);
@ -141,6 +152,10 @@ int main(int argc, char** argv) {
mSDLDetachPlayer(&renderer.events, &renderer.player);
mInputMapDeinit(&renderer.core->inputMap);
if (device) {
mCheatDeviceDestroy(device);
}
mSDLDeinit(&renderer);
freeArguments(&args);