From bcaf44c511efaad9d803dde9b0fdbb046498c66f Mon Sep 17 00:00:00 2001 From: João Silva Date: Sun, 18 Jun 2017 16:16:19 +0100 Subject: Support for savestate versioning. Plenty of cleanups. --- source/cpuops.c | 1133 ++++++++++++++++++++++++++----------------------------- 1 file changed, 525 insertions(+), 608 deletions(-) (limited to 'source/cpuops.c') diff --git a/source/cpuops.c b/source/cpuops.c index 0b92901..c86d9c1 100644 --- a/source/cpuops.c +++ b/source/cpuops.c @@ -7,11 +7,9 @@ #include "snes9x.h" #include "memmap.h" -#include "missing.h" #include "apu.h" #include "sa1.h" #include "spc7110.h" - #include "cpuexec.h" #include "cpuaddr.h" #include "cpuops.h" @@ -21,181 +19,181 @@ int32_t OpAddress; /* ADC *************************************************************************************** */ -static void Op69M1() +static void Op69M1(void) { Immediate8(); ADC8(); } -static void Op69M0() +static void Op69M0(void) { Immediate16(); ADC16(); } -static void Op65M1() +static void Op65M1(void) { Direct(true); ADC8(); } -static void Op65M0() +static void Op65M0(void) { Direct(true); ADC16(); } -static void Op75M1() +static void Op75M1(void) { DirectIndexedX(true); ADC8(); } -static void Op75M0() +static void Op75M0(void) { DirectIndexedX(true); ADC16(); } -static void Op72M1() +static void Op72M1(void) { DirectIndirect(true); ADC8(); } -static void Op72M0() +static void Op72M0(void) { DirectIndirect(true); ADC16(); } -static void Op61M1() +static void Op61M1(void) { DirectIndexedIndirect(true); ADC8(); } -static void Op61M0() +static void Op61M0(void) { DirectIndexedIndirect(true); ADC16(); } -static void Op71M1() +static void Op71M1(void) { DirectIndirectIndexed(true); ADC8(); } -static void Op71M0() +static void Op71M0(void) { DirectIndirectIndexed(true); ADC16(); } -static void Op67M1() +static void Op67M1(void) { DirectIndirectLong(true); ADC8(); } -static void Op67M0() +static void Op67M0(void) { DirectIndirectLong(true); ADC16(); } -static void Op77M1() +static void Op77M1(void) { DirectIndirectIndexedLong(true); ADC8(); } -static void Op77M0() +static void Op77M0(void) { DirectIndirectIndexedLong(true); ADC16(); } -static void Op6DM1() +static void Op6DM1(void) { Absolute(true); ADC8(); } -static void Op6DM0() +static void Op6DM0(void) { Absolute(true); ADC16(); } -static void Op7DM1() +static void Op7DM1(void) { AbsoluteIndexedX(true); ADC8(); } -static void Op7DM0() +static void Op7DM0(void) { AbsoluteIndexedX(true); ADC16(); } -static void Op79M1() +static void Op79M1(void) { AbsoluteIndexedY(true); ADC8(); } -static void Op79M0() +static void Op79M0(void) { AbsoluteIndexedY(true); ADC16(); } -static void Op6FM1() +static void Op6FM1(void) { AbsoluteLong(true); ADC8(); } -static void Op6FM0() +static void Op6FM0(void) { AbsoluteLong(true); ADC16(); } -static void Op7FM1() +static void Op7FM1(void) { AbsoluteLongIndexedX(true); ADC8(); } -static void Op7FM0() +static void Op7FM0(void) { AbsoluteLongIndexedX(true); ADC16(); } -static void Op63M1() +static void Op63M1(void) { StackRelative(true); ADC8(); } -static void Op63M0() +static void Op63M0(void) { StackRelative(true); ADC16(); } -static void Op73M1() +static void Op73M1(void) { StackRelativeIndirectIndexed(true); ADC8(); } -static void Op73M0() +static void Op73M0(void) { StackRelativeIndirectIndexed(true); ADC16(); @@ -204,7 +202,7 @@ static void Op73M0() /**********************************************************************************************/ /* AND *************************************************************************************** */ -static void Op29M1() +static void Op29M1(void) { ICPU.Registers.AL &= *CPU.PC++; #ifndef SA1_OPCODES @@ -213,7 +211,7 @@ static void Op29M1() SetZN8(ICPU.Registers.AL); } -static void Op29M0() +static void Op29M0(void) { #ifdef FAST_LSB_WORD_ACCESS ICPU.Registers.A.W &= *(uint16_t*) CPU.PC; @@ -227,169 +225,169 @@ static void Op29M0() SetZN16(ICPU.Registers.A.W); } -static void Op25M1() +static void Op25M1(void) { Direct(true); AND8(); } -static void Op25M0() +static void Op25M0(void) { Direct(true); AND16(); } -static void Op35M1() +static void Op35M1(void) { DirectIndexedX(true); AND8(); } -static void Op35M0() +static void Op35M0(void) { DirectIndexedX(true); AND16(); } -static void Op32M1() +static void Op32M1(void) { DirectIndirect(true); AND8(); } -static void Op32M0() +static void Op32M0(void) { DirectIndirect(true); AND16(); } -static void Op21M1() +static void Op21M1(void) { DirectIndexedIndirect(true); AND8(); } -static void Op21M0() +static void Op21M0(void) { DirectIndexedIndirect(true); AND16(); } -static void Op31M1() +static void Op31M1(void) { DirectIndirectIndexed(true); AND8(); } -static void Op31M0() +static void Op31M0(void) { DirectIndirectIndexed(true); AND16(); } -static void Op27M1() +static void Op27M1(void) { DirectIndirectLong(true); AND8(); } -static void Op27M0() +static void Op27M0(void) { DirectIndirectLong(true); AND16(); } -static void Op37M1() +static void Op37M1(void) { DirectIndirectIndexedLong(true); AND8(); } -static void Op37M0() +static void Op37M0(void) { DirectIndirectIndexedLong(true); AND16(); } -static void Op2DM1() +static void Op2DM1(void) { Absolute(true); AND8(); } -static void Op2DM0() +static void Op2DM0(void) { Absolute(true); AND16(); } -static void Op3DM1() +static void Op3DM1(void) { AbsoluteIndexedX(true); AND8(); } -static void Op3DM0() +static void Op3DM0(void) { AbsoluteIndexedX(true); AND16(); } -static void Op39M1() +static void Op39M1(void) { AbsoluteIndexedY(true); AND8(); } -static void Op39M0() +static void Op39M0(void) { AbsoluteIndexedY(true); AND16(); } -static void Op2FM1() +static void Op2FM1(void) { AbsoluteLong(true); AND8(); } -static void Op2FM0() +static void Op2FM0(void) { AbsoluteLong(true); AND16(); } -static void Op3FM1() +static void Op3FM1(void) { AbsoluteLongIndexedX(true); AND8(); } -static void Op3FM0() +static void Op3FM0(void) { AbsoluteLongIndexedX(true); AND16(); } -static void Op23M1() +static void Op23M1(void) { StackRelative(true); AND8(); } -static void Op23M0() +static void Op23M0(void) { StackRelative(true); AND16(); } -static void Op33M1() +static void Op33M1(void) { StackRelativeIndirectIndexed(true); AND8(); } -static void Op33M0() +static void Op33M0(void) { StackRelativeIndirectIndexed(true); AND16(); @@ -397,59 +395,59 @@ static void Op33M0() /**********************************************************************************************/ /* ASL *************************************************************************************** */ -static void Op0AM1() +static void Op0AM1(void) { A_ASL8(); } -static void Op0AM0() +static void Op0AM0(void) { A_ASL16(); } -static void Op06M1() +static void Op06M1(void) { Direct(false); ASL8(); } -static void Op06M0() +static void Op06M0(void) { Direct(false); ASL16(); } -static void Op16M1() +static void Op16M1(void) { DirectIndexedX(false); ASL8(); } -static void Op16M0() +static void Op16M0(void) { DirectIndexedX(false); ASL16(); } -static void Op0EM1() +static void Op0EM1(void) { Absolute(false); ASL8(); } -static void Op0EM0() +static void Op0EM0(void) { Absolute(false); ASL16(); } -static void Op1EM1() +static void Op1EM1(void) { AbsoluteIndexedX(false); ASL8(); } -static void Op1EM0() +static void Op1EM0(void) { AbsoluteIndexedX(false); ASL16(); @@ -457,7 +455,7 @@ static void Op1EM0() /**********************************************************************************************/ /* BIT *************************************************************************************** */ -static void Op89M1() +static void Op89M1(void) { ICPU._Zero = ICPU.Registers.AL & *CPU.PC++; #ifndef SA1_OPCODES @@ -465,7 +463,7 @@ static void Op89M1() #endif } -static void Op89M0() +static void Op89M0(void) { #ifdef FAST_LSB_WORD_ACCESS ICPU._Zero = (ICPU.Registers.A.W & *(uint16_t*) CPU.PC) != 0; @@ -478,49 +476,49 @@ static void Op89M0() CPU.PC += 2; } -static void Op24M1() +static void Op24M1(void) { Direct(true); BIT8(); } -static void Op24M0() +static void Op24M0(void) { Direct(true); BIT16(); } -static void Op34M1() +static void Op34M1(void) { DirectIndexedX(true); BIT8(); } -static void Op34M0() +static void Op34M0(void) { DirectIndexedX(true); BIT16(); } -static void Op2CM1() +static void Op2CM1(void) { Absolute(true); BIT8(); } -static void Op2CM0() +static void Op2CM0(void) { Absolute(true); BIT16(); } -static void Op3CM1() +static void Op3CM1(void) { AbsoluteIndexedX(true); BIT8(); } -static void Op3CM0() +static void Op3CM0(void) { AbsoluteIndexedX(true); BIT16(); @@ -528,7 +526,7 @@ static void Op3CM0() /**********************************************************************************************/ /* CMP *************************************************************************************** */ -static void OpC9M1() +static void OpC9M1(void) { int32_t Int32 = (int32_t) ICPU.Registers.AL - (int32_t) *CPU.PC++; ICPU._Carry = Int32 >= 0; @@ -538,7 +536,7 @@ static void OpC9M1() #endif } -static void OpC9M0() +static void OpC9M0(void) { #ifdef FAST_LSB_WORD_ACCESS int32_t Int32 = (int32_t) ICPU.Registers.A.W - (int32_t) *(uint16_t*)CPU.PC; @@ -553,169 +551,169 @@ static void OpC9M0() #endif } -static void OpC5M1() +static void OpC5M1(void) { Direct(true); CMP8(); } -static void OpC5M0() +static void OpC5M0(void) { Direct(true); CMP16(); } -static void OpD5M1() +static void OpD5M1(void) { DirectIndexedX(true); CMP8(); } -static void OpD5M0() +static void OpD5M0(void) { DirectIndexedX(true); CMP16(); } -static void OpD2M1() +static void OpD2M1(void) { DirectIndirect(true); CMP8(); } -static void OpD2M0() +static void OpD2M0(void) { DirectIndirect(true); CMP16(); } -static void OpC1M1() +static void OpC1M1(void) { DirectIndexedIndirect(true); CMP8(); } -static void OpC1M0() +static void OpC1M0(void) { DirectIndexedIndirect(true); CMP16(); } -static void OpD1M1() +static void OpD1M1(void) { DirectIndirectIndexed(true); CMP8(); } -static void OpD1M0() +static void OpD1M0(void) { DirectIndirectIndexed(true); CMP16(); } -static void OpC7M1() +static void OpC7M1(void) { DirectIndirectLong(true); CMP8(); } -static void OpC7M0() +static void OpC7M0(void) { DirectIndirectLong(true); CMP16(); } -static void OpD7M1() +static void OpD7M1(void) { DirectIndirectIndexedLong(true); CMP8(); } -static void OpD7M0() +static void OpD7M0(void) { DirectIndirectIndexedLong(true); CMP16(); } -static void OpCDM1() +static void OpCDM1(void) { Absolute(true); CMP8(); } -static void OpCDM0() +static void OpCDM0(void) { Absolute(true); CMP16(); } -static void OpDDM1() +static void OpDDM1(void) { AbsoluteIndexedX(true); CMP8(); } -static void OpDDM0() +static void OpDDM0(void) { AbsoluteIndexedX(true); CMP16(); } -static void OpD9M1() +static void OpD9M1(void) { AbsoluteIndexedY(true); CMP8(); } -static void OpD9M0() +static void OpD9M0(void) { AbsoluteIndexedY(true); CMP16(); } -static void OpCFM1() +static void OpCFM1(void) { AbsoluteLong(true); CMP8(); } -static void OpCFM0() +static void OpCFM0(void) { AbsoluteLong(true); CMP16(); } -static void OpDFM1() +static void OpDFM1(void) { AbsoluteLongIndexedX(true); CMP8(); } -static void OpDFM0() +static void OpDFM0(void) { AbsoluteLongIndexedX(true); CMP16(); } -static void OpC3M1() +static void OpC3M1(void) { StackRelative(true); CMP8(); } -static void OpC3M0() +static void OpC3M0(void) { StackRelative(true); CMP16(); } -static void OpD3M1() +static void OpD3M1(void) { StackRelativeIndirectIndexed(true); CMP8(); } -static void OpD3M0() +static void OpD3M0(void) { StackRelativeIndirectIndexed(true); CMP16(); @@ -724,7 +722,7 @@ static void OpD3M0() /**********************************************************************************************/ /* CMX *************************************************************************************** */ -static void OpE0X1() +static void OpE0X1(void) { int32_t Int32 = (int32_t) ICPU.Registers.XL - (int32_t) *CPU.PC++; ICPU._Carry = Int32 >= 0; @@ -734,7 +732,7 @@ static void OpE0X1() #endif } -static void OpE0X0() +static void OpE0X0(void) { #ifdef FAST_LSB_WORD_ACCESS int32_t Int32 = (int32_t) ICPU.Registers.X.W - (int32_t) *(uint16_t*)CPU.PC; @@ -749,25 +747,25 @@ static void OpE0X0() #endif } -static void OpE4X1() +static void OpE4X1(void) { Direct(true); CMX8(); } -static void OpE4X0() +static void OpE4X0(void) { Direct(true); CMX16(); } -static void OpECX1() +static void OpECX1(void) { Absolute(true); CMX8(); } -static void OpECX0() +static void OpECX0(void) { Absolute(true); CMX16(); @@ -776,7 +774,7 @@ static void OpECX0() /**********************************************************************************************/ /* CMY *************************************************************************************** */ -static void OpC0X1() +static void OpC0X1(void) { int32_t Int32 = (int32_t) ICPU.Registers.YL - (int32_t) *CPU.PC++; ICPU._Carry = Int32 >= 0; @@ -786,7 +784,7 @@ static void OpC0X1() #endif } -static void OpC0X0() +static void OpC0X0(void) { #ifdef FAST_LSB_WORD_ACCESS int32_t Int32 = (int32_t) ICPU.Registers.Y.W - (int32_t) *(uint16_t*)CPU.PC; @@ -801,25 +799,25 @@ static void OpC0X0() #endif } -static void OpC4X1() +static void OpC4X1(void) { Direct(true); CMY8(); } -static void OpC4X0() +static void OpC4X0(void) { Direct(true); CMY16(); } -static void OpCCX1() +static void OpCCX1(void) { Absolute(true); CMY8(); } -static void OpCCX0() +static void OpCCX0(void) { Absolute(true); CMY16(); @@ -828,59 +826,59 @@ static void OpCCX0() /**********************************************************************************************/ /* DEC *************************************************************************************** */ -static void Op3AM1() +static void Op3AM1(void) { A_DEC8(); } -static void Op3AM0() +static void Op3AM0(void) { A_DEC16(); } -static void OpC6M1() +static void OpC6M1(void) { Direct(false); DEC8(); } -static void OpC6M0() +static void OpC6M0(void) { Direct(false); DEC16(); } -static void OpD6M1() +static void OpD6M1(void) { DirectIndexedX(false); DEC8(); } -static void OpD6M0() +static void OpD6M0(void) { DirectIndexedX(false); DEC16(); } -static void OpCEM1() +static void OpCEM1(void) { Absolute(false); DEC8(); } -static void OpCEM0() +static void OpCEM0(void) { Absolute(false); DEC16(); } -static void OpDEM1() +static void OpDEM1(void) { AbsoluteIndexedX(false); DEC8(); } -static void OpDEM0() +static void OpDEM0(void) { AbsoluteIndexedX(false); DEC16(); @@ -889,7 +887,7 @@ static void OpDEM0() /**********************************************************************************************/ /* EOR *************************************************************************************** */ -static void Op49M1() +static void Op49M1(void) { ICPU.Registers.AL ^= *CPU.PC++; #ifndef SA1_OPCODES @@ -898,7 +896,7 @@ static void Op49M1() SetZN8(ICPU.Registers.AL); } -static void Op49M0() +static void Op49M0(void) { #ifdef FAST_LSB_WORD_ACCESS ICPU.Registers.A.W ^= *(uint16_t*) CPU.PC; @@ -912,169 +910,169 @@ static void Op49M0() SetZN16(ICPU.Registers.A.W); } -static void Op45M1() +static void Op45M1(void) { Direct(true); EOR8(); } -static void Op45M0() +static void Op45M0(void) { Direct(true); EOR16(); } -static void Op55M1() +static void Op55M1(void) { DirectIndexedX(true); EOR8(); } -static void Op55M0() +static void Op55M0(void) { DirectIndexedX(true); EOR16(); } -static void Op52M1() +static void Op52M1(void) { DirectIndirect(true); EOR8(); } -static void Op52M0() +static void Op52M0(void) { DirectIndirect(true); EOR16(); } -static void Op41M1() +static void Op41M1(void) { DirectIndexedIndirect(true); EOR8(); } -static void Op41M0() +static void Op41M0(void) { DirectIndexedIndirect(true); EOR16(); } -static void Op51M1() +static void Op51M1(void) { DirectIndirectIndexed(true); EOR8(); } -static void Op51M0() +static void Op51M0(void) { DirectIndirectIndexed(true); EOR16(); } -static void Op47M1() +static void Op47M1(void) { DirectIndirectLong(true); EOR8(); } -static void Op47M0() +static void Op47M0(void) { DirectIndirectLong(true); EOR16(); } -static void Op57M1() +static void Op57M1(void) { DirectIndirectIndexedLong(true); EOR8(); } -static void Op57M0() +static void Op57M0(void) { DirectIndirectIndexedLong(true); EOR16(); } -static void Op4DM1() +static void Op4DM1(void) { Absolute(true); EOR8(); } -static void Op4DM0() +static void Op4DM0(void) { Absolute(true); EOR16(); } -static void Op5DM1() +static void Op5DM1(void) { AbsoluteIndexedX(true); EOR8(); } -static void Op5DM0() +static void Op5DM0(void) { AbsoluteIndexedX(true); EOR16(); } -static void Op59M1() +static void Op59M1(void) { AbsoluteIndexedY(true); EOR8(); } -static void Op59M0() +static void Op59M0(void) { AbsoluteIndexedY(true); EOR16(); } -static void Op4FM1() +static void Op4FM1(void) { AbsoluteLong(true); EOR8(); } -static void Op4FM0() +static void Op4FM0(void) { AbsoluteLong(true); EOR16(); } -static void Op5FM1() +static void Op5FM1(void) { AbsoluteLongIndexedX(true); EOR8(); } -static void Op5FM0() +static void Op5FM0(void) { AbsoluteLongIndexedX(true); EOR16(); } -static void Op43M1() +static void Op43M1(void) { StackRelative(true); EOR8(); } -static void Op43M0() +static void Op43M0(void) { StackRelative(true); EOR16(); } -static void Op53M1() +static void Op53M1(void) { StackRelativeIndirectIndexed(true); EOR8(); } -static void Op53M0() +static void Op53M0(void) { StackRelativeIndirectIndexed(true); EOR16(); @@ -1083,59 +1081,59 @@ static void Op53M0() /**********************************************************************************************/ /* INC *************************************************************************************** */ -static void Op1AM1() +static void Op1AM1(void) { A_INC8(); } -static void Op1AM0() +static void Op1AM0(void) { A_INC16(); } -static void OpE6M1() +static void OpE6M1(void) { Direct(false); INC8(); } -static void OpE6M0() +static void OpE6M0(void) { Direct(false); INC16(); } -static void OpF6M1() +static void OpF6M1(void) { DirectIndexedX(false); INC8(); } -static void OpF6M0() +static void OpF6M0(void) { DirectIndexedX(false); INC16(); } -static void OpEEM1() +static void OpEEM1(void) { Absolute(false); INC8(); } -static void OpEEM0() +static void OpEEM0(void) { Absolute(false); INC16(); } -static void OpFEM1() +static void OpFEM1(void) { AbsoluteIndexedX(false); INC8(); } -static void OpFEM0() +static void OpFEM0(void) { AbsoluteIndexedX(false); INC16(); @@ -1143,7 +1141,7 @@ static void OpFEM0() /**********************************************************************************************/ /* LDA *************************************************************************************** */ -static void OpA9M1() +static void OpA9M1(void) { ICPU.Registers.AL = *CPU.PC++; #ifndef SA1_OPCODES @@ -1152,7 +1150,7 @@ static void OpA9M1() SetZN8(ICPU.Registers.AL); } -static void OpA9M0() +static void OpA9M0(void) { #ifdef FAST_LSB_WORD_ACCESS ICPU.Registers.A.W = *(uint16_t*) CPU.PC; @@ -1167,169 +1165,169 @@ static void OpA9M0() SetZN16(ICPU.Registers.A.W); } -static void OpA5M1() +static void OpA5M1(void) { Direct(true); LDA8(); } -static void OpA5M0() +static void OpA5M0(void) { Direct(true); LDA16(); } -static void OpB5M1() +static void OpB5M1(void) { DirectIndexedX(true); LDA8(); } -static void OpB5M0() +static void OpB5M0(void) { DirectIndexedX(true); LDA16(); } -static void OpB2M1() +static void OpB2M1(void) { DirectIndirect(true); LDA8(); } -static void OpB2M0() +static void OpB2M0(void) { DirectIndirect(true); LDA16(); } -static void OpA1M1() +static void OpA1M1(void) { DirectIndexedIndirect(true); LDA8(); } -static void OpA1M0() +static void OpA1M0(void) { DirectIndexedIndirect(true); LDA16(); } -static void OpB1M1() +static void OpB1M1(void) { DirectIndirectIndexed(true); LDA8(); } -static void OpB1M0() +static void OpB1M0(void) { DirectIndirectIndexed(true); LDA16(); } -static void OpA7M1() +static void OpA7M1(void) { DirectIndirectLong(true); LDA8(); } -static void OpA7M0() +static void OpA7M0(void) { DirectIndirectLong(true); LDA16(); } -static void OpB7M1() +static void OpB7M1(void) { DirectIndirectIndexedLong(true); LDA8(); } -static void OpB7M0() +static void OpB7M0(void) { DirectIndirectIndexedLong(true); LDA16(); } -static void OpADM1() +static void OpADM1(void) { Absolute(true); LDA8(); } -static void OpADM0() +static void OpADM0(void) { Absolute(true); LDA16(); } -static void OpBDM1() +static void OpBDM1(void) { AbsoluteIndexedX(true); LDA8(); } -static void OpBDM0() +static void OpBDM0(void) { AbsoluteIndexedX(true); LDA16(); } -static void OpB9M1() +static void OpB9M1(void) { AbsoluteIndexedY(true); LDA8(); } -static void OpB9M0() +static void OpB9M0(void) { AbsoluteIndexedY(true); LDA16(); } -static void OpAFM1() +static void OpAFM1(void) { AbsoluteLong(true); LDA8(); } -static void OpAFM0() +static void OpAFM0(void) { AbsoluteLong(true); LDA16(); } -static void OpBFM1() +static void OpBFM1(void) { AbsoluteLongIndexedX(true); LDA8(); } -static void OpBFM0() +static void OpBFM0(void) { AbsoluteLongIndexedX(true); LDA16(); } -static void OpA3M1() +static void OpA3M1(void) { StackRelative(true); LDA8(); } -static void OpA3M0() +static void OpA3M0(void) { StackRelative(true); LDA16(); } -static void OpB3M1() +static void OpB3M1(void) { StackRelativeIndirectIndexed(true); LDA8(); } -static void OpB3M0() +static void OpB3M0(void) { StackRelativeIndirectIndexed(true); LDA16(); @@ -1338,7 +1336,7 @@ static void OpB3M0() /**********************************************************************************************/ /* LDX *************************************************************************************** */ -static void OpA2X1() +static void OpA2X1(void) { ICPU.Registers.XL = *CPU.PC++; #ifndef SA1_OPCODES @@ -1347,7 +1345,7 @@ static void OpA2X1() SetZN8(ICPU.Registers.XL); } -static void OpA2X0() +static void OpA2X0(void) { #ifdef FAST_LSB_WORD_ACCESS ICPU.Registers.X.W = *(uint16_t*) CPU.PC; @@ -1361,49 +1359,49 @@ static void OpA2X0() SetZN16(ICPU.Registers.X.W); } -static void OpA6X1() +static void OpA6X1(void) { Direct(true); LDX8(); } -static void OpA6X0() +static void OpA6X0(void) { Direct(true); LDX16(); } -static void OpB6X1() +static void OpB6X1(void) { DirectIndexedY(true); LDX8(); } -static void OpB6X0() +static void OpB6X0(void) { DirectIndexedY(true); LDX16(); } -static void OpAEX1() +static void OpAEX1(void) { Absolute(true); LDX8(); } -static void OpAEX0() +static void OpAEX0(void) { Absolute(true); LDX16(); } -static void OpBEX1() +static void OpBEX1(void) { AbsoluteIndexedY(true); LDX8(); } -static void OpBEX0() +static void OpBEX0(void) { AbsoluteIndexedY(true); LDX16(); @@ -1411,7 +1409,7 @@ static void OpBEX0() /**********************************************************************************************/ /* LDY *************************************************************************************** */ -static void OpA0X1() +static void OpA0X1(void) { ICPU.Registers.YL = *CPU.PC++; #ifndef SA1_OPCODES @@ -1420,7 +1418,7 @@ static void OpA0X1() SetZN8(ICPU.Registers.YL); } -static void OpA0X0() +static void OpA0X0(void) { #ifdef FAST_LSB_WORD_ACCESS ICPU.Registers.Y.W = *(uint16_t*) CPU.PC; @@ -1435,49 +1433,49 @@ static void OpA0X0() SetZN16(ICPU.Registers.Y.W); } -static void OpA4X1() +static void OpA4X1(void) { Direct(true); LDY8(); } -static void OpA4X0() +static void OpA4X0(void) { Direct(true); LDY16(); } -static void OpB4X1() +static void OpB4X1(void) { DirectIndexedX(true); LDY8(); } -static void OpB4X0() +static void OpB4X0(void) { DirectIndexedX(true); LDY16(); } -static void OpACX1() +static void OpACX1(void) { Absolute(true); LDY8(); } -static void OpACX0() +static void OpACX0(void) { Absolute(true); LDY16(); } -static void OpBCX1() +static void OpBCX1(void) { AbsoluteIndexedX(true); LDY8(); } -static void OpBCX0() +static void OpBCX0(void) { AbsoluteIndexedX(true); LDY16(); @@ -1485,59 +1483,59 @@ static void OpBCX0() /**********************************************************************************************/ /* LSR *************************************************************************************** */ -static void Op4AM1() +static void Op4AM1(void) { A_LSR8(); } -static void Op4AM0() +static void Op4AM0(void) { A_LSR16(); } -static void Op46M1() +static void Op46M1(void) { Direct(false); LSR8(); } -static void Op46M0() +static void Op46M0(void) { Direct(false); LSR16(); } -static void Op56M1() +static void Op56M1(void) { DirectIndexedX(false); LSR8(); } -static void Op56M0() +static void Op56M0(void) { DirectIndexedX(false); LSR16(); } -static void Op4EM1() +static void Op4EM1(void) { Absolute(false); LSR8(); } -static void Op4EM0() +static void Op4EM0(void) { Absolute(false); LSR16(); } -static void Op5EM1() +static void Op5EM1(void) { AbsoluteIndexedX(false); LSR8(); } -static void Op5EM0() +static void Op5EM0(void) { AbsoluteIndexedX(false); LSR16(); @@ -1546,7 +1544,7 @@ static void Op5EM0() /**********************************************************************************************/ /* ORA *************************************************************************************** */ -static void Op09M1() +static void Op09M1(void) { ICPU.Registers.AL |= *CPU.PC++; #ifndef SA1_OPCODES @@ -1555,7 +1553,7 @@ static void Op09M1() SetZN8(ICPU.Registers.AL); } -static void Op09M0() +static void Op09M0(void) { #ifdef FAST_LSB_WORD_ACCESS ICPU.Registers.A.W |= *(uint16_t*) CPU.PC; @@ -1569,169 +1567,169 @@ static void Op09M0() SetZN16(ICPU.Registers.A.W); } -static void Op05M1() +static void Op05M1(void) { Direct(true); ORA8(); } -static void Op05M0() +static void Op05M0(void) { Direct(true); ORA16(); } -static void Op15M1() +static void Op15M1(void) { DirectIndexedX(true); ORA8(); } -static void Op15M0() +static void Op15M0(void) { DirectIndexedX(true); ORA16(); } -static void Op12M1() +static void Op12M1(void) { DirectIndirect(true); ORA8(); } -static void Op12M0() +static void Op12M0(void) { DirectIndirect(true); ORA16(); } -static void Op01M1() +static void Op01M1(void) { DirectIndexedIndirect(true); ORA8(); } -static void Op01M0() +static void Op01M0(void) { DirectIndexedIndirect(true); ORA16(); } -static void Op11M1() +static void Op11M1(void) { DirectIndirectIndexed(true); ORA8(); } -static void Op11M0() +static void Op11M0(void) { DirectIndirectIndexed(true); ORA16(); } -static void Op07M1() +static void Op07M1(void) { DirectIndirectLong(true); ORA8(); } -static void Op07M0() +static void Op07M0(void) { DirectIndirectLong(true); ORA16(); } -static void Op17M1() +static void Op17M1(void) { DirectIndirectIndexedLong(true); ORA8(); } -static void Op17M0() +static void Op17M0(void) { DirectIndirectIndexedLong(true); ORA16(); } -static void Op0DM1() +static void Op0DM1(void) { Absolute(true); ORA8(); } -static void Op0DM0() +static void Op0DM0(void) { Absolute(true); ORA16(); } -static void Op1DM1() +static void Op1DM1(void) { AbsoluteIndexedX(true); ORA8(); } -static void Op1DM0() +static void Op1DM0(void) { AbsoluteIndexedX(true); ORA16(); } -static void Op19M1() +static void Op19M1(void) { AbsoluteIndexedY(true); ORA8(); } -static void Op19M0() +static void Op19M0(void) { AbsoluteIndexedY(true); ORA16(); } -static void Op0FM1() +static void Op0FM1(void) { AbsoluteLong(true); ORA8(); } -static void Op0FM0() +static void Op0FM0(void) { AbsoluteLong(true); ORA16(); } -static void Op1FM1() +static void Op1FM1(void) { AbsoluteLongIndexedX(true); ORA8(); } -static void Op1FM0() +static void Op1FM0(void) { AbsoluteLongIndexedX(true); ORA16(); } -static void Op03M1() +static void Op03M1(void) { StackRelative(true); ORA8(); } -static void Op03M0() +static void Op03M0(void) { StackRelative(true); ORA16(); } -static void Op13M1() +static void Op13M1(void) { StackRelativeIndirectIndexed(true); ORA8(); } -static void Op13M0() +static void Op13M0(void) { StackRelativeIndirectIndexed(true); ORA16(); @@ -1740,59 +1738,59 @@ static void Op13M0() /**********************************************************************************************/ /* ROL *************************************************************************************** */ -static void Op2AM1() +static void Op2AM1(void) { A_ROL8(); } -static void Op2AM0() +static void Op2AM0(void) { A_ROL16(); } -static void Op26M1() +static void Op26M1(void) { Direct(false); ROL8(); } -static void Op26M0() +static void Op26M0(void) { Direct(false); ROL16(); } -static void Op36M1() +static void Op36M1(void) { DirectIndexedX(false); ROL8(); } -static void Op36M0() +static void Op36M0(void) { DirectIndexedX(false); ROL16(); } -static void Op2EM1() +static void Op2EM1(void) { Absolute(false); ROL8(); } -static void Op2EM0() +static void Op2EM0(void) { Absolute(false); ROL16(); } -static void Op3EM1() +static void Op3EM1(void) { AbsoluteIndexedX(false); ROL8(); } -static void Op3EM0() +static void Op3EM0(void) { AbsoluteIndexedX(false); ROL16(); @@ -1800,59 +1798,59 @@ static void Op3EM0() /**********************************************************************************************/ /* ROR *************************************************************************************** */ -static void Op6AM1() +static void Op6AM1(void) { A_ROR8(); } -static void Op6AM0() +static void Op6AM0(void) { A_ROR16(); } -static void Op66M1() +static void Op66M1(void) { Direct(false); ROR8(); } -static void Op66M0() +static void Op66M0(void) { Direct(false); ROR16(); } -static void Op76M1() +static void Op76M1(void) { DirectIndexedX(false); ROR8(); } -static void Op76M0() +static void Op76M0(void) { DirectIndexedX(false); ROR16(); } -static void Op6EM1() +static void Op6EM1(void) { Absolute(false); ROR8(); } -static void Op6EM0() +static void Op6EM0(void) { Absolute(false); ROR16(); } -static void Op7EM1() +static void Op7EM1(void) { AbsoluteIndexedX(false); ROR8(); } -static void Op7EM0() +static void Op7EM0(void) { AbsoluteIndexedX(false); ROR16(); @@ -1860,181 +1858,181 @@ static void Op7EM0() /**********************************************************************************************/ /* SBC *************************************************************************************** */ -static void OpE9M1() +static void OpE9M1(void) { Immediate8(); SBC8(); } -static void OpE9M0() +static void OpE9M0(void) { Immediate16(); SBC16(); } -static void OpE5M1() +static void OpE5M1(void) { Direct(true); SBC8(); } -static void OpE5M0() +static void OpE5M0(void) { Direct(true); SBC16(); } -static void OpF5M1() +static void OpF5M1(void) { DirectIndexedX(true); SBC8(); } -static void OpF5M0() +static void OpF5M0(void) { DirectIndexedX(true); SBC16(); } -static void OpF2M1() +static void OpF2M1(void) { DirectIndirect(true); SBC8(); } -static void OpF2M0() +static void OpF2M0(void) { DirectIndirect(true); SBC16(); } -static void OpE1M1() +static void OpE1M1(void) { DirectIndexedIndirect(true); SBC8(); } -static void OpE1M0() +static void OpE1M0(void) { DirectIndexedIndirect(true); SBC16(); } -static void OpF1M1() +static void OpF1M1(void) { DirectIndirectIndexed(true); SBC8(); } -static void OpF1M0() +static void OpF1M0(void) { DirectIndirectIndexed(true); SBC16(); } -static void OpE7M1() +static void OpE7M1(void) { DirectIndirectLong(true); SBC8(); } -static void OpE7M0() +static void OpE7M0(void) { DirectIndirectLong(true); SBC16(); } -static void OpF7M1() +static void OpF7M1(void) { DirectIndirectIndexedLong(true); SBC8(); } -static void OpF7M0() +static void OpF7M0(void) { DirectIndirectIndexedLong(true); SBC16(); } -static void OpEDM1() +static void OpEDM1(void) { Absolute(true); SBC8(); } -static void OpEDM0() +static void OpEDM0(void) { Absolute(true); SBC16(); } -static void OpFDM1() +static void OpFDM1(void) { AbsoluteIndexedX(true); SBC8(); } -static void OpFDM0() +static void OpFDM0(void) { AbsoluteIndexedX(true); SBC16(); } -static void OpF9M1() +static void OpF9M1(void) { AbsoluteIndexedY(true); SBC8(); } -static void OpF9M0() +static void OpF9M0(void) { AbsoluteIndexedY(true); SBC16(); } -static void OpEFM1() +static void OpEFM1(void) { AbsoluteLong(true); SBC8(); } -static void OpEFM0() +static void OpEFM0(void) { AbsoluteLong(true); SBC16(); } -static void OpFFM1() +static void OpFFM1(void) { AbsoluteLongIndexedX(true); SBC8(); } -static void OpFFM0() +static void OpFFM0(void) { AbsoluteLongIndexedX(true); SBC16(); } -static void OpE3M1() +static void OpE3M1(void) { StackRelative(true); SBC8(); } -static void OpE3M0() +static void OpE3M0(void) { StackRelative(true); SBC16(); } -static void OpF3M1() +static void OpF3M1(void) { StackRelativeIndirectIndexed(true); SBC8(); } -static void OpF3M0() +static void OpF3M0(void) { StackRelativeIndirectIndexed(true); SBC16(); @@ -2042,177 +2040,177 @@ static void OpF3M0() /**********************************************************************************************/ /* STA *************************************************************************************** */ -static void Op85M1() +static void Op85M1(void) { Direct(false); STA8(); } -static void Op85M0() +static void Op85M0(void) { Direct(false); STA16(); } -static void Op95M1() +static void Op95M1(void) { DirectIndexedX(false); STA8(); } -static void Op95M0() +static void Op95M0(void) { DirectIndexedX(false); STA16(); } -static void Op92M1() +static void Op92M1(void) { DirectIndirect(false); STA8(); } -static void Op92M0() +static void Op92M0(void) { DirectIndirect(false); STA16(); } -static void Op81M1() +static void Op81M1(void) { DirectIndexedIndirect(false); STA8(); -#ifdef noVAR_CYCLES +#ifndef SA1_OPCODES if (CheckIndex()) CPU.Cycles += ONE_CYCLE; #endif } -static void Op81M0() +static void Op81M0(void) { DirectIndexedIndirect(false); STA16(); -#ifdef noVAR_CYCLES +#ifndef SA1_OPCODES if (CheckIndex()) CPU.Cycles += ONE_CYCLE; #endif } -static void Op91M1() +static void Op91M1(void) { DirectIndirectIndexed(false); STA8(); } -static void Op91M0() +static void Op91M0(void) { DirectIndirectIndexed(false); STA16(); } -static void Op87M1() +static void Op87M1(void) { DirectIndirectLong(false); STA8(); } -static void Op87M0() +static void Op87M0(void) { DirectIndirectLong(false); STA16(); } -static void Op97M1() +static void Op97M1(void) { DirectIndirectIndexedLong(false); STA8(); } -static void Op97M0() +static void Op97M0(void) { DirectIndirectIndexedLong(false); STA16(); } -static void Op8DM1() +static void Op8DM1(void) { Absolute(false); STA8(); } -static void Op8DM0() +static void Op8DM0(void) { Absolute(false); STA16(); } -static void Op9DM1() +static void Op9DM1(void) { AbsoluteIndexedX(false); STA8(); } -static void Op9DM0() +static void Op9DM0(void) { AbsoluteIndexedX(false); STA16(); } -static void Op99M1() +static void Op99M1(void) { AbsoluteIndexedY(false); STA8(); } -static void Op99M0() +static void Op99M0(void) { AbsoluteIndexedY(false); STA16(); } -static void Op8FM1() +static void Op8FM1(void) { AbsoluteLong(false); STA8(); } -static void Op8FM0() +static void Op8FM0(void) { AbsoluteLong(false); STA16(); } -static void Op9FM1() +static void Op9FM1(void) { AbsoluteLongIndexedX(false); STA8(); } -static void Op9FM0() +static void Op9FM0(void) { AbsoluteLongIndexedX(false); STA16(); } -static void Op83M1() +static void Op83M1(void) { StackRelative(false); STA8(); } -static void Op83M0() +static void Op83M0(void) { StackRelative(false); STA16(); } -static void Op93M1() +static void Op93M1(void) { StackRelativeIndirectIndexed(false); STA8(); } -static void Op93M0() +static void Op93M0(void) { StackRelativeIndirectIndexed(false); STA16(); @@ -2220,37 +2218,37 @@ static void Op93M0() /**********************************************************************************************/ /* STX *************************************************************************************** */ -static void Op86X1() +static void Op86X1(void) { Direct(false); STX8(); } -static void Op86X0() +static void Op86X0(void) { Direct(false); STX16(); } -static void Op96X1() +static void Op96X1(void) { DirectIndexedY(false); STX8(); } -static void Op96X0() +static void Op96X0(void) { DirectIndexedY(false); STX16(); } -static void Op8EX1() +static void Op8EX1(void) { Absolute(false); STX8(); } -static void Op8EX0() +static void Op8EX0(void) { Absolute(false); STX16(); @@ -2258,37 +2256,37 @@ static void Op8EX0() /**********************************************************************************************/ /* STY *************************************************************************************** */ -static void Op84X1() +static void Op84X1(void) { Direct(false); STY8(); } -static void Op84X0() +static void Op84X0(void) { Direct(false); STY16(); } -static void Op94X1() +static void Op94X1(void) { DirectIndexedX(false); STY8(); } -static void Op94X0() +static void Op94X0(void) { DirectIndexedX(false); STY16(); } -static void Op8CX1() +static void Op8CX1(void) { Absolute(false); STY8(); } -static void Op8CX0() +static void Op8CX0(void) { Absolute(false); STY16(); @@ -2296,49 +2294,49 @@ static void Op8CX0() /**********************************************************************************************/ /* STZ *************************************************************************************** */ -static void Op64M1() +static void Op64M1(void) { Direct(false); STZ8(); } -static void Op64M0() +static void Op64M0(void) { Direct(false); STZ16(); } -static void Op74M1() +static void Op74M1(void) { DirectIndexedX(false); STZ8(); } -static void Op74M0() +static void Op74M0(void) { DirectIndexedX(false); STZ16(); } -static void Op9CM1() +static void Op9CM1(void) { Absolute(false); STZ8(); } -static void Op9CM0() +static void Op9CM0(void) { Absolute(false); STZ16(); } -static void Op9EM1() +static void Op9EM1(void) { AbsoluteIndexedX(false); STZ8(); } -static void Op9EM0() +static void Op9EM0(void) { AbsoluteIndexedX(false); STZ16(); @@ -2347,25 +2345,25 @@ static void Op9EM0() /**********************************************************************************************/ /* TRB *************************************************************************************** */ -static void Op14M1() +static void Op14M1(void) { Direct(false); TRB8(); } -static void Op14M0() +static void Op14M0(void) { Direct(false); TRB16(); } -static void Op1CM1() +static void Op1CM1(void) { Absolute(false); TRB8(); } -static void Op1CM0() +static void Op1CM0(void) { Absolute(false); TRB16(); @@ -2373,25 +2371,25 @@ static void Op1CM0() /**********************************************************************************************/ /* TSB *************************************************************************************** */ -static void Op04M1() +static void Op04M1(void) { Direct(false); TSB8(); } -static void Op04M0() +static void Op04M0(void) { Direct(false); TSB16(); } -static void Op0CM1() +static void Op0CM1(void) { Absolute(false); TSB8(); } -static void Op0CM0() +static void Op0CM0(void) { Absolute(false); TSB16(); @@ -2401,63 +2399,19 @@ static void Op0CM0() /* Branch Instructions *********************************************************************** */ #ifndef SA1_OPCODES -#define BranchCheck0()\ - if(CPU.BranchSkip)\ - {\ - CPU.BranchSkip = false;\ - if (!Settings.SoundSkipMethod)\ - if (CPU.PC - CPU.PCBase > OpAddress)\ - return;\ - } - -#define BranchCheck1()\ - if(CPU.BranchSkip)\ - {\ - CPU.BranchSkip = false;\ - if (!Settings.SoundSkipMethod)\ - {\ - if( CPU.PC - CPU.PCBase > OpAddress)\ - return;\ - }\ - else if (Settings.SoundSkipMethod == 1)\ - return;\ - if (Settings.SoundSkipMethod == 3)\ - {\ - if (CPU.PC - CPU.PCBase > OpAddress)\ - return;\ - else\ - CPU.PC = CPU.PCBase + OpAddress;\ - }\ - } - -#define BranchCheck2()\ - if(CPU.BranchSkip)\ - {\ - CPU.BranchSkip = false;\ - if (!Settings.SoundSkipMethod)\ - {\ - if( CPU.PC - CPU.PCBase > OpAddress)\ - return;\ - }\ - else if (Settings.SoundSkipMethod == 1)\ - CPU.PC = CPU.PCBase + OpAddress;\ - if (Settings.SoundSkipMethod == 3)\ - {\ - if (CPU.PC - CPU.PCBase > OpAddress)\ - return;\ - else\ - CPU.PC = CPU.PCBase + OpAddress;\ - }\ +#define BranchCheck() \ + if(CPU.BranchSkip) \ + { \ + CPU.BranchSkip = false; \ + if (CPU.PC - CPU.PCBase > OpAddress)\ + return; \ } #else -#define BranchCheck0() -#define BranchCheck1() -#define BranchCheck2() +#define BranchCheck() #endif -#ifdef CPU_SHUTDOWN #ifndef SA1_OPCODES -static inline void CPUShutdown() +static inline void CPUShutdown(void) { if (Settings.Shutdown && CPU.PC == CPU.WaitAddress) { @@ -2490,7 +2444,7 @@ static inline void CPUShutdown() } } #else -static inline void CPUShutdown() +static inline void CPUShutdown(void) { if (Settings.Shutdown && CPU.PC == CPU.WaitAddress) { @@ -2504,15 +2458,11 @@ static inline void CPUShutdown() } } #endif -#else -#define CPUShutdown() -#endif // From the speed-hacks branch of CatSFC -static inline void ForceShutdown() +static inline void ForceShutdown(void) { -#ifdef CPU_SHUTDOWN -#ifdef VAR_CYCLES +#ifndef SA1_OPCODES CPU.WaitAddress = NULL; #ifndef USE_BLARGG_APU CPU.Cycles = CPU.NextEvent; @@ -2531,14 +2481,13 @@ static inline void ForceShutdown() SA1.Executing = false; SA1.CPUExecuting = false; #endif -#endif } /* BCC */ -static void Op90() +static void Op90(void) { Relative(); - BranchCheck0(); + BranchCheck(); if (!CheckCarry()) { CPU.PC = CPU.PCBase + OpAddress; @@ -2550,10 +2499,10 @@ static void Op90() } /* BCS */ -static void OpB0() +static void OpB0(void) { Relative(); - BranchCheck0(); + BranchCheck(); if (CheckCarry()) { CPU.PC = CPU.PCBase + OpAddress; @@ -2565,10 +2514,10 @@ static void OpB0() } /* BEQ */ -static void OpF0() +static void OpF0(void) { Relative(); - BranchCheck2(); + BranchCheck(); if (CheckZero()) { CPU.PC = CPU.PCBase + OpAddress; @@ -2580,10 +2529,10 @@ static void OpF0() } /* BMI */ -static void Op30() +static void Op30(void) { Relative(); - BranchCheck1(); + BranchCheck(); if (CheckNegative()) { CPU.PC = CPU.PCBase + OpAddress; @@ -2595,10 +2544,10 @@ static void Op30() } /* BNE */ -static void OpD0() +static void OpD0(void) { Relative(); - BranchCheck1(); + BranchCheck(); if (!CheckZero()) { CPU.PC = CPU.PCBase + OpAddress; @@ -2610,10 +2559,10 @@ static void OpD0() } /* BPL */ -static void Op10() +static void Op10(void) { Relative(); - BranchCheck1(); + BranchCheck(); if (!CheckNegative()) { CPU.PC = CPU.PCBase + OpAddress; @@ -2625,7 +2574,7 @@ static void Op10() } /* BRA */ -static void Op80() +static void Op80(void) { Relative(); CPU.PC = CPU.PCBase + OpAddress; @@ -2636,10 +2585,10 @@ static void Op80() } /* BVC */ -static void Op50() +static void Op50(void) { Relative(); - BranchCheck0(); + BranchCheck(); if (!CheckOverflow()) { CPU.PC = CPU.PCBase + OpAddress; @@ -2651,10 +2600,10 @@ static void Op50() } /* BVS */ -static void Op70() +static void Op70(void) { Relative(); - BranchCheck0(); + BranchCheck(); if (CheckOverflow()) { CPU.PC = CPU.PCBase + OpAddress; @@ -2668,7 +2617,7 @@ static void Op70() /* ClearFlag Instructions ******************************************************************** */ /* CLC */ -static void Op18() +static void Op18(void) { ClearCarry(); #ifndef SA1_OPCODES @@ -2677,7 +2626,7 @@ static void Op18() } /* CLD */ -static void OpD8() +static void OpD8(void) { ClearDecimal(); #ifndef SA1_OPCODES @@ -2686,7 +2635,7 @@ static void OpD8() } /* CLI */ -static void Op58() +static void Op58(void) { ClearIRQ(); #ifndef SA1_OPCODES @@ -2696,7 +2645,7 @@ static void Op58() } /* CLV */ -static void OpB8() +static void OpB8(void) { ClearOverflow(); #ifndef SA1_OPCODES @@ -2706,100 +2655,84 @@ static void OpB8() /**********************************************************************************************/ /* DEX/DEY *********************************************************************************** */ -static void OpCAX1() +static void OpCAX1(void) { #ifndef SA1_OPCODES CPU.Cycles += ONE_CYCLE; #endif -#ifdef CPU_SHUTDOWN CPU.WaitAddress = NULL; -#endif ICPU.Registers.XL--; SetZN8(ICPU.Registers.XL); } -static void OpCAX0() +static void OpCAX0(void) { #ifndef SA1_OPCODES CPU.Cycles += ONE_CYCLE; #endif -#ifdef CPU_SHUTDOWN CPU.WaitAddress = NULL; -#endif ICPU.Registers.X.W--; SetZN16(ICPU.Registers.X.W); } -static void Op88X1() +static void Op88X1(void) { #ifndef SA1_OPCODES CPU.Cycles += ONE_CYCLE; #endif -#ifdef CPU_SHUTDOWN CPU.WaitAddress = NULL; -#endif ICPU.Registers.YL--; SetZN8(ICPU.Registers.YL); } -static void Op88X0() +static void Op88X0(void) { #ifndef SA1_OPCODES CPU.Cycles += ONE_CYCLE; #endif -#ifdef CPU_SHUTDOWN CPU.WaitAddress = NULL; -#endif ICPU.Registers.Y.W--; SetZN16(ICPU.Registers.Y.W); } /**********************************************************************************************/ /* INX/INY *********************************************************************************** */ -static void OpE8X1() +static void OpE8X1(void) { #ifndef SA1_OPCODES CPU.Cycles += ONE_CYCLE; #endif -#ifdef CPU_SHUTDOWN CPU.WaitAddress = NULL; -#endif ICPU.Registers.XL++; SetZN8(ICPU.Registers.XL); } -static void OpE8X0() +static void OpE8X0(void) { #ifndef SA1_OPCODES CPU.Cycles += ONE_CYCLE; #endif -#ifdef CPU_SHUTDOWN CPU.WaitAddress = NULL; -#endif ICPU.Registers.X.W++; SetZN16(ICPU.Registers.X.W); } -static void OpC8X1() +static void OpC8X1(void) { #ifndef SA1_OPCODES CPU.Cycles += ONE_CYCLE; #endif -#ifdef CPU_SHUTDOWN CPU.WaitAddress = NULL; -#endif ICPU.Registers.YL++; SetZN8(ICPU.Registers.YL); } -static void OpC8X0() +static void OpC8X0(void) { #ifndef SA1_OPCODES CPU.Cycles += ONE_CYCLE; #endif -#ifdef CPU_SHUTDOWN CPU.WaitAddress = NULL; -#endif ICPU.Registers.Y.W++; SetZN16(ICPU.Registers.Y.W); } @@ -2807,7 +2740,7 @@ static void OpC8X0() /**********************************************************************************************/ /* NOP *************************************************************************************** */ -static void OpEA() +static void OpEA(void) { #ifndef SA1_OPCODES CPU.Cycles += ONE_CYCLE; @@ -2833,46 +2766,46 @@ static void OpEA() ICPU.Registers.SH = 0x01; //PEA NL -static void OpF4E1() +static void OpF4E1(void) { Absolute(false); PushWE((uint16_t)OpAddress); } -static void OpF4() +static void OpF4(void) { Absolute(false); PushW((uint16_t)OpAddress); } //PEI NL -static void OpD4E1() +static void OpD4E1(void) { DirectIndirect(false); PushWE((uint16_t)OpAddress); } -static void OpD4() +static void OpD4(void) { DirectIndirect(false); PushW((uint16_t)OpAddress); } //PER NL -static void Op62E1() +static void Op62E1(void) { RelativeLong(false); PushWE((uint16_t)OpAddress); } -static void Op62() +static void Op62(void) { RelativeLong(false); PushW((uint16_t)OpAddress); } //PHA -static void Op48E1() +static void Op48E1(void) { PushBE(ICPU.Registers.AL); #ifndef SA1_OPCODES @@ -2880,7 +2813,7 @@ static void Op48E1() #endif } -static void Op48M1() +static void Op48M1(void) { PushB(ICPU.Registers.AL); #ifndef SA1_OPCODES @@ -2888,7 +2821,7 @@ static void Op48M1() #endif } -static void Op48M0() +static void Op48M0(void) { PushW(ICPU.Registers.A.W); #ifndef SA1_OPCODES @@ -2897,7 +2830,7 @@ static void Op48M0() } //PHB -static void Op8BE1() +static void Op8BE1(void) { PushBE(ICPU.Registers.DB); #ifndef SA1_OPCODES @@ -2905,7 +2838,7 @@ static void Op8BE1() #endif } -static void Op8B() +static void Op8B(void) { PushB(ICPU.Registers.DB); #ifndef SA1_OPCODES @@ -2914,7 +2847,7 @@ static void Op8B() } //PHD NL -static void Op0BE1() +static void Op0BE1(void) { PushWE(ICPU.Registers.D.W); #ifndef SA1_OPCODES @@ -2922,7 +2855,7 @@ static void Op0BE1() #endif } -static void Op0B() +static void Op0B(void) { PushW(ICPU.Registers.D.W); #ifndef SA1_OPCODES @@ -2931,7 +2864,7 @@ static void Op0B() } //PHK -static void Op4BE1() +static void Op4BE1(void) { PushBE(ICPU.Registers.PB); #ifndef SA1_OPCODES @@ -2939,7 +2872,7 @@ static void Op4BE1() #endif } -static void Op4B() +static void Op4B(void) { PushB(ICPU.Registers.PB); #ifndef SA1_OPCODES @@ -2948,7 +2881,7 @@ static void Op4B() } //PHP -static void Op08E1() +static void Op08E1(void) { S9xPackStatus(); PushBE(ICPU.Registers.PL); @@ -2957,7 +2890,7 @@ static void Op08E1() #endif } -static void Op08() +static void Op08(void) { S9xPackStatus(); PushB(ICPU.Registers.PL); @@ -2967,7 +2900,7 @@ static void Op08() } //PHX -static void OpDAE1() +static void OpDAE1(void) { PushBE(ICPU.Registers.XL); #ifndef SA1_OPCODES @@ -2975,7 +2908,7 @@ static void OpDAE1() #endif } -static void OpDAX1() +static void OpDAX1(void) { PushB(ICPU.Registers.XL); #ifndef SA1_OPCODES @@ -2983,7 +2916,7 @@ static void OpDAX1() #endif } -static void OpDAX0() +static void OpDAX0(void) { PushW(ICPU.Registers.X.W); #ifndef SA1_OPCODES @@ -2992,7 +2925,7 @@ static void OpDAX0() } //PHY -static void Op5AE1() +static void Op5AE1(void) { PushBE(ICPU.Registers.YL); #ifndef SA1_OPCODES @@ -3000,7 +2933,7 @@ static void Op5AE1() #endif } -static void Op5AX1() +static void Op5AX1(void) { PushB(ICPU.Registers.YL); #ifndef SA1_OPCODES @@ -3008,7 +2941,7 @@ static void Op5AX1() #endif } -static void Op5AX0() +static void Op5AX0(void) { PushW(ICPU.Registers.Y.W); #ifndef SA1_OPCODES @@ -3034,7 +2967,7 @@ static void Op5AX0() ICPU.Registers.SH = 0x01; //PLA -static void Op68E1() +static void Op68E1(void) { #ifndef SA1_OPCODES CPU.Cycles += TWO_CYCLES; @@ -3043,7 +2976,7 @@ static void Op68E1() SetZN8(ICPU.Registers.AL); } -static void Op68M1() +static void Op68M1(void) { #ifndef SA1_OPCODES CPU.Cycles += TWO_CYCLES; @@ -3052,7 +2985,7 @@ static void Op68M1() SetZN8(ICPU.Registers.AL); } -static void Op68M0() +static void Op68M0(void) { #ifndef SA1_OPCODES CPU.Cycles += TWO_CYCLES; @@ -3062,7 +2995,7 @@ static void Op68M0() } //PLB -static void OpABE1() +static void OpABE1(void) { #ifndef SA1_OPCODES CPU.Cycles += TWO_CYCLES; @@ -3072,7 +3005,7 @@ static void OpABE1() ICPU.ShiftedDB = ICPU.Registers.DB << 16; } -static void OpAB() +static void OpAB(void) { #ifndef SA1_OPCODES CPU.Cycles += TWO_CYCLES; @@ -3084,7 +3017,7 @@ static void OpAB() /* PHP */ //PLD NL -static void Op2BE1() +static void Op2BE1(void) { #ifndef SA1_OPCODES CPU.Cycles += TWO_CYCLES; @@ -3093,7 +3026,7 @@ static void Op2BE1() SetZN16(ICPU.Registers.D.W); } -static void Op2B() +static void Op2B(void) { #ifndef SA1_OPCODES CPU.Cycles += TWO_CYCLES; @@ -3103,7 +3036,7 @@ static void Op2B() } /* PLP */ -static void Op28E1() +static void Op28E1(void) { #ifndef SA1_OPCODES CPU.Cycles += TWO_CYCLES; @@ -3119,7 +3052,7 @@ static void Op28E1() S9xFixCycles(); } -static void Op28() +static void Op28(void) { #ifndef SA1_OPCODES CPU.Cycles += TWO_CYCLES; @@ -3136,7 +3069,7 @@ static void Op28() } //PLX -static void OpFAE1() +static void OpFAE1(void) { #ifndef SA1_OPCODES CPU.Cycles += TWO_CYCLES; @@ -3145,7 +3078,7 @@ static void OpFAE1() SetZN8(ICPU.Registers.XL); } -static void OpFAX1() +static void OpFAX1(void) { #ifndef SA1_OPCODES CPU.Cycles += TWO_CYCLES; @@ -3154,7 +3087,7 @@ static void OpFAX1() SetZN8(ICPU.Registers.XL); } -static void OpFAX0() +static void OpFAX0(void) { #ifndef SA1_OPCODES CPU.Cycles += TWO_CYCLES; @@ -3164,7 +3097,7 @@ static void OpFAX0() } //PLY -static void Op7AE1() +static void Op7AE1(void) { #ifndef SA1_OPCODES CPU.Cycles += TWO_CYCLES; @@ -3173,7 +3106,7 @@ static void Op7AE1() SetZN8(ICPU.Registers.YL); } -static void Op7AX1() +static void Op7AX1(void) { #ifndef SA1_OPCODES CPU.Cycles += TWO_CYCLES; @@ -3182,7 +3115,7 @@ static void Op7AX1() SetZN8(ICPU.Registers.YL); } -static void Op7AX0() +static void Op7AX0(void) { #ifndef SA1_OPCODES CPU.Cycles += TWO_CYCLES; @@ -3195,7 +3128,7 @@ static void Op7AX0() /* SetFlag Instructions ********************************************************************** */ /* SEC */ -static void Op38() +static void Op38(void) { SetCarry(); #ifndef SA1_OPCODES @@ -3204,17 +3137,16 @@ static void Op38() } /* SED */ -static void OpF8() +static void OpF8(void) { SetDecimal(); #ifndef SA1_OPCODES CPU.Cycles += ONE_CYCLE; #endif - missing.decimal_mode = 1; } /* SEI */ -static void Op78() +static void Op78(void) { SetIRQ(); #ifndef SA1_OPCODES @@ -3225,7 +3157,7 @@ static void Op78() /* Transfer Instructions ********************************************************************* */ /* TAX8 */ -static void OpAAX1() +static void OpAAX1(void) { #ifndef SA1_OPCODES CPU.Cycles += ONE_CYCLE; @@ -3235,7 +3167,7 @@ static void OpAAX1() } /* TAX16 */ -static void OpAAX0() +static void OpAAX0(void) { #ifndef SA1_OPCODES CPU.Cycles += ONE_CYCLE; @@ -3245,7 +3177,7 @@ static void OpAAX0() } /* TAY8 */ -static void OpA8X1() +static void OpA8X1(void) { #ifndef SA1_OPCODES CPU.Cycles += ONE_CYCLE; @@ -3255,7 +3187,7 @@ static void OpA8X1() } /* TAY16 */ -static void OpA8X0() +static void OpA8X0(void) { #ifndef SA1_OPCODES CPU.Cycles += ONE_CYCLE; @@ -3264,7 +3196,7 @@ static void OpA8X0() SetZN16(ICPU.Registers.Y.W); } -static void Op5B() +static void Op5B(void) { #ifndef SA1_OPCODES CPU.Cycles += ONE_CYCLE; @@ -3273,7 +3205,7 @@ static void Op5B() SetZN16(ICPU.Registers.D.W); } -static void Op1B() +static void Op1B(void) { #ifndef SA1_OPCODES CPU.Cycles += ONE_CYCLE; @@ -3283,7 +3215,7 @@ static void Op1B() ICPU.Registers.SH = 1; } -static void Op7B() +static void Op7B(void) { #ifndef SA1_OPCODES CPU.Cycles += ONE_CYCLE; @@ -3292,7 +3224,7 @@ static void Op7B() SetZN16(ICPU.Registers.A.W); } -static void Op3B() +static void Op3B(void) { #ifndef SA1_OPCODES CPU.Cycles += ONE_CYCLE; @@ -3301,7 +3233,7 @@ static void Op3B() SetZN16(ICPU.Registers.A.W); } -static void OpBAX1() +static void OpBAX1(void) { #ifndef SA1_OPCODES CPU.Cycles += ONE_CYCLE; @@ -3310,7 +3242,7 @@ static void OpBAX1() SetZN8(ICPU.Registers.XL); } -static void OpBAX0() +static void OpBAX0(void) { #ifndef SA1_OPCODES CPU.Cycles += ONE_CYCLE; @@ -3319,7 +3251,7 @@ static void OpBAX0() SetZN16(ICPU.Registers.X.W); } -static void Op8AM1() +static void Op8AM1(void) { #ifndef SA1_OPCODES CPU.Cycles += ONE_CYCLE; @@ -3328,7 +3260,7 @@ static void Op8AM1() SetZN8(ICPU.Registers.AL); } -static void Op8AM0() +static void Op8AM0(void) { #ifndef SA1_OPCODES CPU.Cycles += ONE_CYCLE; @@ -3337,7 +3269,7 @@ static void Op8AM0() SetZN16(ICPU.Registers.A.W); } -static void Op9A() +static void Op9A(void) { #ifndef SA1_OPCODES CPU.Cycles += ONE_CYCLE; @@ -3347,7 +3279,7 @@ static void Op9A() ICPU.Registers.SH = 1; } -static void Op9BX1() +static void Op9BX1(void) { #ifndef SA1_OPCODES CPU.Cycles += ONE_CYCLE; @@ -3356,7 +3288,7 @@ static void Op9BX1() SetZN8(ICPU.Registers.YL); } -static void Op9BX0() +static void Op9BX0(void) { #ifndef SA1_OPCODES CPU.Cycles += ONE_CYCLE; @@ -3365,7 +3297,7 @@ static void Op9BX0() SetZN16(ICPU.Registers.Y.W); } -static void Op98M1() +static void Op98M1(void) { #ifndef SA1_OPCODES CPU.Cycles += ONE_CYCLE; @@ -3374,7 +3306,7 @@ static void Op98M1() SetZN8(ICPU.Registers.AL); } -static void Op98M0() +static void Op98M0(void) { #ifndef SA1_OPCODES CPU.Cycles += ONE_CYCLE; @@ -3383,7 +3315,7 @@ static void Op98M0() SetZN16(ICPU.Registers.A.W); } -static void OpBBX1() +static void OpBBX1(void) { #ifndef SA1_OPCODES CPU.Cycles += ONE_CYCLE; @@ -3392,7 +3324,7 @@ static void OpBBX1() SetZN8(ICPU.Registers.XL); } -static void OpBBX0() +static void OpBBX0(void) { #ifndef SA1_OPCODES CPU.Cycles += ONE_CYCLE; @@ -3404,7 +3336,7 @@ static void OpBBX0() /**********************************************************************************************/ /* XCE *************************************************************************************** */ -static void OpFB() +static void OpFB(void) { #ifndef SA1_OPCODES CPU.Cycles += ONE_CYCLE; @@ -3418,7 +3350,6 @@ static void OpFB() { SetFlags(MemoryFlag | IndexFlag); ICPU.Registers.SH = 1; - missing.emulate6502 = 1; } if (CheckIndex()) { @@ -3430,11 +3361,8 @@ static void OpFB() /**********************************************************************************************/ /* BRK *************************************************************************************** */ -static void Op00() +static void Op00(void) { -#ifndef SA1_OPCODES - CPU.BRKTriggered = true; -#endif if (!CheckEmulation()) { PushB(ICPU.Registers.PB); @@ -3472,7 +3400,7 @@ static void Op00() /**********************************************************************************************/ /* BRL ************************************************************************************** */ -static void Op82() +static void Op82(void) { RelativeLong(); S9xSetPCBase(ICPU.ShiftedPB + OpAddress); @@ -3480,7 +3408,7 @@ static void Op82() /**********************************************************************************************/ /* IRQ *************************************************************************************** */ -void S9xOpcode_IRQ() +void S9xOpcode_IRQ(void) { if (!CheckEmulation()) { @@ -3538,7 +3466,7 @@ void S9xOpcode_IRQ() /**********************************************************************************************/ /* NMI *************************************************************************************** */ -void S9xOpcode_NMI() +void S9xOpcode_NMI(void) { if (!CheckEmulation()) { @@ -3595,7 +3523,7 @@ void S9xOpcode_NMI() /**********************************************************************************************/ /* COP *************************************************************************************** */ -static void Op02() +static void Op02(void) { if (!CheckEmulation()) { @@ -3634,7 +3562,7 @@ static void Op02() /**********************************************************************************************/ /* JML *************************************************************************************** */ -static void OpDC() +static void OpDC(void) { AbsoluteIndirectLong(false); ICPU.Registers.PB = (uint8_t)(OpAddress >> 16); @@ -3645,7 +3573,7 @@ static void OpDC() #endif } -static void Op5C() +static void Op5C(void) { AbsoluteLong(false); ICPU.Registers.PB = (uint8_t)(OpAddress >> 16); @@ -3655,22 +3583,22 @@ static void Op5C() /**********************************************************************************************/ /* JMP *************************************************************************************** */ -static void Op4C() +static void Op4C(void) { Absolute(false); S9xSetPCBase(ICPU.ShiftedPB + (OpAddress & 0xffff)); -#if defined(CPU_SHUTDOWN) && defined(SA1_OPCODES) +#ifdef SA1_OPCODES CPUShutdown(); #endif } -static void Op6C() +static void Op6C(void) { AbsoluteIndirect(false); S9xSetPCBase(ICPU.ShiftedPB + (OpAddress & 0xffff)); } -static void Op7C() +static void Op7C(void) { AbsoluteIndexedIndirect(false); S9xSetPCBase(ICPU.ShiftedPB + OpAddress); @@ -3681,7 +3609,7 @@ static void Op7C() /**********************************************************************************************/ /* JSL/RTL *********************************************************************************** */ -static void Op22E1() +static void Op22E1(void) { AbsoluteLong(false); PushB(ICPU.Registers.PB); @@ -3691,7 +3619,7 @@ static void Op22E1() S9xSetPCBase(OpAddress); } -static void Op22() +static void Op22(void) { AbsoluteLong(false); PushB(ICPU.Registers.PB); @@ -3701,7 +3629,7 @@ static void Op22() S9xSetPCBase(OpAddress); } -static void Op6BE1() +static void Op6BE1(void) { PullWE(ICPU.Registers.PC); PullB(ICPU.Registers.PB); @@ -3712,7 +3640,7 @@ static void Op6BE1() #endif } -static void Op6B() +static void Op6B(void) { PullW(ICPU.Registers.PC); PullB(ICPU.Registers.PB); @@ -3725,7 +3653,7 @@ static void Op6B() /**********************************************************************************************/ /* JSR/RTS *********************************************************************************** */ -static void Op20() +static void Op20(void) { Absolute(false); PushW(CPU.PC - CPU.PCBase - 1); @@ -3736,7 +3664,7 @@ static void Op20() } //JSR a,x -static void OpFCE1() +static void OpFCE1(void) { AbsoluteIndexedIndirect(false); PushWE(CPU.PC - CPU.PCBase - 1); @@ -3746,7 +3674,7 @@ static void OpFCE1() #endif } -static void OpFC() +static void OpFC(void) { AbsoluteIndexedIndirect(false); PushW(CPU.PC - CPU.PCBase - 1); @@ -3756,7 +3684,7 @@ static void OpFC() #endif } -static void Op60() +static void Op60(void) { PullW(ICPU.Registers.PC); S9xSetPCBase(ICPU.ShiftedPB + ((ICPU.Registers.PC + 1) & 0xffff)); @@ -3768,7 +3696,7 @@ static void Op60() /**********************************************************************************************/ /* MVN/MVP *********************************************************************************** */ -static void Op54X1() +static void Op54X1(void) { #ifndef SA1_OPCODES CPU.Cycles += CPU.MemSpeedx2 + TWO_CYCLES; @@ -3787,7 +3715,7 @@ static void Op54X1() CPU.PC -= 3; } -static void Op54X0() +static void Op54X0(void) { #ifndef SA1_OPCODES CPU.Cycles += CPU.MemSpeedx2 + TWO_CYCLES; @@ -3806,7 +3734,7 @@ static void Op54X0() CPU.PC -= 3; } -static void Op44X1() +static void Op44X1(void) { #ifndef SA1_OPCODES CPU.Cycles += CPU.MemSpeedx2 + TWO_CYCLES; @@ -3823,7 +3751,7 @@ static void Op44X1() CPU.PC -= 3; } -static void Op44X0() +static void Op44X0(void) { #ifndef SA1_OPCODES CPU.Cycles += CPU.MemSpeedx2 + TWO_CYCLES; @@ -3843,7 +3771,7 @@ static void Op44X0() /**********************************************************************************************/ /* REP/SEP *********************************************************************************** */ -static void OpC2() +static void OpC2(void) { uint8_t Work8 = ~*CPU.PC++; ICPU.Registers.PL &= Work8; @@ -3856,10 +3784,7 @@ static void OpC2() CPU.Cycles += CPU.MemSpeed + ONE_CYCLE; #endif if (CheckEmulation()) - { SetFlags(MemoryFlag | IndexFlag); - missing.emulate6502 = 1; - } if (CheckIndex()) { ICPU.Registers.XH = 0; @@ -3868,7 +3793,7 @@ static void OpC2() S9xFixCycles(); } -static void OpE2() +static void OpE2(void) { uint8_t Work8 = *CPU.PC++; ICPU.Registers.PL |= Work8; @@ -3881,10 +3806,7 @@ static void OpE2() CPU.Cycles += CPU.MemSpeed + ONE_CYCLE; #endif if (CheckEmulation()) - { SetFlags(MemoryFlag | IndexFlag); - missing.emulate6502 = 1; - } if (CheckIndex()) { ICPU.Registers.XH = 0; @@ -3895,7 +3817,7 @@ static void OpE2() /**********************************************************************************************/ /* XBA *************************************************************************************** */ -static void OpEB() +static void OpEB(void) { uint8_t Work8 = ICPU.Registers.AL; ICPU.Registers.AL = ICPU.Registers.AH; @@ -3908,7 +3830,7 @@ static void OpEB() /**********************************************************************************************/ /* RTI *************************************************************************************** */ -static void Op40() +static void Op40(void) { PullB(ICPU.Registers.PL); S9xUnpackStatus(); @@ -3919,10 +3841,7 @@ static void Op40() ICPU.ShiftedPB = ICPU.Registers.PB << 16; } else - { SetFlags(MemoryFlag | IndexFlag); - missing.emulate6502 = 1; - } S9xSetPCBase(ICPU.ShiftedPB + ICPU.Registers.PC); if (CheckIndex()) { @@ -3939,7 +3858,7 @@ static void Op40() /* STP/WAI/DB ******************************************************************************** */ // WAI -static void OpCB() +static void OpCB(void) { #ifdef SA1_OPCODES SA1.WaitingForInterrupt = true; @@ -3947,7 +3866,6 @@ static void OpCB() #else // SA_OPCODES CPU.WaitingForInterrupt = true; CPU.PC--; -#ifdef CPU_SHUTDOWN if (Settings.Shutdown) { CPU.Cycles = CPU.NextEvent; @@ -3965,14 +3883,13 @@ static void OpCB() #endif } #endif -#endif } // Usually an STP opcode // SNESAdvance speed hack, not implemented in Snes9xTYL | Snes9x-Euphoria (from the speed-hacks branch of CatSFC) -static void OpDB() +static void OpDB(void) { -#if !defined NO_SPEEDHACKS && defined CPU_SHUTDOWN +#ifndef NO_SPEEDHACKS uint8_t NextByte = *CPU.PC++; ForceShutdown(); @@ -3984,11 +3901,11 @@ static void OpDB() switch (NextByte & 0x80) { case 0x00: // BNE - BranchCheck1 (); + BranchCheck(); if (!CheckZero ()) { CPU.PC = CPU.PCBase + OpAddress; -#ifdef VAR_CYCLES +#ifndef SA1_OPCODES CPU.Cycles += ONE_CYCLE; #else #ifndef SA1_OPCODES @@ -3999,11 +3916,11 @@ static void OpDB() } return; case 0x80: // BEQ - BranchCheck2 (); + BranchCheck(); if (CheckZero ()) { CPU.PC = CPU.PCBase + OpAddress; -#ifdef VAR_CYCLES +#ifndef SA1_OPCODES CPU.Cycles += ONE_CYCLE; #else #ifndef SA1_OPCODES @@ -4021,9 +3938,9 @@ static void OpDB() } // SNESAdvance speed hack, as implemented in Snes9xTYL / Snes9x-Euphoria (from the speed-hacks branch of CatSFC) -static void Op42() +static void Op42(void) { -#if !defined NO_SPEEDHACKS && defined CPU_SHUTDOWN +#ifndef NO_SPEEDHACKS uint8_t NextByte = *CPU.PC++; ForceShutdown(); @@ -4034,11 +3951,11 @@ static void Op42() switch (NextByte & 0xF0) { case 0x10: // BPL - BranchCheck1 (); + BranchCheck(); if (!CheckNegative ()) { CPU.PC = CPU.PCBase + OpAddress; -#ifdef VAR_CYCLES +#ifndef SA1_OPCODES CPU.Cycles += ONE_CYCLE; #else #ifndef SA1_OPCODES @@ -4049,11 +3966,11 @@ static void Op42() } return; case 0x30: // BMI - BranchCheck1 (); + BranchCheck(); if (CheckNegative ()) { CPU.PC = CPU.PCBase + OpAddress; -#ifdef VAR_CYCLES +#ifndef SA1_OPCODES CPU.Cycles += ONE_CYCLE; #else #ifndef SA1_OPCODES @@ -4064,11 +3981,11 @@ static void Op42() } return; case 0x50: // BVC - BranchCheck0 (); + BranchCheck(); if (!CheckOverflow ()) { CPU.PC = CPU.PCBase + OpAddress; -#ifdef VAR_CYCLES +#ifndef SA1_OPCODES CPU.Cycles += ONE_CYCLE; #else #ifndef SA1_OPCODES @@ -4079,11 +3996,11 @@ static void Op42() } return; case 0x70: // BVS - BranchCheck0 (); + BranchCheck(); if (CheckOverflow ()) { CPU.PC = CPU.PCBase + OpAddress; -#ifdef VAR_CYCLES +#ifndef SA1_OPCODES CPU.Cycles += ONE_CYCLE; #else #ifndef SA1_OPCODES @@ -4095,7 +4012,7 @@ static void Op42() return; case 0x80: // BRA CPU.PC = CPU.PCBase + OpAddress; -#ifdef VAR_CYCLES +#ifndef SA1_OPCODES CPU.Cycles += ONE_CYCLE; #else #ifndef SA1_OPCODES @@ -4105,11 +4022,11 @@ static void Op42() CPUShutdown (); return; case 0x90: // BCC - BranchCheck0 (); + BranchCheck(); if (!CheckCarry ()) { CPU.PC = CPU.PCBase + OpAddress; -#ifdef VAR_CYCLES +#ifndef SA1_OPCODES CPU.Cycles += ONE_CYCLE; #else #ifndef SA1_OPCODES @@ -4120,11 +4037,11 @@ static void Op42() } return; case 0xB0: // BCS - BranchCheck0 (); + BranchCheck(); if (CheckCarry ()) { CPU.PC = CPU.PCBase + OpAddress; -#ifdef VAR_CYCLES +#ifndef SA1_OPCODES CPU.Cycles += ONE_CYCLE; #else #ifndef SA1_OPCODES @@ -4135,11 +4052,11 @@ static void Op42() } return; case 0xD0: // BNE - BranchCheck1 (); + BranchCheck(); if (!CheckZero ()) { CPU.PC = CPU.PCBase + OpAddress; -#ifdef VAR_CYCLES +#ifndef SA1_OPCODES CPU.Cycles += ONE_CYCLE; #else #ifndef SA1_OPCODES @@ -4150,11 +4067,11 @@ static void Op42() } return; case 0xF0: // BEQ - BranchCheck2 (); + BranchCheck(); if (CheckZero ()) { CPU.PC = CPU.PCBase + OpAddress; -#ifdef VAR_CYCLES +#ifndef SA1_OPCODES CPU.Cycles += ONE_CYCLE; #else #ifndef SA1_OPCODES -- cgit v1.2.3