diff options
| author | iCatButler <i.am.catbutler@gmail.com> | 2016-03-30 15:07:35 +0100 |
|---|---|---|
| committer | iCatButler <i.am.catbutler@gmail.com> | 2016-03-30 15:07:35 +0100 |
| commit | 8b4350fee747708ffd376744ef5dc1e239a87ba6 (patch) | |
| tree | a9ab6e2f25e06edc7c668353f8000856704f7fa3 /gui | |
| parent | e3df273095a5800e3dcdcb63bd66e269c0c2d3a8 (diff) | |
| download | pcsxr-8b4350fee747708ffd376744ef5dc1e239a87ba6.tar.gz | |
Bring up to date with PCSX-R master (97809)
Diffstat (limited to 'gui')
| -rwxr-xr-x | gui/ConfDlg.c | 14 | ||||
| -rwxr-xr-x | gui/Config.c | 10 | ||||
| -rwxr-xr-x | gui/GtkGui.c | 6 | ||||
| -rwxr-xr-x | gui/Linux.h | 4 | ||||
| -rwxr-xr-x | gui/MemcardDlg.c | 16 | ||||
| -rwxr-xr-x | gui/Plugin.c | 112 |
6 files changed, 93 insertions, 69 deletions
diff --git a/gui/ConfDlg.c b/gui/ConfDlg.c index 966a58c0..d71326c7 100755 --- a/gui/ConfDlg.c +++ b/gui/ConfDlg.c @@ -899,6 +899,12 @@ void OnCpu_Clicked(GtkDialog *dialog, gint arg1, gpointer user_data) { sscanf(gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(builder, "GtkEntry_RewindInterval"))), "%lu", &tmp); Config.RewindInterval = tmp; + sscanf(gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(builder, "GtkEntry_AltSpeed1"))), "%lu", &tmp); + Config.AltSpeed1 = tmp; + + sscanf(gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(builder, "GtkEntry_AltSpeed2"))), "%lu", &tmp); + Config.AltSpeed2 = tmp; + Config.Xa = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, "GtkCheckButton_Xa"))); Config.SioIrq = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, "GtkCheckButton_SioIrq"))); Config.Mdec = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, "GtkCheckButton_Mdec"))); @@ -981,6 +987,14 @@ void OnConf_Cpu() { // Enabled only if interpreter gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(builder, "frame_rew")), Config.Cpu); + snprintf(buf, sizeof(buf), "%u", Config.AltSpeed1); + widget = GTK_WIDGET(gtk_builder_get_object(builder, "GtkEntry_AltSpeed1")); + gtk_entry_set_text(GTK_ENTRY(widget), buf); + + snprintf(buf, sizeof(buf), "%u", Config.AltSpeed2); + widget = GTK_WIDGET(gtk_builder_get_object(builder, "GtkEntry_AltSpeed2")); + gtk_entry_set_text(GTK_ENTRY(widget), buf); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, "GtkCheckButton_Xa")), Config.Xa); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, "GtkCheckButton_SioIrq")), Config.SioIrq); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, "GtkCheckButton_Mdec")), Config.Mdec); diff --git a/gui/Config.c b/gui/Config.c index 3c0aa923..25e2e54b 100755 --- a/gui/Config.c +++ b/gui/Config.c @@ -148,6 +148,13 @@ int LoadConfig(PcsxConfig *Conf) { Config.RewindCount = GetValuel(data, "RewindCount"); Config.RewindInterval = GetValuel(data, "RewindInterval"); + Config.AltSpeed1 = GetValuel(data, "AltSpeed1"); + if (!Config.AltSpeed1) + Config.AltSpeed1 = 50; + Config.AltSpeed2 = GetValuel(data, "AltSpeed2"); + if (!Config.AltSpeed2) + Config.AltSpeed2 = 250; + Config.HackFix = GetValuel(data, "HackFix"); free(data); @@ -199,6 +206,9 @@ void SaveConfig() { SetValuel("RewindCount", Config.RewindCount); SetValuel("RewindInterval", Config.RewindInterval); + SetValuel("AltSpeed1", Config.AltSpeed1); + SetValuel("AltSpeed2", Config.AltSpeed2); + SetValuel("HackFix", Config.HackFix); fclose(f); diff --git a/gui/GtkGui.c b/gui/GtkGui.c index 04fbcd36..3185e51a 100755 --- a/gui/GtkGui.c +++ b/gui/GtkGui.c @@ -229,7 +229,11 @@ gchar* get_state_filename(int i) { trimlabel = get_cdrom_label_trim(); - sprintf(SStateFile, "%.32s-%.9s.%3.3d", trimlabel, CdromId, i); + if (i >= OLD_SLOT && i <= LAST_OLD_SLOT) { + sprintf(SStateFile, "%.32s-%.9s.old_%d", trimlabel, CdromId, i - OLD_SLOT); + } else { + sprintf(SStateFile, "%.32s-%.9s.%3.3d", trimlabel, CdromId, i); + } state_filename = g_build_filename (getenv("HOME"), STATES_DIR, SStateFile, NULL); g_free(trimlabel); diff --git a/gui/Linux.h b/gui/Linux.h index 4e1543c0..db70a2a9 100755 --- a/gui/Linux.h +++ b/gui/Linux.h @@ -37,6 +37,10 @@ #define CHEATS_DIR "/.pcsxr/cheats/" #define PATCHES_DIR "/.pcsxr/patches/" +#define OLD_SLOT 1000 +#define NUM_OLD_SLOTS 2 +#define LAST_OLD_SLOT (OLD_SLOT + NUM_OLD_SLOTS - 1) + extern gboolean UseGui; extern int StatesC; char cfgfile[MAXPATHLEN]; /* ADB Comment this out - make a local var, or at least use gchar funcs */ diff --git a/gui/MemcardDlg.c b/gui/MemcardDlg.c index e0e15d9d..b777126e 100755 --- a/gui/MemcardDlg.c +++ b/gui/MemcardDlg.c @@ -137,7 +137,7 @@ static gchar* MCDStatusToChar(McdBlock *Info) { state = _("Link"); else if (ISLINKENDBLOCK(Info)) state = _("End link"); - } else + } else state = _("Free"); return state; } @@ -203,8 +203,20 @@ static void LoadListItems(int mcd, boolean newstore) { if (newstore) gtk_list_store_append(store, &iter); + GError *error=NULL; title = g_convert(Info->sTitle, strlen(Info->sTitle), "UTF-8", - "Shift-JIS", NULL, NULL, NULL); + "Shift-JIS", NULL, NULL, &error); + + if (error) + { + // Some characters caused problems because of custom encoding. + // Let's use the ASCII title as fallback. + // Otherwise custom decoding from that region + // of BIOS needed which is way overkill here. + title = g_convert(Info->Title, strlen(Info->Title), "UTF-8", + "Shift-JIS", NULL, NULL, NULL); + g_clear_error(&error); + } gtk_list_store_set(store, &iter, CL_ICON, pixbuf, diff --git a/gui/Plugin.c b/gui/Plugin.c index 08627455..0adf3b5e 100755 --- a/gui/Plugin.c +++ b/gui/Plugin.c @@ -42,6 +42,8 @@ extern void LidInterrupt(); unsigned long gpuDisp; int StatesC = 0; +unsigned char loadedOld = FALSE; +int speed = 100; extern int UseGui; void gpuShowPic() { @@ -77,9 +79,23 @@ void gpuShowPic() { void KeyStateSave(int i) { gchar *state_filename; + gchar *oldname, *newname; + int j; state_filename = get_state_filename (i); + if (i < OLD_SLOT && !loadedOld) { + newname = get_state_filename (LAST_OLD_SLOT); + for (j = LAST_OLD_SLOT - 1; j >= OLD_SLOT; --j) { + oldname = get_state_filename (j); + rename(oldname, newname); + g_free (newname); + newname = oldname; + } + rename(state_filename, newname); + g_free (newname); + } state_save (state_filename); + loadedOld = FALSE; g_free (state_filename); } @@ -87,6 +103,8 @@ void KeyStateSave(int i) { void KeyStateLoad(int i) { gchar *state_filename; + loadedOld = (i >= OLD_SLOT && i <= LAST_OLD_SLOT); + state_filename = get_state_filename (i); state_load (state_filename); @@ -108,6 +126,7 @@ void PADhandleKey(int key) { char Text[MAXPATHLEN]; gchar *state_filename; time_t now; + int slot; short rel = 0; //released key flag @@ -155,69 +174,20 @@ void PADhandleKey(int key) { if (modalt) KeyStateLoad(10); break; - case XK_1: - if (modalt && modctrl) - return; - if (modalt) KeyStateLoad(0); - if (modctrl) KeyStateSave(0); - break; - case XK_2: - if (modalt && modctrl) - return; - if (modalt) KeyStateLoad(1); - if (modctrl) KeyStateSave(1); - break; - case XK_3: - if (modalt && modctrl) - return; - if (modalt) KeyStateLoad(2); - if (modctrl) KeyStateSave(2); - break; - case XK_4: - if (modalt && modctrl) - return; - if (modalt) KeyStateLoad(3); - if (modctrl) KeyStateSave(3); - break; - case XK_5: - if (modalt && modctrl) - return; - if (modalt) KeyStateLoad(4); - if (modctrl) KeyStateSave(4); - break; - case XK_6: - if (modalt && modctrl) - return; - if (modalt) KeyStateLoad(5); - if (modctrl) KeyStateSave(5); - break; - case XK_7: - if (modalt && modctrl) - return; - if (modalt) KeyStateLoad(6); - if (modctrl) KeyStateSave(6); - break; - case XK_8: + case XK_1: case XK_2: case XK_3: case XK_4: case XK_5: + case XK_6: case XK_7: case XK_8: case XK_9: + slot = key - XK_1; if (modalt && modctrl) return; - if (modalt) KeyStateLoad(7); - if (modctrl) KeyStateSave(7); - break; - case XK_9: - if (modalt && modctrl) - return; - if (modalt) KeyStateLoad(8); - if (modctrl) KeyStateSave(8); + if (modalt) KeyStateLoad(slot); + else if (modctrl) KeyStateSave(slot); + else KeyStateLoad(OLD_SLOT + slot); break; case XK_F1: GPU_freeze(2, (GPUFreeze_t *)&StatesC); - state_filename = get_state_filename (StatesC); - state_save (state_filename); - - g_free (state_filename); + KeyStateSave(StatesC); gpuShowPic(); - break; case XK_F2: if (StatesC < (MAX_SLOTS - 1)) StatesC++; @@ -226,15 +196,7 @@ void PADhandleKey(int key) { gpuShowPic(); break; case XK_F3: - state_filename = get_state_filename (StatesC); - state_load (state_filename); - - g_free (state_filename); - - // HACKHACK: prevent crash when using recompiler due to execution not - // returned from compiled code. This WILL cause memory leak, however a - // large amount of refactor is needed for a proper fix. - if (Config.Cpu == CPU_DYNAREC) psxCpu->Execute(); + KeyStateLoad(StatesC); gpuShowPic(); break; case XK_F4: @@ -290,6 +252,22 @@ void PADhandleKey(int key) { tslastpressed = now; RewindState(); break; + case XK_bracketleft: + if (speed == Config.AltSpeed1) { + speed = 100; + } else { + speed = Config.AltSpeed1; + } + GPU_setSpeed(speed / 100.0); + break; + case XK_bracketright: + if (speed == Config.AltSpeed2) { + speed = 100; + } else { + speed = Config.AltSpeed2; + } + GPU_setSpeed(speed / 100.0); + break; case XK_Escape: // TODO // the architecture is too broken to actually restart the GUI @@ -298,8 +276,10 @@ void PADhandleKey(int key) { // Fixing this would probably require a complete reworking of // all functions, so that they return 0 or 1 for success // that way, execution wouldn't continue - if (CdromId[0] != '\0') + if (CdromId[0] != '\0') { + loadedOld = TRUE; KeyStateSave(10); + } ClosePlugins(); UpdateMenuSlots(); if (!UseGui) OnFile_Exit(); |
