diff --git a/CHANGES b/CHANGES index 8dbd53256..7df910856 100644 --- a/CHANGES +++ b/CHANGES @@ -11,9 +11,10 @@ Emulation fixes: - GBA Timers: Fix deserializing count-up timers - GBA Video: Fix mosaic objects drawing past the end (fixes mgba.io/i/1702) - GBA Video: Fix disabling OBJWIN in GL renderer (fixes mgba.io/i/1759) - - GBA Video: Add missing parts of 256-color mode 0 mosaic (fixes mgba.io/1701) - - GBA Video: Fix double-size OBJ wrapping in GL renderer (fixes mgba.io/1712) + - GBA Video: Add missing parts of 256-color mode 0 mosaic (fixes mgba.io/i/1701) + - GBA Video: Fix double-size OBJ wrapping in GL renderer (fixes mgba.io/i/1712) Other fixes: + - ARM: Fix disassembling of several S-type instructions (fixes mgba.io/i/1778) - ARM Debugger: Clear low bit on breakpoint addresses (fixes mgba.io/i/1764) - CMake: Always use devkitPro toolchain when applicable (fixes mgba.io/i/1755) - Core: Fix ELF loading regression (fixes mgba.io/i/1669) diff --git a/src/arm/decoder.c b/src/arm/decoder.c index 02dc09dee..b95ff1126 100644 --- a/src/arm/decoder.c +++ b/src/arm/decoder.c @@ -343,15 +343,25 @@ int ARMDisassemble(struct ARMInstructionInfo* info, uint32_t pc, char* buffer, i case ARM_MN_ADD: case ARM_MN_ADC: case ARM_MN_AND: + case ARM_MN_ASR: case ARM_MN_BIC: case ARM_MN_EOR: + case ARM_MN_LSL: + case ARM_MN_LSR: + case ARM_MN_MLA: case ARM_MN_MOV: + case ARM_MN_MUL: case ARM_MN_MVN: case ARM_MN_ORR: + case ARM_MN_ROR: case ARM_MN_RSB: case ARM_MN_RSC: case ARM_MN_SBC: + case ARM_MN_SMLAL: + case ARM_MN_SMULL: case ARM_MN_SUB: + case ARM_MN_UMLAL: + case ARM_MN_UMULL: if (info->affectsCPSR && info->execMode == MODE_ARM) { flags = "s"; }