notaz.gp2x.de
/
fceu.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
smb3 and addams family hacks
[fceu.git]
/
x6502.h
diff --git
a/x6502.h
b/x6502.h
index
1b63a2f
..
83adca0
100644
(file)
--- 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
#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
#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_IRQBegin X6502_IRQBegin_d
#define X6502_IRQEnd X6502_IRQEnd_d
#define X6502_Rebase X6502_Rebase_d
+#define X6502_GetCycleCount() g_cnt
#define X6502_C
#define X6502_A
#define X6502_D
#define X6502_C
#define X6502_A
#define X6502_D
@@
-75,20
+78,23
@@
extern void FP_FASTAPASS(1) (*MapIRQHook)(int a);
#define X6502_Reset X6502_Reset_a
#define X6502_Power X6502_Power_a
#define X6502_AddCycles X6502_AddCycles_a
#define X6502_Reset X6502_Reset_a
#define X6502_Power X6502_Power_a
#define X6502_AddCycles X6502_AddCycles_a
-#define X6502_IRQBegin X6502_IRQBegin_a
-#define X6502_IRQEnd X6502_IRQEnd_a
+//#define X6502_IRQBegin X6502_IRQBegin_a
+//#define X6502_IRQEnd X6502_IRQEnd_a
+#define X6502_IRQBegin(w) nes_registers[4]|=w<<8
+#define X6502_IRQEnd(w) nes_registers[4]&=~(w<<8)
#define X6502_Rebase X6502_Rebase_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 */ \
#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(); \
X6502_Run_a(); \
- cycles -= (int32)nes_registers[7]; \
+ cycles -= (int32)nes_registers[7]
>>16
; \
asmcpu_update(cycles); \
} \
}
asmcpu_update(cycles); \
} \
}
@@
-103,6
+109,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_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) \
#define X6502_C
#define X6502_Run(c) \
@@
-117,6
+124,7
@@
extern void FP_FASTAPASS(1) (*MapIRQHook)(int a);
// c
#ifdef X6502_C
// c
#ifdef X6502_C
+extern int32 g_cnt;
void TriggerIRQ_c(void);
void TriggerNMI_c(void);
void TriggerNMINSF_c(void);
void TriggerIRQ_c(void);
void TriggerNMI_c(void);
void TriggerNMINSF_c(void);