X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=sa1cpu.cpp;h=3c9dcc3b38f29898a8866c2f52e25de87ef119b0;hb=HEAD;hp=02d74cb29575306e359105451934317b10e5fba7;hpb=77d5114bb9eaffbd6fcee695e9588ef3acdc85bf;p=drnoksnes diff --git a/sa1cpu.cpp b/sa1cpu.cpp index 02d74cb..3c9dcc3 100644 --- a/sa1cpu.cpp +++ b/sa1cpu.cpp @@ -38,15 +38,23 @@ * Super NES and Super Nintendo Entertainment System are trademarks of * Nintendo Co., Limited and its subsidiary companies. */ + #include "snes9x.h" + +#ifdef USE_SA1 + #include "memmap.h" +#include "debug.h" +#include "missing.h" #include "ppu.h" #include "cpuexec.h" - #include "sa1.h" + #define CPU SA1 -#define ICPU SA1ICPU -//#define ICPU SA1 +#define ICPU SA1 + +#undef Registers + #define Registers SA1Registers #define S9xGetByte S9xSA1GetByte #define S9xGetWord S9xSA1GetWord @@ -61,9 +69,9 @@ #define S9xOpcode_NMI S9xSA1Opcode_NMI #define S9xUnpackStatus S9xSA1UnpackStatus #define S9xPackStatus S9xSA1PackStatus -#define S9xFixCycles S9xSA1FixCycles -//CSNES Not even used -/* +#define S9xFixCycles S9xSA1FixCycles + +#if 0 #define Immediate8 SA1Immediate8 #define Immediate16 SA1Immediate16 #define Relative SA1Relative @@ -85,14 +93,14 @@ #define DirectIndirect SA1DirectIndirect #define DirectIndirectLong SA1DirectIndirectLong #define StackRelative SA1StackRelative -#define StackRelativeIndirectIndexed SA1StackRelativeIndirectIndexed -*/ +#define StackRelativeIndirectIndexed SA1StackRelativeIndirectIndexed +#endif //#undef CPU_SHUTDOWN #undef VAR_CYCLES #define SA1_OPCODES -#include "cpuops.cpp" +#include "65c816ops.inc" void S9xSA1MainLoop () { @@ -134,16 +142,19 @@ void S9xSA1MainLoop () #ifdef CPU_SHUTDOWN SA1.PCAtOpcodeStart = SA1.PC; #endif - (*SA1.S9xOpcodes [*SA1.PC++].S9xOpcode) (&SA1Registers, &SA1ICPU, &SA1); + (*SA1.S9xOpcodes [*SA1.PC++].S9xOpcode)(); } + return; } - else #endif - for (i = 0; i < 3 && SA1.Executing; i++) - { + for (i = 0; i < 3 && SA1.Executing; i++) + { #ifdef CPU_SHUTDOWN - SA1.PCAtOpcodeStart = SA1.PC; + SA1.PCAtOpcodeStart = SA1.PC; #endif - (*SA1ICPU.S9xOpcodes [*SA1.PC++].S9xOpcode) (&SA1Registers, &SA1ICPU, &SA1); - } + (*SA1.S9xOpcodes [*SA1.PC++].S9xOpcode)(); + } } + +#endif +