#define FAMEC_ADR_BITS 24\r
// #define FAMEC_FETCHBITS 8\r
#define FAMEC_DATABITS 8\r
+#define FAMEC_32BIT_PC\r
\r
#define USE_CYCLONE_TIMING\r
#define USE_CYCLONE_TIMING_DIV\r
#define GET_PC \\r
(u32)PC - BasePC;\r
\r
+\r
+#ifndef FAMEC_32BIT_PC\r
+\r
#define SET_PC(A) \\r
BasePC = g_m68kcontext->Fetch[((A) >> M68K_FETCHSFT) & M68K_FETCHMASK]; \\r
/* BasePC -= (A) & 0xFF000000; */ \\r
PC = (u16*)(((A) & M68K_ADR_MASK) + BasePC);\r
\r
-#define SET_PC_BASE(P,B,A) \\r
- (B) = g_m68kcontext->Fetch[((A) >> M68K_FETCHSFT) & M68K_FETCHMASK]; \\r
- /* (B) -= (A) & 0xFF000000; */ \\r
- (P) = (u16*)(((A) & M68K_ADR_MASK) + (B));\r
+#else\r
+\r
+#define SET_PC(A) \\r
+ BasePC = g_m68kcontext->Fetch[((A) >> M68K_FETCHSFT) & M68K_FETCHMASK]; \\r
+ BasePC -= (A) & 0xFF000000; \\r
+ PC = (u16*)((A) + BasePC);\r
+\r
+#endif\r
\r
\r
#define PRE_IO \\r
/* adjust SR */\r
flag_S = M68K_SR_S;\r
\r
- newPC&=M68K_ADR_MASK&~1; // don't crash on games with bad vector tables\r
+#ifndef FAMEC_32BIT_PC\r
+ newPC&=M68K_ADR_MASK\r
+#endif\r
+ newPC&=~1; // don't crash on games with bad vector tables\r
\r
SET_PC(newPC)\r
\r