Diff for /np2/win9xc/np2.cpp between versions 1.2 and 1.15

version 1.2, 2003/10/18 10:00:29 version 1.15, 2004/01/30 14:33:28
Line 1 Line 1
 #include        "compiler.h"  #include        "compiler.h"
 #include        <time.h>  #include        <time.h>
   #ifndef __GNUC__
 #include        <winnls32.h>  #include        <winnls32.h>
 #include        "resource.h"  #endif
 #include        "strres.h"  #include        "strres.h"
   #include        "parts.h"
   #include        "resource.h"
 #include        "np2.h"  #include        "np2.h"
 #include        "np2arg.h"  #include        "np2arg.h"
 #include        "dosio.h"  #include        "dosio.h"
Line 46 Line 49
 static  char            np2help[] = "np2.hlp";  static  char            np2help[] = "np2.hlp";
 static  char            np2resume[] = "sav";  static  char            np2resume[] = "sav";
   
 static  const char      szAppCaption[] = "Neko Project II - C version";  #if defined(CPUCORE_IA32)
                   const char szAppCaption[] = "Neko Project II (IA-32)";
   #else
                   const char szAppCaption[] = "Neko Project II (C Version)";
   #endif
 static  const char      szClassName[] = "NP2-MainWindow";  static  const char      szClassName[] = "NP2-MainWindow";
   
   
                 NP2OSCFG        np2oscfg = {                  NP2OSCFG        np2oscfg = {
                                                 CW_USEDEFAULT, CW_USEDEFAULT, 0, 2,                                                  CW_USEDEFAULT, CW_USEDEFAULT, 0, 0,
                                                 KEY_UNKNOWN, 0,                                                  KEY_UNKNOWN, 0,
                                                 0, 0, 0, {1, 2, 2, 1},                                                  0, 0, 0, {1, 2, 2, 1},
                                                 0};                                                  0, 0};
   
                 HWND            hWndMain;                  HWND            hWndMain;
                 HINSTANCE       hInst;                  HINSTANCE       hInst;
Line 132  LRESULT CALLBACK WndProc(HWND hWnd, UINT Line 139  LRESULT CALLBACK WndProc(HWND hWnd, UINT
   
         switch (msg) {          switch (msg) {
                 case WM_CREATE:                  case WM_CREATE:
   #ifndef __GNUC__
                         WINNLSEnableIME(hWnd, FALSE);                          WINNLSEnableIME(hWnd, FALSE);
 //                      DragAcceptFiles(hWnd, TRUE);  #endif
                         break;                          break;
   
                 case WM_SYSCOMMAND:                  case WM_SYSCOMMAND:
Line 299  LRESULT CALLBACK WndProc(HWND hWnd, UINT Line 307  LRESULT CALLBACK WndProc(HWND hWnd, UINT
   
                                 case IDM_KEY:                                  case IDM_KEY:
                                         xmenu_setkey(0);                                          xmenu_setkey(0);
                                           update |= SYS_UPDATECFG;
                                         break;                                          break;
   
                                 case IDM_JOY1:                                  case IDM_JOY1:
                                         xmenu_setkey(1);                                          xmenu_setkey(1);
                                           update |= SYS_UPDATECFG;
                                         break;                                          break;
   
                                 case IDM_JOY2:                                  case IDM_JOY2:
                                         xmenu_setkey(2);                                          xmenu_setkey(2);
                                           update |= SYS_UPDATECFG;
                                         break;                                          break;
   
                                 case IDM_XSHIFT:                                  case IDM_XSHIFT:
                                         xmenu_setxshift(np2cfg.XSHIFT ^ 1);                                          xmenu_setxshift(np2cfg.XSHIFT ^ 1);
                                         keystat_forcerelease(0x70);                                          keystat_forcerelease(0x70);
                                           update |= SYS_UPDATECFG;
                                         break;                                          break;
   
                                 case IDM_XCTRL:                                  case IDM_XCTRL:
                                         xmenu_setxshift(np2cfg.XSHIFT ^ 2);                                          xmenu_setxshift(np2cfg.XSHIFT ^ 2);
                                         keystat_forcerelease(0x74);                                          keystat_forcerelease(0x74);
                                           update |= SYS_UPDATECFG;
                                         break;                                          break;
   
                                 case IDM_XGRPH:                                  case IDM_XGRPH:
                                         xmenu_setxshift(np2cfg.XSHIFT ^ 4);                                          xmenu_setxshift(np2cfg.XSHIFT ^ 4);
                                         keystat_forcerelease(0x73);                                          keystat_forcerelease(0x73);
                                           update |= SYS_UPDATECFG;
                                         break;                                          break;
   
                                 case IDM_F12MOUSE:                                  case IDM_F12MOUSE:
                                         xmenu_setf12copy(0);                                          xmenu_setf12copy(0);
                                         keystat_resetcopyhelp();                                          winkbd_resetf12();
                                         update |= SYS_UPDATECFG;                                          update |= SYS_UPDATEOSCFG;
                                         break;                                          break;
   
                                 case IDM_F12COPY:                                  case IDM_F12COPY:
                                         xmenu_setf12copy(1);                                          xmenu_setf12copy(1);
                                         keystat_resetcopyhelp();                                          winkbd_resetf12();
                                         update |= SYS_UPDATECFG;                                          update |= SYS_UPDATEOSCFG;
                                         break;                                          break;
   
                                 case IDM_F12STOP:                                  case IDM_F12STOP:
                                         xmenu_setf12copy(2);                                          xmenu_setf12copy(2);
                                         keystat_resetcopyhelp();                                          winkbd_resetf12();
                                         update |= SYS_UPDATECFG;                                          update |= SYS_UPDATEOSCFG;
                                           break;
   
                                   case IDM_F12EQU:
                                           xmenu_setf12copy(3);
                                           winkbd_resetf12();
                                           update |= SYS_UPDATEOSCFG;
                                           break;
   
                                   case IDM_F12COMMA:
                                           xmenu_setf12copy(4);
                                           winkbd_resetf12();
                                           update |= SYS_UPDATEOSCFG;
                                         break;                                          break;
   
                                 case IDM_BEEPOFF:                                  case IDM_BEEPOFF:
Line 367  LRESULT CALLBACK WndProc(HWND hWnd, UINT Line 393  LRESULT CALLBACK WndProc(HWND hWnd, UINT
                                         break;                                          break;
   
                                 case IDM_NOSOUND:                                  case IDM_NOSOUND:
                                         xmenu_setsound(0);                                          xmenu_setsound(0x00);
                                         update |= SYS_UPDATECFG;                                          update |= SYS_UPDATECFG;
                                         break;                                          break;
   
                                 case IDM_PC9801_14:                                  case IDM_PC9801_14:
                                         xmenu_setsound(1);                                          xmenu_setsound(0x01);
                                         update |= SYS_UPDATECFG;                                          update |= SYS_UPDATECFG;
                                         break;                                          break;
   
                                 case IDM_PC9801_26K:                                  case IDM_PC9801_26K:
                                         {                                          xmenu_setsound(0x02);
                                                 BYTE    sw;                                          update |= SYS_UPDATECFG;
                                                 sw = np2cfg.SOUND_SW;  
                                                 if (sw & 4) {  
                                                         sw &= 6;  
                                                         sw ^= 2;  
                                                 }  
                                                 else {  
                                                         sw = 2;  
                                                 }  
                                                 xmenu_setsound(sw);  
                                                 update |= SYS_UPDATECFG;  
                                         }  
                                         break;                                          break;
   
                                 case IDM_PC9801_86:                                  case IDM_PC9801_86:
                                         {                                          xmenu_setsound(0x04);
                                                 BYTE    sw;                                          update |= SYS_UPDATECFG;
                                                 sw = np2cfg.SOUND_SW;  
                                                 if (sw & 2) {  
                                                         sw &= 6;  
                                                         sw ^= 4;  
                                                 }  
                                                 else if (!(sw & 4)) {  
                                                         sw = 4;  
                                                 }  
                                                 xmenu_setsound(sw);  
                                                 update |= SYS_UPDATECFG;  
                                         }  
                                         break;                                          break;
   
                                 case IDM_PC9801_118:                                  case IDM_PC9801_26_86:
                                         xmenu_setsound(8);                                          xmenu_setsound(0x06);
                                         update |= SYS_UPDATECFG;                                          update |= SYS_UPDATECFG;
                                         break;                                          break;
   
                                 case IDM_CHIBIOTO:                                  case IDM_PC9801_86_CB:
                                         {                                          xmenu_setsound(0x14);
                                                 BYTE    sw;                                          update |= SYS_UPDATECFG;
                                                 sw = np2cfg.SOUND_SW;                                          break;
                                                 if (sw & 4) {  
                                                         sw &= 0x14;                                  case IDM_PC9801_118:
                                                         sw ^= 0x10;                                          xmenu_setsound(0x08);
                                                 }                                          update |= SYS_UPDATECFG;
                                                 else {  
                                                         sw = 0x14;  
                                                 }  
                                                 xmenu_setsound(sw);  
                                                 update |= SYS_UPDATECFG;  
                                         }  
                                         break;                                          break;
   
                                 case IDM_SPEAKBOARD:                                  case IDM_SPEAKBOARD:
Line 444  LRESULT CALLBACK WndProc(HWND hWnd, UINT Line 442  LRESULT CALLBACK WndProc(HWND hWnd, UINT
                                         update |= SYS_UPDATECFG;                                          update |= SYS_UPDATECFG;
                                         break;                                          break;
   
                                 case IDM_SNDOPT:                                  case IDM_JASTSOUND:
                                         winuienter();                                          xmenu_setjastsound(np2oscfg.jastsnd ^ 1);
                                         dialog_sndopt(hWnd);                                          update |= SYS_UPDATEOSCFG;
                                         winuileave();  
                                         break;                                          break;
   
                                 case IDM_SEEKSND:                                  case IDM_SEEKWAIT:
                                         xmenu_setmotorflg(np2cfg.MOTOR ^ 1);                                          xmenu_setmotorflg(np2cfg.MOTOR ^ 1);
                                         update |= SYS_UPDATECFG;                                          update |= SYS_UPDATECFG;
                                         break;                                          break;
Line 494  LRESULT CALLBACK WndProc(HWND hWnd, UINT Line 491  LRESULT CALLBACK WndProc(HWND hWnd, UINT
                                         pc9861k_midipanic();                                          pc9861k_midipanic();
                                         break;                                          break;
   
                                   case IDM_SNDOPT:
                                           winuienter();
                                           dialog_sndopt(hWnd);
                                           winuileave();
                                           break;
   
                                 case IDM_BMPSAVE:                                  case IDM_BMPSAVE:
                                         winuienter();                                          winuienter();
                                         dialog_writebmp(hWnd);                                          dialog_writebmp(hWnd);
Line 642  LRESULT CALLBACK WndProc(HWND hWnd, UINT Line 645  LRESULT CALLBACK WndProc(HWND hWnd, UINT
                                 sysmng_update(SYS_UPDATECFG);                                  sysmng_update(SYS_UPDATECFG);
                         }                          }
                         else {                          else {
                                 winkeydown106(wParam, lParam);                                  winkbd_keydown(wParam, lParam);
                         }                          }
                         break;                          break;
                 case WM_KEYUP:                  case WM_KEYUP:
Line 650  LRESULT CALLBACK WndProc(HWND hWnd, UINT Line 653  LRESULT CALLBACK WndProc(HWND hWnd, UINT
                                 return(DefWindowProc(hWnd, WM_SYSKEYUP, VK_F10, lParam));                                  return(DefWindowProc(hWnd, WM_SYSKEYUP, VK_F10, lParam));
                         }                          }
                         if ((wParam != VK_F12) || (np2oscfg.F12COPY)) {                          if ((wParam != VK_F12) || (np2oscfg.F12COPY)) {
                                 winkeyup106(wParam, lParam);                                  winkbd_keyup(wParam, lParam);
                         }                          }
                         break;                          break;
   
                 case WM_SYSKEYDOWN:                  case WM_SYSKEYDOWN:
                         winkeydown106(wParam, lParam);                          winkbd_keydown(wParam, lParam);
                         break;                          break;
   
                 case WM_SYSKEYUP:                  case WM_SYSKEYUP:
                         winkeyup106(wParam, lParam);                          winkbd_keyup(wParam, lParam);
                         break;                          break;
   
                 case WM_LBUTTONDOWN:                  case WM_LBUTTONDOWN:
Line 724  LRESULT CALLBACK WndProc(HWND hWnd, UINT Line 727  LRESULT CALLBACK WndProc(HWND hWnd, UINT
         return(0L);          return(0L);
 }  }
   
   static void framereset(void) {
   
           framecnt = 0;
           sysmng_updatecaption();
   }
   
 static void processwait(UINT waitcnt) {  static void processwait(UINT waitcnt) {
   
         if (timing_getcount() >= waitcnt) {          if (timing_getcount() >= waitcnt) {
                 timing_setcount(0);                  timing_setcount(0);
                 framecnt = 0;                  framereset();
         }          }
         else {          else {
                 Sleep(1);                  Sleep(1);
Line 751  int WINAPI WinMain(HINSTANCE hInstance,  Line 759  int WINAPI WinMain(HINSTANCE hInstance, 
         GetModuleFileName(NULL, modulefile, sizeof(modulefile));          GetModuleFileName(NULL, modulefile, sizeof(modulefile));
         dosio_init();          dosio_init();
         file_setcd(modulefile);          file_setcd(modulefile);
         np2arg_analize(lpszCmdLine);                            // タイミング修正       // ver0.29          np2arg_analize(lpszCmdLine);
         initload();          initload();
   
         srand((unsigned)time(NULL));          rand_setseed((unsigned)time(NULL));
   
 //      np2arg_analize(lpszCmdLine);  
   
         if ((hwndorg = FindWindow(szClassName, NULL)) != NULL) {          if ((hwndorg = FindWindow(szClassName, NULL)) != NULL) {
                 ShowWindow(hwndorg, SW_RESTORE);                  ShowWindow(hwndorg, SW_RESTORE);
Line 792  int WINAPI WinMain(HINSTANCE hInstance,  Line 798  int WINAPI WinMain(HINSTANCE hInstance, 
                 np2.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON1));                  np2.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON1));
                 np2.hCursor = LoadCursor(NULL, IDC_ARROW);                  np2.hCursor = LoadCursor(NULL, IDC_ARROW);
                 np2.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);                  np2.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
                 np2.lpszMenuName = MAKEINTRESOURCE(IDM_MAIN);                  np2.lpszMenuName = MAKEINTRESOURCE(IDR_MAIN);
                 np2.lpszClassName = szClassName;                  np2.lpszClassName = szClassName;
                 if (!RegisterClass(&np2)) {                  if (!RegisterClass(&np2)) {
                         return(FALSE);                          return(FALSE);
Line 807  int WINAPI WinMain(HINSTANCE hInstance,  Line 813  int WINAPI WinMain(HINSTANCE hInstance, 
   
         scrnmng_initialize();          scrnmng_initialize();
   
         xmenu_setsound(np2cfg.SOUND_SW);          xmenu_setroltate(0);
         xmenu_setbeepvol(np2cfg.BEEP_VOL);          xmenu_setdispmode(np2cfg.DISPSYNC);
         xmenu_setkey(0);          xmenu_setraster(np2cfg.RASTER);
         xmenu_setbtnrapid(np2cfg.BTN_RAPID);  
         xmenu_setbtnmode(np2cfg.BTN_MODE);  
         xmenu_setmsrapid(np2cfg.MOUSERAPID);  
         xmenu_setwaitflg(np2oscfg.NOWAIT);          xmenu_setwaitflg(np2oscfg.NOWAIT);
         xmenu_setframe(np2oscfg.DRAW_SKIP);          xmenu_setframe(np2oscfg.DRAW_SKIP);
         xmenu_setdispmode(np2cfg.DISPSYNC);  
         xmenu_seti286save(np2oscfg.I286SAVE);          xmenu_setkey(0);
         xmenu_setmotorflg(np2cfg.MOTOR);  
         xmenu_setroltate(0);  
         xmenu_setxshift(0);          xmenu_setxshift(0);
         xmenu_setf12copy(np2oscfg.F12COPY);          xmenu_setf12copy(np2oscfg.F12COPY);
           xmenu_setbeepvol(np2cfg.BEEP_VOL);
           xmenu_setsound(np2cfg.SOUND_SW);
           xmenu_setjastsound(np2oscfg.jastsnd);
           xmenu_setmotorflg(np2cfg.MOTOR);
         xmenu_setextmem(np2cfg.EXTMEM);          xmenu_setextmem(np2cfg.EXTMEM);
         xmenu_setraster(np2cfg.RASTER);  
         xmenu_setmouse(np2oscfg.MOUSE_SW);          xmenu_setmouse(np2oscfg.MOUSE_SW);
   
           xmenu_setbtnmode(np2cfg.BTN_MODE);
           xmenu_setbtnrapid(np2cfg.BTN_RAPID);
           xmenu_setmsrapid(np2cfg.MOUSERAPID);
           xmenu_seti286save(np2oscfg.I286SAVE);
   
         ShowWindow(hWndMain, nCmdShow);          ShowWindow(hWndMain, nCmdShow);
         UpdateWindow(hWndMain);          UpdateWindow(hWndMain);
   
Line 930  int WINAPI WinMain(HINSTANCE hInstance,  Line 939  int WINAPI WinMain(HINSTANCE hInstance, 
                         }                          }
                         else {                                                          // auto skip                          else {                                                          // auto skip
                                 if (!waitcnt) {                                  if (!waitcnt) {
                                           UINT cnt;
                                         joy_flash();                                          joy_flash();
                                         mouse_callback();                                          mouse_callback();
                                         pccore_exec(framecnt == 0);                                          pccore_exec(framecnt == 0);
                                         framecnt++;                                          framecnt++;
                                         if (timing_getcount() < framecnt) {                                          cnt = timing_getcount();
                                           if (framecnt > cnt) {
                                                 waitcnt = framecnt;                                                  waitcnt = framecnt;
                                                 if (framemax > 1) {                                                  if (framemax > 1) {
                                                         framemax--;                                                          framemax--;
                                                 }                                                  }
                                         }                                          }
                                         else if (framecnt >= framemax) {                                          else if (framecnt >= framemax) {
                                                 waitcnt = framecnt;  
                                                 if (framemax < 12) {                                                  if (framemax < 12) {
                                                         framemax++;                                                          framemax++;
                                                 }                                                  }
                                                   if (cnt >= 12) {
                                                           timing_reset();
                                                   }
                                                   else {
                                                           timing_setcount(cnt - framecnt);
                                                   }
                                                   framereset();
                                         }                                          }
                                 }                                  }
                                 else {                                  else {

Removed from v.1.2  
changed lines
  Added in v.1.15


RetroPC.NET-CVS <cvs@retropc.net>