From 5ac7d20e127f601225ec321a53524ebd7e070c83 Mon Sep 17 00:00:00 2001 From: "SND\\ckain_cp" Date: Thu, 28 Nov 2013 13:39:42 +0000 Subject: 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 --- gui/GtkGui.c | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) (limited to 'gui') 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() { -- cgit v1.2.3