all repos — mgba @ 802e4b87201c4ade66551f5229cafc790ca61ab7

mGBA Game Boy Advance Emulator

GBA: Exit cleanly on FATAL if the port supports it
Jeffrey Pfau jeffrey@endrift.com
Fri, 19 Dec 2014 20:34:19 -0800
commit

802e4b87201c4ade66551f5229cafc790ca61ab7

parent

6bb61bc67017c7f16678c4bb7f0e863997ca6457

3 files changed, 6 insertions(+), 2 deletions(-)

jump to
M CHANGESCHANGES

@@ -11,6 +11,7 @@ - ARM7: Fix LDM writeback to a register already written

- GBA Memory: Don't call into GPIO write calls if GPIO devices are absent Misc: - Qt: Disable sync to video by default + - GBA: Exit cleanly on FATAL if the port supports it 0.1.0: (2014-12-13) - Initial release
M src/gba/gba-memory.csrc/gba/gba-memory.c

@@ -14,6 +14,7 @@ #include "hle-bios.h"

#include "util/memory.h" static uint32_t _popcount32(unsigned bits); +static uint32_t _deadbeef = 0xDEADBEEF; static void GBASetActiveRegion(struct ARMCore* cpu, uint32_t region); static void GBAMemoryServiceDMA(struct GBA* gba, int number, struct GBADMA* info);

@@ -157,7 +158,7 @@ cpu->memory.activeRegion = memory->rom;

cpu->memory.activeMask = SIZE_CART0 - 1; break; default: - cpu->memory.activeRegion = 0; + cpu->memory.activeRegion = &_deadbeef; cpu->memory.activeMask = 0; GBALog(gba, GBA_LOG_FATAL, "Jumped to invalid address"); break;
M src/gba/gba-thread.csrc/gba/gba-thread.c

@@ -357,7 +357,9 @@ if (threadContext->debugger && threadContext->debugger->state == DEBUGGER_RUNNING) {

threadContext->debugger->state = DEBUGGER_EXITING; } threadContext->state = THREAD_EXITING; - threadContext->gba->cpu->halted = false; + if (threadContext->gba) { + threadContext->gba->cpu->halted = false; + } ConditionWake(&threadContext->stateCond); MutexUnlock(&threadContext->stateMutex); MutexLock(&threadContext->sync.audioBufferMutex);