mirror of https://github.com/mgba-emu/mgba.git
ARM: Fix timing on Thumb shift instructions
This commit is contained in:
parent
8ab757e1b3
commit
f9a42d87d1
1
CHANGES
1
CHANGES
|
@ -5,6 +5,7 @@ Features:
|
|||
Emulation fixes:
|
||||
- ARM: Fix ALU reading PC after shifting
|
||||
- ARM: Fix STR storing PC after address calculation
|
||||
- ARM: Fix timing on Thumb shift instructions
|
||||
- GB: Fix GBC game registers after skipping BIOS
|
||||
- GB MBC: Support 4MB MBC30 ROMs (fixes mgba.io/i/1713)
|
||||
- GB Video: Fix state after skipping BIOS (fixes mgba.io/i/1715 and mgba.io/i/1716)
|
||||
|
|
|
@ -157,6 +157,7 @@ DEFINE_DATA_FORM_5_INSTRUCTION_THUMB(LSL2,
|
|||
cpu->gprs[rd] = 0;
|
||||
}
|
||||
}
|
||||
++currentCycles;
|
||||
THUMB_NEUTRAL_S( , , cpu->gprs[rd]))
|
||||
|
||||
DEFINE_DATA_FORM_5_INSTRUCTION_THUMB(LSR2,
|
||||
|
@ -174,6 +175,7 @@ DEFINE_DATA_FORM_5_INSTRUCTION_THUMB(LSR2,
|
|||
cpu->gprs[rd] = 0;
|
||||
}
|
||||
}
|
||||
++currentCycles;
|
||||
THUMB_NEUTRAL_S( , , cpu->gprs[rd]))
|
||||
|
||||
DEFINE_DATA_FORM_5_INSTRUCTION_THUMB(ASR2,
|
||||
|
@ -191,6 +193,7 @@ DEFINE_DATA_FORM_5_INSTRUCTION_THUMB(ASR2,
|
|||
}
|
||||
}
|
||||
}
|
||||
++currentCycles;
|
||||
THUMB_NEUTRAL_S( , , cpu->gprs[rd]))
|
||||
|
||||
DEFINE_DATA_FORM_5_INSTRUCTION_THUMB(ADC,
|
||||
|
@ -215,6 +218,7 @@ DEFINE_DATA_FORM_5_INSTRUCTION_THUMB(ROR,
|
|||
cpu->cpsr.c = ARM_SIGN(cpu->gprs[rd]);
|
||||
}
|
||||
}
|
||||
++currentCycles;
|
||||
THUMB_NEUTRAL_S( , , cpu->gprs[rd]);)
|
||||
DEFINE_DATA_FORM_5_INSTRUCTION_THUMB(TST, int32_t aluOut = cpu->gprs[rd] & cpu->gprs[rn]; THUMB_NEUTRAL_S(cpu->gprs[rd], cpu->gprs[rn], aluOut))
|
||||
DEFINE_DATA_FORM_5_INSTRUCTION_THUMB(NEG, THUMB_SUBTRACTION(cpu->gprs[rd], 0, cpu->gprs[rn]))
|
||||
|
|
Loading…
Reference in New Issue