diff --git a/desmume/src/windows/DeSmuME_2005.vcproj b/desmume/src/windows/DeSmuME_2005.vcproj
index d9270d545..433496934 100644
--- a/desmume/src/windows/DeSmuME_2005.vcproj
+++ b/desmume/src/windows/DeSmuME_2005.vcproj
@@ -886,6 +886,10 @@
RelativePath="..\bios.h"
>
+
+
diff --git a/desmume/src/windows/DeSmuME_2008.vcproj b/desmume/src/windows/DeSmuME_2008.vcproj
index 5878cf7bb..679acf021 100644
--- a/desmume/src/windows/DeSmuME_2008.vcproj
+++ b/desmume/src/windows/DeSmuME_2008.vcproj
@@ -1,7 +1,7 @@
+
+
diff --git a/desmume/src/windows/inputdx.cpp b/desmume/src/windows/inputdx.cpp
index a98a855ec..c5f036fb3 100644
--- a/desmume/src/windows/inputdx.cpp
+++ b/desmume/src/windows/inputdx.cpp
@@ -609,7 +609,7 @@ void S9xUpdateJoyState()
else
{
CheckAxis_game(JoyStatus.lX,-10000,10000,Joystick[0].Left,Joystick[0].Right);
- CheckAxis_game(JoyStatus.lY,-10000,10000,Joystick[0].Down,Joystick[0].Up);
+ CheckAxis_game(JoyStatus.lY,-10000,10000,Joystick[0].Up,Joystick[0].Down);
switch (JoyStatus.rgdwPOV[0])
{
@@ -1127,7 +1127,7 @@ COLORREF CheckHotKey( WORD Key, int modifiers)
return white;
}
-void InitInputCustomControl()
+static void InitCustomControls()
{
WNDCLASSEX wc;
@@ -1148,12 +1148,6 @@ void InitInputCustomControl()
RegisterClassEx(&wc);
-}
-void InitKeyCustomControl()
-{
-
- WNDCLASSEX wc;
-
wc.cbSize = sizeof(wc);
wc.lpszClassName = szHotkeysClassName;
wc.hInstance = GetModuleHandle(0);
@@ -1171,22 +1165,7 @@ void InitKeyCustomControl()
RegisterClassEx(&wc);
}
-//HWND CreateInputCustom(HWND hwndParent)
-//{
-// HWND hwndCtrl;
-//
-// hwndCtrl = CreateWindowEx(
-// WS_EX_CLIENTEDGE, // give it a standard border
-// szClassName,
-// _T("A custom control"),
-// WS_VISIBLE | WS_CHILD,
-// 0, 0, 100, 100,
-// hwndParent,
-// NULL, GetModuleHandle(0), NULL
-// );
-//
-// return hwndCtrl;
-//}
+
InputCust * GetInputCustom(HWND hwnd)
{
return (InputCust *)GetWindowLong(hwnd, 0);
@@ -1759,7 +1738,6 @@ INT_PTR CALLBACK DlgInputConfig(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lPara
//HBRUSH g_hbrBackground;
- InitInputCustomControl();
switch(msg)
{
case WM_INITDIALOG:
@@ -2197,37 +2175,21 @@ void S9xWinScanJoypads ()
//#endif
}
-//void NDS_inputInit()
-//{
-// int i;
-// memset(keyPad, 0, sizeof(keyPad));
-//
-// for (i=0; i < MAXKEYPAD; i++)
-// {
-// char buf[64];
-// memset(buf, 0, sizeof(buf));
-// wsprintf(buf,"Key_%s", keyPadNames[i]);
-// keyPad[i] = GetPrivateProfileInt("NDS_Input",buf,keyPadDefs[i], IniName);
-// if (keyPad[i]>255)
-// {
-// if (!input->JoystickEnabled())
-// {
-// keyPad[i] = keyPadDefs[i];
-// }
-// }
-// }
-//
-// FeedbackON = NDS_inputFeedback;
-//}
-
void input_feedback(BOOL enable)
{
- //input->JoystickFeedback(enable);
+ if (!Feedback) return;
+ if (!pEffect) return;
+
+ if (enable)
+ pEffect->Start(2, 0);
+ else
+ pEffect->Stop();
}
void input_init()
{
+ InitCustomControls();
di_init();
FeedbackON = input_feedback;
}
@@ -2259,10 +2221,14 @@ void input_process()
void RunInputConfig()
{
-
DialogBox(hAppInst, MAKEINTRESOURCE(IDD_INPUTCONFIG), MainWindow->getHWnd(), DlgInputConfig);
}
+void RunHotkeyConfig()
+{
+ DialogBox(hAppInst, MAKEINTRESOURCE(IDD_KEYCUSTOM), MainWindow->getHWnd(), DlgInputConfig);
+}
+
/**********************************************************************************
Snes9x - Portable Super Nintendo Entertainment System (TM) emulator.
diff --git a/desmume/src/windows/main.cpp b/desmume/src/windows/main.cpp
index adf18de07..21a6ee872 100644
--- a/desmume/src/windows/main.cpp
+++ b/desmume/src/windows/main.cpp
@@ -1144,8 +1144,6 @@ int WINAPI WinMain (HINSTANCE hThisInstance,
}
InitializeCriticalSection(&win_sync);
- InitInputCustomControl();
- InitKeyCustomControl();
#ifdef GDB_STUB
gdbstub_handle_t arm9_gdb_stub;
@@ -1689,6 +1687,131 @@ void OpenRecentROM(int listNum)
NDS_UnPause();
}
+LRESULT OpenFile()
+{
+ HWND hwnd = MainWindow->getHWnd();
+
+ int filterSize = 0, i = 0;
+ OPENFILENAME ofn;
+ char filename[MAX_PATH] = "",
+ fileFilter[512]="";
+ NDS_Pause(); //Stop emulation while opening new rom
+
+ ZeroMemory(&ofn, sizeof(ofn));
+ ofn.lStructSize = sizeof(ofn);
+ ofn.hwndOwner = hwnd;
+
+ // To avoid #ifdef hell, we'll do a little trick, as lpstrFilter
+ // needs 0 terminated string, and standard string library, of course,
+ // can't help us with string creation: just put a '|' were a string end
+ // should be, and later transform prior assigning to the OPENFILENAME structure
+ strncpy (fileFilter, "NDS ROM file (*.nds)|*.nds|NDS/GBA ROM File (*.ds.gba)|*.ds.gba|",512);
+#ifdef HAVE_LIBZZIP
+ strncpy (fileFilter, "All Usable Files (*.nds, *.ds.gba, *.zip, *.gz)|*.nds;*.ds.gba;*.zip;*.gz|",512);
+#endif
+
+#ifdef HAVE_LIBZZIP
+ strncat (fileFilter, "Zipped NDS ROM file (*.zip)|*.zip|",512 - strlen(fileFilter));
+#endif
+#ifdef HAVE_LIBZ
+ strncat (fileFilter, "GZipped NDS ROM file (*.gz)|*.gz|",512 - strlen(fileFilter));
+#endif
+ strncat (fileFilter, "Any file (*.*)|*.*||",512 - strlen(fileFilter));
+
+ filterSize = strlen(fileFilter);
+ for (i = 0; i < filterSize; i++)
+ {
+ if (fileFilter[i] == '|') fileFilter[i] = '\0';
+ }
+ ofn.lpstrFilter = fileFilter;
+ ofn.nFilterIndex = 1;
+ ofn.lpstrFile = filename;
+ ofn.nMaxFile = MAX_PATH;
+ ofn.lpstrDefExt = "nds";
+ ofn.Flags = OFN_NOCHANGEDIR;
+
+ if(!GetOpenFileName(&ofn))
+ {
+ if (romloaded)
+ NDS_UnPause(); //Restart emulation if no new rom chosen
+ return 0;
+ }
+
+ //LOG("%s\r\n", filename);
+#ifdef EXPERIMENTAL_GBASLOT
+ if(LoadROM(filename))
+#else
+ if(LoadROM(filename, bad_glob_cflash_disk_image_file))
+#endif
+ {
+ EnableMenuItem(mainMenu, IDM_EXEC, MF_GRAYED);
+ EnableMenuItem(mainMenu, IDM_PAUSE, MF_ENABLED);
+ EnableMenuItem(mainMenu, IDM_RESET, MF_ENABLED);
+ EnableMenuItem(mainMenu, IDM_GAME_INFO, MF_ENABLED);
+ EnableMenuItem(mainMenu, IDM_IMPORTBACKUPMEMORY, MF_ENABLED);
+ EnableMenuItem(mainMenu, IDM_CHEATS_LIST, MF_ENABLED);
+ EnableMenuItem(mainMenu, IDM_CHEATS_SEARCH, MF_ENABLED);
+ romloaded = TRUE;
+ NDS_UnPause();
+ }
+
+ return 0;
+}
+
+//TODO - async key state? for real?
+int GetModifiers(int key)
+{
+ int modifiers = 0;
+
+ if (key == VK_MENU || key == VK_CONTROL || key == VK_SHIFT)
+ return 0;
+
+ if(GetAsyncKeyState(VK_MENU )) modifiers |= CUSTKEY_ALT_MASK;
+ if(GetAsyncKeyState(VK_CONTROL)) modifiers |= CUSTKEY_CTRL_MASK;
+ if(GetAsyncKeyState(VK_SHIFT )) modifiers |= CUSTKEY_SHIFT_MASK;
+ return modifiers;
+}
+
+int HandleKeyMessage(WPARAM wParam, LPARAM lParam, int modifiers)
+{
+ //some crap from snes9x I dont understand with toggles and macros...
+
+ bool hitHotKey = false;
+
+ if((wParam == 0 || wParam == VK_ESCAPE)) // if it's the 'disabled' key, it's never pressed as a hotkey
+ return 0;
+
+ return 0;
+}
+
+void RunConfig(int num)
+{
+ HWND hwnd = MainWindow->getHWnd();
+ bool tpaused=false;
+ if (execute)
+ {
+ tpaused=true;
+ NDS_Pause();
+ }
+
+ switch(num) {
+ case 0:
+ void RunInputConfig();
+ RunInputConfig();
+ break;
+ case 1:
+ /*void RunHotkeyConfig();
+ RunHotkeyConfig();*/
+ break;
+ case 2:
+ DialogBox(hAppInst,MAKEINTRESOURCE(IDD_FIRMSETTINGS), hwnd, (DLGPROC) FirmConfig_Proc);
+ break;
+ }
+
+ if (tpaused)
+ NDS_UnPause();
+}
+
//========================================================================================
LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
@@ -1877,72 +2000,7 @@ LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM
return 0;
case ACCEL_CTRL_O:
case IDM_OPEN:
- {
- int filterSize = 0, i = 0;
- OPENFILENAME ofn;
- char filename[MAX_PATH] = "",
- fileFilter[512]="";
- NDS_Pause(); //Stop emulation while opening new rom
-
- ZeroMemory(&ofn, sizeof(ofn));
- ofn.lStructSize = sizeof(ofn);
- ofn.hwndOwner = hwnd;
-
- // To avoid #ifdef hell, we'll do a little trick, as lpstrFilter
- // needs 0 terminated string, and standard string library, of course,
- // can't help us with string creation: just put a '|' were a string end
- // should be, and later transform prior assigning to the OPENFILENAME structure
- strncpy (fileFilter, "NDS ROM file (*.nds)|*.nds|NDS/GBA ROM File (*.ds.gba)|*.ds.gba|",512);
-#ifdef HAVE_LIBZZIP
- strncpy (fileFilter, "All Usable Files (*.nds, *.ds.gba, *.zip, *.gz)|*.nds;*.ds.gba;*.zip;*.gz|",512);
-#endif
-
-#ifdef HAVE_LIBZZIP
- strncat (fileFilter, "Zipped NDS ROM file (*.zip)|*.zip|",512 - strlen(fileFilter));
-#endif
-#ifdef HAVE_LIBZ
- strncat (fileFilter, "GZipped NDS ROM file (*.gz)|*.gz|",512 - strlen(fileFilter));
-#endif
- strncat (fileFilter, "Any file (*.*)|*.*||",512 - strlen(fileFilter));
-
- filterSize = strlen(fileFilter);
- for (i = 0; i < filterSize; i++)
- {
- if (fileFilter[i] == '|') fileFilter[i] = '\0';
- }
- ofn.lpstrFilter = fileFilter;
- ofn.nFilterIndex = 1;
- ofn.lpstrFile = filename;
- ofn.nMaxFile = MAX_PATH;
- ofn.lpstrDefExt = "nds";
- ofn.Flags = OFN_NOCHANGEDIR;
-
- if(!GetOpenFileName(&ofn))
- {
- if (romloaded)
- NDS_UnPause(); //Restart emulation if no new rom chosen
- return 0;
- }
-
- //LOG("%s\r\n", filename);
-#ifdef EXPERIMENTAL_GBASLOT
- if(LoadROM(filename))
-#else
- if(LoadROM(filename, bad_glob_cflash_disk_image_file))
-#endif
- {
- EnableMenuItem(mainMenu, IDM_EXEC, MF_GRAYED);
- EnableMenuItem(mainMenu, IDM_PAUSE, MF_ENABLED);
- EnableMenuItem(mainMenu, IDM_RESET, MF_ENABLED);
- EnableMenuItem(mainMenu, IDM_GAME_INFO, MF_ENABLED);
- EnableMenuItem(mainMenu, IDM_IMPORTBACKUPMEMORY, MF_ENABLED);
- EnableMenuItem(mainMenu, IDM_CHEATS_LIST, MF_ENABLED);
- EnableMenuItem(mainMenu, IDM_CHEATS_SEARCH, MF_ENABLED);
- romloaded = TRUE;
- NDS_UnPause();
- }
- }
- return 0;
+ return OpenFile();
case IDM_PRINTSCREEN:
{
OPENFILENAME ofn;
@@ -2418,35 +2476,17 @@ LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM
if(tpaused) NDS_UnPause();
}
return 0;
- case IDM_CONFIG:
- {
- bool tpaused=false;
- if (execute)
- {
- tpaused=true;
- NDS_Pause();
- }
- //InputConfig(hwnd);
- void RunInputConfig();
- RunInputConfig();
- if (tpaused)
- NDS_UnPause();
- }
- return 0;
+
+ case IDM_CONFIG:
+ RunConfig(0);
+ return 0;
+ case IDM_HOTKEY_CONFIG:
+ RunConfig(1);
+ return 0;
case IDM_FIRMSETTINGS:
- {
- bool tpaused=false;
- if (execute)
- {
- tpaused=true;
- NDS_Pause();
- }
- DialogBox(hAppInst,MAKEINTRESOURCE(IDD_FIRMSETTINGS), hwnd, (DLGPROC) FirmConfig_Proc);
- if (tpaused)
- NDS_UnPause();
-
- return 0;
- }
+ RunConfig(2);
+ return 0;
+
case IDC_FRAMESKIPAUTO:
case IDC_FRAMESKIP0:
case IDC_FRAMESKIP1:
@@ -2604,6 +2644,14 @@ LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM
WritePrivateProfileInt("Video", "Window height", (rc.bottom - rc.top), IniName);
}
break;
+
+ case WM_SYSKEYDOWN:
+ {
+ int modifiers = GetModifiers(wParam);
+ if(!HandleKeyMessage(wParam,lParam, modifiers))
+ return 0;
+ break;
+ }
case IDM_DEFSIZE:
{
diff --git a/desmume/src/windows/resource.h b/desmume/src/windows/resource.h
index df198ee9d..d56c54f80 100644
--- a/desmume/src/windows/resource.h
+++ b/desmume/src/windows/resource.h
@@ -450,3 +450,83 @@
#define IDC_AUTO_UPDATE2 111
#define IDC_VISIBLE 1019
#define IDM_ABOUT 40003
+#define IDC_LABEL_HK1 60001
+#define IDC_LABEL_HK4 60002
+#define IDC_LABEL_HK2 60003
+#define IDC_LABEL_HK3 60004
+#define IDC_LABEL_HK6 60005
+#define IDC_LABEL_HK11 60006
+#define IDC_LABEL_HK8 60007
+#define IDC_LABEL_HK12 60008
+#define IDC_LABEL_HK9 60009
+#define IDC_LABEL_HK7 60010
+#define IDC_HOTKEY1 60011
+#define IDC_HOTKEY2 60012
+#define IDC_HOTKEY3 60013
+#define IDC_HOTKEY4 60014
+#define IDC_HOTKEY5 60015
+#define IDC_HOTKEY6 60016
+#define IDC_HOTKEY7 60017
+#define IDC_HOTKEY8 60018
+#define IDC_HOTKEY9 60019
+#define IDC_HOTKEY10 60020
+#define IDC_HOTKEY11 60021
+#define IDC_HOTKEY12 60022
+#define IDC_HOTKEY13 60023
+#define IDC_SAVE1 60024
+#define IDC_LABEL_UP1 60025
+#define IDC_SAVE2 60026
+#define IDC_LABEL_UP2 60027
+#define IDC_SAVE3 60028
+#define IDC_LABEL_UP3 60029
+#define IDC_SAVE4 60030
+#define IDC_LABEL_UP4 60031
+#define IDC_SAVE5 60032
+#define IDC_LABEL_UP5 60033
+#define IDC_SAVE6 60034
+#define IDC_LABEL_UP6 60035
+#define IDC_SAVE7 60036
+#define IDC_LABEL_UP7 60037
+#define IDC_SAVE8 60038
+#define IDC_LABEL_UP8 60039
+#define IDC_SAVE9 60040
+#define IDC_LABEL_UP9 60041
+#define IDC_SAVE10 60042
+#define IDC_LABEL_UP10 60043
+#define IDC_SAVE11 60044
+#define IDC_LABEL_UP11 60045
+#define IDC_SAVE12 60046
+#define IDC_LABEL_UP12 60047
+#define IDC_SAVE13 60048
+#define IDC_LABEL_UP13 60049
+#define IDC_SAVE14 60050
+#define IDC_LABEL_UP14 60051
+#define IDC_SAVE15 60052
+#define IDC_LABEL_UP15 60053
+#define IDC_SAVE16 60054
+#define IDC_LABEL_UP16 60055
+#define IDC_SAVE17 60056
+#define IDC_LABEL_UP17 60057
+#define IDC_SAVE18 60058
+#define IDC_LABEL_UP18 60059
+#define IDC_SAVE19 60060
+#define IDC_LABEL_UP19 60061
+#define IDC_SAVE20 60062
+#define IDC_LABEL_UP20 60063
+#define IDC_SAVE21 60064
+#define IDC_LABEL_UP21 60065
+#define IDC_LABEL_HK5 60066
+#define IDC_LABEL_HK10 60067
+#define IDC_LABEL_HK13 60068
+#define IDC_LABEL_UP22 60069
+#define IDC_SLOTMINUS 60070
+#define IDC_LABEL_UP23 60071
+#define IDC_SLOTPLUS 60072
+#define IDC_LABEL_UP24 60073
+#define IDC_SLOTSAVE 60074
+#define IDC_LABEL_UP25 60075
+#define IDC_SLOTLOAD 60076
+#define IDC_HKCOMBO 60077
+#define IDD_KEYCUSTOM 60078
+#define IDM_HOTKEY_CONFIG 60079
+
diff --git a/desmume/src/windows/resources.rc b/desmume/src/windows/resources.rc
index d47d86fac..d75f5d4e5 100644
--- a/desmume/src/windows/resources.rc
+++ b/desmume/src/windows/resources.rc
@@ -120,6 +120,7 @@ BEGIN
END
MENUITEM "3D settings", IDM_3DCONFIG
MENUITEM "Indput Indstillinger", IDM_CONFIG
+ MENUITEM "Hotkey Config", IDM_HOTKEY_CONFIG
MENUITEM "Lyd Indstillinger", IDM_SOUNDSETTINGS
MENUITEM "Firmware Indstillinger", IDM_FIRMSETTINGS
POPUP "&Frame Skip"
@@ -274,6 +275,7 @@ BEGIN
END
MENUITEM "3D Settings", IDM_3DCONFIG
MENUITEM "Control Config", IDM_CONFIG
+ MENUITEM "Hotkey Config", IDM_HOTKEY_CONFIG
MENUITEM "Sound Settings", IDM_SOUNDSETTINGS
MENUITEM "Firmware Settings", IDM_FIRMSETTINGS
POPUP "&Frame Skip"
@@ -428,6 +430,7 @@ BEGIN
END
MENUITEM "Config. 3D", IDM_3DCONFIG
MENUITEM "Config. des contrôles", IDM_CONFIG
+ MENUITEM "Hotkey Config", IDM_HOTKEY_CONFIG
MENUITEM "Config. du son", IDM_SOUNDSETTINGS
MENUITEM "Config. du firmware", IDM_FIRMSETTINGS
POPUP "&Frame Skip"
@@ -767,81 +770,6 @@ BEGIN
END
-
-LANGUAGE LANG_DANISH, SUBLANG_DANISH_DENMARK
-IDD_CONFIG DIALOGEX 0, 0, 125, 227
-STYLE DS_MODALFRAME | DS_SETFOREGROUND | DS_SETFONT | WS_BORDER | WS_CAPTION | WS_DLGFRAME | WS_POPUP | WS_SYSMENU
-CAPTION "Konfigurer Input"
-FONT 8, "MS Sans Serif", 0, 0, 1
-BEGIN
- DEFPUSHBUTTON "OK", IDC_FERMER, 67, 208, 50, 14, BS_DEFPUSHBUTTON
- PUSHBUTTON "Standard", IDC_BUTTON1, 7, 208, 50, 14, BS_PUSHBUTTON
- COMBOBOX IDC_COMBO1, 46, 13, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST
- LTEXT "Op:", IDC_STATIC, 17, 14, 27, 10, SS_LEFT
- COMBOBOX IDC_COMBO4, 46, 29, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST
- LTEXT "Ned:", IDC_STATIC, 17, 31, 28, 9, SS_LEFT
- COMBOBOX IDC_COMBO2, 46, 45, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST
- LTEXT "Venstre:", IDC_STATIC, 17, 47, 28, 9, SS_LEFT
- COMBOBOX IDC_COMBO3, 46, 61, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST
- LTEXT "Højre:", IDC_STATIC, 17, 63, 28, 9, SS_LEFT
- COMBOBOX IDC_COMBO7, 46, 77, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST
- LTEXT "A:", IDC_STATIC, 18, 78, 28, 9, SS_LEFT
- COMBOBOX IDC_COMBO8, 46, 92, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST
- LTEXT "B:", IDC_STATIC, 17, 94, 28, 9, SS_LEFT
- COMBOBOX IDC_COMBO10, 46, 108, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST
- LTEXT "L:", IDC_STATIC, 17, 110, 28, 9, SS_LEFT
- COMBOBOX IDC_COMBO11, 46, 124, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST
- LTEXT "R:", IDC_STATIC, 17, 126, 28, 9, SS_LEFT
- COMBOBOX IDC_COMBO6, 46, 140, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST
- LTEXT "X:", IDC_STATIC, 17, 142, 28, 9, SS_LEFT
- COMBOBOX IDC_COMBO5, 46, 156, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST
- LTEXT "Y:", IDC_STATIC, 17, 158, 28, 9, SS_LEFT
- GROUPBOX "", IDC_STATIC, 7, 3, 111, 203
- COMBOBOX IDC_COMBO9, 46, 172, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST
- LTEXT "Start:", IDC_STATIC, 17, 174, 28, 9, SS_LEFT
- COMBOBOX IDC_COMBO12, 46, 188, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST
- LTEXT "Select:", IDC_STATIC, 17, 190, 28, 9, SS_LEFT
-END
-
-
-
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
-IDD_CONFIG DIALOGEX 0, 0, 125, 227
-STYLE DS_MODALFRAME | DS_SETFOREGROUND | DS_SETFONT | WS_BORDER | WS_CAPTION | WS_DLGFRAME | WS_POPUP | WS_SYSMENU
-CAPTION "Configure Keys"
-FONT 8, "MS Sans Serif", 0, 0, 1
-BEGIN
- DEFPUSHBUTTON "OK", IDC_FERMER, 67, 208, 50, 14, BS_DEFPUSHBUTTON
- PUSHBUTTON "Default", IDC_BUTTON1, 7, 208, 50, 14, BS_PUSHBUTTON
- COMBOBOX IDC_COMBO1, 46, 13, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST
- LTEXT "Up:", IDC_STATIC, 17, 14, 27, 10, SS_LEFT
- COMBOBOX IDC_COMBO4, 46, 29, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST
- LTEXT "Down:", IDC_STATIC, 17, 31, 28, 9, SS_LEFT
- COMBOBOX IDC_COMBO2, 46, 45, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST
- LTEXT "Left:", IDC_STATIC, 17, 47, 28, 9, SS_LEFT
- COMBOBOX IDC_COMBO3, 46, 61, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST
- LTEXT "Right:", IDC_STATIC, 17, 63, 28, 9, SS_LEFT
- COMBOBOX IDC_COMBO7, 46, 77, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST
- LTEXT "A:", IDC_STATIC, 18, 78, 28, 9, SS_LEFT
- COMBOBOX IDC_COMBO8, 46, 92, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST
- LTEXT "B:", IDC_STATIC, 17, 94, 28, 9, SS_LEFT
- COMBOBOX IDC_COMBO10, 46, 108, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST
- LTEXT "L:", IDC_STATIC, 17, 110, 28, 9, SS_LEFT
- COMBOBOX IDC_COMBO11, 46, 124, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST
- LTEXT "R:", IDC_STATIC, 17, 126, 28, 9, SS_LEFT
- COMBOBOX IDC_COMBO6, 46, 140, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST
- LTEXT "X:", IDC_STATIC, 17, 142, 28, 9, SS_LEFT
- COMBOBOX IDC_COMBO5, 46, 156, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST
- LTEXT "Y:", IDC_STATIC, 17, 158, 28, 9, SS_LEFT
- GROUPBOX "", IDC_STATIC, 7, 3, 111, 203
- COMBOBOX IDC_COMBO9, 46, 172, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST
- LTEXT "Start:", IDC_STATIC, 17, 174, 28, 9, SS_LEFT
- COMBOBOX IDC_COMBO12, 46, 188, 59, 14, WS_TABSTOP | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST
- LTEXT "Select:", IDC_STATIC, 17, 190, 28, 9, SS_LEFT
-END
-
-
-
LANGUAGE LANG_DANISH, SUBLANG_DANISH_DENMARK
IDD_DESASSEMBLEUR_VIEWER7 DIALOGEX 0, 0, 380, 186
STYLE DS_CENTER | DS_SETFONT | WS_BORDER | WS_CAPTION | WS_DLGFRAME
@@ -2319,6 +2247,90 @@ BEGIN
CONTROL " ",IDC_DEBUG,"InputCustom",WS_DISABLED | WS_TABSTOP,163,120,71,12,WS_EX_CLIENTEDGE
END
+IDD_KEYCUSTOM DIALOGEX 0, 0, 349, 203
+STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_CENTER | WS_POPUP | WS_CLIPCHILDREN | WS_CAPTION
+CAPTION "Customize Special Keys"
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+ PUSHBUTTON "Cancel",IDCANCEL,66,182,50,14
+ PUSHBUTTON "OK",IDOK,16,182,50,14
+ RTEXT "speed +",IDC_LABEL_HK1,4,8,58,8
+ RTEXT "frame advance",IDC_LABEL_HK4,2,47,59,8
+ RTEXT "speed -",IDC_LABEL_HK2,3,21,59,8
+ RTEXT "pause",IDC_LABEL_HK3,2,34,60,8
+ RTEXT "skip +",IDC_LABEL_HK6,2,74,60,8
+ RTEXT "movie frame count",IDC_LABEL_HK11,0,138,62,8
+ RTEXT "superscope turbo",IDC_LABEL_HK8,0,98,62,8
+ RTEXT "movie read-only",IDC_LABEL_HK12,3,150,59,8
+ RTEXT "superscope pause",IDC_LABEL_HK9,2,111,60,8
+ RTEXT "skip -",IDC_LABEL_HK7,3,85,59,8
+ CONTROL "",IDC_HOTKEY1,"InputCustomHot",WS_TABSTOP,66,5,98,12,WS_EX_CLIENTEDGE
+ CONTROL "",IDC_HOTKEY2,"InputCustomHot",WS_TABSTOP,66,18,98,12,WS_EX_CLIENTEDGE
+ CONTROL "",IDC_HOTKEY3,"InputCustomHot",WS_TABSTOP,66,31,98,12,WS_EX_CLIENTEDGE
+ CONTROL "",IDC_HOTKEY4,"InputCustomHot",WS_TABSTOP,66,45,98,12,WS_EX_CLIENTEDGE
+ CONTROL "",IDC_HOTKEY5,"InputCustomHot",WS_TABSTOP,66,58,98,12,WS_EX_CLIENTEDGE
+ CONTROL "",IDC_HOTKEY6,"InputCustomHot",WS_TABSTOP,66,70,98,12,WS_EX_CLIENTEDGE
+ CONTROL "",IDC_HOTKEY7,"InputCustomHot",WS_TABSTOP,66,83,98,12,WS_EX_CLIENTEDGE
+ CONTROL "",IDC_HOTKEY8,"InputCustomHot",WS_TABSTOP,66,96,98,12,WS_EX_CLIENTEDGE
+ CONTROL "",IDC_HOTKEY9,"InputCustomHot",WS_TABSTOP,66,109,98,12,WS_EX_CLIENTEDGE
+ CONTROL "",IDC_HOTKEY10,"InputCustomHot",WS_TABSTOP,66,122,98,12,WS_EX_CLIENTEDGE
+ CONTROL "",IDC_HOTKEY11,"InputCustomHot",WS_TABSTOP,66,135,98,12,WS_EX_CLIENTEDGE
+ CONTROL "",IDC_HOTKEY12,"InputCustomHot",WS_TABSTOP,66,149,98,12,WS_EX_CLIENTEDGE
+ CONTROL "",IDC_HOTKEY13,"InputCustomHot",WS_TABSTOP,66,162,98,12,WS_EX_CLIENTEDGE
+ CONTROL "",IDC_SAVE1,"InputCustomHot",WS_TABSTOP,192,5,60,12,WS_EX_CLIENTEDGE
+ RTEXT "save1",IDC_LABEL_UP2,170,21,20,8
+ CONTROL "",IDC_SAVE2,"InputCustomHot",WS_TABSTOP,192,18,60,12,WS_EX_CLIENTEDGE
+ RTEXT "save2",IDC_LABEL_UP3,170,34,20,8
+ CONTROL "",IDC_SAVE3,"InputCustomHot",WS_TABSTOP,192,31,60,12,WS_EX_CLIENTEDGE
+ RTEXT "save3",IDC_LABEL_UP4,170,47,20,8
+ CONTROL "",IDC_SAVE4,"InputCustomHot",WS_TABSTOP,192,45,60,12,WS_EX_CLIENTEDGE
+ RTEXT "save4",IDC_LABEL_UP5,170,58,20,8
+ CONTROL "",IDC_SAVE5,"InputCustomHot",WS_TABSTOP,192,58,60,12,WS_EX_CLIENTEDGE
+ RTEXT "save5",IDC_LABEL_UP6,170,72,20,8
+ CONTROL "",IDC_SAVE6,"InputCustomHot",WS_TABSTOP,192,71,60,12,WS_EX_CLIENTEDGE
+ RTEXT "save6",IDC_LABEL_UP7,170,85,20,8
+ CONTROL "",IDC_SAVE7,"InputCustomHot",WS_TABSTOP,192,82,60,12,WS_EX_CLIENTEDGE
+ RTEXT "save7",IDC_LABEL_UP8,170,98,20,8
+ CONTROL "",IDC_SAVE8,"InputCustomHot",WS_TABSTOP,192,96,60,12,WS_EX_CLIENTEDGE
+ RTEXT "save8",IDC_LABEL_UP9,170,112,20,8
+ CONTROL "",IDC_SAVE9,"InputCustomHot",WS_TABSTOP,192,109,60,12,WS_EX_CLIENTEDGE
+ RTEXT "save9",IDC_LABEL_UP10,170,125,20,8
+ CONTROL "",IDC_SAVE10,"InputCustomHot",WS_TABSTOP,192,122,60,12,WS_EX_CLIENTEDGE
+ RTEXT "save0",IDC_LABEL_UP11,170,8,20,8
+ CONTROL "",IDC_SAVE11,"InputCustomHot",WS_TABSTOP,279,5,60,12,WS_EX_CLIENTEDGE
+ RTEXT "load1",IDC_LABEL_UP12,257,21,20,8
+ CONTROL "",IDC_SAVE12,"InputCustomHot",WS_TABSTOP,279,18,60,12,WS_EX_CLIENTEDGE
+ RTEXT "load2",IDC_LABEL_UP13,257,34,20,8
+ CONTROL "",IDC_SAVE13,"InputCustomHot",WS_TABSTOP,279,31,60,12,WS_EX_CLIENTEDGE
+ RTEXT "load3",IDC_LABEL_UP14,257,48,20,8
+ CONTROL "",IDC_SAVE14,"InputCustomHot",WS_TABSTOP,279,45,60,12,WS_EX_CLIENTEDGE
+ RTEXT "load4",IDC_LABEL_UP15,257,61,20,8
+ CONTROL "",IDC_SAVE15,"InputCustomHot",WS_TABSTOP,279,58,60,12,WS_EX_CLIENTEDGE
+ RTEXT "load5",IDC_LABEL_UP16,257,72,20,8
+ CONTROL "",IDC_SAVE16,"InputCustomHot",WS_TABSTOP,279,71,60,12,WS_EX_CLIENTEDGE
+ RTEXT "load6",IDC_LABEL_UP17,257,85,20,8
+ CONTROL "",IDC_SAVE17,"InputCustomHot",WS_TABSTOP,279,82,60,12,WS_EX_CLIENTEDGE
+ RTEXT "load7",IDC_LABEL_UP18,257,98,20,8
+ CONTROL "",IDC_SAVE18,"InputCustomHot",WS_TABSTOP,279,96,60,12,WS_EX_CLIENTEDGE
+ RTEXT "load8",IDC_LABEL_UP19,257,111,20,8
+ CONTROL "",IDC_SAVE19,"InputCustomHot",WS_TABSTOP,279,109,60,12,WS_EX_CLIENTEDGE
+ RTEXT "load9",IDC_LABEL_UP20,257,125,20,8
+ CONTROL "",IDC_SAVE20,"InputCustomHot",WS_TABSTOP,279,122,60,12,WS_EX_CLIENTEDGE
+ RTEXT "load0",IDC_LABEL_UP21,257,8,20,8
+ RTEXT "fast forward",IDC_LABEL_HK5,3,61,58,8
+ RTEXT "show pressed keys",IDC_LABEL_HK10,1,125,61,8
+ RTEXT "save screenshot",IDC_LABEL_HK13,3,163,59,8
+ RTEXT "slot-",IDC_LABEL_UP22,170,138,20,8
+ CONTROL "",IDC_SLOTMINUS,"InputCustomHot",WS_TABSTOP,192,135,60,12,WS_EX_CLIENTEDGE
+ RTEXT "slot+",IDC_LABEL_UP23,257,138,20,8
+ CONTROL "",IDC_SLOTPLUS,"InputCustomHot",WS_TABSTOP,279,135,60,12,WS_EX_CLIENTEDGE
+ RTEXT "save#",IDC_LABEL_UP24,166,151,23,8
+ CONTROL "",IDC_SLOTSAVE,"InputCustomHot",WS_TABSTOP,192,149,60,12,WS_EX_CLIENTEDGE
+ RTEXT "load#",IDC_LABEL_UP25,253,151,23,8
+ CONTROL "",IDC_SLOTLOAD,"InputCustomHot",WS_TABSTOP,279,149,60,12,WS_EX_CLIENTEDGE
+ LTEXT "Blue means the hotkey is already mapped.\nPink means it conflicts with a game button.\nRed means it's reserved by Windows.\nA hotkey can be disabled using Escape.",IDC_LABEL_BLUE,208,164,136,32
+ COMBOBOX IDC_HKCOMBO,134,183,60,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+END
//
// Accelerator resources