diff --git a/changelog.txt b/changelog.txt index ea7769c2..a4385da8 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,4 @@ +10-may-2010 - ugetab - Win32 - Added hotkey options for the cheat dialog buttons Equal, Not Equal, Greater Than, and Less Than. 10-may-2010 - ugetab - Added gui.getpixel() which gets any gui.pixel() set pixel colors, and possibly other functions. Added emu.getscreenpixel() which gets the RGB and Palette of any pixel on the screen. 08-may-2010 - ugetab - Added savestate.object() which is savestate.create() with intuitive numbering under windows 08-may-2010 - ugetab - Added emu.addgamegenie() and emu.delgamegenie() LUA functions. diff --git a/src/drivers/win/cheat.cpp b/src/drivers/win/cheat.cpp index 64a5fd59..ec46a8c1 100644 --- a/src/drivers/win/cheat.cpp +++ b/src/drivers/win/cheat.cpp @@ -147,6 +147,34 @@ void EnableCheatButtons(HWND hwndDlg, int enable) { EnableWindow(GetDlgItem(hwndDlg,IDC_BTN_CHEAT_LT),enable); } +void CheatDialogSearchEQ() { + searchdone=1; + FCEUI_CheatSearchEnd(2,0,0); + ShowResults(hCheat); + return; +} + +void CheatDialogSearchNE() { + searchdone=1; + FCEUI_CheatSearchEnd(3,0,0); + ShowResults(hCheat); + return; +} + +void CheatDialogSearchGT() { + searchdone=1; + FCEUI_CheatSearchEnd(5,0,0); + ShowResults(hCheat); + return; +} + +void CheatDialogSearchLT() { + searchdone=1; + FCEUI_CheatSearchEnd(6,0,0); + ShowResults(hCheat); + return; +} + BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { LOGFONT lf; RECT wrect; @@ -468,36 +496,37 @@ BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l ShowResults(hwndDlg); break; case IDC_BTN_CHEAT_EQ: - searchdone=1; - FCEUI_CheatSearchEnd(2,0,0); - ShowResults(hwndDlg); + CheatDialogSearchEQ(); + //searchdone=1; + //FCEUI_CheatSearchEnd(2,0,0); + //ShowResults(hwndDlg); break; case IDC_BTN_CHEAT_NE: - searchdone=1; if (IsDlgButtonChecked(hwndDlg,IDC_CHEAT_CHECK_NE_BY) == BST_CHECKED) { + searchdone=1; GetDlgItemText(hwndDlg,IDC_CHEAT_VAL_NE_BY,str,3); FCEUI_CheatSearchEnd(2,0,StrToU8(str)); + ShowResults(hwndDlg); } - else FCEUI_CheatSearchEnd(3,0,0); - ShowResults(hwndDlg); + else CheatDialogSearchNE(); //FCEUI_CheatSearchEnd(3,0,0); break; case IDC_BTN_CHEAT_GT: - searchdone=1; if (IsDlgButtonChecked(hwndDlg,IDC_CHEAT_CHECK_GT_BY) == BST_CHECKED) { + searchdone=1; GetDlgItemText(hwndDlg,IDC_CHEAT_VAL_GT_BY,str,3); FCEUI_CheatSearchEnd(7,0,StrToU8(str)); + ShowResults(hwndDlg); } - else FCEUI_CheatSearchEnd(5,0,0); - ShowResults(hwndDlg); + else CheatDialogSearchGT(); break; case IDC_BTN_CHEAT_LT: - searchdone=1; if (IsDlgButtonChecked(hwndDlg,IDC_CHEAT_CHECK_LT_BY) == BST_CHECKED) { + searchdone=1; GetDlgItemText(hwndDlg,IDC_CHEAT_VAL_LT_BY,str,3); FCEUI_CheatSearchEnd(8,0,StrToU8(str)); + ShowResults(hwndDlg); } - else FCEUI_CheatSearchEnd(6,0,0); - ShowResults(hwndDlg); + else CheatDialogSearchLT(); break; } break; diff --git a/src/drivers/win/cheat.h b/src/drivers/win/cheat.h index 44f35a5c..4c7e5ce1 100644 --- a/src/drivers/win/cheat.h +++ b/src/drivers/win/cheat.h @@ -10,6 +10,10 @@ void DoGGConv(); void SetGGConvFocus(int address,int compare); void UpdateCheatList(); void UpdateCheatsAdded(); +void CheatDialogSearchEQ(); +void CheatDialogSearchNE(); +void CheatDialogSearchGT(); +void CheatDialogSearchLT(); extern unsigned int FrozenAddressCount; extern std::vector FrozenAddresses; diff --git a/src/input.cpp b/src/input.cpp index a39b65d2..ec32605d 100644 --- a/src/input.cpp +++ b/src/input.cpp @@ -632,6 +632,10 @@ static void LaunchTraceLogger(void); static void LaunchCodeDataLogger(void); static void LaunchRamWatch(void); static void LaunchRamSearch(void); +static void CheatSearchEQ(void); +static void CheatSearchNE(void); +static void CheatSearchGT(void); +static void CheatSearchLT(void); static void FA_SkipLag(void); static void OpenRom(void); static void CloseRom(void); @@ -752,8 +756,12 @@ struct EMUCMDTABLE FCEUI_CommandTable[]= { EMUCMD_MISC_DISPLAY_MOVIESUBTITLES, EMUCMDTYPE_MISC, MovieSubtitleToggle,0,0,"Toggle Movie Subtitles", 0}, { EMUCMD_MISC_UNDOREDOSAVESTATE, EMUCMDTYPE_MISC, UndoRedoSavestate, 0,0,"Undo/Redo Savestate", 0}, { EMUCMD_MISC_TOGGLEFULLSCREEN, EMUCMDTYPE_MISC, ToggleFullscreen, 0, 0, "Toggle Fullscreen", 0}, - { EMUCMD_TOOL_OPENRAMWATCH, EMUCMDTYPE_TOOL, LaunchRamWatch, 0, 0, "Open Ram Watch", 0}, + { EMUCMD_TOOL_OPENRAMWATCH, EMUCMDTYPE_TOOL, LaunchRamWatch, 0, 0, "Open Ram Watch", 0}, { EMUCMD_TOOL_OPENRAMSEARCH, EMUCMDTYPE_TOOL, LaunchRamSearch, 0, 0, "Open Ram Search", 0}, + { EMUCMD_CHEAT_SEARCHEQ, EMUCMDTYPE_TOOL, CheatSearchEQ, 0, 0, "Cheat Search Equal", 0}, + { EMUCMD_CHEAT_SEARCHNE, EMUCMDTYPE_TOOL, CheatSearchNE, 0, 0, "Cheat Search Not Equal", 0}, + { EMUCMD_CHEAT_SEARCHGT, EMUCMDTYPE_TOOL, CheatSearchGT, 0, 0, "Cheat Search Greater Than", 0}, + { EMUCMD_CHEAT_SEARCHLT, EMUCMDTYPE_TOOL, CheatSearchLT, 0, 0, "Cheat Search Less Than", 0}, }; #define NUM_EMU_CMDS (sizeof(FCEUI_CommandTable)/sizeof(FCEUI_CommandTable[0])) @@ -954,6 +962,38 @@ static void LaunchRamSearch(void) #endif } +static void CheatSearchEQ(void) +{ +#ifdef WIN32 + extern void CheatDialogSearchEQ(); + CheatDialogSearchEQ(); +#endif +} + +static void CheatSearchNE(void) +{ +#ifdef WIN32 + extern void CheatDialogSearchNE(); + CheatDialogSearchNE(); +#endif +} + +static void CheatSearchGT(void) +{ +#ifdef WIN32 + extern void CheatDialogSearchGT(); + CheatDialogSearchGT(); +#endif +} + +static void CheatSearchLT(void) +{ +#ifdef WIN32 + extern void CheatDialogSearchLT(); + CheatDialogSearchLT(); +#endif +} + static void FA_SkipLag(void) diff --git a/src/input.h b/src/input.h index 9a432e72..dfa80ec1 100644 --- a/src/input.h +++ b/src/input.h @@ -221,6 +221,10 @@ enum EMUCMD EMUCMD_MISC_TOGGLEFULLSCREEN, EMUCMD_TOOL_OPENRAMWATCH, EMUCMD_TOOL_OPENRAMSEARCH, + EMUCMD_CHEAT_SEARCHEQ, + EMUCMD_CHEAT_SEARCHNE, + EMUCMD_CHEAT_SEARCHLT, + EMUCMD_CHEAT_SEARCHGT, EMUCMD_MAX };