Diff for /np2/win9x/np2.cpp between versions 1.65 and 1.67

version 1.65, 2006/12/17 02:30:11 version 1.67, 2006/12/24 00:52:29
Line 8 Line 8
 #include        "parts.h"  #include        "parts.h"
 #include        "np2.h"  #include        "np2.h"
 #include        "np2arg.h"  #include        "np2arg.h"
 #include        "cputype.h"  
 #include        "dosio.h"  #include        "dosio.h"
 #include        "extromio.h"  #include        "extromio.h"
 #include        "commng.h"  #include        "commng.h"
Line 23 Line 22
 #include        "winloc.h"  #include        "winloc.h"
 #include        "sstp.h"  #include        "sstp.h"
 #include        "sstpmsg.h"  #include        "sstpmsg.h"
 #include        "dclock.h"  
 #include        "toolwin.h"  #include        "toolwin.h"
 #include        "juliet.h"  #include        "juliet.h"
 #include        "np2class.h"  #include        "np2class.h"
Line 45 Line 43
 #include        "debugsub.h"  #include        "debugsub.h"
 #include        "subwind.h"  #include        "subwind.h"
 #include        "viewer.h"  #include        "viewer.h"
   #if !defined(_WIN64)
   #include        "cputype.h"
   #endif
   #if defined(SUPPORT_DCLOCK)
   #include        "dclock.h"
   #endif
   
   
 #ifdef BETA_RELEASE  #ifdef BETA_RELEASE
Line 55  static TCHAR  szClassName[] = _T("NP2-Ma Line 59  static TCHAR  szClassName[] = _T("NP2-Ma
                 HWND            hWndMain;                  HWND            hWndMain;
                 HINSTANCE       hInst;                  HINSTANCE       hInst;
                 HINSTANCE       hPrev;                  HINSTANCE       hPrev;
   #if !defined(_WIN64)
                 int                     mmxflag;                  int                     mmxflag;
   #endif
                 UINT8           np2break = 0;                                                                   // ver0.30                  UINT8           np2break = 0;                                                                   // ver0.30
                 BOOL            winui_en;                  BOOL            winui_en;
   
Line 94  static int   np2quitmsg = 0; Line 100  static int   np2quitmsg = 0;
 static  HMENU           hStat = NULL;  static  HMENU           hStat = NULL;
 static  UINT8           scrnmode;  static  UINT8           scrnmode;
 static  WINLOCEX        smwlex;  static  WINLOCEX        smwlex;
   static  HMODULE         resmod;
   
 static const OEMCHAR np2help[] = OEMTEXT("np2.chm");  static const OEMCHAR np2help[] = OEMTEXT("np2.chm");
 static const OEMCHAR np2flagext[] = OEMTEXT("S%02d");  static const OEMCHAR np2flagext[] = OEMTEXT("S%02d");
   static const OEMCHAR np2resext[] = OEMTEXT(".%u");
   
   
   // ----
   
   static HINSTANCE loadextinst(HINSTANCE hInstance) {
   
           OEMCHAR path[MAX_PATH];
           OEMCHAR cpstr[16];
           HMODULE dll;
   
           file_cpyname(path, modulefile, NELEMENTS(path));
           file_cutext(path);
           OEMSPRINTF(cpstr, np2resext, GetOEMCP());
           file_catname(path, cpstr, NELEMENTS(path));
           dll = LoadLibrary(path);
           resmod = dll;
           if (dll != NULL) {
                   hInstance = (HINSTANCE)dll;
           }
           return(hInstance);
   }
   
   static void unloadextinst(void) {
   
           HMODULE dll;
   
           dll = resmod;
           if (dll) {
                   resmod = 0;
                   FreeLibrary(dll);
           }
   }
   
   
   // ----
   
 static void winuienter(void) {  static void winuienter(void) {
   
         winui_en = TRUE;          winui_en = TRUE;
Line 341  static void np2cmd(HWND hWnd, UINT16 cmd Line 383  static void np2cmd(HWND hWnd, UINT16 cmd
         UINT            update;          UINT            update;
         BOOL            b;          BOOL            b;
   
         hInst = (HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE);          hInst = GetWindowInst(hWnd);
         update = 0;          update = 0;
         switch(cmd) {          switch(cmd) {
                 case IDM_RESET:                  case IDM_RESET:
Line 1093  LRESULT CALLBACK WndProc(HWND hWnd, UINT Line 1135  LRESULT CALLBACK WndProc(HWND hWnd, UINT
                                 BITMAP          bmp;                                  BITMAP          bmp;
                                 HDC                     hmdc;                                  HDC                     hmdc;
                                 HBRUSH          hbrush;                                  HBRUSH          hbrush;
                                 hinst = (HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE);                                  hinst = GetWindowInst(hWnd);
                                 GetClientRect(hWnd, &rect);                                  GetClientRect(hWnd, &rect);
                                 width = rect.right - rect.left;                                  width = rect.right - rect.left;
                                 height = rect.bottom - rect.top;                                  height = rect.bottom - rect.top;
Line 1230  LRESULT CALLBACK WndProc(HWND hWnd, UINT Line 1272  LRESULT CALLBACK WndProc(HWND hWnd, UINT
                                                                                                                         HTCAPTION, 0L));                                                                                                                          HTCAPTION, 0L));
                                         }                                          }
                                 }                                  }
   #if defined(SUPPORT_DCLOCK)
                                 else {                                  else {
                                         POINT p;                                          POINT p;
                                         if ((GetCursorPos(&p)) && (p.y >= 466)) {                                          if ((GetCursorPos(&p)) && (p.y >= 466)) {
Line 1238  LRESULT CALLBACK WndProc(HWND hWnd, UINT Line 1281  LRESULT CALLBACK WndProc(HWND hWnd, UINT
                                                 dclock_reset();                                                  dclock_reset();
                                         }                                          }
                                 }                                  }
   #endif
                                 return(DefWindowProc(hWnd, msg, wParam, lParam));                                  return(DefWindowProc(hWnd, msg, wParam, lParam));
                         }                          }
                         break;                          break;
Line 1259  LRESULT CALLBACK WndProc(HWND hWnd, UINT Line 1303  LRESULT CALLBACK WndProc(HWND hWnd, UINT
                                 if (!scrnmng_isfullscreen()) {                                  if (!scrnmng_isfullscreen()) {
                                         np2popup(hWnd, lParam);                                          np2popup(hWnd, lParam);
                                 }                                  }
   #if defined(SUPPORT_DCLOCK)
                                 else {                                  else {
                                         POINT p;                                          POINT p;
                                         if ((GetCursorPos(&p)) && (p.y >= 466) &&                                          if ((GetCursorPos(&p)) && (p.y >= 466) &&
Line 1268  LRESULT CALLBACK WndProc(HWND hWnd, UINT Line 1313  LRESULT CALLBACK WndProc(HWND hWnd, UINT
                                                 dclock_reset();                                                  dclock_reset();
                                         }                                          }
                                 }                                  }
   #endif
                                 return(DefWindowProc(hWnd, msg, wParam, lParam));                                  return(DefWindowProc(hWnd, msg, wParam, lParam));
                         }                          }
                         break;                          break;
Line 1381  LRESULT CALLBACK WndProc(HWND hWnd, UINT Line 1427  LRESULT CALLBACK WndProc(HWND hWnd, UINT
 static void framereset(UINT cnt) {  static void framereset(UINT cnt) {
   
         framecnt = 0;          framecnt = 0;
   #if defined(SUPPORT_DCLOCK)
         scrnmng_dispclock();          scrnmng_dispclock();
   #endif
         kdispwin_draw((UINT8)cnt);          kdispwin_draw((UINT8)cnt);
         skbdwin_process();          skbdwin_process();
         mdbgwin_process();          mdbgwin_process();
Line 1406  static void processwait(UINT cnt) { Line 1454  static void processwait(UINT cnt) {
         soundmng_sync();          soundmng_sync();
 }  }
   
   
 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPreInst,  int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPreInst,
                                                                                 LPSTR lpszCmdLine, int nCmdShow) {                                                                                  LPSTR lpszCmdLine, int nCmdShow) {
         WNDCLASS        wc;          WNDCLASS        wc;
Line 1445  int WINAPI WinMain(HINSTANCE hInstance,  Line 1492  int WINAPI WinMain(HINSTANCE hInstance, 
                 return(FALSE);                  return(FALSE);
         }          }
   
         hInst = hInstance;          hInst = loadextinst(hInstance);
         hPrev = hPreInst;          hPrev = hPreInst;
   #if !defined(_WIN64)
         mmxflag = (havemmx())?0:MMXFLAG_NOTSUPPORT;          mmxflag = (havemmx())?0:MMXFLAG_NOTSUPPORT;
         mmxflag += (np2oscfg.disablemmx)?MMXFLAG_DISABLE:0;          mmxflag += (np2oscfg.disablemmx)?MMXFLAG_DISABLE:0;
   #endif
         TRACEINIT();          TRACEINIT();
   
         xrollkey = (np2oscfg.xrollkey == 0);          xrollkey = (np2oscfg.xrollkey == 0);
Line 1469  int WINAPI WinMain(HINSTANCE hInstance,  Line 1518  int WINAPI WinMain(HINSTANCE hInstance, 
         winkbd_setf12(np2oscfg.F12COPY);          winkbd_setf12(np2oscfg.F12COPY);
         keystat_initialize();          keystat_initialize();
   
         np2class_initialize(hInstance);          np2class_initialize(hInst);
         if (!hPreInst) {          if (!hPreInst) {
                 wc.style = CS_BYTEALIGNCLIENT | CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;                  wc.style = CS_BYTEALIGNCLIENT | CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;
                 wc.lpfnWndProc = WndProc;                  wc.lpfnWndProc = WndProc;
                 wc.cbClsExtra = 0;                  wc.cbClsExtra = 0;
                 wc.cbWndExtra = NP2GWL_SIZE;                  wc.cbWndExtra = NP2GWL_SIZE;
                 wc.hInstance = hInstance;                  wc.hInstance = hInst;
                 wc.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON1));                  wc.hIcon = LoadIcon(hInst, MAKEINTRESOURCE(IDI_ICON1));
                 wc.hCursor = LoadCursor(NULL, IDC_ARROW);                  wc.hCursor = LoadCursor(NULL, IDC_ARROW);
                 wc.hbrBackground = (HBRUSH)GetStockObject(NULL_BRUSH);                  wc.hbrBackground = (HBRUSH)GetStockObject(NULL_BRUSH);
                 wc.lpszMenuName = MAKEINTRESOURCE(IDR_MAIN);                  wc.lpszMenuName = MAKEINTRESOURCE(IDR_MAIN);
                 wc.lpszClassName = szClassName;                  wc.lpszClassName = szClassName;
                 if (!RegisterClass(&wc)) {                  if (!RegisterClass(&wc)) {
                           unloadextinst();
                           TRACETERM();
                           dosio_term();
                         return(FALSE);                          return(FALSE);
                 }                  }
         }          }
         toolwin_initapp(hInstance);          toolwin_initapp(hInst);
         kdispwin_initialize(hPreInst);          kdispwin_initialize(hPreInst);
         skbdwin_initialize(hPreInst);          skbdwin_initialize(hPreInst);
         mdbgwin_initialize(hPreInst);          mdbgwin_initialize(hPreInst);
Line 1499  int WINAPI WinMain(HINSTANCE hInstance,  Line 1551  int WINAPI WinMain(HINSTANCE hInstance, 
         }          }
         hWnd = CreateWindowEx(0, szClassName, np2oscfg.titles, style,          hWnd = CreateWindowEx(0, szClassName, np2oscfg.titles, style,
                                                 np2oscfg.winx, np2oscfg.winy, 640, 400,                                                  np2oscfg.winx, np2oscfg.winy, 640, 400,
                                                 NULL, NULL, hInstance, NULL);                                                  NULL, NULL, hInst, NULL);
         hWndMain = hWnd;          hWndMain = hWnd;
         scrnmng_initialize();          scrnmng_initialize();
   
Line 1562  int WINAPI WinMain(HINSTANCE hInstance,  Line 1614  int WINAPI WinMain(HINSTANCE hInstance, 
                                 MessageBox(hWnd, _T("Couldn't create DirectDraw Object"),                                  MessageBox(hWnd, _T("Couldn't create DirectDraw Object"),
                                                                                 np2oscfg.titles, MB_OK | MB_ICONSTOP);                                                                                  np2oscfg.titles, MB_OK | MB_ICONSTOP);
                         }                          }
                           unloadextinst();
                           TRACETERM();
                           dosio_term();
                         return(FALSE);                          return(FALSE);
                 }                  }
         }          }
Line 1619  int WINAPI WinMain(HINSTANCE hInstance,  Line 1674  int WINAPI WinMain(HINSTANCE hInstance, 
                         sstp_destruct();                          sstp_destruct();
                         soundmng_deinitialize();                          soundmng_deinitialize();
                         scrnmng_destroy();                          scrnmng_destroy();
                           unloadextinst();
                         TRACETERM();                          TRACETERM();
                         dosio_term();                          dosio_term();
                         viewer_term();                          viewer_term();
                         return(0);                          return(FALSE);
                 }                  }
         }          }
 #endif  #endif
Line 1661  int WINAPI WinMain(HINSTANCE hInstance,  Line 1717  int WINAPI WinMain(HINSTANCE hInstance, 
                                         joymng_sync();                                          joymng_sync();
                                         mousemng_sync();                                          mousemng_sync();
                                         pccore_exec(framecnt == 0);                                          pccore_exec(framecnt == 0);
   #if defined(SUPPORT_DCLOCK)
                                         dclock_callback();                                          dclock_callback();
   #endif
                                         if (np2oscfg.DRAW_SKIP) {               // nowait frame skip                                          if (np2oscfg.DRAW_SKIP) {               // nowait frame skip
                                                 framecnt++;                                                  framecnt++;
                                                 if (framecnt >= np2oscfg.DRAW_SKIP) {                                                  if (framecnt >= np2oscfg.DRAW_SKIP) {
Line 1680  int WINAPI WinMain(HINSTANCE hInstance,  Line 1738  int WINAPI WinMain(HINSTANCE hInstance, 
                                                 joymng_sync();                                                  joymng_sync();
                                                 mousemng_sync();                                                  mousemng_sync();
                                                 pccore_exec(framecnt == 0);                                                  pccore_exec(framecnt == 0);
   #if defined(SUPPORT_DCLOCK)
                                                 dclock_callback();                                                  dclock_callback();
   #endif
                                                 framecnt++;                                                  framecnt++;
                                         }                                          }
                                         else {                                          else {
Line 1693  int WINAPI WinMain(HINSTANCE hInstance,  Line 1753  int WINAPI WinMain(HINSTANCE hInstance, 
                                                 joymng_sync();                                                  joymng_sync();
                                                 mousemng_sync();                                                  mousemng_sync();
                                                 pccore_exec(framecnt == 0);                                                  pccore_exec(framecnt == 0);
   #if defined(SUPPORT_DCLOCK)
                                                 dclock_callback();                                                  dclock_callback();
   #endif
                                                 framecnt++;                                                  framecnt++;
                                                 cnt = timing_getcount();                                                  cnt = timing_getcount();
                                                 if (framecnt > cnt) {                                                  if (framecnt > cnt) {
Line 1769  int WINAPI WinMain(HINSTANCE hInstance,  Line 1831  int WINAPI WinMain(HINSTANCE hInstance, 
         }          }
         skbdwin_deinitialize();          skbdwin_deinitialize();
   
           unloadextinst();
   
         TRACETERM();          TRACETERM();
         _MEM_USED("report.txt");          _MEM_USED("report.txt");
         dosio_term();          dosio_term();

Removed from v.1.65  
changed lines
  Added in v.1.67


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