GBA: Exit cleanly on FATAL if the port supports it
Jeffrey Pfau jeffrey@endrift.com
Fri, 19 Dec 2014 20:34:19 -0800
3 files changed,
6 insertions(+),
2 deletions(-)
M
CHANGES
→
CHANGES
@@ -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.c
→
src/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.c
→
src/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);