summaryrefslogtreecommitdiff
path: root/gui
diff options
context:
space:
mode:
authorSND\ckain_cp <SND\ckain_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2013-11-28 13:39:42 +0000
committerSND\ckain_cp <SND\ckain_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2013-11-28 13:39:42 +0000
commit5ac7d20e127f601225ec321a53524ebd7e070c83 (patch)
tree0fa596417427e019e3a09caac633899dc8bc2817 /gui
parentbfc8e12c52df1f7cbe8fafaf7804b56db3103f8f (diff)
downloadpcsxr-5ac7d20e127f601225ec321a53524ebd7e070c83.tar.gz
GTK: made reset button to do something useful, not just cold boot to BIOS.
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@88005 e17a0e51-4ae3-4d35-97c3-1a29b211df97
Diffstat (limited to 'gui')
-rwxr-xr-xgui/GtkGui.c25
1 files changed, 21 insertions, 4 deletions
diff --git a/gui/GtkGui.c b/gui/GtkGui.c
index ae9ab4d0..f9f1f183 100755
--- a/gui/GtkGui.c
+++ b/gui/GtkGui.c
@@ -53,6 +53,9 @@ void OnHelp_About();
void OnDestroy();
void OnFile_Exit();
+// EXE name is stored here
+gchar* reset_load_info = NULL;
+
void on_states_load(GtkWidget *widget, gpointer user_data);
void on_states_load_other();
void on_states_save(GtkWidget *widget, gpointer user_data);
@@ -571,6 +574,7 @@ void OnFile_RunExe() {
SysReset();
if (Load(file) == 0) {
+ reset_load_info = g_strdup(file);
g_free(file);
psxCpu->Execute();
} else {
@@ -620,6 +624,8 @@ void OnFile_RunCd() {
SysRunGui();
}
+ g_free(reset_load_info);
+ reset_load_info = NULL;
autoloadCheats();
psxCpu->Execute();
}
@@ -651,6 +657,8 @@ void OnFile_RunBios() {
CdromId[0] = '\0';
CdromLabel[0] = '\0';
+ g_free(reset_load_info);
+ reset_load_info = NULL;
psxCpu->Execute();
}
@@ -794,6 +802,8 @@ void OnFile_RunImage() {
SysRunGui();
}
+ g_free(reset_load_info);
+ reset_load_info = NULL;
autoloadCheats();
psxCpu->Execute();
}
@@ -828,13 +838,18 @@ void OnEmu_Reset() {
return;
}
- if (CheckCdrom() != -1) {
+ // No extra checks here since this is reset and target has been verified already once
+ if (reset_load_info) {
+ SysPrintf("RESET/reloading %s\n", reset_load_info);
+ SysReset();
+ Load(reset_load_info);
+ } else {
+ SysPrintf("RESET/reloading %s %s\n", CdromId, CdromLabel);
+ CheckCdrom();
+ SysReset();
LoadCdrom();
}
- // Auto-detect: get region first, then rcnt-bios reset
- SysReset();
-
psxCpu->Execute();
}
@@ -844,6 +859,8 @@ void OnEmu_Shutdown() {
CdromId[0] = '\0';
CdromLabel[0] = '\0';
ResetMenuSlots();
+ g_free(reset_load_info);
+ reset_load_info = NULL;
}
void OnEmu_SwitchImage() {