\r
extern int CycloneVer; // Version number of library\r
\r
+extern long CycloneJumpTab[65536]; // default jump table\r
+\r
struct Cyclone\r
{\r
unsigned int d[8]; // [r7,#0x00]\r
int (*IrqCallback)(int int_level); // [r7,#0x8c] optional irq callback function, see config.h\r
void (*ResetCallback)(void); // [r7,#0x90] if enabled in config.h, calls this whenever RESET opcode is encountered.\r
int (*UnrecognizedCallback)(void); // [r7,#0x94] if enabled in config.h, calls this whenever unrecognized opcode is encountered.\r
- unsigned int internal[6]; // [r7,#0x98] reserved for internal use, do not change.\r
+ void *internal_CycloneEnd; // [r7,#0x98] internal, do not modify\r
+ int internal_s_cycles; // [r7,#0x9c] internal, do not modify\r
+ void *internal_s_CycloneEnd; // [r7,#0xa0] internal, do not modify\r
+ unsigned int internal[3]; // [r7,#0xa4] reserved for internal use, do not change.\r
};\r
\r
// Initialize. Used only if Cyclone was compiled with compressed jumptable, see config.h\r
-void CycloneInit(void);\r
+#define CycloneInit() \\r
+ CycloneInitJT(CycloneJumpTab)\r
+void CycloneInitJT(void *jt);\r
\r
// Reset\r
-void CycloneReset(struct Cyclone *pcy);\r
+#define CycloneReset(pcy) \\r
+ CycloneResetJT(pcy, CycloneJumpTab)\r
+void CycloneResetJT(struct Cyclone *pcy, void *jt);\r
\r
// Run cyclone. Cycles should be specified in context (pcy->cycles)\r
void CycloneRun(struct Cyclone *pcy);\r
void CycloneUnpack(struct Cyclone *pcy, const void *save_buffer);\r
\r
// genesis: if 1, switch to normal TAS handlers\r
-void CycloneSetRealTAS(int use_real);\r
+#define CycloneSetRealTAS(use_real) \\r
+ CycloneSetRealTAS_JT(use_real, CycloneJumpTab)\r
+void CycloneSetRealTAS_JT(int use_real, void *jt);\r
\r
\r
// These values are special return values for IrqCallback.\r