#ifndef __FAME_H__\r
#define __FAME_H__\r
\r
+// uintptr_t\r
+#include <stdlib.h>\r
+#ifndef _MSC_VER\r
+#include <stdint.h>\r
+#endif\r
+\r
#ifdef __cplusplus\r
extern "C" {\r
#endif\r
signed int cycles_needed;\r
\r
unsigned short *PC;\r
- unsigned long BasePC;\r
+ uintptr_t BasePC;\r
unsigned int flag_C;\r
unsigned int flag_V;\r
unsigned int flag_NotZ;\r
unsigned char not_polling;\r
unsigned char pad[3];\r
\r
- unsigned long Fetch[M68K_FETCHBANK1];\r
+ uintptr_t Fetch[M68K_FETCHBANK1];\r
} M68K_CONTEXT;\r
\r
-extern M68K_CONTEXT *g_m68kcontext;\r
+typedef enum\r
+{\r
+ fm68k_reason_emulate = 0,\r
+ fm68k_reason_init,\r
+ fm68k_reason_idle_install,\r
+ fm68k_reason_idle_remove,\r
+} fm68k_call_reason;\r
\r
/************************/\r
/* Function definition */\r
\r
/* General purpose functions */\r
void fm68k_init(void);\r
-int fm68k_reset(void);\r
-int fm68k_emulate(int n, int dualcore, int idle_mode);\r
-int fm68k_would_interrupt(void); // to be called from fm68k_emulate()\r
+int fm68k_reset(M68K_CONTEXT *ctx);\r
+int fm68k_emulate(M68K_CONTEXT *ctx, int n, fm68k_call_reason reason);\r
+int fm68k_would_interrupt(M68K_CONTEXT *ctx); // to be called from fm68k_emulate()\r
\r
-unsigned fm68k_get_pc(M68K_CONTEXT *context);\r
+unsigned int fm68k_get_pc(const M68K_CONTEXT *ctx);\r
\r
+// PICODRIVE_HACK\r
+int fm68k_idle_install(void);\r
+int fm68k_idle_remove(void);\r
\r
#ifdef __cplusplus\r
}\r