From 9bfbbb14416bb74ccc7be18dae53f427f7aae684 Mon Sep 17 00:00:00 2001 From: mtabachenko Date: Mon, 15 Apr 2013 19:49:36 +0000 Subject: [PATCH] winport: - add "jit block size" field in Emulation Settings dialog; --- desmume/src/windows/main.cpp | 35 +++++++++++++++++++++++++++++-- desmume/src/windows/resource.h | 1 + desmume/src/windows/resources.rc | Bin 1424920 -> 1425184 bytes 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/desmume/src/windows/main.cpp b/desmume/src/windows/main.cpp index c5162f470..a1cdbab7e 100644 --- a/desmume/src/windows/main.cpp +++ b/desmume/src/windows/main.cpp @@ -6173,7 +6173,12 @@ LRESULT CALLBACK EmulationSettingsDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, L SetDlgItemText(hDlg, IDC_ARM9BIOS, CommonSettings.ARM9BIOS); SetDlgItemText(hDlg, IDC_ARM7BIOS, CommonSettings.ARM7BIOS); CheckDlgItem(hDlg, IDC_CHECKBOX_DYNAREC, CommonSettings.use_jit); -#ifndef HAVE_JIT +#ifdef HAVE_JIT + EnableWindow(GetDlgItem(hDlg, IDC_JIT_BLOCK_SIZE), CommonSettings.use_jit?true:false); + char buf[4] = {0}; + itoa(CommonSettings.jit_max_block_size, &buf[0], 10); + SetDlgItemText(hDlg, IDC_JIT_BLOCK_SIZE, buf); +#else EnableWindow(GetDlgItem(hDlg, IDC_CHECKBOX_DYNAREC), false); #endif @@ -6219,12 +6224,29 @@ LRESULT CALLBACK EmulationSettingsDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, L { case IDOK: { + HWND cur; int val = 0; +#ifdef HAVE_JIT + u32 jit_size = 0; + if (IsDlgCheckboxChecked(hDlg, IDC_CHECKBOX_DYNAREC)) + { + char jit_size_buf[4] = {0}; + memset(&jit_size_buf[0], 0, sizeof(jit_size_buf)); + cur = GetDlgItem(hDlg, IDC_JIT_BLOCK_SIZE); + GetWindowText(cur, jit_size_buf, sizeof(jit_size_buf)); + jit_size = atoi(jit_size_buf); + if ((jit_size < 1) || (jit_size > 100)) + { + MessageBox(hDlg, "JIT block size should be in range 1..100\nTry again", "DeSmuME", MB_OK | MB_ICONERROR); + return FALSE; + } + } +#endif if(romloaded) val = MessageBox(hDlg, "The current ROM needs to be reset to apply changes.\nReset now ?", "DeSmuME", (MB_YESNO | MB_ICONQUESTION)); - HWND cur; + CommonSettings.UseExtBIOS = IsDlgCheckboxChecked(hDlg, IDC_USEEXTBIOS); cur = GetDlgItem(hDlg, IDC_ARM9BIOS); @@ -6244,6 +6266,11 @@ LRESULT CALLBACK EmulationSettingsDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, L CommonSettings.advanced_timing = IsDlgCheckboxChecked(hDlg, IDC_CHECBOX_ADVANCEDTIMING); #ifdef HAVE_JIT CommonSettings.use_jit = IsDlgCheckboxChecked(hDlg, IDC_CHECKBOX_DYNAREC); + if (CommonSettings.use_jit) + { + CommonSettings.jit_max_block_size = jit_size; + WritePrivateProfileInt("Emulation", "JitSize", CommonSettings.jit_max_block_size, IniName); + } #endif WritePrivateProfileInt("Emulation", "DebugConsole", ((CommonSettings.DebugConsole == true) ? 1 : 0), IniName); @@ -6347,6 +6374,10 @@ LRESULT CALLBACK EmulationSettingsDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, L } return TRUE; } + + case IDC_CHECKBOX_DYNAREC: + EnableWindow(GetDlgItem(hDlg, IDC_JIT_BLOCK_SIZE), IsDlgCheckboxChecked(hDlg, IDC_CHECKBOX_DYNAREC)); + return TRUE; } return TRUE; } diff --git a/desmume/src/windows/resource.h b/desmume/src/windows/resource.h index 005d81842..d0b7ff815 100644 --- a/desmume/src/windows/resource.h +++ b/desmume/src/windows/resource.h @@ -431,6 +431,7 @@ #define IDC_IMP_AUTO_FILE 1053 #define IDC_BUTTON1 1053 #define IDC_IMP_AUTO_ADVANSCENE 1054 +#define IDC_JIT_BLOCK_SIZE 1054 #define IDC_IMP_MANUAL 1055 #define IDC_LIST1 1056 #define IDC_IMP_INFO_CURRENT 1056 diff --git a/desmume/src/windows/resources.rc b/desmume/src/windows/resources.rc index f20a8236237dc7b94a139a31795bf989ff211b68..1e4660017917b088c68215af11e765d55252df32 100644 GIT binary patch delta 279 zcmbR7Cv3sLu!a`K7N!>F7M2#)C2aGi`^;g}QchyXVaR7lX2@nxU?^tDWT;|D1+tox*(2&7^!C-nIFSGRIgk%;$GoXMD5E}uZ4uctk$>fDIg{L>H9%k&LG0uj?M+~ZT4zF{km$MgnEPL}pfOW1&z9f&!Am=lP( kfS4PId4QM~i1~n+ABY8jSP+PXfLIuaMYeBRBAO-%09H3q9RL6T delta 99 zcmZ4RFKou2u!a`K7N!>F7M2#)C2aF1|4