Snes9x - Adjust opcode timing as reported by pi1541. (#1036)

* Snes9x - Adjust opcode timing as reported by pi1541.

* Snes9x - Move AddCycles to be consistent with other OPs.
This commit is contained in:
bladeoner 2022-10-26 02:24:41 +02:00 committed by GitHub
parent 3f4f475f01
commit 6582c58648
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 1 deletions

View File

@ -513,7 +513,6 @@ static inline uint32 StackRelativeIndirectIndexed (AccessMode a) // (d,S),Y
if (a & READ) if (a & READ)
OpenBus = (uint8) (addr >> 8); OpenBus = (uint8) (addr >> 8);
addr = (addr + Registers.Y.W + ICPU.ShiftedDB) & 0xffffff; addr = (addr + Registers.Y.W + ICPU.ShiftedDB) & 0xffffff;
AddCycles(ONE_CYCLE);
return (addr); return (addr);
} }

View File

@ -1406,11 +1406,13 @@ bOP(70Slow, RelativeSlow, CheckOverflow(), 0, CheckEmulation())
static void Op82 (void) static void Op82 (void)
{ {
S9xSetPCBase(ICPU.ShiftedPB + RelativeLong(JUMP)); S9xSetPCBase(ICPU.ShiftedPB + RelativeLong(JUMP));
AddCycles(ONE_CYCLE);
} }
static void Op82Slow (void) static void Op82Slow (void)
{ {
S9xSetPCBase(ICPU.ShiftedPB + RelativeLongSlow(JUMP)); S9xSetPCBase(ICPU.ShiftedPB + RelativeLongSlow(JUMP));
AddCycles(ONE_CYCLE);
} }
/* Flag Instructions ******************************************************* */ /* Flag Instructions ******************************************************* */
@ -2847,6 +2849,7 @@ static void Op22E1 (void)
// Note: JSL is a new instruction, // Note: JSL is a new instruction,
// and so doesn't respect the emu-mode stack bounds. // and so doesn't respect the emu-mode stack bounds.
uint32 addr = AbsoluteLong(JSR); uint32 addr = AbsoluteLong(JSR);
AddCycles(ONE_CYCLE);
PushB(Registers.PB); PushB(Registers.PB);
PushW(Registers.PCw - 1); PushW(Registers.PCw - 1);
Registers.SH = 1; Registers.SH = 1;
@ -2856,6 +2859,7 @@ static void Op22E1 (void)
static void Op22E0 (void) static void Op22E0 (void)
{ {
uint32 addr = AbsoluteLong(JSR); uint32 addr = AbsoluteLong(JSR);
AddCycles(ONE_CYCLE);
PushB(Registers.PB); PushB(Registers.PB);
PushW(Registers.PCw - 1); PushW(Registers.PCw - 1);
S9xSetPCBase(addr); S9xSetPCBase(addr);
@ -2864,6 +2868,7 @@ static void Op22E0 (void)
static void Op22Slow (void) static void Op22Slow (void)
{ {
uint32 addr = AbsoluteLongSlow(JSR); uint32 addr = AbsoluteLongSlow(JSR);
AddCycles(ONE_CYCLE);
PushB(Registers.PB); PushB(Registers.PB);
PushW(Registers.PCw - 1); PushW(Registers.PCw - 1);
if (CheckEmulation()) if (CheckEmulation())