From 8ce4848dd6b4d40ee7d32b6117a0d7320453d775 Mon Sep 17 00:00:00 2001 From: Andy Vandijck Date: Thu, 24 Jul 2025 13:06:09 +0200 Subject: [PATCH] Fix Wii U VC opcodes Fix Wii U VC opcodes --- src/core/gba/gbaCpuArm.cpp | 6 ++++++ src/core/gba/gbaCpuThumb.cpp | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/src/core/gba/gbaCpuArm.cpp b/src/core/gba/gbaCpuArm.cpp index a9f03493..54be759f 100644 --- a/src/core/gba/gbaCpuArm.cpp +++ b/src/core/gba/gbaCpuArm.cpp @@ -26,6 +26,12 @@ static int clockTicks; static INSN_REGPARM void armUnknownInsn(uint32_t opcode) { + if ((opcode & 0xFFC00000) == 0xEE800000) { + if (systemVerbose & VERBOSE_UNDEFINED) { + log("Hit Wii U VC opcode: %08x", opcode); + } + return; + } #ifdef GBA_LOGGING if (systemVerbose & VERBOSE_UNDEFINED) { log("Undefined ARM instruction %08x at %08x\n", opcode, diff --git a/src/core/gba/gbaCpuThumb.cpp b/src/core/gba/gbaCpuThumb.cpp index 10e84290..62d9dce4 100644 --- a/src/core/gba/gbaCpuThumb.cpp +++ b/src/core/gba/gbaCpuThumb.cpp @@ -33,6 +33,12 @@ static int clockTicks; static INSN_REGPARM void thumbUnknownInsn(uint32_t opcode) { + if ((opcode & 0xFFC0) == 0xE800) { + if (systemVerbose & VERBOSE_UNDEFINED) { + log("Hit Wii U VC opcode: %08x", opcode); + } + return; + } #ifdef GBA_LOGGING if (systemVerbose & VERBOSE_UNDEFINED) log("Undefined THUMB instruction %04x at %08x\n", opcode, armNextPC - 2);