diff options
| author | SND\ckain_cp <SND\ckain_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2013-11-28 13:39:42 +0000 |
|---|---|---|
| committer | SND\ckain_cp <SND\ckain_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2013-11-28 13:39:42 +0000 |
| commit | 5ac7d20e127f601225ec321a53524ebd7e070c83 (patch) | |
| tree | 0fa596417427e019e3a09caac633899dc8bc2817 | |
| parent | bfc8e12c52df1f7cbe8fafaf7804b56db3103f8f (diff) | |
| download | pcsxr-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
| -rwxr-xr-x | gui/GtkGui.c | 25 |
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() { |
