From f48b5b2ac35ee69db0c0ffd3f411ffc21b7d5789 Mon Sep 17 00:00:00 2001 From: Stelios Tsampas Date: Mon, 17 Jul 2017 23:22:35 +0300 Subject: * Add configuration UI for PGXP. * Clean generated files with `make clean` --- gui/ConfDlg.c | 83 ++++++++++++ gui/Makefile.am | 2 + gui/data/pcsxr.ui | 294 +++++++++++++++++++++++++++++++++++++++++- plugins/bladesio1/Makefile.am | 3 + plugins/dfcdrom/Makefile.am | 3 + plugins/dfinput/Makefile.am | 2 + plugins/dfnet/Makefile.am | 2 + plugins/dfsound/Makefile.am | 3 + plugins/dfxvideo/Makefile.am | 3 + plugins/peopsxgl/Makefile.am | 3 + 10 files changed, 396 insertions(+), 2 deletions(-) diff --git a/gui/ConfDlg.c b/gui/ConfDlg.c index 30d3df1f..529e2722 100755 --- a/gui/ConfDlg.c +++ b/gui/ConfDlg.c @@ -845,6 +845,7 @@ static void FindNetPlugin() { } GtkWidget *CpuDlg; +GtkWidget *PgxpDlg; GList *psxglist; char *psxtypes[] = { "NTSC", @@ -1033,5 +1034,87 @@ void OnConf_Cpu() { G_CALLBACK(OnCpu_Clicked), builder, (GClosureNotify)g_object_unref, G_CONNECT_AFTER); } +//When a different mode is selected, display some informational text +static void OnPgxp_ModeChanged(GtkWidget *widget, gpointer user_data) { + uint8_t mode; + + mode = gtk_combo_box_get_active(GTK_COMBO_BOX( + gtk_builder_get_object(builder, "PGXP_Mode"))); + + switch (mode) { + case 0: + gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(builder, "PGXP_Mode_title")), + _("Disabled")); + gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(builder, "PGXP_Mode_description")), + _("PGXP is not mirroring any functions currently.")); + break; + case 1: + gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(builder, "PGXP_Mode_title")), + _("Memory operations only")); + gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(builder, "PGXP_Mode_description")), + _("PGXP is mirroring load, store and processor transfer operations of the CPU and GTE.")); + break; + case 2: + gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(builder, "PGXP_Mode_title")), + _("Memory and CPU arithmetic operations")); + gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(builder, "PGXP_Mode_description")), + _("PGXP is mirroring load, store and transfer operations of the CPU and GTE and arithmetic/logic functions of the PSX CPU.\n(WARNING: This mode is currently unfinished and may cause incorrect behaviour in some games).")); + break; + default: + gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(builder, "PGXP_Mode_title")), + _("Error")); + gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(builder, "PGXP_Mode_description")), + _("Unknown mode.")); + } +} + +static void OnPgxp_Clicked(GtkDialog *dialog, gint arg1, gpointer user_data) { + + Config.PGXP_GTE = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON( + gtk_builder_get_object(builder, "PGXP_GTE"))); + Config.PGXP_Cache = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON( + gtk_builder_get_object(builder, "PGXP_Cache"))); + Config.PGXP_Texture = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON( + gtk_builder_get_object(builder, "PGXP_Texture"))); + + Config.PGXP_Mode = gtk_combo_box_get_active(GTK_COMBO_BOX( + gtk_builder_get_object(builder, "PGXP_Mode"))); + + EmuSetPGXPMode(Config.PGXP_Mode); + SaveConfig(); + + gtk_widget_destroy(PgxpDlg); + PgxpDlg = NULL; +} + void OnConf_Pgxp() { + GtkWidget *widget; + char buf[25]; + + builder = gtk_builder_new(); + + if (!gtk_builder_add_from_resource(builder, "/org/pcsxr/gui/pcsxr.ui", NULL)) { + g_warning("Error: interface could not be loaded!"); + return; + } + + PgxpDlg = GTK_WIDGET(gtk_builder_get_object(builder, "PgxpDlg")); + gtk_window_set_default_size(GTK_WINDOW(PgxpDlg), 320, 320); + gtk_widget_show (PgxpDlg); + + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( + gtk_builder_get_object(builder, "PGXP_GTE")), Config.PGXP_GTE); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( + gtk_builder_get_object(builder, "PGXP_Cache")), Config.PGXP_Cache); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( + gtk_builder_get_object(builder, "PGXP_Texture")), Config.PGXP_Texture); + + gtk_combo_box_set_active(GTK_COMBO_BOX( + gtk_builder_get_object(builder, "PGXP_Mode")), Config.PGXP_Mode); + OnPgxp_ModeChanged(NULL, NULL); + + g_signal_connect_data(G_OBJECT(gtk_builder_get_object(builder, "PGXP_Mode")), "changed", + G_CALLBACK(OnPgxp_ModeChanged), builder, NULL, G_CONNECT_AFTER); + g_signal_connect_data(G_OBJECT(PgxpDlg), "response", + G_CALLBACK(OnPgxp_Clicked), builder, (GClosureNotify)g_object_unref, G_CONNECT_AFTER); } diff --git a/gui/Makefile.am b/gui/Makefile.am index ebae1d48..7db62f01 100644 --- a/gui/Makefile.am +++ b/gui/Makefile.am @@ -77,3 +77,5 @@ GtkResources.h: pcsxr.gresource.xml $(pcsxr_gresource) pcsxr_LDADD = \ ../libpcsxcore/libpcsxcore.a \ $(GTK3_LIBS) -lpthread -lz -lm -lXext -lXtst + +CLEANFILES = pcsxr.gresource.xml GtkResources.c GtkResources.h diff --git a/gui/data/pcsxr.ui b/gui/data/pcsxr.ui index 6cc4b24f..35937bfb 100644 --- a/gui/data/pcsxr.ui +++ b/gui/data/pcsxr.ui @@ -1,5 +1,5 @@ - + @@ -32,6 +32,9 @@ + + + False @@ -214,6 +217,9 @@ closbutton1 + + + False @@ -919,6 +925,9 @@ btn_ConfClose + + + False @@ -1731,6 +1740,9 @@ McdClose + + + False @@ -2013,6 +2025,9 @@ memview_close + + + False @@ -2169,6 +2184,9 @@ closebutton2 + + + True @@ -2239,7 +2257,6 @@ True False - 0.49000000953674316 pcsxr-cd-open 1 @@ -2303,6 +2320,12 @@ pcsxr-plugin-sio1 1 + + True + False + pcsxr-pgxp + 1 + True False @@ -2835,6 +2858,23 @@ False + + + _PGXP... + True + False + True + image43 + False + + + + + + True + False + + _CPU... @@ -3128,6 +3168,9 @@ + + + @@ -3745,6 +3788,9 @@ closebutton + + + @@ -4417,5 +4463,249 @@ closebutton1 + + + + + + + + + + + + Disabled + + + Memory only + + + Memory + Cpu logic + + + + + False + Configure PGXP + False + True + center-on-parent + dialog + + + False + vertical + + + False + end + + + gtk-close + True + True + True + True + + + False + False + 0 + + + + + False + False + 1 + + + + + True + False + vertical + 5 + + + True + False + 0 + + + True + False + 12 + + + True + False + vertical + + + Enable PGXP GTE vertex creation + True + True + False + True + + + False + True + 0 + + + + + Enable vertex caching. + True + True + False + True + + + False + True + 1 + + + + + Enable perspective correct texturing. + True + True + False + True + + + False + True + 2 + + + + + + + + + True + False + Options + + + + + + + + False + True + 0 + + + + + True + False + 0 + + + True + False + 12 + + + True + False + vertical + top + + + True + False + 40 + 40 + liststore6 + + + + 0 + + + + + False + True + 0 + + + + + True + False + start + 4 + 4 + + + + + + False + True + 1 + + + + + True + False + 10 + True + 20 + + + True + True + 2 + + + + + + + + + True + False + Select PGXP Mode + + + + + + + + True + True + 1 + + + + + True + True + 0 + + + + + + PgxpDlg_close + + + + diff --git a/plugins/bladesio1/Makefile.am b/plugins/bladesio1/Makefile.am index 880aa647..badd57e5 100644 --- a/plugins/bladesio1/Makefile.am +++ b/plugins/bladesio1/Makefile.am @@ -38,3 +38,6 @@ GtkResources.h: bladesio1.gresource.xml $(bladesio1_gresource) #glade_DATA = sio1.ui #gladedir = $(datadir)/psemu/ EXTRA_DIST = $(glade_DATA) + +CLEANFILES = bladesio1.gresource.xml GtkResources.c GtkResources.h + diff --git a/plugins/dfcdrom/Makefile.am b/plugins/dfcdrom/Makefile.am index 4b3dec4b..1f87998b 100644 --- a/plugins/dfcdrom/Makefile.am +++ b/plugins/dfcdrom/Makefile.am @@ -53,3 +53,6 @@ GtkResources.h: dfcdrom.gresource.xml $(dfcdrom_gresource) #glade_DATA = cdrcfg-0.1df/dfcdrom.ui #gladedir = $(datadir)/psemu/ EXTRA_DIST = $(glade_DATA) + +CLEANFILES = dfcdrom.gresource.xml GtkResources.c GtkResources.h + diff --git a/plugins/dfinput/Makefile.am b/plugins/dfinput/Makefile.am index 11eee3eb..458259c5 100644 --- a/plugins/dfinput/Makefile.am +++ b/plugins/dfinput/Makefile.am @@ -39,3 +39,5 @@ GtkResources.h: dfinput.gresource.xml $(dfinput_gresource) #glade_DATA = dfinput.ui #gladedir = $(datadir)/psemu/ EXTRA_DIST = $(glade_DATA) + +CLEANFILES = dfinput.gresource.xml GtkResources.c GtkResources.h diff --git a/plugins/dfnet/Makefile.am b/plugins/dfnet/Makefile.am index 4000b8c4..f0a53ea0 100755 --- a/plugins/dfnet/Makefile.am +++ b/plugins/dfnet/Makefile.am @@ -38,3 +38,5 @@ GtkResources.h: dfnet.gresource.xml $(dfnet_gresource) #glade_DATA = dfnet.ui #gladedir = $(datadir)/psemu/ EXTRA_DIST = $(glade_DATA) + +CLEANFILES = dfnet.gresource.xml GtkResources.c GtkResources.h diff --git a/plugins/dfsound/Makefile.am b/plugins/dfsound/Makefile.am index b34f3267..9f8130a1 100755 --- a/plugins/dfsound/Makefile.am +++ b/plugins/dfsound/Makefile.am @@ -74,3 +74,6 @@ GtkResources.h: dfsound.gresource.xml $(dfsound_gresource) #glade_DATA = spucfg-0.1df/dfsound.ui #gladedir = $(datadir)/psemu/ EXTRA_DIST = $(glade_DATA) + +CLEANFILES = dfsound.gresource.xml GtkResources.c GtkResources.h + diff --git a/plugins/dfxvideo/Makefile.am b/plugins/dfxvideo/Makefile.am index 86e8ef3a..520749b2 100755 --- a/plugins/dfxvideo/Makefile.am +++ b/plugins/dfxvideo/Makefile.am @@ -52,3 +52,6 @@ GtkResources.h: dfxvideo.gresource.xml $(dfxvideo_gresource) #glade_DATA = gpucfg-0.1df/dfxvideo.ui #gladedir = $(datadir)/psemu/ EXTRA_DIST = $(glade_DATA) + +CLEANFILES = dfxvideo.gresource.xml GtkResources.c GtkResources.h + diff --git a/plugins/peopsxgl/Makefile.am b/plugins/peopsxgl/Makefile.am index a37643e6..576e140d 100755 --- a/plugins/peopsxgl/Makefile.am +++ b/plugins/peopsxgl/Makefile.am @@ -52,3 +52,6 @@ GtkResources.h: peopsxgl.gresource.xml $(peopsxgl_gresource) #glade_DATA = gpucfg/peopsxgl.ui #gladedir = $(datadir)/psemu/ EXTRA_DIST = $(glade_DATA) + +CLEANFILES = peopsxgl.gresource.xml GtkResources.c GtkResources.h + -- cgit v1.2.3