| version 1.2, 2003/11/17 16:12:27 | version 1.12, 2004/01/23 14:35:45 | 
| Line 28 | Line 28 | 
 | #include "compiler.h" | #include "compiler.h" | 
 |  |  | 
 | #include "np2.h" | #include "np2.h" | 
 |  | #include "pccore.h" | 
 | #include "dosio.h" | #include "dosio.h" | 
 | #include "scrndraw.h" | #include "scrndraw.h" | 
 | #include "statsave.h" |  | 
 | #include "timing.h" | #include "timing.h" | 
 | #include "toolkit.h" | #include "toolkit.h" | 
 |  |  | 
| #include "keydisp.h" | #include "kdispwin.h" | 
 | #include "toolwin.h" | #include "toolwin.h" | 
 |  | #include "viewer.h" | 
 |  |  | 
 | #include "commng.h" | #include "commng.h" | 
 |  | #include "joymng.h" | 
 | #include "kbdmng.h" | #include "kbdmng.h" | 
 | #include "mousemng.h" | #include "mousemng.h" | 
 | #include "scrnmng.h" | #include "scrnmng.h" | 
 | #include "soundmng.h" | #include "soundmng.h" | 
 | #include "sysmng.h" | #include "sysmng.h" | 
 |  | #include "taskmng.h" | 
 |  |  | 
 |  |  | 
 | NP2OSCFG np2oscfg = { | NP2OSCFG np2oscfg = { | 
| #if !defined(CPU386)            /* titles */ | #if !defined(CPUCORE_IA32)              /* titles */ | 
 | "Neko Project II", | "Neko Project II", | 
 | #else | #else | 
 | "Neko Project II + IA32", | "Neko Project II + IA32", | 
 | #endif | #endif | 
 |  |  | 
| 2,                      /* paddingx */ | 0,                      /* paddingx */ | 
| 2,                      /* paddingy */ | 0,                      /* paddingy */ | 
 |  |  | 
 | 0,                      /* NOWAIT */ | 0,                      /* NOWAIT */ | 
| 2,                      /* DRAW_SKIP */ | 0,                      /* DRAW_SKIP */ | 
 |  |  | 
 | 0,                      /* DISPCLK */ | 0,                      /* DISPCLK */ | 
 |  |  | 
 | KEY_KEY106,             /* KEYBOARD */ | KEY_KEY106,             /* KEYBOARD */ | 
| 0,                      /* F12COPY */ | 0,                      /* F12KEY */ | 
 |  |  | 
 | 0,                      /* MOUSE_SW */ | 0,                      /* MOUSE_SW */ | 
 | 0,                      /* JOYPAD1 */ | 0,                      /* JOYPAD1 */ | 
| Line 78  NP2OSCFG np2oscfg = { | Line 81  NP2OSCFG np2oscfg = { | 
 | 0,                      /* toolwin */ | 0,                      /* toolwin */ | 
 | 0,                      /* keydisp */ | 0,                      /* keydisp */ | 
 | 0,                      /* hostdrv_write */ | 0,                      /* hostdrv_write */ | 
 |  | 0,                      /* jastsnd */ | 
 | 0,                      /* I286SAVE */ | 0,                      /* I286SAVE */ | 
 |  |  | 
 | SNDDRV_NODRV,           /* snddrv */ | SNDDRV_NODRV,           /* snddrv */ | 
| Line 89  NP2OSCFG np2oscfg = { | Line 93  NP2OSCFG np2oscfg = { | 
 |  |  | 
 | #if defined(USE_GTK)            /* toolkit */ | #if defined(USE_GTK)            /* toolkit */ | 
 | "gtk", | "gtk", | 
| #else | #elif defined(USE_QT) | 
 | "qt", | "qt", | 
 |  | #elif defined(USE_SDL) | 
 |  | "sdl", | 
 |  | #else | 
 |  | "unknown", | 
 | #endif | #endif | 
 |  |  | 
 | MMXFLAG_DISABLE,        /* disablemmx */ | MMXFLAG_DISABLE,        /* disablemmx */ | 
 |  | FALSE,                  /* shared_pixmap */ | 
 | }; | }; | 
 |  |  | 
 | BOOL np2running = FALSE; | BOOL np2running = FALSE; | 
| Line 112  char bmpfilefolder[MAX_PATH]; | Line 121  char bmpfilefolder[MAX_PATH]; | 
 | char modulefile[MAX_PATH]; | char modulefile[MAX_PATH]; | 
 | char statpath[MAX_PATH]; | char statpath[MAX_PATH]; | 
 |  |  | 
 |  | #ifndef FONTFACE | 
 |  | #define FONTFACE "-misc-fixed-%s-r-normal--%d-*-*-*-*-*-*-*" | 
 |  | #endif | 
 |  | char fontname[1024] = FONTFACE; | 
 |  |  | 
 |  | #ifndef FONTNAME_DEFAULT | 
 |  | #define FONTNAME_DEFAULT        "./default.ttf" | 
 |  | #endif | 
 |  | char fontfilename[MAX_PATH] = FONTNAME_DEFAULT; | 
 |  |  | 
 | char timidity_cfgfile_path[MAX_PATH]; | char timidity_cfgfile_path[MAX_PATH]; | 
 |  |  | 
 |  | BOOL use_shared_pixmap; | 
 |  |  | 
 |  |  | 
 | UINT32 | UINT32 | 
 | gettick(void) | gettick(void) | 
| Line 214  changescreen(BYTE newmode) | Line 235  changescreen(BYTE newmode) | 
 | if (renewal) { | if (renewal) { | 
 | if (renewal & SCRNMODE_FULLSCREEN) { | if (renewal & SCRNMODE_FULLSCREEN) { | 
 | toolwin_destroy(); | toolwin_destroy(); | 
| keydisp_destroy(); | kdispwin_destroy(); | 
 | } | } | 
 | soundmng_stop(); | soundmng_stop(); | 
 | mouse_running(MOUSE_STOP); | mouse_running(MOUSE_STOP); | 
| Line 234  changescreen(BYTE newmode) | Line 255  changescreen(BYTE newmode) | 
 | toolwin_create(); | toolwin_create(); | 
 | } | } | 
 | if (np2oscfg.keydisp) { | if (np2oscfg.keydisp) { | 
| keydisp_create(); | kdispwin_create(); | 
 | } | } | 
 | } | } | 
 | } | } | 
| Line 251  framereset(UINT cnt) | Line 272  framereset(UINT cnt) | 
 |  |  | 
 | framecnt = 0; | framecnt = 0; | 
 | scrnmng_dispclock(); | scrnmng_dispclock(); | 
| keydisp_draw((BYTE)cnt); | kdispwin_draw((BYTE)cnt); | 
 | toolwin_draw((BYTE)cnt); | toolwin_draw((BYTE)cnt); | 
 |  | viewer_allreload(FALSE); | 
 | if (np2oscfg.DISPCLK & 3) { | if (np2oscfg.DISPCLK & 3) { | 
 | if (sysmng_workclockrenewal()) { | if (sysmng_workclockrenewal()) { | 
 | sysmng_updatecaption(3); | sysmng_updatecaption(3); | 
| Line 268  processwait(UINT cnt) | Line 290  processwait(UINT cnt) | 
 | timing_setcount(0); | timing_setcount(0); | 
 | framereset(cnt); | framereset(cnt); | 
 | } else { | } else { | 
| usleep(1); | taskmng_sleep(1); | 
|  | } | 
|  | } | 
|  |  | 
|  | int | 
|  | mainloop(void *p) | 
|  | { | 
|  |  | 
|  | UNUSED(p); | 
|  |  | 
|  | if (np2oscfg.NOWAIT) { | 
|  | joy_flash(); | 
|  | mousemng_callback(); | 
|  | pccore_exec(framecnt == 0); | 
|  | if (np2oscfg.DRAW_SKIP) { | 
|  | /* nowait frame skip */ | 
|  | framecnt++; | 
|  | if (framecnt >= np2oscfg.DRAW_SKIP) { | 
|  | processwait(0); | 
|  | } | 
|  | } else { | 
|  | /* nowait auto skip */ | 
|  | framecnt = 1; | 
|  | if (timing_getcount()) { | 
|  | processwait(0); | 
|  | } | 
|  | } | 
|  | } else if (np2oscfg.DRAW_SKIP) { | 
|  | /* frame skip */ | 
|  | if (framecnt < np2oscfg.DRAW_SKIP) { | 
|  | joy_flash(); | 
|  | mousemng_callback(); | 
|  | pccore_exec(framecnt == 0); | 
|  | framecnt++; | 
|  | } else { | 
|  | processwait(np2oscfg.DRAW_SKIP); | 
|  | } | 
|  | } else { | 
|  | /* auto skip */ | 
|  | if (waitcnt == 0) { | 
|  | UINT cnt; | 
|  | joy_flash(); | 
|  | mousemng_callback(); | 
|  | pccore_exec(framecnt == 0); | 
|  | framecnt++; | 
|  | cnt = timing_getcount(); | 
|  | if (framecnt > cnt) { | 
|  | waitcnt = framecnt; | 
|  | if (framemax > 1) { | 
|  | framemax--; | 
|  | } | 
|  | } else if (framecnt >= framemax) { | 
|  | if (framemax < 12) { | 
|  | framemax++; | 
|  | } | 
|  | if (cnt >= 12) { | 
|  | timing_reset(); | 
|  | } else { | 
|  | timing_setcount(cnt - framecnt); | 
|  | } | 
|  | framereset(0); | 
|  | } | 
|  | } else { | 
|  | processwait(waitcnt); | 
|  | waitcnt = framecnt; | 
|  | } | 
 | } | } | 
 |  |  | 
 |  | return TRUE; | 
 | } | } | 
 |  |  | 
 | #if defined(__GNUC__) && (defined(i386) || defined(__i386__)) | #if defined(__GNUC__) && (defined(i386) || defined(__i386__)) |