--- np2/macosx/np2.cpp 2003/10/19 14:56:15 1.6 +++ np2/macosx/np2.cpp 2003/10/22 16:40:45 1.10 @@ -246,6 +246,14 @@ static void HandleMenuChoice(long wParam update |= SYS_UPDATECFG; break; +#if defined(NP2GCC) + case IDM_MOUSE: + mouse_running(MOUSE_XOR); + menu_setmouse(np2oscfg.MOUSE_SW ^ 1); + sysmng_update(SYS_UPDATECFG); + break; +#endif + case IDM_KEY: menu_setkey(0); keystat_resetjoykey(); @@ -502,19 +510,6 @@ static void eventproc(EventRecord *event if (event->modifiers & cmdKey) { HandleMenuChoice(MenuKey(event->message & charCodeMask)); } - else { -#if defined(NP2GCC) - if ((((event->message & keyCodeMask) >> 8) == 0x6f) && - (!np2oscfg.F12COPY)) { - mouse_running(MOUSE_XOR); - menu_setmouse(np2oscfg.MOUSE_SW ^ 1); - sysmng_update(SYS_UPDATECFG); - } - else { - mackbd_down(0, ((event->message) & keyCodeMask) >> 8); - } -#endif - } break; case keyUp: @@ -690,23 +685,32 @@ int main(int argc, char *argv[]) { } else { // auto skip if (!waitcnt) { + UINT cnt; #if defined(NP2GCC) mouse_callback(); #endif mackbd_callback(); pccore_exec(framecnt == 0); framecnt++; - if (timing_getcount() < framecnt) { + // ¥Æ¥¹¥È + cnt = timing_getcount(); + if (framecnt > cnt) { waitcnt = framecnt; if (framemax > 1) { framemax--; } } else if (framecnt >= framemax) { - waitcnt = framecnt; if (framemax < 12) { framemax++; } + if (cnt >= 12) { + timing_init(); + } + else { + timing_setcount(cnt - framecnt); + } + framecnt = 0; } } else {