diff --git a/CHANGES b/CHANGES index 0080e7c0c..3f8a020ab 100644 --- a/CHANGES +++ b/CHANGES @@ -25,12 +25,13 @@ Emulation fixes: - GBA Video: Fix Hblank timing - 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) - SM83: Emulate HALT bug Other fixes: - 3DS: Fix framelimiter on newer citro3d (fixes mgba.io/i/1771) - All: Improve export headers (fixes mgba.io/i/1738) + - 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: Ensure ELF regions can be written before trying 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"; }