|
|
| version 1.1, 2003/10/16 17:59:18 | version 1.13, 2003/12/27 02:29:44 |
|---|---|
| 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 44 | Line 47 |
| #define STATSAVEMAX 10 | #define STATSAVEMAX 10 |
| 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, 1, 1, 0, 2, | CW_USEDEFAULT, CW_USEDEFAULT, 0, 2, |
| 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 565 LRESULT CALLBACK WndProc(HWND hWnd, UINT | Line 568 LRESULT CALLBACK WndProc(HWND hWnd, UINT |
| HBITMAP hbmp; | HBITMAP hbmp; |
| BITMAP bmp; | BITMAP bmp; |
| HINSTANCE hinst; | HINSTANCE hinst; |
| int sx = 640 + np2oscfg.paddingx; | int sx = 640; |
| int sy = 400 + np2oscfg.paddingy; | int sy = 400; |
| hinst = (HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE); | hinst = (HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE); |
| #if 1 | #if 1 |
| 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 754 int WINAPI WinMain(HINSTANCE hInstance, | Line 762 int WINAPI WinMain(HINSTANCE hInstance, |
| np2arg_analize(lpszCmdLine); // タイミング修正 // ver0.29 | np2arg_analize(lpszCmdLine); // タイミング修正 // ver0.29 |
| 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 { |