summaryrefslogtreecommitdiff
path: root/win32/gui
diff options
context:
space:
mode:
authorSND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2009-08-09 09:04:04 +0000
committerSND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2009-08-09 09:04:04 +0000
commit70d1ec4e0111c02c71b417136aae37a43983ba10 (patch)
tree7fd643ecc809a519b0f07e62392be21f47d74714 /win32/gui
parentf17e942cc9e95674fbfe63c98d0af793b9aeb9b2 (diff)
downloadpcsxr-70d1ec4e0111c02c71b417136aae37a43983ba10.tar.gz
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@24786 e17a0e51-4ae3-4d35-97c3-1a29b211df97
Diffstat (limited to 'win32/gui')
-rw-r--r--win32/gui/AboutDlg.c8
-rw-r--r--win32/gui/CheatDlg.c438
-rw-r--r--win32/gui/ConfigurePlugins.c24
-rw-r--r--win32/gui/Win32.h5
-rw-r--r--win32/gui/WndMain.c57
-rwxr-xr-xwin32/gui/cdrom02.icobin2238 -> 9662 bytes
-rw-r--r--win32/gui/plugin.c6
7 files changed, 498 insertions, 40 deletions
diff --git a/win32/gui/AboutDlg.c b/win32/gui/AboutDlg.c
index fe112a12..bcf0bde0 100644
--- a/win32/gui/AboutDlg.c
+++ b/win32/gui/AboutDlg.c
@@ -20,7 +20,7 @@
#include <windowsx.h>
#include "resource.h"
#include "AboutDlg.h"
-#include "PsxCommon.h"
+#include "psxcommon.h"
char *LabelAuthors = { N_(
"PCSX - A PlayStation Emulator\n\n"
@@ -35,13 +35,13 @@ char *LabelGreets = { N_(
"PCSX-df Authors:\n"
"Ryan Schultz, Andrew Burton, Stephen Chao,\n"
"Marcus Comstedt, Stefan Sikora\n\n"
- "PCSX Reloaded By:\n"
+ "PCSX-Reloaded By:\n"
"Wei Mingzhi\n\n"
"http://www.codeplex.com/pcsxr")
};
LRESULT WINAPI AboutDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) {
- switch(uMsg) {
+ switch (uMsg) {
case WM_INITDIALOG:
SetWindowText(hDlg, _("About"));
@@ -53,7 +53,7 @@ LRESULT WINAPI AboutDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
return TRUE;
case WM_COMMAND:
- switch(wParam) {
+ switch (wParam) {
case IDOK:
EndDialog(hDlg, TRUE);
return TRUE;
diff --git a/win32/gui/CheatDlg.c b/win32/gui/CheatDlg.c
new file mode 100644
index 00000000..0642e407
--- /dev/null
+++ b/win32/gui/CheatDlg.c
@@ -0,0 +1,438 @@
+/* Cheat Support for PCSX-Reloaded
+ *
+ * Copyright (C) 2009, Wei Mingzhi <whistler_wmz@users.sf.net>.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Steet, Fifth Floor, Boston, MA 02111-1307 USA
+ */
+
+#include <windows.h>
+#include <windowsx.h>
+#include <commctrl.h>
+#include <stdio.h>
+#include "psxcommon.h"
+#include "psxmem.h"
+#include "cheat.h"
+#include "resource.h"
+#include "Win32.h"
+
+static void UpdateCheatDlg(HWND hW) {
+ HWND List;
+ LV_ITEM item;
+ int i;
+
+ List = GetDlgItem(hW, IDC_CODELIST);
+
+ ListView_DeleteAllItems(List);
+
+ for (i = 0; i < NumCheats; i++) {
+ memset(&item, 0, sizeof(item));
+
+ item.mask = LVIF_TEXT;
+ item.iItem = i;
+ item.pszText = Cheats[i].Descr;
+ item.iSubItem = 0;
+
+ SendMessage(List, LVM_INSERTITEM, 0, (LPARAM)&item);
+
+ item.pszText = (Cheats[i].Enabled ? _("Yes") : _("No"));
+ item.iSubItem = 1;
+
+ SendMessage(List, LVM_SETITEM, 0, (LPARAM)&item);
+ }
+}
+
+static int iEditItem = -1;
+
+static LRESULT WINAPI CheatEditDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam) {
+ char szDescr[256], szCode[1024];
+ int i;
+
+ switch (uMsg) {
+ case WM_INITDIALOG:
+ SetWindowText(hW, _("Edit Cheat"));
+ Static_SetText(GetDlgItem(hW, IDC_LABEL_DESCR), _("Description:"));
+ Static_SetText(GetDlgItem(hW, IDC_LABEL_CODE), _("Cheat Code:"));
+ Button_SetText(GetDlgItem(hW, IDOK), _("OK"));
+ Button_SetText(GetDlgItem(hW, IDCANCEL), _("Cancel"));
+
+ assert(iEditItem != -1 && iEditItem < NumCheats);
+
+ Edit_SetText(GetDlgItem(hW, IDC_DESCR), Cheats[iEditItem].Descr);
+
+ szCode[0] = '\0';
+ for (i = Cheats[iEditItem].First; i < Cheats[iEditItem].First + Cheats[iEditItem].n; i++) {
+ sprintf(szDescr, "%.8X %.4X\r\n", CheatCodes[i].Addr, CheatCodes[i].Val);
+ strcat(szCode, szDescr);
+ }
+ Edit_SetText(GetDlgItem(hW, IDC_CODE), szCode);
+ break;
+
+ case WM_COMMAND:
+ switch (wParam) {
+ case IDOK:
+ Edit_GetText(GetDlgItem(hW, IDC_DESCR), szDescr, 256);
+ Edit_GetText(GetDlgItem(hW, IDC_CODE), szCode, 1024);
+
+ if (EditCheat(iEditItem, szDescr, szCode) != 0) {
+ SysMessage(_("Error"), _("Invalid cheat code!"));
+ }
+ else {
+ EndDialog(hW, TRUE);
+ return TRUE;
+ }
+ break;
+
+ case IDCANCEL:
+ EndDialog(hW, TRUE);
+ return TRUE;
+ }
+ break;
+
+ case WM_CLOSE:
+ EndDialog(hW, TRUE);
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static LRESULT WINAPI CheatAddDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam) {
+ char szDescr[256], szCode[1024];
+
+ switch (uMsg) {
+ case WM_INITDIALOG:
+ SetWindowText(hW, _("Add New Cheat"));
+ Static_SetText(GetDlgItem(hW, IDC_LABEL_DESCR), _("Description:"));
+ Static_SetText(GetDlgItem(hW, IDC_LABEL_CODE), _("Cheat Code:"));
+ Button_SetText(GetDlgItem(hW, IDOK), _("OK"));
+ Button_SetText(GetDlgItem(hW, IDCANCEL), _("Cancel"));
+ break;
+
+ case WM_COMMAND:
+ switch (wParam) {
+ case IDOK:
+ Edit_GetText(GetDlgItem(hW, IDC_DESCR), szDescr, 256);
+ Edit_GetText(GetDlgItem(hW, IDC_CODE), szCode, 1024);
+
+ if (AddCheat(szDescr, szCode) != 0) {
+ SysMessage(_("Error"), _("Invalid cheat code!"));
+ }
+ else {
+ EndDialog(hW, TRUE);
+ return TRUE;
+ }
+ break;
+
+ case IDCANCEL:
+ EndDialog(hW, TRUE);
+ return TRUE;
+ }
+ break;
+
+ case WM_CLOSE:
+ EndDialog(hW, TRUE);
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+LRESULT WINAPI CheatDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam) {
+ HWND List;
+ LV_COLUMN col;
+ LV_ITEM item;
+ int i;
+ OPENFILENAME ofn;
+ char szFileName[256];
+ char szFileTitle[256];
+ char szFilter[256];
+
+ switch (uMsg) {
+ case WM_INITDIALOG:
+ SetWindowText(hW, _("Edit Cheat Codes"));
+
+ Button_SetText(GetDlgItem(hW, IDC_ADDCODE), _("&Add Code"));
+ Button_SetText(GetDlgItem(hW, IDC_EDITCODE), _("&Edit Code"));
+ Button_SetText(GetDlgItem(hW, IDC_REMOVECODE), _("&Remove Code"));
+ Button_SetText(GetDlgItem(hW, IDC_TOGGLECODE), _("&Enable/Disable"));
+ Button_SetText(GetDlgItem(hW, IDC_LOADCODE), _("&Load..."));
+ Button_SetText(GetDlgItem(hW, IDC_SAVECODE), _("&Save As..."));
+ Button_SetText(GetDlgItem(hW, IDCANCEL), _("&Close"));
+
+ List = GetDlgItem(hW, IDC_CODELIST);
+
+ SendMessage(List, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_FULLROWSELECT);
+
+ memset(&col, 0, sizeof(col));
+
+ col.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
+ col.fmt = LVCFMT_LEFT;
+
+ col.pszText = _("Description");
+ col.cx = 400;
+
+ SendMessage(List, LVM_INSERTCOLUMN, 0, (LPARAM)&col);
+
+ col.pszText = _("Enabled");
+ col.cx = 55;
+
+ SendMessage(List, LVM_INSERTCOLUMN, 1, (LPARAM)&col);
+
+ UpdateCheatDlg(hW);
+ break;
+
+ case WM_COMMAND:
+ switch (wParam) {
+ case IDCANCEL:
+ EndDialog(hW, TRUE);
+ return TRUE;
+
+ case IDC_ADDCODE:
+ i = NumCheats;
+ DialogBox(gApp.hInstance, MAKEINTRESOURCE(IDD_CHEATEDIT), hW, CheatAddDlgProc);
+
+ if (NumCheats > i) {
+ // new cheat added
+ List = GetDlgItem(hW, IDC_CODELIST);
+ memset(&item, 0, sizeof(item));
+
+ item.mask = LVIF_TEXT;
+ item.iItem = i;
+ item.pszText = Cheats[i].Descr;
+ item.iSubItem = 0;
+
+ SendMessage(List, LVM_INSERTITEM, 0, (LPARAM)&item);
+
+ item.pszText = (Cheats[i].Enabled ? _("Yes") : _("No"));
+ item.iSubItem = 1;
+
+ SendMessage(List, LVM_SETITEM, 0, (LPARAM)&item);
+ }
+ break;
+
+ case IDC_EDITCODE:
+ List = GetDlgItem(hW, IDC_CODELIST);
+ iEditItem = ListView_GetSelectionMark(List);
+
+ if (iEditItem != -1) {
+ DialogBox(gApp.hInstance, MAKEINTRESOURCE(IDD_CHEATEDIT), hW, CheatEditDlgProc);
+
+ memset(&item, 0, sizeof(item));
+
+ item.mask = LVIF_TEXT;
+ item.iItem = iEditItem;
+ item.pszText = Cheats[iEditItem].Descr;
+ item.iSubItem = 0;
+
+ SendMessage(List, LVM_SETITEM, 0, (LPARAM)&item);
+ }
+ break;
+
+ case IDC_REMOVECODE:
+ List = GetDlgItem(hW, IDC_CODELIST);
+ i = ListView_GetSelectionMark(List);
+
+ if (i != -1) {
+ RemoveCheat(i);
+ ListView_DeleteItem(List, i);
+ ListView_SetSelectionMark(List, -1);
+ }
+ break;
+
+ case IDC_TOGGLECODE:
+ List = GetDlgItem(hW, IDC_CODELIST);
+ i = ListView_GetSelectionMark(List);
+
+ if (i != -1) {
+ Cheats[i].Enabled ^= 1;
+
+ memset(&item, 0, sizeof(item));
+
+ item.mask = LVIF_TEXT;
+ item.iItem = i;
+ item.pszText = (Cheats[i].Enabled ? _("Yes") : _("No"));
+ item.iSubItem = 1;
+
+ SendMessage(List, LVM_SETITEM, 0, (LPARAM)&item);
+ }
+ break;
+
+ case IDC_LOADCODE:
+ memset(&szFileName, 0, sizeof(szFileName));
+ memset(&szFileTitle, 0, sizeof(szFileTitle));
+ memset(&szFilter, 0, sizeof(szFilter));
+
+ strcpy(szFilter, _("PCSX Cheat Code Files"));
+ strcatz(szFilter, "*.*");
+
+ ofn.lStructSize = sizeof(OPENFILENAME);
+ ofn.hwndOwner = hW;
+ ofn.lpstrFilter = szFilter;
+ ofn.lpstrCustomFilter = NULL;
+ ofn.nMaxCustFilter = 0;
+ ofn.nFilterIndex = 1;
+ ofn.lpstrFile = szFileName;
+ ofn.nMaxFile = 256;
+ ofn.lpstrInitialDir = ".\\Cheats";
+ ofn.lpstrFileTitle = szFileTitle;
+ ofn.nMaxFileTitle = 256;
+ ofn.lpstrTitle = NULL;
+ ofn.lpstrDefExt = "CHT";
+ ofn.Flags = OFN_HIDEREADONLY | OFN_NOCHANGEDIR;
+
+ if (GetOpenFileName((LPOPENFILENAME)&ofn)) {
+ LoadCheats(szFileName);
+ UpdateCheatDlg(hW);
+ }
+ break;
+
+ case IDC_SAVECODE:
+ memset(&szFileName, 0, sizeof(szFileName));
+ memset(&szFileTitle, 0, sizeof(szFileTitle));
+ memset(&szFilter, 0, sizeof(szFilter));
+
+ strcpy(szFilter, _("PCSX Cheat Code Files"));
+ strcatz(szFilter, "*.*");
+
+ ofn.lStructSize = sizeof(OPENFILENAME);
+ ofn.hwndOwner = hW;
+ ofn.lpstrFilter = szFilter;
+ ofn.lpstrCustomFilter = NULL;
+ ofn.nMaxCustFilter = 0;
+ ofn.nFilterIndex = 1;
+ ofn.lpstrFile = szFileName;
+ ofn.nMaxFile = 256;
+ ofn.lpstrInitialDir = ".\\Cheats";
+ ofn.lpstrFileTitle = szFileTitle;
+ ofn.nMaxFileTitle = 256;
+ ofn.lpstrTitle = NULL;
+ ofn.lpstrDefExt = "CHT";
+ ofn.Flags = OFN_HIDEREADONLY | OFN_NOCHANGEDIR | OFN_OVERWRITEPROMPT;
+
+ if (GetOpenFileName((LPOPENFILENAME)&ofn)) {
+ SaveCheats(szFileName);
+ }
+ break;
+ }
+ break;
+
+ case WM_NOTIFY:
+ switch (LOWORD(wParam)) {
+ case IDC_CODELIST:
+ List = GetDlgItem(hW, IDC_CODELIST);
+ i = ListView_GetSelectionMark(List);
+
+ if (i != -1) {
+ Button_Enable(GetDlgItem(hW, IDC_EDITCODE), TRUE);
+ Button_Enable(GetDlgItem(hW, IDC_REMOVECODE), TRUE);
+ Button_Enable(GetDlgItem(hW, IDC_TOGGLECODE), TRUE);
+ }
+ else {
+ Button_Enable(GetDlgItem(hW, IDC_EDITCODE), FALSE);
+ Button_Enable(GetDlgItem(hW, IDC_REMOVECODE), FALSE);
+ Button_Enable(GetDlgItem(hW, IDC_TOGGLECODE), FALSE);
+ }
+
+ Button_Enable(GetDlgItem(hW, IDC_SAVECODE), (NumCheats > 0));
+ break;
+ }
+ break;
+
+ case WM_CLOSE:
+ EndDialog(hW, TRUE);
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+
+#define SEARCH_EQUALVAL 0
+#define SEARCH_NOTEQUALVAL 1
+#define SEARCH_RANGE 2
+#define SEARCH_INCBY 3
+#define SEARCH_DECBY 4
+#define SEARCH_INC 5
+#define SEARCH_DEC 6
+#define SEARCH_DIFFERENT 7
+#define SEARCH_NOCHANGE 8
+
+#define SEARCHTYPE_8BIT 0
+#define SEARCHTYPE_16BIT 1
+#define SEARCHTYPE_32BIT 2
+
+#define SEARCHBASE_DEC 0
+#define SEARCHBASE_HEX 1
+
+static char current_search = SEARCH_EQUALVAL;
+static char current_searchtype = SEARCHTYPE_8BIT;
+static char current_searchbase = SEARCHBASE_DEC;
+static uint32_t current_valuefrom = 0;
+static uint32_t current_valueto = 0;
+
+static void UpdateCheatSearchDlg(HWND hW) {
+}
+
+LRESULT WINAPI CheatSearchDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam) {
+ switch (uMsg) {
+ case WM_INITDIALOG:
+ SetWindowText(hW, _("Cheat Search"));
+
+ Static_SetText(GetDlgItem(hW, IDC_LABEL_SEARCHFOR), _("Search For:"));
+ Static_SetText(GetDlgItem(hW, IDC_LABEL_DATATYPE), _("Data Type:"));
+ Static_SetText(GetDlgItem(hW, IDC_LABEL_VALUE), _("Value:"));
+ Static_SetText(GetDlgItem(hW, IDC_LABEL_DATABASE), _("Data Base:"));
+ Static_SetText(GetDlgItem(hW, IDC_LABEL_TO), _("To:"));
+ Button_SetText(GetDlgItem(hW, IDC_FREEZE), _("&Freeze"));
+ Button_SetText(GetDlgItem(hW, IDC_MODIFY), _("&Modify"));
+ Button_SetText(GetDlgItem(hW, IDC_COPY), _("&Copy"));
+ Button_SetText(GetDlgItem(hW, IDC_SEARCH), _("&Search"));
+ Button_SetText(GetDlgItem(hW, IDC_NEWSEARCH), _("&New Search"));
+ Button_SetText(GetDlgItem(hW, IDCANCEL), _("C&lose"));
+
+ UpdateCheatSearchDlg(hW);
+ break;
+
+ case WM_COMMAND:
+ switch (wParam) {
+ case IDCANCEL:
+ EndDialog(hW, TRUE);
+ return TRUE;
+
+ case IDC_FREEZE:
+ break;
+
+ case IDC_MODIFY:
+ break;
+
+ case IDC_COPY:
+ break;
+
+ case IDC_SEARCH:
+ break;
+
+ case IDC_NEWSEARCH:
+ break;
+ }
+ break;
+
+ case WM_CLOSE:
+ EndDialog(hW, TRUE);
+ return TRUE;
+ }
+
+ return FALSE;
+}
diff --git a/win32/gui/ConfigurePlugins.c b/win32/gui/ConfigurePlugins.c
index 333cecab..3e6eaeb0 100644
--- a/win32/gui/ConfigurePlugins.c
+++ b/win32/gui/ConfigurePlugins.c
@@ -19,7 +19,7 @@
#include <windows.h>
#include <windowsx.h>
#include <stdio.h>
-#include "PsxCommon.h"
+#include "psxcommon.h"
#include "plugin.h"
#include "plugins.h"
#include "resource.h"
@@ -271,17 +271,16 @@ char *GetSelDLL(HWND hW,int id) {
}
void OnOK(HWND hW) {
- char * gpuDLL=GetSelDLL(hW,IDC_LISTGPU);
- char * spuDLL=GetSelDLL(hW,IDC_LISTSPU);
- char * cdrDLL=GetSelDLL(hW,IDC_LISTCDR);
- char * pad1DLL=GetSelDLL(hW,IDC_LISTPAD1);
- char * pad2DLL=GetSelDLL(hW,IDC_LISTPAD2);
- char * biosFILE=GetSelDLL(hW,IDC_LISTBIOS);
-
- if ((gpuDLL==NULL) || (spuDLL ==NULL) ||
- (cdrDLL ==NULL) || (pad1DLL==NULL) ||
- (pad2DLL==NULL) ||(biosFILE==NULL)) {
- MessageBox(hW,"Configuration not OK!","Error",MB_OK|MB_ICONERROR);
+ char *gpuDLL=GetSelDLL(hW,IDC_LISTGPU);
+ char *spuDLL=GetSelDLL(hW,IDC_LISTSPU);
+ char *cdrDLL=GetSelDLL(hW,IDC_LISTCDR);
+ char *pad1DLL=GetSelDLL(hW,IDC_LISTPAD1);
+ char *pad2DLL=GetSelDLL(hW,IDC_LISTPAD2);
+ char *biosFILE=GetSelDLL(hW,IDC_LISTBIOS);
+
+ if (gpuDLL == NULL || spuDLL == NULL || cdrDLL == NULL || pad1DLL == NULL ||
+ pad2DLL == NULL || biosFILE == NULL) {
+ MessageBox(hW, _("Configuration not OK!"), _("Error"), MB_OK | MB_ICONERROR);
return;
}
@@ -626,4 +625,3 @@ BOOL CALLBACK ConfigureNetPlayDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM
return FALSE;
}
-
diff --git a/win32/gui/Win32.h b/win32/gui/Win32.h
index 419fe553..805d6de4 100644
--- a/win32/gui/Win32.h
+++ b/win32/gui/Win32.h
@@ -36,11 +36,16 @@ extern char cfgfile[256];
extern int Running;
extern char PcsxDir[256];
+void strcatz(char *dst, char *src);
+
LRESULT WINAPI MainWndProc(HWND, UINT, WPARAM, LPARAM);
BOOL CALLBACK ConfigureMcdsDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam);
BOOL CALLBACK ConfigureCpuDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam);
BOOL CALLBACK ConfigureNetPlayDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam);
+LRESULT WINAPI CheatDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam);
+LRESULT WINAPI CheatSearchDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam);
+
void ConfigurePlugins(HWND hWnd);
int Open_File_Proc(char *file);
diff --git a/win32/gui/WndMain.c b/win32/gui/WndMain.c
index 1ba3e8ce..272b1254 100644
--- a/win32/gui/WndMain.c
+++ b/win32/gui/WndMain.c
@@ -27,12 +27,13 @@
#include "resource.h"
#include "AboutDlg.h"
-#include "PsxCommon.h"
+#include "psxcommon.h"
#include "plugin.h"
-#include "Debug.h"
+#include "debug.h"
#include "Win32.h"
-#include "Sio.h"
+#include "sio.h"
#include "misc.h"
+#include "cheat.h"
#ifdef __MINGW32__
#ifndef LVM_GETSELECTIONMARK
@@ -222,6 +223,7 @@ void States_Load(int num) {
GPU_displayText(Text);
Running = 1;
+ CheatSearchBackupMemory();
psxCpu->Execute();
}
@@ -243,6 +245,7 @@ void States_Save(int num) {
GPU_displayText(Text);
Running = 1;
+ CheatSearchBackupMemory();
psxCpu->Execute();
}
@@ -314,7 +317,7 @@ void OnStates_SaveOther() {
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = gApp.hWnd;
ofn.lpstrFilter = szFilter;
- ofn.lpstrCustomFilter = NULL;
+ ofn.lpstrCustomFilter = NULL;
ofn.nMaxCustFilter = 0;
ofn.nFilterIndex = 1;
ofn.lpstrFile = szFileName;
@@ -324,7 +327,7 @@ void OnStates_SaveOther() {
ofn.nMaxFileTitle = MAXFILENAME;
ofn.lpstrTitle = NULL;
ofn.lpstrDefExt = NULL;
- ofn.Flags = OFN_HIDEREADONLY | OFN_NOCHANGEDIR;
+ ofn.Flags = OFN_HIDEREADONLY | OFN_NOCHANGEDIR;
if (GetOpenFileName ((LPOPENFILENAME)&ofn)) {
char Text[256];
@@ -484,6 +487,7 @@ LRESULT WINAPI MainWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) {
OpenPlugins(hWnd);
ShowCursor(FALSE);
Running = 1;
+ CheatSearchBackupMemory();
psxCpu->Execute();
return TRUE;
@@ -510,6 +514,7 @@ LRESULT WINAPI MainWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) {
ShowCursor(FALSE);
Running = 1;
cdOpenCase = time(NULL) + 2;
+ CheatSearchBackupMemory();
psxCpu->Execute();
return TRUE;
@@ -546,6 +551,14 @@ LRESULT WINAPI MainWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) {
ConfigurePlugins(hWnd);
return TRUE;
+ case ID_CONFIGURATION_CHEATLIST:
+ DialogBox(gApp.hInstance, MAKEINTRESOURCE(IDD_CHEATLIST), hWnd, (DLGPROC)CheatDlgProc);
+ break;
+
+ case ID_CONFIGURATION_CHEATSEARCH:
+ DialogBox(gApp.hInstance, MAKEINTRESOURCE(IDD_CHEATSEARCH), hWnd, (DLGPROC)CheatSearchDlgProc);
+ break;
+
case ID_HELP_ABOUT:
DialogBox(gApp.hInstance, MAKEINTRESOURCE(ABOUT_DIALOG), hWnd, (DLGPROC)AboutDlgProc);
return TRUE;
@@ -567,7 +580,7 @@ LRESULT WINAPI MainWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) {
case WM_KEYDOWN:
PADhandleKey(wParam);
return TRUE;
-
+
case WM_DESTROY:
if (!AccBreak) {
if (Running) ClosePlugins();
@@ -576,7 +589,7 @@ LRESULT WINAPI MainWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) {
exit(0);
}
else AccBreak = 0;
-
+
DeleteObject(hBm);
DeleteDC(hdcmem);
return TRUE;
@@ -606,7 +619,7 @@ void CreateListView(int idc) {
col.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
col.fmt = LVCFMT_LEFT;
-
+
col.pszText = _("Title");
col.cx = 170;
col.iSubItem = 0;
@@ -1417,9 +1430,9 @@ void CreateMainMenu() {
ADDSEPARATOR(0);
ADDSUBMENUS(0, 1, _("&States"));
ADDSEPARATOR(0);
- ADDMENUITEM(0, _("Run &EXE"), ID_FILE_RUN_EXE);
+ ADDMENUITEM(0, _("Run &EXE..."), ID_FILE_RUN_EXE);
ADDMENUITEM(0, _("Run &BIOS"), ID_FILE_RUNBIOS);
- ADDMENUITEM(0, _("Run &ISO"), ID_FILE_RUN_ISO);
+ ADDMENUITEM(0, _("Run &ISO..."), ID_FILE_RUN_ISO);
ADDMENUITEM(0, _("Run &CD"), ID_FILE_RUN_CD);
ADDSUBMENUS(1, 3, _("&Save"));
ADDSUBMENUS(1, 2, _("&Load"));
@@ -1437,23 +1450,26 @@ void CreateMainMenu() {
ADDMENUITEM(3, _("Slot &1"), ID_FILE_STATES_SAVE_SLOT1);
ADDSUBMENU(0, _("&Emulator"));
- ADDMENUITEM(0, _("S&witch ISO"), ID_EMULATOR_SWITCH_ISO);
+ ADDMENUITEM(0, _("S&witch ISO..."), ID_EMULATOR_SWITCH_ISO);
ADDSEPARATOR(0);
ADDMENUITEM(0, _("Re&set"), ID_EMULATOR_RESET);
ADDMENUITEM(0, _("&Run"), ID_EMULATOR_RUN);
ADDSUBMENU(0, _("&Configuration"));
- ADDMENUITEM(0, _("&Memory cards"), ID_CONFIGURATION_MEMORYCARDMANAGER);
- ADDMENUITEM(0, _("C&PU"), ID_CONFIGURATION_CPU);
+ ADDMENUITEM(0, _("Cheat &Search..."), ID_CONFIGURATION_CHEATSEARCH);
+ ADDMENUITEM(0, _("Ch&eat Code..."), ID_CONFIGURATION_CHEATLIST);
+ ADDSEPARATOR(0);
+ ADDMENUITEM(0, _("&Memory cards..."), ID_CONFIGURATION_MEMORYCARDMANAGER);
+ ADDMENUITEM(0, _("C&PU..."), ID_CONFIGURATION_CPU);
ADDSEPARATOR(0);
- ADDMENUITEM(0, _("&NetPlay"), ID_CONFIGURATION_NETPLAY);
+ ADDMENUITEM(0, _("&NetPlay..."), ID_CONFIGURATION_NETPLAY);
ADDSEPARATOR(0);
- ADDMENUITEM(0, _("&Controllers"), ID_CONFIGURATION_CONTROLLERS);
- ADDMENUITEM(0, _("CD-&ROM"), ID_CONFIGURATION_CDROM);
- ADDMENUITEM(0, _("&Sound"), ID_CONFIGURATION_SOUND);
- ADDMENUITEM(0, _("&Graphics"), ID_CONFIGURATION_GRAPHICS);
+ ADDMENUITEM(0, _("&Controllers..."), ID_CONFIGURATION_CONTROLLERS);
+ ADDMENUITEM(0, _("CD-&ROM..."), ID_CONFIGURATION_CDROM);
+ ADDMENUITEM(0, _("&Sound..."), ID_CONFIGURATION_SOUND);
+ ADDMENUITEM(0, _("&Graphics..."), ID_CONFIGURATION_GRAPHICS);
ADDSEPARATOR(0);
- ADDMENUITEM(0, _("&Plugins && Bios"), ID_CONFIGURATION);
+ ADDMENUITEM(0, _("&Plugins && Bios..."), ID_CONFIGURATION);
ADDSUBMENU(0, _("&Language"));
@@ -1508,6 +1524,7 @@ void CreateMainMenu() {
EnableMenuItem(gApp.hMenu, ID_FILE_STATES_SAVE_SLOT4, MF_BYCOMMAND | MF_GRAYED);
EnableMenuItem(gApp.hMenu, ID_FILE_STATES_SAVE_SLOT5, MF_BYCOMMAND | MF_GRAYED);
EnableMenuItem(gApp.hMenu, ID_FILE_STATES_SAVE_OTHER, MF_BYCOMMAND | MF_GRAYED);
+ EnableMenuItem(gApp.hMenu, ID_CONFIGURATION_CHEATSEARCH, MF_BYCOMMAND | MF_GRAYED);
}
}
@@ -1645,7 +1662,7 @@ void SysPrintf(char *fmt, ...) {
WriteConsole(hConsole, msg, (DWORD)strlen(msg), &tmp, 0);
#ifdef EMU_LOG
#ifndef LOG_STDOUT
- fprintf(emuLog, "%s", msg);
+ if (emuLog != NULL) fprintf(emuLog, "%s", msg);
#endif
#endif
}
diff --git a/win32/gui/cdrom02.ico b/win32/gui/cdrom02.ico
index 6d19bf81..98daa5b8 100755
--- a/win32/gui/cdrom02.ico
+++ b/win32/gui/cdrom02.ico
Binary files differ
diff --git a/win32/gui/plugin.c b/win32/gui/plugin.c
index 9e84f74c..8ae075ad 100644
--- a/win32/gui/plugin.c
+++ b/win32/gui/plugin.c
@@ -25,11 +25,11 @@
#include <time.h>
#include <stdio.h>
-#include "R3000A.h"
+#include "r3000a.h"
#include "Win32.h"
#include "NoPic.h"
-#include "Misc.h"
-#include "Sio.h"
+#include "misc.h"
+#include "sio.h"
int ShowPic = 0;