\r
#define PICO_PEN_ADJUST_X 4\r
#define PICO_PEN_ADJUST_Y 2\r
-static int pico_pen_x = 320/2, pico_pen_y = 240/2, pico_inp_mode = 0;\r
+static int pico_pen_x = 320/2, pico_pen_y = 240/2;\r
\r
static void emu_msg_cb(const char *msg);\r
static void emu_msg_tray_open(void);\r
\r
static void RunEventsPico(unsigned int events, unsigned int gp2x_keys)\r
{\r
- if (events & (1 << 3)) {\r
- pico_inp_mode++;\r
- if (pico_inp_mode > 2) pico_inp_mode = 0;\r
- switch (pico_inp_mode) {\r
- case 2: strcpy(noticeMsg, "Input: Pen on Pad "); break;\r
- case 1: strcpy(noticeMsg, "Input: Pen on Storyware"); break;\r
- case 0: strcpy(noticeMsg, "Input: Joytick ");\r
- PicoPicohw.pen_pos[0] = PicoPicohw.pen_pos[1] = 0x8000;\r
- break;\r
- }\r
- gettimeofday(¬iceMsgTime, 0);\r
- }\r
- if (events & (1 << 4)) {\r
- PicoPicohw.page--;\r
- if (PicoPicohw.page < 0) PicoPicohw.page = 0;\r
- sprintf(noticeMsg, "Page %i ", PicoPicohw.page);\r
- gettimeofday(¬iceMsgTime, 0);\r
- }\r
- if (events & (1 << 5)) {\r
- PicoPicohw.page++;\r
- if (PicoPicohw.page > 6) PicoPicohw.page = 6;\r
- sprintf(noticeMsg, "Page %i ", PicoPicohw.page);\r
- gettimeofday(¬iceMsgTime, 0);\r
- }\r
- if (pico_inp_mode != 0) {\r
+ emu_RunEventsPico(events);\r
+\r
+ if (pico_inp_mode != 0)\r
+ {\r
PicoPad[0] &= ~0x0f; // release UDLR\r
if (gp2x_keys & GP2X_UP) { pico_pen_y--; if (pico_pen_y < 0) pico_pen_y = 0; }\r
if (gp2x_keys & GP2X_DOWN) { pico_pen_y++; if (pico_pen_y > 239-PICO_PEN_ADJUST_Y) pico_pen_y = 239-PICO_PEN_ADJUST_Y; }\r
}\r
}\r
\r
-static void change_fast_forward(int set_on)\r
-{\r
- static void *set_PsndOut = NULL;\r
- static int set_Frameskip, set_EmuOpt, is_on = 0;\r
-\r
- if (set_on && !is_on) {\r
- set_PsndOut = PsndOut;\r
- set_Frameskip = currentConfig.Frameskip;\r
- set_EmuOpt = currentConfig.EmuOpt;\r
- PsndOut = NULL;\r
- currentConfig.Frameskip = 8;\r
- currentConfig.EmuOpt &= ~4;\r
- is_on = 1;\r
- }\r
- else if (!set_on && is_on) {\r
- PsndOut = set_PsndOut;\r
- currentConfig.Frameskip = set_Frameskip;\r
- currentConfig.EmuOpt = set_EmuOpt;\r
- PsndRerate(1);\r
- update_volume(0, 0);\r
- reset_timing = 1;\r
- is_on = 0;\r
- }\r
-}\r
-\r
static void RunEvents(unsigned int which)\r
{\r
if (which & 0x1800) // save or load (but not both)\r
if (events & 0x6000)\r
update_volume(1, events & 0x2000);\r
\r
- if ((events ^ prevEvents) & 0x40)\r
- change_fast_forward(events & 0x40);\r
+ if ((events ^ prevEvents) & 0x40) {\r
+ emu_changeFastForward(events & 0x40);\r
+ update_volume(0, 0);\r
+ reset_timing = 1;\r
+ }\r
\r
events &= ~prevEvents;\r
\r
if (PicoAHW == PAHW_PICO)\r
RunEventsPico(events, keys);\r
-\r
if (events) RunEvents(events);\r
if (movie_data) emu_updateMovie();\r
\r
frames_done++; frames_shown++;\r
}\r
\r
- change_fast_forward(0);\r
+ emu_changeFastForward(0);\r
\r
if (PicoAHW & PAHW_MCD) PicoCDBufferFree();\r
\r