* Cheats: update the window when ROM is changed
* Cheats: show the number of active cheats after a ROM is loaded
This commit is contained in:
parent
d814920f00
commit
755d9dc64d
|
@ -68,25 +68,29 @@ HWND hGGConv;
|
||||||
void EncodeGG(char *str, int a, int v, int c);
|
void EncodeGG(char *str, int a, int v, int c);
|
||||||
void ListGGAddresses();
|
void ListGGAddresses();
|
||||||
|
|
||||||
uint16 StrToU16(char *s) {
|
uint16 StrToU16(char *s)
|
||||||
|
{
|
||||||
unsigned int ret=0;
|
unsigned int ret=0;
|
||||||
sscanf(s,"%4x",&ret);
|
sscanf(s,"%4x",&ret);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8 StrToU8(char *s) {
|
uint8 StrToU8(char *s)
|
||||||
|
{
|
||||||
unsigned int ret=0;
|
unsigned int ret=0;
|
||||||
sscanf(s,"%2x",&ret);
|
sscanf(s,"%2x",&ret);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
char *U16ToStr(uint16 a) {
|
char *U16ToStr(uint16 a)
|
||||||
|
{
|
||||||
static char str[5];
|
static char str[5];
|
||||||
sprintf(str,"%04X",a);
|
sprintf(str,"%04X",a);
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
char *U8ToStr(uint8 a) {
|
char *U8ToStr(uint8 a)
|
||||||
|
{
|
||||||
static char str[3];
|
static char str[3];
|
||||||
sprintf(str,"%02X",a);
|
sprintf(str,"%02X",a);
|
||||||
return str;
|
return str;
|
||||||
|
@ -94,7 +98,8 @@ char *U8ToStr(uint8 a) {
|
||||||
|
|
||||||
static HWND hwndLB;
|
static HWND hwndLB;
|
||||||
//int RedoCheatsCallB(char *name, uint32 a, uint8 v, int s) { //bbit edited: this commented out line was changed to the below for the new fceud
|
//int RedoCheatsCallB(char *name, uint32 a, uint8 v, int s) { //bbit edited: this commented out line was changed to the below for the new fceud
|
||||||
int RedoCheatsCallB(char *name, uint32 a, uint8 v, int c, int s, int type, void*data) {
|
int RedoCheatsCallB(char *name, uint32 a, uint8 v, int c, int s, int type, void*data)
|
||||||
|
{
|
||||||
char str[259] = { 0 };
|
char str[259] = { 0 };
|
||||||
|
|
||||||
strcpy(str,(s?"* ":" "));
|
strcpy(str,(s?"* ":" "));
|
||||||
|
@ -112,13 +117,25 @@ int RedoCheatsCallB(char *name, uint32 a, uint8 v, int c, int s, int type, void*
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RedoCheatsLB(HWND hwndDlg) {
|
void RedoCheatsLB(HWND hwndDlg)
|
||||||
SendDlgItemMessage(hwndDlg,IDC_LIST_CHEATS,LB_RESETCONTENT,0,0);
|
{
|
||||||
hwndLB=hwndDlg;
|
SendDlgItemMessage(hwndDlg, IDC_LIST_CHEATS, LB_RESETCONTENT, 0, 0);
|
||||||
FCEUI_ListCheats(RedoCheatsCallB,0);
|
hwndLB = hwndDlg;
|
||||||
|
FCEUI_ListCheats(RedoCheatsCallB, 0);
|
||||||
|
|
||||||
|
if (selcheat >= 0)
|
||||||
|
{
|
||||||
|
EnableWindow(GetDlgItem(hCheat, IDC_BTN_CHEAT_DEL), TRUE);
|
||||||
|
EnableWindow(GetDlgItem(hCheat, IDC_BTN_CHEAT_UPD), TRUE);
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
EnableWindow(GetDlgItem(hCheat, IDC_BTN_CHEAT_DEL), FALSE);
|
||||||
|
EnableWindow(GetDlgItem(hCheat, IDC_BTN_CHEAT_UPD), FALSE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int ShowResultsCallB(uint32 a, uint8 last, uint8 current) {
|
int ShowResultsCallB(uint32 a, uint8 last, uint8 current)
|
||||||
|
{
|
||||||
char temp[16];
|
char temp[16];
|
||||||
|
|
||||||
sprintf(temp,"$%04X: %02X | %02X",(unsigned int)a,last,current);
|
sprintf(temp,"$%04X: %02X | %02X",(unsigned int)a,last,current);
|
||||||
|
@ -126,7 +143,8 @@ int ShowResultsCallB(uint32 a, uint8 last, uint8 current) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ShowResults(HWND hwndDlg) {
|
void ShowResults(HWND hwndDlg)
|
||||||
|
{
|
||||||
int n=FCEUI_CheatSearchGetCount();
|
int n=FCEUI_CheatSearchGetCount();
|
||||||
int t;
|
int t;
|
||||||
char str[20];
|
char str[20];
|
||||||
|
@ -148,7 +166,8 @@ void ShowResults(HWND hwndDlg) {
|
||||||
SetDlgItemText(hwndDlg,IDC_CHEAT_BOX_POSSIBILITIES,str);
|
SetDlgItemText(hwndDlg,IDC_CHEAT_BOX_POSSIBILITIES,str);
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnableCheatButtons(HWND hwndDlg, int enable) {
|
void EnableCheatButtons(HWND hwndDlg, int enable)
|
||||||
|
{
|
||||||
EnableWindow(GetDlgItem(hwndDlg,IDC_CHEAT_VAL_KNOWN),enable);
|
EnableWindow(GetDlgItem(hwndDlg,IDC_CHEAT_VAL_KNOWN),enable);
|
||||||
EnableWindow(GetDlgItem(hwndDlg,IDC_BTN_CHEAT_KNOWN),enable);
|
EnableWindow(GetDlgItem(hwndDlg,IDC_BTN_CHEAT_KNOWN),enable);
|
||||||
EnableWindow(GetDlgItem(hwndDlg,IDC_BTN_CHEAT_EQ),enable);
|
EnableWindow(GetDlgItem(hwndDlg,IDC_BTN_CHEAT_EQ),enable);
|
||||||
|
@ -157,7 +176,8 @@ void EnableCheatButtons(HWND hwndDlg, int enable) {
|
||||||
EnableWindow(GetDlgItem(hwndDlg,IDC_BTN_CHEAT_LT),enable);
|
EnableWindow(GetDlgItem(hwndDlg,IDC_BTN_CHEAT_LT),enable);
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) {
|
BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||||
|
{
|
||||||
LOGFONT lf;
|
LOGFONT lf;
|
||||||
RECT wrect;
|
RECT wrect;
|
||||||
|
|
||||||
|
@ -169,7 +189,8 @@ BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l
|
||||||
int c;
|
int c;
|
||||||
int s;
|
int s;
|
||||||
|
|
||||||
switch (uMsg) {
|
switch (uMsg)
|
||||||
|
{
|
||||||
case WM_INITDIALOG:
|
case WM_INITDIALOG:
|
||||||
if (ChtPosX==-32000) ChtPosX=0; //Just in case
|
if (ChtPosX==-32000) ChtPosX=0; //Just in case
|
||||||
if (ChtPosY==-32000) ChtPosY=0;
|
if (ChtPosY==-32000) ChtPosY=0;
|
||||||
|
@ -204,9 +225,8 @@ BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l
|
||||||
|
|
||||||
//disable or enable buttons
|
//disable or enable buttons
|
||||||
EnableWindow(GetDlgItem(hwndDlg,IDC_CHEAT_VAL_KNOWN),FALSE);
|
EnableWindow(GetDlgItem(hwndDlg,IDC_CHEAT_VAL_KNOWN),FALSE);
|
||||||
EnableWindow(GetDlgItem(hwndDlg,IDC_BTN_CHEAT_DEL),FALSE);
|
if (scrollnum)
|
||||||
EnableWindow(GetDlgItem(hwndDlg,IDC_BTN_CHEAT_UPD),FALSE);
|
{
|
||||||
if (scrollnum) {
|
|
||||||
EnableCheatButtons(hwndDlg,TRUE);
|
EnableCheatButtons(hwndDlg,TRUE);
|
||||||
ShowResults(hwndDlg);
|
ShowResults(hwndDlg);
|
||||||
sprintf(str,"%d Possibilities",(int)FCEUI_CheatSearchGetCount());
|
sprintf(str,"%d Possibilities",(int)FCEUI_CheatSearchGetCount());
|
||||||
|
@ -215,11 +235,8 @@ BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l
|
||||||
else EnableCheatButtons(hwndDlg,FALSE);
|
else EnableCheatButtons(hwndDlg,FALSE);
|
||||||
|
|
||||||
//misc setup
|
//misc setup
|
||||||
//RedoCheatsLB(hwndDlg); //adelikat: Moved to UpdateCheatsAdded() function
|
|
||||||
searchdone=0;
|
searchdone=0;
|
||||||
SetDlgItemText(hwndDlg,IDC_CHEAT_VAL_KNOWN,(LPTSTR)U8ToStr(knownvalue));
|
SetDlgItemText(hwndDlg,IDC_CHEAT_VAL_KNOWN,(LPTSTR)U8ToStr(knownvalue));
|
||||||
InitializeCheatsAdded(hwndDlg);
|
|
||||||
|
|
||||||
// Enable Context Sub-Menus
|
// Enable Context Sub-Menus
|
||||||
hCheatcontext = LoadMenu(fceu_hInstance,"CHEATCONTEXTMENUS");
|
hCheatcontext = LoadMenu(fceu_hInstance,"CHEATCONTEXTMENUS");
|
||||||
|
|
||||||
|
@ -453,16 +470,14 @@ BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l
|
||||||
SetDlgItemText(hwndDlg,IDC_CHEAT_VAL,(LPTSTR)"");
|
SetDlgItemText(hwndDlg,IDC_CHEAT_VAL,(LPTSTR)"");
|
||||||
SetDlgItemText(hwndDlg,IDC_CHEAT_COM,(LPTSTR)"");
|
SetDlgItemText(hwndDlg,IDC_CHEAT_COM,(LPTSTR)"");
|
||||||
SetDlgItemText(hwndDlg,IDC_CHEAT_NAME,(LPTSTR)"");
|
SetDlgItemText(hwndDlg,IDC_CHEAT_NAME,(LPTSTR)"");
|
||||||
|
|
||||||
EnableWindow(GetDlgItem(hwndDlg,IDC_BTN_CHEAT_DEL),TRUE);
|
|
||||||
EnableWindow(GetDlgItem(hwndDlg,IDC_BTN_CHEAT_UPD),TRUE);
|
|
||||||
}
|
}
|
||||||
if(hMemView)UpdateColorTable(); //if the memory viewer is open then update any blue freeze locations in it as well
|
if (hMemView) UpdateColorTable(); //if the memory viewer is open then update any blue freeze locations in it as well
|
||||||
UpdateCheatsAdded();
|
UpdateCheatsAdded();
|
||||||
break;
|
break;
|
||||||
case ID_CHEATLISTPOPUP_DELETESELECTEDCHEATS:
|
case ID_CHEATLISTPOPUP_DELETESELECTEDCHEATS:
|
||||||
case IDC_BTN_CHEAT_DEL:
|
case IDC_BTN_CHEAT_DEL:
|
||||||
if (selcheatcount > 1) {
|
if (selcheatcount > 1)
|
||||||
|
{
|
||||||
if (IDYES == MessageBox(hwndDlg, "Multiple cheats selected. Continue with delete?", "Delete multiple cheats?", MB_ICONQUESTION | MB_YESNO)) { //Get message box
|
if (IDYES == MessageBox(hwndDlg, "Multiple cheats selected. Continue with delete?", "Delete multiple cheats?", MB_ICONQUESTION | MB_YESNO)) { //Get message box
|
||||||
selcheat=-1;
|
selcheat=-1;
|
||||||
for (int selcheattemp=SendDlgItemMessage(hwndDlg,IDC_LIST_CHEATS,LB_GETCOUNT,0,0)-1;selcheattemp>=0;selcheattemp--) {
|
for (int selcheattemp=SendDlgItemMessage(hwndDlg,IDC_LIST_CHEATS,LB_GETCOUNT,0,0)-1;selcheattemp>=0;selcheattemp--) {
|
||||||
|
@ -475,9 +490,7 @@ BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l
|
||||||
SetDlgItemText(hwndDlg,IDC_CHEAT_VAL,(LPTSTR)"");
|
SetDlgItemText(hwndDlg,IDC_CHEAT_VAL,(LPTSTR)"");
|
||||||
SetDlgItemText(hwndDlg,IDC_CHEAT_COM,(LPTSTR)"");
|
SetDlgItemText(hwndDlg,IDC_CHEAT_COM,(LPTSTR)"");
|
||||||
SetDlgItemText(hwndDlg,IDC_CHEAT_NAME,(LPTSTR)"");
|
SetDlgItemText(hwndDlg,IDC_CHEAT_NAME,(LPTSTR)"");
|
||||||
EnableWindow(GetDlgItem(hwndDlg,IDC_BTN_CHEAT_DEL),FALSE);
|
if (hMemView) UpdateColorTable(); //if the memory viewer is open then update any blue freeze locations in it as well
|
||||||
EnableWindow(GetDlgItem(hwndDlg,IDC_BTN_CHEAT_UPD),FALSE);
|
|
||||||
if(hMemView)UpdateColorTable(); //if the memory viewer is open then update any blue freeze locations in it as well
|
|
||||||
UpdateCheatsAdded();
|
UpdateCheatsAdded();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -490,9 +503,7 @@ BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l
|
||||||
SetDlgItemText(hwndDlg,IDC_CHEAT_COM,(LPTSTR)"");
|
SetDlgItemText(hwndDlg,IDC_CHEAT_COM,(LPTSTR)"");
|
||||||
SetDlgItemText(hwndDlg,IDC_CHEAT_NAME,(LPTSTR)"");
|
SetDlgItemText(hwndDlg,IDC_CHEAT_NAME,(LPTSTR)"");
|
||||||
}
|
}
|
||||||
EnableWindow(GetDlgItem(hwndDlg,IDC_BTN_CHEAT_DEL),FALSE);
|
if (hMemView) UpdateColorTable(); //if the memory viewer is open then update any blue freeze locations in it as well
|
||||||
EnableWindow(GetDlgItem(hwndDlg,IDC_BTN_CHEAT_UPD),FALSE);
|
|
||||||
if(hMemView)UpdateColorTable(); //if the memory viewer is open then update any blue freeze locations in it as well
|
|
||||||
UpdateCheatsAdded();
|
UpdateCheatsAdded();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -566,8 +577,6 @@ BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l
|
||||||
if (file)
|
if (file)
|
||||||
{
|
{
|
||||||
FCEU_LoadGameCheats(file);
|
FCEU_LoadGameCheats(file);
|
||||||
EnableWindow(GetDlgItem(hwndDlg,IDC_BTN_CHEAT_DEL),TRUE);
|
|
||||||
EnableWindow(GetDlgItem(hwndDlg,IDC_BTN_CHEAT_UPD),TRUE);
|
|
||||||
if (hMemView) UpdateColorTable(); //if the memory viewer is open then update any blue freeze locations in it as well
|
if (hMemView) UpdateColorTable(); //if the memory viewer is open then update any blue freeze locations in it as well
|
||||||
UpdateCheatsAdded();
|
UpdateCheatsAdded();
|
||||||
savecheats = 1;
|
savecheats = 1;
|
||||||
|
@ -670,16 +679,18 @@ BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l
|
||||||
case LBN_SELCHANGE:
|
case LBN_SELCHANGE:
|
||||||
switch (LOWORD(wParam)) {
|
switch (LOWORD(wParam)) {
|
||||||
case IDC_LIST_CHEATS:
|
case IDC_LIST_CHEATS:
|
||||||
selcheat = SendDlgItemMessage(hwndDlg,IDC_LIST_CHEATS,LB_GETCURSEL,0,0);
|
selcheat = SendDlgItemMessage(hwndDlg, IDC_LIST_CHEATS, LB_GETCURSEL, 0, 0);
|
||||||
selcheatcount = SendDlgItemMessage(hwndDlg,IDC_LIST_CHEATS,LB_GETSELCOUNT,0,0);
|
selcheatcount = SendDlgItemMessage(hwndDlg, IDC_LIST_CHEATS, LB_GETSELCOUNT, 0, 0);
|
||||||
if (selcheat < 0) break;
|
if (selcheat < 0) break;
|
||||||
|
|
||||||
FCEUI_GetCheat(selcheat,&name,&a,&v,&c,&s,NULL);
|
FCEUI_GetCheat(selcheat,&name,&a,&v,&c,&s,NULL);
|
||||||
SetDlgItemText(hwndDlg,IDC_CHEAT_NAME,(LPTSTR)name);
|
SetDlgItemText(hwndDlg,IDC_CHEAT_NAME,(LPTSTR)name);
|
||||||
SetDlgItemText(hwndDlg,IDC_CHEAT_ADDR,(LPTSTR)U16ToStr(a));
|
SetDlgItemText(hwndDlg,IDC_CHEAT_ADDR,(LPTSTR)U16ToStr(a));
|
||||||
SetDlgItemText(hwndDlg,IDC_CHEAT_VAL,(LPTSTR)U8ToStr(v));
|
SetDlgItemText(hwndDlg,IDC_CHEAT_VAL,(LPTSTR)U8ToStr(v));
|
||||||
if(c == -1) SetDlgItemText(hwndDlg,IDC_CHEAT_COM,(LPTSTR)"");
|
if (c == -1)
|
||||||
else SetDlgItemText(hwndDlg,IDC_CHEAT_COM,(LPTSTR)U8ToStr(c));
|
SetDlgItemText(hwndDlg,IDC_CHEAT_COM,(LPTSTR)"");
|
||||||
|
else
|
||||||
|
SetDlgItemText(hwndDlg,IDC_CHEAT_COM,(LPTSTR)U8ToStr(c));
|
||||||
|
|
||||||
EnableWindow(GetDlgItem(hwndDlg,IDC_BTN_CHEAT_DEL),TRUE);
|
EnableWindow(GetDlgItem(hwndDlg,IDC_BTN_CHEAT_DEL),TRUE);
|
||||||
EnableWindow(GetDlgItem(hwndDlg,IDC_BTN_CHEAT_UPD),TRUE);
|
EnableWindow(GetDlgItem(hwndDlg,IDC_BTN_CHEAT_UPD),TRUE);
|
||||||
|
@ -721,8 +732,10 @@ BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void ConfigCheats(HWND hParent) {
|
void ConfigCheats(HWND hParent)
|
||||||
if (!GameInfo) {
|
{
|
||||||
|
if (!GameInfo)
|
||||||
|
{
|
||||||
FCEUD_PrintError("You must have a game loaded before you can manipulate cheats.");
|
FCEUD_PrintError("You must have a game loaded before you can manipulate cheats.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -736,9 +749,10 @@ void ConfigCheats(HWND hParent) {
|
||||||
selcheat=-1;
|
selcheat=-1;
|
||||||
CheatWindow=1;
|
CheatWindow=1;
|
||||||
if (CheatStyle)
|
if (CheatStyle)
|
||||||
pwindow = hCheat = CreateDialog(fceu_hInstance,"CHEATCONSOLE",NULL,CheatConsoleCallB);
|
pwindow = hCheat = CreateDialog(fceu_hInstance, "CHEATCONSOLE", NULL, CheatConsoleCallB);
|
||||||
else
|
else
|
||||||
DialogBox(fceu_hInstance,"CHEATCONSOLE",hParent,CheatConsoleCallB);
|
DialogBox(fceu_hInstance,"CHEATCONSOLE",hParent,CheatConsoleCallB);
|
||||||
|
UpdateCheatsAdded();
|
||||||
} else
|
} else
|
||||||
{
|
{
|
||||||
ShowWindow(hCheat, SW_SHOWNORMAL);
|
ShowWindow(hCheat, SW_SHOWNORMAL);
|
||||||
|
@ -754,57 +768,34 @@ void UpdateCheatList()
|
||||||
ShowResults(pwindow);
|
ShowResults(pwindow);
|
||||||
}
|
}
|
||||||
|
|
||||||
//This is necessary during the intialization of the cheats dialog, it is redundant with UpdateCheatsAdded except the handle is passed by CheatConsoleCallB
|
|
||||||
void InitializeCheatsAdded(HWND hwndDlg)
|
|
||||||
{
|
|
||||||
char temp[64];
|
|
||||||
if (FrozenAddressCount < 256)
|
|
||||||
sprintf(temp,"Active Cheats %d", FrozenAddressCount);
|
|
||||||
else if (FrozenAddressCount == 256)
|
|
||||||
{
|
|
||||||
sprintf(temp,"Active Cheats %d (Max Limit)", FrozenAddressCount);
|
|
||||||
EnableWindow(GetDlgItem(hwndDlg,IDC_BTN_CHEAT_ADD),FALSE);
|
|
||||||
EnableWindow(GetDlgItem(hwndDlg,IDC_BTN_CHEAT_ADDFROMFILE),FALSE);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
sprintf(temp,"%d Error: Too many cheats loaded!", FrozenAddressCount);
|
|
||||||
EnableWindow(GetDlgItem(hwndDlg,IDC_BTN_CHEAT_ADD),FALSE);
|
|
||||||
EnableWindow(GetDlgItem(hwndDlg,IDC_BTN_CHEAT_ADDFROMFILE),FALSE);
|
|
||||||
}
|
|
||||||
SetDlgItemText(hwndDlg,201,temp);
|
|
||||||
RedoCheatsLB(hwndDlg);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Used by cheats and external dialogs such as hex editor to update items in the cheat search dialog
|
//Used by cheats and external dialogs such as hex editor to update items in the cheat search dialog
|
||||||
void UpdateCheatsAdded()
|
void UpdateCheatsAdded()
|
||||||
{
|
{
|
||||||
char temp[64];
|
char temp[64];
|
||||||
if(!pwindow)
|
if (FrozenAddressCount < 256)
|
||||||
return;
|
{
|
||||||
|
sprintf(temp,"Active Cheats %d", FrozenAddressCount);
|
||||||
|
EnableWindow(GetDlgItem(hCheat, IDC_BTN_CHEAT_ADD), TRUE);
|
||||||
|
EnableWindow(GetDlgItem(hCheat, IDC_BTN_CHEAT_ADDFROMFILE), TRUE);
|
||||||
|
} else if (FrozenAddressCount == 256)
|
||||||
|
{
|
||||||
|
sprintf(temp,"Active Cheats %d (Max Limit)", FrozenAddressCount);
|
||||||
|
EnableWindow(GetDlgItem(hCheat, IDC_BTN_CHEAT_ADD), FALSE);
|
||||||
|
EnableWindow(GetDlgItem(hCheat, IDC_BTN_CHEAT_ADDFROMFILE), FALSE);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (FrozenAddressCount < 256)
|
sprintf(temp,"%d Error: Too many cheats loaded!", FrozenAddressCount);
|
||||||
sprintf(temp,"Active Cheats %d", FrozenAddressCount);
|
EnableWindow(GetDlgItem(hCheat, IDC_BTN_CHEAT_ADD), FALSE);
|
||||||
|
EnableWindow(GetDlgItem(hCheat, IDC_BTN_CHEAT_ADDFROMFILE), FALSE);
|
||||||
else if (FrozenAddressCount == 256)
|
|
||||||
{
|
|
||||||
sprintf(temp,"Active Cheats %d (Max Limit)", FrozenAddressCount);
|
|
||||||
EnableWindow(GetDlgItem(hCheat,IDC_BTN_CHEAT_ADD),FALSE);
|
|
||||||
EnableWindow(GetDlgItem(hCheat,IDC_BTN_CHEAT_ADDFROMFILE),FALSE);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
sprintf(temp,"%d Error: Too many cheats loaded!", FrozenAddressCount);
|
|
||||||
EnableWindow(GetDlgItem(hCheat,IDC_BTN_CHEAT_ADD),FALSE);
|
|
||||||
EnableWindow(GetDlgItem(hCheat,IDC_BTN_CHEAT_ADDFROMFILE),FALSE);
|
|
||||||
}
|
|
||||||
SetDlgItemText(hCheat,201,temp);
|
|
||||||
RedoCheatsLB(hCheat);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SetDlgItemText(hCheat,201,temp);
|
||||||
|
RedoCheatsLB(hCheat);
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL CALLBACK GGConvCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) {
|
BOOL CALLBACK GGConvCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||||
|
{
|
||||||
char str[100];
|
char str[100];
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -934,7 +925,8 @@ BOOL CALLBACK GGConvCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||||
|
|
||||||
//The code in this function is a modified version
|
//The code in this function is a modified version
|
||||||
//of Chris Covell's work - I'd just like to point that out
|
//of Chris Covell's work - I'd just like to point that out
|
||||||
void EncodeGG(char *str, int a, int v, int c){
|
void EncodeGG(char *str, int a, int v, int c)
|
||||||
|
{
|
||||||
uint8 num[8];
|
uint8 num[8];
|
||||||
static char lets[16]={'A','P','Z','L','G','I','T','Y','E','O','X','U','K','S','V','N'};
|
static char lets[16]={'A','P','Z','L','G','I','T','Y','E','O','X','U','K','S','V','N'};
|
||||||
int i;
|
int i;
|
||||||
|
@ -962,7 +954,8 @@ void EncodeGG(char *str, int a, int v, int c){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ListGGAddresses(){
|
void ListGGAddresses()
|
||||||
|
{
|
||||||
uint32 i, j = 0; //mbg merge 7/18/06 changed from int
|
uint32 i, j = 0; //mbg merge 7/18/06 changed from int
|
||||||
char str[20];
|
char str[20];
|
||||||
SendDlgItemMessage(hGGConv,IDC_LIST_GGADDRESSES,LB_RESETCONTENT,0,0);
|
SendDlgItemMessage(hGGConv,IDC_LIST_GGADDRESSES,LB_RESETCONTENT,0,0);
|
||||||
|
@ -981,14 +974,13 @@ void ListGGAddresses(){
|
||||||
SendDlgItemMessage(hGGConv,IDC_LIST_GGADDRESSES,LB_ADDSTRING,0,(LPARAM)(LPSTR)str);
|
SendDlgItemMessage(hGGConv,IDC_LIST_GGADDRESSES,LB_ADDSTRING,0,(LPARAM)(LPSTR)str);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//A different model for this could be to have everything
|
//A different model for this could be to have everything
|
||||||
//set in the INITDIALOG message based on the internal
|
//set in the INITDIALOG message based on the internal
|
||||||
//variables, and have this simply call that.
|
//variables, and have this simply call that.
|
||||||
void SetGGConvFocus(int address,int compare){
|
void SetGGConvFocus(int address,int compare)
|
||||||
|
{
|
||||||
char str[10];
|
char str[10];
|
||||||
if(!hGGConv)DoGGConv();
|
if(!hGGConv)DoGGConv();
|
||||||
GGaddr = address;
|
GGaddr = address;
|
||||||
|
|
15
src/fceu.cpp
15
src/fceu.cpp
|
@ -76,6 +76,7 @@ extern void RefreshThrottleFPS();
|
||||||
//TODO - we really need some kind of global platform-specific options api
|
//TODO - we really need some kind of global platform-specific options api
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
#include "drivers/win/main.h"
|
#include "drivers/win/main.h"
|
||||||
|
#include "drivers/win/memview.h"
|
||||||
#include "drivers/win/cheat.h"
|
#include "drivers/win/cheat.h"
|
||||||
#include "drivers/win/texthook.h"
|
#include "drivers/win/texthook.h"
|
||||||
#include "drivers/win/ram_search.h"
|
#include "drivers/win/ram_search.h"
|
||||||
|
@ -486,11 +487,6 @@ FCEUGI *FCEUI_LoadGameVirtual(const char *name, int OverwriteVidMode, bool silen
|
||||||
if (GameInfo->type != GIT_NSF)
|
if (GameInfo->type != GIT_NSF)
|
||||||
FCEU_LoadGameCheats(0);
|
FCEU_LoadGameCheats(0);
|
||||||
|
|
||||||
#if defined (WIN32) || defined (WIN64)
|
|
||||||
DoDebuggerDataReload(); // Reloads data without reopening window
|
|
||||||
CDLoggerROMChanged();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (AutoResumePlay && (GameInfo->type != GIT_NSF))
|
if (AutoResumePlay && (GameInfo->type != GIT_NSF))
|
||||||
{
|
{
|
||||||
// load "-resume" savestate
|
// load "-resume" savestate
|
||||||
|
@ -502,6 +498,15 @@ FCEUGI *FCEUI_LoadGameVirtual(const char *name, int OverwriteVidMode, bool silen
|
||||||
|
|
||||||
ResetScreenshotsCounter();
|
ResetScreenshotsCounter();
|
||||||
|
|
||||||
|
#if defined (WIN32) || defined (WIN64)
|
||||||
|
DoDebuggerDataReload(); // Reloads data without reopening window
|
||||||
|
CDLoggerROMChanged();
|
||||||
|
if (hMemView) UpdateColorTable();
|
||||||
|
if (hCheat) UpdateCheatsAdded();
|
||||||
|
if (FrozenAddressCount)
|
||||||
|
FCEU_DispMessage("%d cheats active", 0, FrozenAddressCount);
|
||||||
|
#endif
|
||||||
|
|
||||||
return GameInfo;
|
return GameInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue