diff --git a/src/gba/GBA-arm.cpp b/src/gba/GBA-arm.cpp index 656d5df0..af964c7f 100644 --- a/src/gba/GBA-arm.cpp +++ b/src/gba/GBA-arm.cpp @@ -1528,7 +1528,7 @@ static INSN_REGPARM void arm121(uint32_t opcode) #define ADDRESS_PREDEC (reg[base].I - offset) #define ADDRESS_PREINC (reg[base].I + offset) -#define OP_STR CPUWriteMemory(address, reg[dest].I) +#define OP_STR CPUWriteMemory(address, reg[dest].I + (dest == 15 ? 4 : 0)) #define OP_STRH CPUWriteHalfWord(address, reg[dest].W.W0) #define OP_STRB CPUWriteByte(address, reg[dest].B.B0) #define OP_LDR reg[dest].I = CPUReadMemory(address)