char stra[64];
sprintf(stra,"framecpt : %d",framecpt);
S9xMessage(0,0,stra);
-#endif
+#endif
#if CONF_BUILD_ASM_CPU
asmMainLoop(&CPU);
#else
- for (;;) {\r
- APU_EXECUTE(1);\r
- if (CPU.Flags) {\r
- if (CPU.Flags & NMI_FLAG) {\r
- if (--CPU.NMICycleCount == 0) {\r
- CPU.Flags &= ~NMI_FLAG;\r
- if (CPU.WaitingForInterrupt) {\r
- CPU.WaitingForInterrupt = FALSE;\r
- CPU.PC++;\r
- }\r
- S9xOpcode_NMI ();\r
- }\r
- }\r
-\r
- if (CPU.Flags & IRQ_PENDING_FLAG) {\r
- if (CPU.IRQCycleCount == 0) {\r
- if (CPU.WaitingForInterrupt) {\r
- CPU.WaitingForInterrupt = FALSE;\r
- CPU.PC++;\r
- }\r
- if (CPU.IRQActive && !Settings.DisableIRQ) {\r
+ for (;;) {
+ APU_EXECUTE(1);
+ if (CPU.Flags) {
+ if (CPU.Flags & NMI_FLAG) {
+ if (--CPU.NMICycleCount == 0) {
+ CPU.Flags &= ~NMI_FLAG;
+ if (CPU.WaitingForInterrupt) {
+ CPU.WaitingForInterrupt = FALSE;
+ CPU.PC++;
+ }
+ S9xOpcode_NMI ();
+ }
+ }
+
+ if (CPU.Flags & IRQ_PENDING_FLAG) {
+ if (CPU.IRQCycleCount == 0) {
+ if (CPU.WaitingForInterrupt) {
+ CPU.WaitingForInterrupt = FALSE;
+ CPU.PC++;
+ }
+ if (CPU.IRQActive && !Settings.DisableIRQ) {
if (!CheckFlag(IRQ))
- S9xOpcode_IRQ ();\r
- } else {\r
+ S9xOpcode_IRQ ();
+ } else {
CPU.Flags &= ~IRQ_PENDING_FLAG;
- }\r
- } else {\r
+ }
+ } else {
CPU.IRQCycleCount--;
- }\r
+ }
}
-\r
- if (CPU.Flags & SCAN_KEYS_FLAG)\r
- break;\r
- }\r
-\r
-#ifdef CPU_SHUTDOWN\r
- CPU.PCAtOpcodeStart = CPU.PC;\r
-#endif\r
- CPU.Cycles += CPU.MemSpeed;\r
-\r
- (*ICPU.S9xOpcodes[*CPU.PC++].S9xOpcode) ();\r
-#ifdef USE_SA1\r
- if (SA1.Executing)\r
+ if (CPU.Flags & SCAN_KEYS_FLAG)
+ break;
+ }
+
+#ifdef CPU_SHUTDOWN
+ CPU.PCAtOpcodeStart = CPU.PC;
+#endif
+ CPU.Cycles += CPU.MemSpeed;
+
+ (*ICPU.S9xOpcodes[*CPU.PC++].S9xOpcode) ();
+
+#ifdef USE_SA1
+ if (SA1.Executing)
S9xSA1MainLoop ();
#endif
-\r
+
DO_HBLANK_CHECK ();
}
#endif
Registers.PC = CPU.PC - CPU.PCBase;
- //S9xPackStatus (); // not needed
+#if !CONF_BUILD_ASM_CPU
+ S9xPackStatus ();
+#endif
S9xAPUPackStatus ();
if (CPU.Flags & SCAN_KEYS_FLAG)
CPU.Flags |= NMI_FLAG;
CPU.NMICycleCount = CPU.NMITriggerPoint;
}
-
- #ifdef OLD_SNAPSHOT_CODE
- if (CPU.Flags & SAVE_SNAPSHOT_FLAG)
- {
- CPU.Flags &= ~SAVE_SNAPSHOT_FLAG;
- Registers.PC = CPU.PC - CPU.PCBase;
- //S9xPackStatus (); // not needed
- S9xAPUPackStatus ();
- Snapshot (NULL);
- }
- #endif
}
if (CPU.V_Counter == PPU.ScreenHeight + 3)