--- np2/x11/np2.c 2004/05/22 16:35:08 1.16 +++ np2/x11/np2.c 2007/01/23 15:48:20 1.27 @@ -10,8 +10,6 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES @@ -38,6 +36,7 @@ #include "toolwin.h" #include "viewer.h" #include "debugwin.h" +#include "skbdwin.h" #include "commng.h" #include "joymng.h" @@ -68,9 +67,19 @@ NP2OSCFG np2oscfg = { 0, /* F12KEY */ 0, /* MOUSE_SW */ + 0, /* JOYPAD1 */ 0, /* JOYPAD2 */ - { 0, 0, 0, 0 }, /* JOY1BTN */ + { 1, 2, 5, 6 }, /* JOY1BTN */ + { + { 0, 1 }, /* JOYAXISMAP[0] */ + { 0, 1 }, /* JOYAXISMAP[1] */ + }, + { + { 0, 1, 0xff, 0xff }, /* JOYBTNMAP[0] */ + { 0, 1, 0xff, 0xff }, /* JOYBTNMAP[1] */ + }, + { "", "" }, /* JOYDEV */ { COMPORT_MIDI, 0, 0x3e, 19200, "", "", "", "" }, /* mpu */ { @@ -86,32 +95,23 @@ NP2OSCFG np2oscfg = { 0, /* statsave */ 0, /* toolwin */ 0, /* keydisp */ + 0, /* softkbd */ 0, /* hostdrv_write */ 0, /* jastsnd */ 0, /* I286SAVE */ - SNDDRV_NODRV, /* snddrv */ - "", /* audiodev */ + SNDDRV_SDL, /* snddrv */ { "", "" }, /* MIDIDEV */ 0, /* MIDIWAIT */ MOUSE_RATIO_100, /* mouse_move_ratio */ -#if defined(USE_GTK) /* toolkit */ - "gtk", -#elif defined(USE_QT) - "qt", -#elif defined(USE_SDL) - "sdl", -#else - "unknown", -#endif - MMXFLAG_DISABLE, /* disablemmx */ - FALSE, /* shared_pixmap */ + INTERP_NEAREST, /* drawinterp */ + 0, /* F11KEY */ }; -BOOL np2running = FALSE; +volatile sig_atomic_t np2running = 0; BYTE scrnmode = 0; UINT framecnt = 0; @@ -139,7 +139,7 @@ char fontfilename[MAX_PATH] = FONTNAME_D char timidity_cfgfile_path[MAX_PATH]; -BOOL use_shared_pixmap; +int verbose = 0; UINT32 @@ -279,9 +279,10 @@ framereset(UINT cnt) framecnt = 0; scrnmng_dispclock(); kdispwin_draw((BYTE)cnt); + skbdwin_process(); + debugwin_process(); toolwin_draw((BYTE)cnt); viewer_allreload(FALSE); - debugwin_process(); if (np2oscfg.DISPCLK & 3) { if (sysmng_workclockrenewal()) { sysmng_updatecaption(3); @@ -308,7 +309,7 @@ mainloop(void *p) UNUSED(p); if (np2oscfg.NOWAIT) { - joy_flash(); + joymng_sync(); mousemng_callback(); pccore_exec(framecnt == 0); if (np2oscfg.DRAW_SKIP) { @@ -327,7 +328,7 @@ mainloop(void *p) } else if (np2oscfg.DRAW_SKIP) { /* frame skip */ if (framecnt < np2oscfg.DRAW_SKIP) { - joy_flash(); + joymng_sync(); mousemng_callback(); pccore_exec(framecnt == 0); framecnt++; @@ -338,7 +339,7 @@ mainloop(void *p) /* auto skip */ if (waitcnt == 0) { UINT cnt; - joy_flash(); + joymng_sync(); mousemng_callback(); pccore_exec(framecnt == 0); framecnt++; @@ -368,7 +369,7 @@ mainloop(void *p) return TRUE; } -#if defined(GCC_CPU_ARCH_IA32_COMPAT) +#if defined(GCC_CPU_ARCH_IA32) int mmxflag; int @@ -376,6 +377,9 @@ havemmx(void) { int rv; +#if defined(GCC_CPU_ARCH_AMD64) + rv = 1; +#else /* !GCC_CPU_ARCH_AMD64 */ asm volatile ( "pushf;" "popl %%eax;" @@ -396,7 +400,8 @@ havemmx(void) "andl $0x00800000, %0;" ".nocpuid:" : "=a" (rv)); - +#endif /* GCC_CPU_ARCH_AMD64 */ return rv; } -#endif /* GCC_CPU_ARCH_IA32_COMPAT */ + +#endif /* GCC_CPU_ARCH_IA32 */