From 17cfee015d3d0c60128244551791d6f6b0c91fed Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Mon, 13 Feb 2017 14:14:26 -0800 Subject: [PATCH] GBA: Ignore invalid opcodes used by the Wii U VC emulator (fixes #471) --- CHANGES | 1 + src/gba/gba.c | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/CHANGES b/CHANGES index c588c7d68..92a2e3db8 100644 --- a/CHANGES +++ b/CHANGES @@ -70,6 +70,7 @@ Misc: - Qt: Rename "Resample video" option to "Bilinear filtering" - GBA Video: Optimize when BLD* registers are written frequently - Core: Cores can now have multiple sets of callbacks + - GBA: Ignore invalid opcodes used by the Wii U VC emulator 0.5.2: (2016-12-31) Bugfixes: diff --git a/src/gba/gba.c b/src/gba/gba.c index d7ff611fe..f1e0c392e 100644 --- a/src/gba/gba.c +++ b/src/gba/gba.c @@ -577,6 +577,10 @@ void GBAIllegal(struct ARMCore* cpu, uint32_t opcode) { // TODO: More sensible category? mLOG(GBA, WARN, "Illegal opcode: %08x", opcode); } + if (cpu->executionMode == MODE_THUMB && (opcode & 0xFFC0) == 0xE800) { + mLOG(GBA, DEBUG, "Hit Wii U VC opcode: %08x", opcode); + return; + } #ifdef USE_DEBUGGERS if (gba->debugger) { struct mDebuggerEntryInfo info = {