diff options
Diffstat (limited to 'source/cpu.c')
-rw-r--r-- | source/cpu.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/source/cpu.c b/source/cpu.c index e702670..15206c5 100644 --- a/source/cpu.c +++ b/source/cpu.c @@ -7,6 +7,7 @@ #include "cpuexec.h" #include "apu.h" #include "dma.h" +#include "fxemu.h" #include "sa1.h" #include "cheats.h" #include "srtc.h" @@ -14,8 +15,6 @@ #include "spc7110.h" #include "obc1.h" -#include "fxemu.h" - extern struct FxInit_s SuperFX; void S9xResetSuperFX() @@ -27,11 +26,11 @@ void S9xResetSuperFX() void S9xResetCPU() { ICPU.Registers.PB = 0; - ICPU.Registers.PC = S9xGetWord(0xFFFC); + ICPU.Registers.PC = S9xGetWord(0xfffc); ICPU.Registers.D.W = 0; ICPU.Registers.DB = 0; ICPU.Registers.SH = 1; - ICPU.Registers.SL = 0xFF; + ICPU.Registers.SL = 0xff; ICPU.Registers.XH = 0; ICPU.Registers.YH = 0; ICPU.Registers.P.W = 0; @@ -52,13 +51,12 @@ void S9xResetCPU() CPU.PCBase = NULL; CPU.PCAtOpcodeStart = NULL; CPU.WaitAddress = NULL; - CPU.WaitCounter = 0; - CPU.Cycles = 0; + CPU.WaitCounter = 1; + CPU.Cycles = 188; // This is the cycle count just after the jump to the Reset Vector. CPU.NextEvent = Settings.HBlankStart; CPU.V_Counter = 0; CPU.MemSpeed = SLOW_ONE_CYCLE; CPU.MemSpeedx2 = SLOW_ONE_CYCLE * 2; - CPU.FastROMSpeed = SLOW_ONE_CYCLE; CPU.AutoSaveTimer = 0; CPU.SRAMModified = false; CPU.BRKTriggered = false; @@ -72,7 +70,7 @@ void S9xResetCPU() S9xUnpackStatus(); } -static void CommonS9xReset(void) +static void CommonS9xReset() { if (Settings.SuperFX) S9xResetSuperFX(); @@ -101,14 +99,14 @@ static void CommonS9xReset(void) #endif } -void S9xReset(void) +void S9xReset() { CommonS9xReset(); S9xResetPPU(); memset(Memory.RAM, 0x55, 0x20000); } -void S9xSoftReset(void) +void S9xSoftReset() { CommonS9xReset(); S9xSoftResetPPU(); |