X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=fceu.git;a=blobdiff_plain;f=x6502.h;h=f13bbdd1f6f0e12c0ca693dd0c94e4648c5b9965;hp=1b63a2f46ba182ad4f275be900c52e6c31833990;hb=92764e6252a3691033d6044b466bf716c96b62d5;hpb=c0bf6f9f02a2b6afb961a7e9195e2168d7e9cecf diff --git a/x6502.h b/x6502.h index 1b63a2f..f13bbdd 100644 --- a/x6502.h +++ b/x6502.h @@ -52,6 +52,8 @@ extern void FP_FASTAPASS(1) (*MapIRQHook)(int a); #define FCEU_IQDPCM 0x10 #define FCEU_IQFCOUNT 0x20 #define FCEU_IQTEMP 0x80 +// from 0.98.15 +#define FCEU_IQEXT2 0x02 #if defined(DEBUG_ASM_6502) #define TriggerIRQ TriggerIRQ_d @@ -64,6 +66,7 @@ extern void FP_FASTAPASS(1) (*MapIRQHook)(int a); #define X6502_IRQBegin X6502_IRQBegin_d #define X6502_IRQEnd X6502_IRQEnd_d #define X6502_Rebase X6502_Rebase_d +#define X6502_GetCycleCount() 0 #define X6502_C #define X6502_A #define X6502_D @@ -78,17 +81,18 @@ extern void FP_FASTAPASS(1) (*MapIRQHook)(int a); #define X6502_IRQBegin X6502_IRQBegin_a #define X6502_IRQEnd X6502_IRQEnd_a #define X6502_Rebase X6502_Rebase_a +#define X6502_GetCycleCount() ((int32)nes_registers[7]>>16) #define X6502_A #define X6502_Run(c) \ { \ int32 cycles = (c) << 4; /* *16 */ \ if (PAL) cycles -= (c); /* *15 */ \ - nes_registers[7]+=cycles; \ - if (nes_registers[7] > 0) { \ - cycles = (int32)nes_registers[7]; \ + nes_registers[7]+=cycles<<16; \ + cycles=(int32)nes_registers[7]>>16; \ + if (cycles > 0) { \ X6502_Run_a(); \ - cycles -= (int32)nes_registers[7]; \ + cycles -= (int32)nes_registers[7]>>16; \ asmcpu_update(cycles); \ } \ } @@ -103,6 +107,7 @@ extern void FP_FASTAPASS(1) (*MapIRQHook)(int a); #define X6502_IRQBegin X6502_IRQBegin_c #define X6502_IRQEnd X6502_IRQEnd_c #define X6502_Rebase(...) +#define X6502_GetCycleCount() X.count #define X6502_C #define X6502_Run(c) \