summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoriCatButler <i.am.catbutler@gmail.com>2018-03-13 17:25:13 +0000
committerGitHub <noreply@github.com>2018-03-13 17:25:13 +0000
commit768332417644451d38ce1a737465656c7cc75de3 (patch)
treee6ca381effb72ccc4161d40f224b817a6631bc03
parent15fe3782c1375634b7a9bd9bbbadfd75e7b06fed (diff)
parent2d0b10f982e0b835f4b27be26b138703907a4219 (diff)
Merge pull request #6 from loathingKernel/fix-linux-build
Fix compilation on Linux and add the new setting to the UI
-rw-r--r--.gitignore3
-rw-r--r--AUTHORS1
-rw-r--r--Makefile.am9
-rwxr-xr-xautogen.sh12
-rw-r--r--configure.ac19
-rw-r--r--data/Makefile.am7
-rwxr-xr-xgui/AboutDlg.c10
-rwxr-xr-xgui/Cheat.c38
-rwxr-xr-xgui/ConfDlg.c123
-rwxr-xr-xgui/ConfDlg.h1
-rw-r--r--[-rwxr-xr-x]gui/Config.c51
-rwxr-xr-xgui/DebugMemory.c46
-rwxr-xr-xgui/GtkGui.c41
-rwxr-xr-xgui/LnxMain.c2
-rw-r--r--gui/Makefile.am52
-rwxr-xr-xgui/MemcardDlg.c32
-rwxr-xr-xgui/Plugin.c5
-rw-r--r--gui/data/Makefile.am7
-rw-r--r--gui/data/pcsxr.desktop (renamed from data/pcsxr.desktop)0
-rw-r--r--gui/data/pcsxr.ui (renamed from data/pcsxr.ui)1882
-rw-r--r--gui/data/pixmaps/Makefile.am18
-rw-r--r--gui/data/pixmaps/pcsxr-about.pngbin0 -> 252 bytes
-rw-r--r--gui/data/pixmaps/pcsxr-cd-open.pngbin0 -> 1454 bytes
-rw-r--r--gui/data/pixmaps/pcsxr-cheats-browse.pngbin0 -> 253 bytes
-rw-r--r--gui/data/pixmaps/pcsxr-cheats-search.pngbin0 -> 301 bytes
-rw-r--r--gui/data/pixmaps/pcsxr-cheats.pngbin0 -> 176 bytes
-rw-r--r--gui/data/pixmaps/pcsxr-cpu.pngbin0 -> 324 bytes
-rw-r--r--gui/data/pixmaps/pcsxr-exit.pngbin0 -> 277 bytes
-rw-r--r--gui/data/pixmaps/pcsxr-icon.pngbin0 -> 12325 bytes
-rw-r--r--gui/data/pixmaps/pcsxr-iso-open.pngbin0 -> 1716 bytes
-rw-r--r--gui/data/pixmaps/pcsxr-iso-reopen.pngbin0 -> 322 bytes
-rw-r--r--gui/data/pixmaps/pcsxr-load-state.pngbin0 -> 242 bytes
-rw-r--r--[-rwxr-xr-x]gui/data/pixmaps/pcsxr-memcard.png (renamed from pixmaps/memcard.png)bin935 -> 935 bytes
-rw-r--r--gui/data/pixmaps/pcsxr-memory-dump.pngbin0 -> 219 bytes
-rw-r--r--[-rwxr-xr-x]gui/data/pixmaps/pcsxr-play.png (renamed from pixmaps/play.png)bin846 -> 846 bytes
-rw-r--r--[-rwxr-xr-x]gui/data/pixmaps/pcsxr-plugin-cdr.png (renamed from pixmaps/cdr.png)bin1491 -> 1491 bytes
-rw-r--r--gui/data/pixmaps/pcsxr-plugin-gpu.pngbin0 -> 1429 bytes
-rw-r--r--gui/data/pixmaps/pcsxr-plugin-netplay.pngbin0 -> 235 bytes
-rw-r--r--gui/data/pixmaps/pcsxr-plugin-pad.pngbin0 -> 1547 bytes
-rw-r--r--gui/data/pixmaps/pcsxr-plugin-sio1.pngbin0 -> 1516 bytes
-rw-r--r--gui/data/pixmaps/pcsxr-plugin-spu.pngbin0 -> 2042 bytes
-rw-r--r--gui/data/pixmaps/pcsxr-reset.pngbin0 -> 257 bytes
-rw-r--r--gui/data/pixmaps/pcsxr-run-bios.pngbin0 -> 324 bytes
-rw-r--r--gui/data/pixmaps/pcsxr-run-exe.pngbin0 -> 258 bytes
-rw-r--r--gui/data/pixmaps/pcsxr-save-state.pngbin0 -> 237 bytes
-rw-r--r--gui/data/pixmaps/pcsxr-settings.pngbin0 -> 304 bytes
-rw-r--r--gui/data/pixmaps/pcsxr-shutdown.pngbin0 -> 257 bytes
-rw-r--r--gui/data/pixmaps/pcsxr.pngbin0 -> 29957 bytes
-rw-r--r--libpcsxcore/Makefile.am92
-rwxr-xr-xlibpcsxcore/cdriso.c607
-rw-r--r--pixmaps/Makefile.am7
-rwxr-xr-xpixmaps/cd.pngbin1593 -> 0 bytes
-rwxr-xr-xpixmaps/gpu.pngbin1455 -> 0 bytes
-rwxr-xr-xpixmaps/iso-open.pngbin3034 -> 0 bytes
-rwxr-xr-xpixmaps/iso-reopen.pngbin1772 -> 0 bytes
-rwxr-xr-xpixmaps/pad.pngbin1767 -> 0 bytes
-rwxr-xr-xpixmaps/pcsxr-icon.pngbin13508 -> 0 bytes
-rwxr-xr-xpixmaps/pcsxr.pngbin60106 -> 0 bytes
-rw-r--r--pixmaps/sio1.pngbin1786 -> 0 bytes
-rwxr-xr-xpixmaps/spu.pngbin2102 -> 0 bytes
-rw-r--r--plugins/bladesio1/Makefile.am29
-rw-r--r--plugins/bladesio1/gui.c3
-rw-r--r--plugins/dfcdrom/Makefile.am29
-rw-r--r--plugins/dfcdrom/cdrcfg-0.1df/dfcdrom.ui167
-rwxr-xr-xplugins/dfcdrom/cdrcfg-0.1df/main.c7
-rw-r--r--plugins/dfinput/Makefile.am28
-rwxr-xr-xplugins/dfinput/cfg-gtk.c33
-rwxr-xr-xplugins/dfinput/cfg.c5
-rw-r--r--plugins/dfinput/dfinput.ui233
-rwxr-xr-xplugins/dfinput/pad.c18
-rwxr-xr-xplugins/dfinput/pad.h1
-rwxr-xr-xplugins/dfinput/sdljoy.c4
-rwxr-xr-xplugins/dfinput/xkb.c4
-rwxr-xr-xplugins/dfnet/Makefile.am28
-rw-r--r--[-rwxr-xr-x]plugins/dfnet/dfnet.ui41
-rwxr-xr-xplugins/dfnet/gui.c3
-rwxr-xr-xplugins/dfsound/Makefile.am28
-rw-r--r--[-rwxr-xr-x]plugins/dfsound/spucfg-0.1df/dfsound.ui168
-rwxr-xr-xplugins/dfsound/spucfg-0.1df/main.c3
-rwxr-xr-xplugins/dfxvideo/Makefile.am29
-rw-r--r--[-rwxr-xr-x]plugins/dfxvideo/gpucfg-0.1df/dfxvideo.ui280
-rwxr-xr-xplugins/dfxvideo/gpucfg-0.1df/main.c3
-rw-r--r--plugins/nullsio1/Makefile.am10
-rw-r--r--plugins/nullsio1/sio1.c289
-rw-r--r--plugins/nullsio1/typedefs.h35
-rwxr-xr-xplugins/peopsxgl/Makefile.am45
-rwxr-xr-xplugins/peopsxgl/gpu.c2
-rwxr-xr-xplugins/peopsxgl/gpucfg/main.c3
-rw-r--r--[-rwxr-xr-x]plugins/peopsxgl/gpucfg/peopsxgl.ui646
-rwxr-xr-xplugins/peopsxgl/prim.c2
-rw-r--r--[-rwxr-xr-x]po/LINGUAS6
-rw-r--r--[-rwxr-xr-x]po/Makefile.in.in0
-rw-r--r--[-rwxr-xr-x]po/Makevars0
-rw-r--r--[-rwxr-xr-x]po/POTFILES.in0
-rw-r--r--[-rwxr-xr-x]po/fr.po (renamed from po/fr_FR.po)0
-rw-r--r--[-rwxr-xr-x]po/hu.po (renamed from po/hu_HU.po)0
-rw-r--r--[-rwxr-xr-x]po/it.po0
-rw-r--r--[-rwxr-xr-x]po/pcsxr.pot0
-rw-r--r--[-rwxr-xr-x]po/pt_BR.po0
-rw-r--r--[-rwxr-xr-x]po/ru.po (renamed from po/ru_RU.po)0
-rw-r--r--[-rwxr-xr-x]po/zh_CN.po0
-rw-r--r--[-rwxr-xr-x]po/zh_TW.po0
102 files changed, 3160 insertions, 2087 deletions
diff --git a/.gitignore b/.gitignore
index d714b1c8..f8b3baf8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,5 +6,8 @@
macosx/build
xcuserdata
macosx/Info.plistvers.plist
+*.kdev4
+linux_build.sh
project.xcworkspace
.DS_Store
+build/
diff --git a/AUTHORS b/AUTHORS
index 32f745b4..69a1215c 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -26,6 +26,7 @@ PCSX-Reloaded Authors/Contributors: avlex (Help on xcode project)
edgbla (Root counters, SIO1, various core/plugin fixes)
Firnis (GTE code from PCSX-Revolution Project)
Hopkat (Sound plugin improvements, core fixes)
+ iSage (compressed CD-DA, migration to CMake)
Gabriele Gorla (MDEC decoder)
MaddTheSane (Various bugfixes)
maggix (Snow Leopard compile fix)
diff --git a/Makefile.am b/Makefile.am
index 1873a6bc..82dc5c19 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,14 +1,17 @@
-SUBDIRS = data
+ACLOCAL_AMFLAGS = -I m4
+
+SUBDIRS = gui/data
SUBDIRS += doc
-SUBDIRS += pixmaps
+SUBDIRS += gui/data/pixmaps
SUBDIRS += po
SUBDIRS += libpcsxcore
SUBDIRS += gui
SUBDIRS += plugins/dfinput
SUBDIRS += plugins/dfsound
-SUBDIRS += plugins/dfxvideo
+SUBDIRS += plugins/dfxvideo
SUBDIRS += plugins/dfcdrom
SUBDIRS += plugins/dfnet
+SUBDIRS += plugins/nullsio1
SUBDIRS += $(BLADESIO1)
SUBDIRS += $(PEOPSXGL)
diff --git a/autogen.sh b/autogen.sh
index dd659717..ea9f1a52 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -3,13 +3,13 @@
# Additional options go to configure.
echo "Rebuilding ./configure with autoreconf..."
-if [ ! -d "include" ]; then
- mkdir "include"
-fi
-autoreconf -f -i
+for dir in include m4; do
+ if [ ! -d "$dir" ]; then
+ mkdir "$dir"
+ fi
+done
+autoreconf -f -i .
if [ $? -ne 0 ]; then
echo "autoreconf failed"
exit $?
fi
-
-./configure --enable-maintainer-mode "$@"
diff --git a/configure.ac b/configure.ac
index 13087c1c..eaa49ba4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,8 +1,9 @@
AC_INIT([pcsxr], [1.9.95])
+AC_CONFIG_MACRO_DIRS([m4])
AC_CANONICAL_HOST
AC_CANONICAL_BUILD
-AM_INIT_AUTOMAKE(foreign)
+AM_INIT_AUTOMAKE(foreign subdir-objects)
AM_MAINTAINER_MODE
AC_CONFIG_HEADERS([include/config.h:include/config.h.in])
@@ -16,6 +17,13 @@ AM_PROG_AS
LT_PREREQ([2.2.6])
LT_INIT([disable-static])
+AX_APPEND_LINK_FLAGS([-fno-pie])
+AX_COMPILER_VENDOR
+if test "$ax_cv_c_compiler_vendor" = "gnu"; then
+ AX_CHECK_LINK_FLAG([-no-pie],[AX_APPEND_LINK_FLAGS([-no-pie])],)
+ AX_CHECK_LINK_FLAG([-nopie],[AX_APPEND_LINK_FLAGS([-nopie])],)
+fi
+
AM_GLIB_GNU_GETTEXT
IT_PROG_INTLTOOL([0.35.0])
@@ -33,13 +41,16 @@ PKG_CHECK_MODULES([SDL2], [sdl2 >= 2.0.0],
], AC_MSG_ERROR([*** SDL >= 1.2.12 not found!]))
])
+AC_PATH_PROG(GLIB_COMPILE_RESOURCES, glib-compile-resources)
+AC_PATH_PROG(GLIB_MKENUMS, glib-mkenums)
+
AC_SUBST(GLIB2_CFLAGS)
AC_SUBST(GLIB2_LIBS)
AC_SUBST(GTK3_CFLAGS)
AC_SUBST(GTK3_LIBS)
AC_CONFIG_FILES([Makefile
-data/Makefile
+gui/data/Makefile
doc/Makefile
libpcsxcore/Makefile
gui/Makefile
@@ -49,8 +60,9 @@ plugins/dfsound/Makefile
plugins/dfxvideo/Makefile
plugins/dfcdrom/Makefile
plugins/dfnet/Makefile
+plugins/nullsio1/Makefile
plugins/peopsxgl/Makefile
-pixmaps/Makefile
+gui/data/pixmaps/Makefile
po/Makefile.in])
AC_CHECK_LIB(dl, dlsym, [LIBS="$LIBS -ldl"], [])
@@ -176,6 +188,7 @@ if test "$BUILD_CCDDA" = "yes"; then
AC_CHECK_LIB([avcodec], [main], [LIBS="$LIBS -lavcodec"], AC_MSG_ERROR("No avcodec library"))
AC_CHECK_LIB([avutil], [main], [LIBS="$LIBS -lavutil"], AC_MSG_ERROR("No avutil library"))
AC_CHECK_LIB([avformat], [main], [LIBS="$LIBS -lavformat"], AC_MSG_ERROR("No avformat library"))
+ AC_CHECK_LIB([swresample], [main], [LIBS="$LIBS -lswresample"], AC_MSG_ERROR("No swresample library"))
#AC_CHECK_LIB(avcodec ,[main],AC_DEFINE([HAVE_LIBAVCODEC], [1], [ ]),AC_MSG_ERROR([$errormsgl]))
#AC_CHECK_LIB(swscale ,[main],AC_DEFINE([HAVE_LIBSWSCALE], [1], [ ]),AC_MSG_ERROR([$errormsgl]), [-lavutil])
#AC_CHECK_LIB(avdevice ,[main],AC_DEFINE([HAVE_LIBAVDEVICE], [1], [ ]),AC_MSG_ERROR([$errormsgl]), [-lavcodec -lavutil -lavformat])
diff --git a/data/Makefile.am b/data/Makefile.am
deleted file mode 100644
index 8f1ce6a2..00000000
--- a/data/Makefile.am
+++ /dev/null
@@ -1,7 +0,0 @@
-glade_DATA = pcsxr.ui
-gladedir = $(datadir)/pcsxr
-
-desktopdir = $(datadir)/applications
-desktop_DATA = pcsxr.desktop
-
-EXTRA_DIST = $(glade_DATA) pcsxr.desktop
diff --git a/gui/AboutDlg.c b/gui/AboutDlg.c
index f701c1c9..4f5d02ae 100755
--- a/gui/AboutDlg.c
+++ b/gui/AboutDlg.c
@@ -19,11 +19,12 @@
#include "Linux.h"
#include <gtk/gtk.h>
-#define ABOUT_VERSION "svn"
+#define ABOUT_VERSION "git"
void RunAboutDialog(void) {
GtkBuilder *builder;
GtkWidget *AboutDlg;
+ GdkPixbuf *logo;
const gchar *authors[] = {
"PCSX-Reloaded Team:",
@@ -87,9 +88,11 @@ void RunAboutDialog(void) {
"You should have received a copy of the GNU General Public License "
"along with this program. If not, see <http://www.gnu.org/licenses/>.");
+ logo = gdk_pixbuf_new_from_resource("/org/pcsxr/gui/pixmaps/pcsxr-icon.png", NULL);
+
builder = gtk_builder_new();
- if (!gtk_builder_add_from_file(builder, PACKAGE_DATA_DIR "pcsxr.ui", NULL)) {
+ if (!gtk_builder_add_from_resource(builder, "/org/pcsxr/gui/pcsxr.ui", NULL)) {
g_warning("Error: interface could not be loaded!");
return;
}
@@ -109,6 +112,9 @@ void RunAboutDialog(void) {
gtk_about_dialog_set_comments(GTK_ABOUT_DIALOG (AboutDlg), _("A PlayStation emulator."));
gtk_about_dialog_set_license(GTK_ABOUT_DIALOG(AboutDlg), _(license));
gtk_about_dialog_set_wrap_license(GTK_ABOUT_DIALOG(AboutDlg), TRUE);
+ gtk_about_dialog_set_logo(GTK_ABOUT_DIALOG(AboutDlg), logo);
+
+ g_object_unref(G_OBJECT(logo));
gtk_dialog_run(GTK_DIALOG(AboutDlg));
gtk_widget_destroy(AboutDlg);
diff --git a/gui/Cheat.c b/gui/Cheat.c
index 497970ae..3ecb6468 100755
--- a/gui/Cheat.c
+++ b/gui/Cheat.c
@@ -49,7 +49,6 @@ static void LoadCheatListItems(int index) {
gtk_tree_view_set_model(GTK_TREE_VIEW(widget), GTK_TREE_MODEL(store));
g_object_unref(G_OBJECT(store));
- gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(widget), TRUE);
gtk_tree_view_set_search_column(GTK_TREE_VIEW(widget), 1);
gtk_widget_show(widget);
@@ -99,8 +98,8 @@ static void OnCheatListDlg_AddClicked(GtkWidget *widget, gpointer user_data) {
GtkWidget *box, *scroll, *label, *descr_edit, *code_edit;
dlg = gtk_dialog_new_with_buttons(_("Add New Cheat"), GTK_WINDOW(CheatListDlg),
- GTK_DIALOG_MODAL, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL);
+ GTK_DIALOG_MODAL, "_Cancel", GTK_RESPONSE_CANCEL,
+ "_OK", GTK_RESPONSE_ACCEPT, NULL);
gtk_window_set_default_size(GTK_WINDOW(dlg), 350, 350);
@@ -125,7 +124,7 @@ static void OnCheatListDlg_AddClicked(GtkWidget *widget, gpointer user_data) {
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll),
GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
- gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scroll), code_edit);
+ gtk_container_add(GTK_CONTAINER(scroll), code_edit);
gtk_widget_show(code_edit);
gtk_box_pack_start(GTK_BOX(box), scroll, TRUE, TRUE, 5);
@@ -183,8 +182,8 @@ static void OnCheatListDlg_EditClicked(GtkWidget *widget, gpointer user_data) {
gtk_tree_path_free(path);
dlg = gtk_dialog_new_with_buttons(_("Edit Cheat"), GTK_WINDOW(CheatListDlg),
- GTK_DIALOG_MODAL, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL);
+ GTK_DIALOG_MODAL, "_Cancel", GTK_RESPONSE_CANCEL,
+ "_OK", GTK_RESPONSE_ACCEPT, NULL);
gtk_window_set_default_size(GTK_WINDOW(dlg), 350, 350);
@@ -220,7 +219,7 @@ static void OnCheatListDlg_EditClicked(GtkWidget *widget, gpointer user_data) {
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll),
GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
- gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scroll), code_edit);
+ gtk_container_add(GTK_CONTAINER(scroll), code_edit);
gtk_widget_show(code_edit);
gtk_box_pack_start(GTK_BOX(box), scroll, TRUE, TRUE, 5);
@@ -311,8 +310,8 @@ static void OnCheatListDlg_OpenClicked(GtkWidget *widget, gpointer user_data) {
GtkFileFilter *filter;
chooser = gtk_file_chooser_dialog_new (_("Open Cheat File"),
- NULL, GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- GTK_STOCK_OK, GTK_RESPONSE_OK, NULL);
+ NULL, GTK_FILE_CHOOSER_ACTION_OPEN, "_Cancel", GTK_RESPONSE_CANCEL,
+ "_OK", GTK_RESPONSE_OK, NULL);
filename = g_build_filename(getenv("HOME"), CHEATS_DIR, NULL);
gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (chooser), filename);
@@ -355,8 +354,8 @@ static void OnCheatListDlg_SaveClicked(GtkWidget *widget, gpointer user_data) {
GtkFileFilter *filter;
chooser = gtk_file_chooser_dialog_new(_("Save Cheat File"),
- NULL, GTK_FILE_CHOOSER_ACTION_SAVE, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- GTK_STOCK_OK, GTK_RESPONSE_OK, NULL);
+ NULL, GTK_FILE_CHOOSER_ACTION_SAVE, "_Cancel", GTK_RESPONSE_CANCEL,
+ "_OK", GTK_RESPONSE_OK, NULL);
filename = g_build_filename(getenv("HOME"), CHEATS_DIR, NULL);
gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(chooser), filename);
@@ -424,7 +423,7 @@ void RunCheatListDialog() {
builder = gtk_builder_new();
- if (!gtk_builder_add_from_file(builder, PACKAGE_DATA_DIR "pcsxr.ui", NULL)) {
+ if (!gtk_builder_add_from_resource(builder, "/org/pcsxr/gui/pcsxr.ui", NULL)) {
g_warning("Error: interface could not be loaded!");
return;
}
@@ -621,7 +620,6 @@ static void UpdateCheatSearchDialog() {
gtk_tree_view_set_model(GTK_TREE_VIEW(widget), GTK_TREE_MODEL(store));
g_object_unref(G_OBJECT(store));
- gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(widget), TRUE);
gtk_widget_show(widget);
}
@@ -659,8 +657,8 @@ static void OnCheatSearchDlg_FreezeClicked(GtkWidget *widget, gpointer user_data
addr = SearchResults[GetSelectedResultIndex()];
dlg = gtk_dialog_new_with_buttons(_("Freeze value"), GTK_WINDOW(CheatListDlg),
- GTK_DIALOG_MODAL, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT,
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, NULL);
+ GTK_DIALOG_MODAL, "_OK", GTK_RESPONSE_ACCEPT,
+ "_Cancel", GTK_RESPONSE_CANCEL, NULL);
box = GTK_WIDGET(gtk_dialog_get_content_area(GTK_DIALOG(dlg)));
@@ -672,7 +670,7 @@ static void OnCheatSearchDlg_FreezeClicked(GtkWidget *widget, gpointer user_data
gtk_box_pack_start(GTK_BOX(box), descr_edit, FALSE, FALSE, 10);
gtk_widget_show(descr_edit);
- hbox = gtk_hbox_new(FALSE, 0);
+ hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 15);
label = gtk_label_new(_("Value:"));
@@ -758,11 +756,11 @@ static void OnCheatSearchDlg_ModifyClicked(GtkWidget *widget, gpointer user_data
addr = SearchResults[GetSelectedResultIndex()];
dlg = gtk_dialog_new_with_buttons(_("Modify value"), GTK_WINDOW(CheatListDlg),
- GTK_DIALOG_MODAL, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT,
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, NULL);
+ GTK_DIALOG_MODAL, "_OK", GTK_RESPONSE_ACCEPT,
+ "_Cancel", GTK_RESPONSE_CANCEL, NULL);
box = GTK_WIDGET(gtk_dialog_get_content_area(GTK_DIALOG(dlg)));
- hbox = gtk_hbox_new(FALSE, 0);
+ hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 5);
label = gtk_label_new(_("New value:"));
@@ -1136,7 +1134,7 @@ void RunCheatSearchDialog() {
builder = gtk_builder_new();
- if (!gtk_builder_add_from_file(builder, PACKAGE_DATA_DIR "pcsxr.ui", NULL)) {
+ if (!gtk_builder_add_from_resource(builder, "/org/pcsxr/gui/pcsxr.ui", NULL)) {
g_warning("Error: interface could not be loaded!");
return;
}
diff --git a/gui/ConfDlg.c b/gui/ConfDlg.c
index d71326c7..d55234f8 100755
--- a/gui/ConfDlg.c
+++ b/gui/ConfDlg.c
@@ -101,7 +101,7 @@ void ConfigurePlugins() {
UpdatePluginsBIOS();
builder = gtk_builder_new();
- if (!gtk_builder_add_from_file(builder, PACKAGE_DATA_DIR "pcsxr.ui", NULL)) {
+ if (!gtk_builder_add_from_resource(builder, "/org/pcsxr/gui/pcsxr.ui", NULL)) {
g_warning("Error: interface could not be loaded!");
return;
}
@@ -213,7 +213,7 @@ void OnConf_Net() {
}
builder = gtk_builder_new();
- if (!gtk_builder_add_from_file(builder, PACKAGE_DATA_DIR "pcsxr.ui", NULL)) {
+ if (!gtk_builder_add_from_resource(builder, "/org/pcsxr/gui/pcsxr.ui", NULL)) {
g_warning("Error: interface could not be loaded!");
return;
}
@@ -845,6 +845,7 @@ static void FindNetPlugin() {
}
GtkWidget *CpuDlg;
+GtkWidget *PgxpDlg;
GList *psxglist;
char *psxtypes[] = {
"NTSC",
@@ -876,6 +877,14 @@ static void OnCpu_CpuClicked(GtkWidget *widget, gpointer user_data) {
gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)));
}
+// When overclock checkbutton is changed, enable/disable the selection spinbutton
+static void OnCpu_OverClockClicked(GtkWidget *widget, gpointer user_data){
+ GtkWidget *spin;
+
+ spin = GTK_WIDGET(gtk_builder_get_object(builder, "GtkSpinButton_PsxClock"));
+ gtk_widget_set_sensitive(spin, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)));
+}
+
void OnCpu_Clicked(GtkDialog *dialog, gint arg1, gpointer user_data) {
GtkWidget *widget;
long unsigned int tmp;
@@ -935,6 +944,7 @@ void OnCpu_Clicked(GtkDialog *dialog, gint arg1, gpointer user_data) {
SysClose();
exit(1);
}
+ psxCpu->SetPGXPMode(Config.PGXP_Mode);
psxCpu->Reset();
}
@@ -946,7 +956,14 @@ void OnCpu_Clicked(GtkDialog *dialog, gint arg1, gpointer user_data) {
Config.Widescreen = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, "GtkCheckButton_Widescreen")));
Config.HackFix = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, "GtkCheckButton_HackFix")));
- SaveConfig();
+ Config.OverClock = gtk_toggle_button_get_active(
+ GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, "GtkCheckButton_OverClock")));
+ Config.PsxClock = gtk_spin_button_get_value(
+ GTK_SPIN_BUTTON(gtk_builder_get_object(builder, "GtkSpinButton_PsxClock")));
+ Config.MemHack = gtk_toggle_button_get_active(
+ GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, "GtkCheckButton_MemHack")));
+
+ SaveConfig();
gtk_widget_destroy(CpuDlg);
CpuDlg = NULL;
@@ -958,7 +975,7 @@ void OnConf_Cpu() {
builder = gtk_builder_new();
- if (!gtk_builder_add_from_file(builder, PACKAGE_DATA_DIR "pcsxr.ui", NULL)) {
+ if (!gtk_builder_add_from_resource(builder, "/org/pcsxr/gui/pcsxr.ui", NULL)) {
g_warning("Error: interface could not be loaded!");
return;
}
@@ -1028,7 +1045,103 @@ void OnConf_Cpu() {
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, "GtkCheckButton_Widescreen")), Config.Widescreen);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, "GtkCheckButton_HackFix")), Config.HackFix);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(
+ gtk_builder_get_object(builder, "GtkCheckButton_OverClock")), Config.OverClock);
+ gtk_spin_button_set_value(GTK_SPIN_BUTTON(
+ gtk_builder_get_object(builder, "GtkSpinButton_PsxClock")), Config.PsxClock);
+ OnCpu_OverClockClicked(GTK_WIDGET(
+ gtk_builder_get_object(builder, "GtkCheckButton_OverClock")), NULL);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(
+ gtk_builder_get_object(builder, "GtkCheckButton_MemHack")), Config.MemHack);
+
+ g_signal_connect_data(G_OBJECT(gtk_builder_get_object(builder, "GtkCheckButton_OverClock")), "toggled",
+ G_CALLBACK(OnCpu_OverClockClicked), builder, NULL, G_CONNECT_AFTER);
+
// Setup a handler for when Close or Cancel is clicked
g_signal_connect_data(G_OBJECT(CpuDlg), "response",
- G_CALLBACK(OnCpu_Clicked), builder, (GClosureNotify)g_object_unref, G_CONNECT_AFTER);
+ G_CALLBACK(OnCpu_Clicked), builder, (GClosureNotify)g_object_unref, G_CONNECT_AFTER);
+}
+
+//When a different PGXP 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_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/ConfDlg.h b/gui/ConfDlg.h
index ef1c0203..b8b9d4e6 100755
--- a/gui/ConfDlg.h
+++ b/gui/ConfDlg.h
@@ -28,6 +28,7 @@ void OnConf_Sound();
void OnConf_CdRom();
void OnConf_Pad();
void OnConf_Cpu();
+void OnConf_Pgxp();
void OnConf_Net();
void OnConf_Sio1();
diff --git a/gui/Config.c b/gui/Config.c
index 25e2e54b..16c29c9a 100755..100644
--- a/gui/Config.c
+++ b/gui/Config.c
@@ -62,6 +62,16 @@ static boolean GetValueb(char *src, char *name) {
return FALSE;
}
+static long GetValuef(char *src, char *name) {
+ char *tmp = strstr(src, name);
+ if (tmp != NULL) {
+ tmp += strlen(name);
+ while ((*tmp == ' ') || (*tmp == '=')) tmp++;
+ if (*tmp != '\n') return atof(tmp);
+ }
+ return 0.0f;
+}
+
#define SetValue(name, var) \
fprintf(f, "%s = %s\n", name, var);
@@ -71,6 +81,9 @@ static boolean GetValueb(char *src, char *name) {
#define SetValueb(name, var) \
fprintf(f, "%s = %d\n", name, (var) ? 1 : 0);
+#define SetValuef(name, var) \
+ fprintf(f, "%s = %f\n", name, var);
+
int LoadConfig(PcsxConfig *Conf) {
struct stat buf;
FILE *f;
@@ -142,10 +155,20 @@ int LoadConfig(PcsxConfig *Conf) {
Config.VSyncWA = GetValueb(data, "VSyncWA");
Config.NoMemcard = GetValueb(data, "NoMemcard");
Config.Widescreen = GetValueb(data, "Widescreen");
+ Config.PerGameMcd = GetValueb(data, "PerGameMcd");
+ Config.MemHack = GetValuel(data, "MemHack");
+ Config.OverClock = GetValueb(data, "OverClock");
Config.Cpu = GetValuel(data, "Cpu");
Config.PsxType = GetValuel(data, "PsxType");
- Config.RewindCount = GetValuel(data, "RewindCount");
+ Config.PsxClock = GetValuef(data, "PsxClock");
+
+ Config.PGXP_GTE = GetValueb(data, "PGXP_GTE");
+ Config.PGXP_Cache = GetValueb(data, "PGXP_Cache");
+ Config.PGXP_Texture = GetValueb(data, "PGXP_Texture");
+ Config.PGXP_Mode = GetValuel(data, "PGXP_Mode");
+
+ Config.RewindCount = GetValuel(data, "RewindCount");
Config.RewindInterval = GetValuel(data, "RewindInterval");
Config.AltSpeed1 = GetValuel(data, "AltSpeed1");
@@ -191,7 +214,7 @@ void SaveConfig() {
SetValueb("SioIrq", Config.SioIrq);
SetValueb("Mdec", Config.Mdec);
SetValueb("PsxAuto", Config.PsxAuto);
- SetValuel("Cdda", Config.Cdda);
+ SetValuel("Cdda", (long)Config.Cdda);
SetValueb("SlowBoot",Config.SlowBoot);
SetValueb("Dbg", Config.Debug);
SetValueb("PsxOut", Config.PsxOut);
@@ -200,16 +223,26 @@ void SaveConfig() {
SetValueb("VSyncWA", Config.VSyncWA);
SetValueb("NoMemcard", Config.NoMemcard);
SetValueb("Widescreen", Config.Widescreen);
+ SetValueb("PerGameMcd", Config.PerGameMcd);
+ SetValuel("MemHack", (long)Config.MemHack);
+ SetValueb("OverClock", Config.OverClock);
+
+ SetValuel("Cpu", (long)Config.Cpu);
+ SetValuel("PsxType", (long)Config.PsxType);
+ SetValuef("PsxClock", Config.PsxClock);
+
+ SetValueb("PGXP_GTE", Config.PGXP_GTE);
+ SetValueb("PGXP_Cache", Config.PGXP_Cache);
+ SetValueb("PGXP_Texture", Config.PGXP_Texture);
+ SetValuel("PGXP_Mode", (long)Config.PGXP_Mode);
- SetValuel("Cpu", Config.Cpu);
- SetValuel("PsxType", Config.PsxType);
- SetValuel("RewindCount", Config.RewindCount);
- SetValuel("RewindInterval", Config.RewindInterval);
+ SetValuel("RewindCount", (long)Config.RewindCount);
+ SetValuel("RewindInterval", (long)Config.RewindInterval);
- SetValuel("AltSpeed1", Config.AltSpeed1);
- SetValuel("AltSpeed2", Config.AltSpeed2);
+ SetValuel("AltSpeed1", (long)Config.AltSpeed1);
+ SetValuel("AltSpeed2", (long)Config.AltSpeed2);
- SetValuel("HackFix", Config.HackFix);
+ SetValuel("HackFix", (long)Config.HackFix);
fclose(f);
}
diff --git a/gui/DebugMemory.c b/gui/DebugMemory.c
index 3c7939ab..096b6c5c 100755
--- a/gui/DebugMemory.c
+++ b/gui/DebugMemory.c
@@ -86,7 +86,6 @@ static void UpdateMemViewDlg() {
gtk_tree_view_set_model(GTK_TREE_VIEW(widget), GTK_TREE_MODEL(store));
g_object_unref(G_OBJECT(store));
- gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(widget), TRUE);
gtk_widget_show(widget);
}
@@ -150,30 +149,32 @@ static void MemView_Dump() {
char buf[10];
dlg = gtk_dialog_new_with_buttons(_("Memory Dump"), GTK_WINDOW(MemViewDlg),
- GTK_DIALOG_MODAL, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL);
+ GTK_DIALOG_MODAL, "_Cancel", GTK_RESPONSE_CANCEL,
+ "_OK", GTK_RESPONSE_ACCEPT, NULL);
box = GTK_WIDGET(gtk_dialog_get_content_area(GTK_DIALOG(dlg)));
- table = gtk_table_new(2, 2, FALSE);
+ table = gtk_grid_new();
+ gtk_grid_set_row_spacing(GTK_GRID(table), 5);
+ gtk_grid_set_column_spacing(GTK_GRID(table), 5);
label = gtk_label_new(_("Start Address (Hexadecimal):"));
- gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1, 0, 0, 5, 5);
+ gtk_grid_attach(GTK_GRID(table), label, 0, 0, 1, 1);
gtk_widget_show(label);
start_edit = gtk_entry_new();
gtk_entry_set_max_length(GTK_ENTRY(start_edit), 8);
sprintf(buf, "%.8X", MemViewAddress | 0x80000000);
gtk_entry_set_text(GTK_ENTRY(start_edit), buf);
- gtk_table_attach(GTK_TABLE(table), start_edit, 1, 2, 0, 1, 0, 0, 5, 5);
+ gtk_grid_attach(GTK_GRID(table), start_edit, 1, 0, 1, 1);
gtk_widget_show(start_edit);
label = gtk_label_new(_("Length (Decimal):"));
- gtk_table_attach(GTK_TABLE(table), label, 0, 1, 1, 2, 0, 0, 5, 5);
+ gtk_grid_attach(GTK_GRID(table), label, 0, 1, 1, 1);
gtk_widget_show(label);
length_edit = gtk_entry_new();
- gtk_table_attach(GTK_TABLE(table), length_edit, 1, 2, 1, 2, 0, 0, 5, 5);
+ gtk_grid_attach(GTK_GRID(table), length_edit, 1, 1, 1, 1);
gtk_widget_show(length_edit);
gtk_box_pack_start(GTK_BOX(box), table, FALSE, FALSE, 5);
@@ -196,8 +197,8 @@ static void MemView_Dump() {
if (length > 0) {
GtkWidget *file_chooser = gtk_file_chooser_dialog_new(_("Dump to File"),
NULL, GTK_FILE_CHOOSER_ACTION_SAVE,
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, NULL);
+ "_Cancel", GTK_RESPONSE_CANCEL,
+ "_Save", GTK_RESPONSE_ACCEPT, NULL);
gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(file_chooser), getenv("HOME"));
@@ -228,32 +229,34 @@ static void MemView_Patch() {
char buf[12];
dlg = gtk_dialog_new_with_buttons(_("Memory Patch"), GTK_WINDOW(MemViewDlg),
- GTK_DIALOG_MODAL, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL);
+ GTK_DIALOG_MODAL, "_Cancel", GTK_RESPONSE_CANCEL,
+ "_OK", GTK_RESPONSE_ACCEPT, NULL);
box = GTK_WIDGET(gtk_dialog_get_content_area(GTK_DIALOG(dlg)));
- table = gtk_table_new(2, 2, FALSE);
+ table = gtk_grid_new();
+ gtk_grid_set_row_spacing(GTK_GRID(table), 5);
+ gtk_grid_set_column_spacing(GTK_GRID(table), 5);
label = gtk_label_new(_("Address (Hexadecimal):"));
- gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1, 0, 0, 5, 5);
+ gtk_grid_attach(GTK_GRID(table), label, 0, 0, 1, 1);
gtk_widget_show(label);
addr_edit = gtk_entry_new();
gtk_entry_set_max_length(GTK_ENTRY(addr_edit), 8);
sprintf(buf, "%.8X", MemViewAddress | 0x80000000);
gtk_entry_set_text(GTK_ENTRY(addr_edit), buf);
- gtk_table_attach(GTK_TABLE(table), addr_edit, 1, 2, 0, 1, 0, 0, 5, 5);
+ gtk_grid_attach(GTK_GRID(table), addr_edit, 1, 0, 1, 1);
gtk_widget_show(addr_edit);
label = gtk_label_new(_("Value (Hexa string):"));
- gtk_table_attach(GTK_TABLE(table), label, 0, 1, 1, 2, 0, 0, 5, 5);
+ gtk_grid_attach(GTK_GRID(table), label, 0, 1, 1, 1);
gtk_widget_show(label);
val_edit = gtk_entry_new();
sprintf(buf, "%.2X", MemViewValue);
gtk_entry_set_text(GTK_ENTRY(val_edit), buf);
- gtk_table_attach(GTK_TABLE(table), val_edit, 1, 2, 1, 2, 0, 0, 5, 5);
+ gtk_grid_attach(GTK_GRID(table), val_edit, 1, 1, 1, 1);
gtk_widget_show(val_edit);
gtk_box_pack_start(GTK_BOX(box), table, FALSE, FALSE, 5);
@@ -303,12 +306,11 @@ void RunDebugMemoryDialog() {
GtkWidget *widget;
GtkCellRenderer *renderer;
GtkTreeViewColumn *column;
- PangoFontDescription *pfd;
int i;
builder = gtk_builder_new();
- if (!gtk_builder_add_from_file(builder, PACKAGE_DATA_DIR "pcsxr.ui", NULL)) {
+ if (!gtk_builder_add_from_resource(builder, "/org/pcsxr/gui/pcsxr.ui", NULL)) {
g_warning("Error: interface could not be loaded!");
return;
}
@@ -343,12 +345,6 @@ void RunDebugMemoryDialog() {
renderer, "text", 17, NULL);
gtk_tree_view_append_column(GTK_TREE_VIEW(widget), column);
- pfd = pango_font_description_from_string("Bitstream Vera Sans Mono, "
- "DejaVu Sans Mono, Liberation Mono, FreeMono, Sans Mono 9");
-
- gtk_widget_override_font(widget, pfd);
-
- pango_font_description_free(pfd);
UpdateMemViewDlg();
diff --git a/gui/GtkGui.c b/gui/GtkGui.c
index 3185e51a..0fd6b65d 100755
--- a/gui/GtkGui.c
+++ b/gui/GtkGui.c
@@ -28,11 +28,13 @@
#include <signal.h>
#include <sys/time.h>
#include <regex.h>
+#include <libintl.h>
#include "Linux.h"
#include "../libpcsxcore/plugins.h"
#include "../libpcsxcore/cheat.h"
+#include "../libpcsxcore/cdrom.h"
#include "MemcardDlg.h"
#include "ConfDlg.h"
@@ -320,9 +322,13 @@ void StartGui() {
gtk_window_present (GTK_WINDOW (Window));
return;
}*/
+ GtkIconTheme *itheme = gtk_icon_theme_get_default();
+ gtk_icon_theme_add_resource_path(itheme,"/org/pcsxr/gui");
+ gtk_icon_theme_add_resource_path(itheme,"/org/pcsxr/gui/pixmaps/");
+
builder = gtk_builder_new();
- if (!gtk_builder_add_from_file(builder, PACKAGE_DATA_DIR "pcsxr.ui", NULL)) {
+ if (!gtk_builder_add_from_resource(builder, "/org/pcsxr/gui/pcsxr.ui", NULL)) {
g_warning("Error: interface could not be loaded!");
return;
}
@@ -331,8 +337,8 @@ void StartGui() {
gtk_widget_show(GTK_WIDGET(Window));
gtk_window_set_title(GTK_WINDOW(Window), "PCSXR");
- gtk_window_set_icon_from_file(GTK_WINDOW(Window), PIXMAPDIR "pcsxr-icon.png", NULL);
- gtk_window_set_default_icon_from_file(PIXMAPDIR "pcsxr-icon.png", NULL);
+ gtk_window_set_icon(GTK_WINDOW(Window), gdk_pixbuf_new_from_resource("/org/pcsxr/gui/pixmaps/pcsxr-icon.png", NULL));
+ gtk_window_set_default_icon(gdk_pixbuf_new_from_resource("/org/pcsxr/gui/pixmaps/pcsxr-icon.png", NULL));
ResetMenuSlots();
// Set up callbacks
@@ -463,7 +469,10 @@ void StartGui() {
#endif
widget = GTK_WIDGET(gtk_builder_get_object(builder, "cpu1"));
g_signal_connect_data(G_OBJECT(widget), "activate",
- G_CALLBACK(OnConf_Cpu), NULL, NULL, G_CONNECT_AFTER);
+ G_CALLBACK(OnConf_Cpu), NULL, NULL, G_CONNECT_AFTER);
+ widget = GTK_WIDGET(gtk_builder_get_object(builder, "pgxp1"));
+ g_signal_connect_data(G_OBJECT(widget), "activate",
+ G_CALLBACK(OnConf_Pgxp), NULL, NULL, G_CONNECT_AFTER);
widget = GTK_WIDGET(gtk_builder_get_object(builder, "memory_cards1"));
g_signal_connect_data(G_OBJECT(widget), "activate",
G_CALLBACK(OnConf_Mcds), NULL, NULL, G_CONNECT_AFTER);
@@ -571,8 +580,8 @@ void OnFile_RunExe() {
} else {
file_chooser = gtk_file_chooser_dialog_new(_("Select PSX EXE File"),
NULL, GTK_FILE_CHOOSER_ACTION_OPEN,
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL);
+ "_Cancel", GTK_RESPONSE_CANCEL,
+ "_Open", GTK_RESPONSE_ACCEPT, NULL);
// Add file filters
GtkFileFilter *exefilter = gtk_file_filter_new ();
@@ -708,8 +717,8 @@ static gchar *Open_Iso_Proc() {
static char current_folder[MAXPATHLEN] = "";
chooser = gtk_file_chooser_dialog_new (_("Open PSX Disc Image File"),
- NULL, GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- GTK_STOCK_OK, GTK_RESPONSE_OK,
+ NULL, GTK_FILE_CHOOSER_ACTION_OPEN, "_Cancel", GTK_RESPONSE_CANCEL,
+ "_Open", GTK_RESPONSE_ACCEPT,
NULL);
if (stat(Config.IsoImgDir, &sb) == 0 && S_ISDIR(sb.st_mode)) {
@@ -746,7 +755,7 @@ static gchar *Open_Iso_Proc() {
gtk_file_filter_set_name(allfilter, _("All Files"));
gtk_file_chooser_add_filter(GTK_FILE_CHOOSER (chooser), allfilter);
- if (gtk_dialog_run(GTK_DIALOG(chooser)) == GTK_RESPONSE_OK) {
+ if (gtk_dialog_run(GTK_DIALOG(chooser)) == GTK_RESPONSE_ACCEPT) {
gchar *path = gtk_file_chooser_get_current_folder(GTK_FILE_CHOOSER(chooser));
/* Workaround:
@@ -767,11 +776,9 @@ static gchar *Open_Iso_Proc() {
strncpy(current_folder, filename, strrchr(filename, '/') - filename);
}
- /* If ISO path is NULL save current path. */
- if (!S_ISDIR(sb.st_mode)) {
+ /* Save current path. */
strcpy(Config.IsoImgDir, current_folder);
SaveConfig();
- }
/* free useless data */
GSList * ll = l;
@@ -1083,8 +1090,8 @@ void on_states_load_other() {
SStateFile = g_strconcat(getenv("HOME"), STATES_DIR, NULL);
file_chooser = gtk_file_chooser_dialog_new(_("Select State File"), NULL, GTK_FILE_CHOOSER_ACTION_OPEN,
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
+ "_Cancel", GTK_RESPONSE_CANCEL,
+ "_Open", GTK_RESPONSE_ACCEPT,
NULL);
gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER (file_chooser), SStateFile);
g_free(SStateFile);
@@ -1112,8 +1119,8 @@ void on_states_save_other() {
file_chooser = gtk_file_chooser_dialog_new(_("Select State File"),
NULL, GTK_FILE_CHOOSER_ACTION_SAVE,
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- GTK_STOCK_SAVE, GTK_RESPONSE_OK,
+ "_Cancel", GTK_RESPONSE_CANCEL,
+ "_Save", GTK_RESPONSE_OK,
NULL);
gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(file_chooser), SStateFile);
g_free(SStateFile);
@@ -1154,7 +1161,7 @@ void SysMessage(const char *fmt, ...) {
}
MsgDlg = gtk_dialog_new_with_buttons(_("Notice"), NULL,
- GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_OK, GTK_RESPONSE_NONE, NULL);
+ GTK_DIALOG_DESTROY_WITH_PARENT, "_OK", GTK_RESPONSE_NONE, NULL);
gtk_window_set_position (GTK_WINDOW(MsgDlg), GTK_WIN_POS_CENTER);
diff --git a/gui/LnxMain.c b/gui/LnxMain.c
index 716a3964..a7f934ae 100755
--- a/gui/LnxMain.c
+++ b/gui/LnxMain.c
@@ -232,9 +232,7 @@ static void ScanAllPlugins (void) {
ScanBios("/usr/local/share/psemu/bios");
ScanBios("/usr/local/share/pcsxr");
ScanBios("/usr/local/share/pcsxr/bios");
- ScanBios(PACKAGE_DATA_DIR);
ScanBios(PSEMU_DATA_DIR);
- ScanBios(PACKAGE_DATA_DIR "/bios");
ScanBios(PSEMU_DATA_DIR "/bios");
currentdir = g_strconcat(getenv("HOME"), "/.psemu-plugins/", NULL);
diff --git a/gui/Makefile.am b/gui/Makefile.am
index 5feb39ea..7db62f01 100644
--- a/gui/Makefile.am
+++ b/gui/Makefile.am
@@ -24,8 +24,58 @@ pcsxr_SOURCES = \
DebugMemory.c \
DebugMemory.h \
AboutDlg.c \
- AboutDlg.h
+ AboutDlg.h \
+ GtkResources.c \
+ GtkResources.h
+
+# gresource.xml is dynamically generated in CMake. Mirror that here in a static way.
+define gresource_xml =
+<?xml version="1.0" encoding="UTF-8"?>
+<gresources>
+ <gresource prefix="/org/pcsxr/gui">
+ <file>pcsxr.ui</file>
+ <file>pixmaps/pcsxr-about.png</file>
+ <file>pixmaps/pcsxr-cd-open.png</file>
+ <file>pixmaps/pcsxr-cheats-browse.png</file>
+ <file>pixmaps/pcsxr-cheats-search.png</file>
+ <file>pixmaps/pcsxr-cheats.png</file>
+ <file>pixmaps/pcsxr-cpu.png</file>
+ <file>pixmaps/pcsxr-exit.png</file>
+ <file>pixmaps/pcsxr-icon.png</file>
+ <file>pixmaps/pcsxr-iso-open.png</file>
+ <file>pixmaps/pcsxr-iso-reopen.png</file>
+ <file>pixmaps/pcsxr-load-state.png</file>
+ <file>pixmaps/pcsxr-memcard.png</file>
+ <file>pixmaps/pcsxr-memory-dump.png</file>
+ <file>pixmaps/pcsxr-play.png</file>
+ <file>pixmaps/pcsxr-plugin-cdr.png</file>
+ <file>pixmaps/pcsxr-plugin-gpu.png</file>
+ <file>pixmaps/pcsxr-plugin-netplay.png</file>
+ <file>pixmaps/pcsxr-plugin-pad.png</file>
+ <file>pixmaps/pcsxr-plugin-sio1.png</file>
+ <file>pixmaps/pcsxr-plugin-spu.png</file>
+ <file>pixmaps/pcsxr-reset.png</file>
+ <file>pixmaps/pcsxr-run-bios.png</file>
+ <file>pixmaps/pcsxr-run-exe.png</file>
+ <file>pixmaps/pcsxr-save-state.png</file>
+ <file>pixmaps/pcsxr-settings.png</file>
+ <file>pixmaps/pcsxr-shutdown.png</file>
+ <file>pixmaps/pcsxr.png</file>
+ </gresource>
+</gresources>
+endef
+
+pcsxr.gresource.xml:
+ $(file >$@,$(gresource_xml))
+pcsxr_gresource: pcsxr.gresource.xml
+ $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir)/data --generate-dependencies $(srcdir)/$<)
+GtkResources.c: pcsxr.gresource.xml $(pcsxr_gresource)
+ $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir)/data --generate-source --c-name pcsxr $<
+GtkResources.h: pcsxr.gresource.xml $(pcsxr_gresource)
+ $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir)/data --generate-header --c-name pcsxr $<
pcsxr_LDADD = \
../libpcsxcore/libpcsxcore.a \
$(GTK3_LIBS) -lpthread -lz -lm -lXext -lXtst
+
+CLEANFILES = pcsxr.gresource.xml GtkResources.c GtkResources.h
diff --git a/gui/MemcardDlg.c b/gui/MemcardDlg.c
index b777126e..d3949565 100755
--- a/gui/MemcardDlg.c
+++ b/gui/MemcardDlg.c
@@ -236,7 +236,6 @@ static void LoadListItems(int mcd, boolean newstore) {
if (newstore) {
gtk_tree_view_set_model(GTK_TREE_VIEW(List), GTK_TREE_MODEL(store));
g_object_unref(G_OBJECT(store));
- gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(List), TRUE);
} else {
OnTreeSelectionChanged(gtk_tree_view_get_selection(GTK_TREE_VIEW(List)), GINT_TO_POINTER(mcd));
}
@@ -295,6 +294,9 @@ static void UpdateMcdDlg(GtkWidget *widget) {
}
static void OnMcd_Close(GtkDialog *dialog, gint arg1, gpointer user_data) {
+
+ Config.PerGameMcd = gtk_toggle_button_get_active(
+ GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, "GtkCheckButton_PerGameMcd")));
quit = TRUE;
SaveConfig();
gtk_widget_destroy(GTK_WIDGET(dialog));
@@ -308,8 +310,8 @@ static void OnMcd_FileChange(GtkWidget *widget, gpointer user_data) {
// Ask for name of memory card
chooser = gtk_file_chooser_dialog_new(_("Select A File"),
NULL, GTK_FILE_CHOOSER_ACTION_OPEN,
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- GTK_STOCK_OPEN, GTK_RESPONSE_OK,
+ "_Cancel", GTK_RESPONSE_CANCEL,
+ "_OK", GTK_RESPONSE_OK,
NULL);
if (memcard == 1)
@@ -350,7 +352,7 @@ static void OnMcd_Format(GtkWidget *widget, gpointer user_data) {
gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(message_dialog),
_("If you format the memory card, the card will be empty, and any existing data overwritten."));
gtk_dialog_add_buttons(GTK_DIALOG(message_dialog),
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+ "_Cancel", GTK_RESPONSE_CANCEL,
_("Format card"), GTK_RESPONSE_YES, NULL);
result = gtk_dialog_run(GTK_DIALOG(message_dialog));
@@ -375,8 +377,8 @@ static void OnMcd_New(GtkWidget *widget, gpointer user_data) {
// Ask for name of new memory card
chooser = gtk_file_chooser_dialog_new(_("Create a new Memory Card"),
NULL, GTK_FILE_CHOOSER_ACTION_SAVE,
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- GTK_STOCK_SAVE, GTK_RESPONSE_OK,
+ "_Cancel", GTK_RESPONSE_CANCEL,
+ "_Save", GTK_RESPONSE_OK,
NULL);
// Card should be put into $HOME/.pcsxr/memcards
@@ -441,7 +443,7 @@ static int GetFreeMemcardSlot(gint target_card, gint count, u8* blocks) {
return -1;
}
-void CopyMemcardData(char *from, char *to, gint srci, gint dsti,
+void CopyMemcardData(gint dstmcd, char *from, char *to, gint srci, gint dsti,
gchar *str, const u16 linkindex) {
u16* linkptr;
u8* checksumptr;
@@ -463,11 +465,11 @@ void CopyMemcardData(char *from, char *to, gint srci, gint dsti,
//printf("link = %i %i\n", dsti, linkindex);
}
- SaveMcd((char *)str, to, dsti * 128, 128);
+ SaveMcd(dstmcd, (char *)str, to, dsti * 128, 128);
// data
memcpy(to + dsti * 1024 * 8, from + srci * 1024 * 8, 1024 * 8);
- SaveMcd((char *)str, to, dsti * 1024 * 8, 1024 * 8);
+ SaveMcd(dstmcd, (char *)str, to, dsti * 1024 * 8, 1024 * 8);
//printf("data = %s\n", from + (srci+1) * 128);
}
@@ -548,7 +550,7 @@ static void OnMcd_CopyTo(GtkWidget *widget, gpointer user_data) {
for (j=0; srctbl[j] > 0; j++) {
// last parameter specifies link index (next block)
- CopyMemcardData(source, destination,
+ CopyMemcardData(dstmcd, source, destination,
srctbl[j], dsttbl[j], str, dsttbl[j+1]-1);
//printf("count = %i, indices=(%x,%x) jindex=%i\n", count, srctbl[j], dsttbl[j], j);
}
@@ -620,7 +622,7 @@ static void OnMemcardDelete(GtkWidget *widget, gpointer user_data) {
}
*ptr = xorsum;
- SaveMcd((char *)filename, data, i * 128, 128);
+ SaveMcd(memcard, (char *)filename, data, i * 128, 128);
// Check links
i = GETLINKFORBLOCK(data, i); //0...15 index when ++i at top of loop
@@ -709,7 +711,7 @@ void OnConf_Mcds() {
builder = gtk_builder_new();
- if (!gtk_builder_add_from_file(builder, PACKAGE_DATA_DIR "pcsxr.ui", NULL)) {
+ if (!gtk_builder_add_from_resource(builder, "/org/pcsxr/gui/pcsxr.ui", NULL)) {
g_warning("Error: interface could not be loaded!");
return;
}
@@ -749,6 +751,12 @@ void OnConf_Mcds() {
G_CALLBACK(OnTreeSelectionChanged),
GINT_TO_POINTER(2), NULL, G_CONNECT_AFTER);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(
+ gtk_builder_get_object(builder, "GtkCheckButton_PerGameMcd")), Config.PerGameMcd);
+ // Disable it because it is not working yet
+ gtk_widget_set_sensitive(GTK_WIDGET(
+ gtk_builder_get_object(builder, "GtkCheckButton_PerGameMcd")), FALSE);
+
LoadMcdDlg(dialog);
// Setup a handler for when Close or Cancel is clicked
diff --git a/gui/Plugin.c b/gui/Plugin.c
index 0adf3b5e..55068c31 100755
--- a/gui/Plugin.c
+++ b/gui/Plugin.c
@@ -30,6 +30,7 @@
#include "../libpcsxcore/plugins.h"
#include "../libpcsxcore/spu.h"
#include "../libpcsxcore/cdriso.h"
+#include "../libpcsxcore/pgxp_mem.h"
#include "nopic.h"
@@ -241,6 +242,9 @@ void PADhandleKey(int key) {
LidInterrupt();
break;
+ case XK_F11:
+ GPU_toggleDebug();
+ break;
case XK_F12:
psxReset();
break;
@@ -329,6 +333,7 @@ int _OpenPlugins() {
SPU_registerCallback(SPUirq);
ret = GPU_open(&gpuDisp, "PCSXR", NULL);
if (ret < 0) { SysMessage(_("Error opening GPU plugin!")); return -1; }
+ GPU_pgxpMemory(0, PGXP_GetMem());
ret = PAD1_open(&gpuDisp);
ret |= PAD1_init(1); // Allow setting to change during run
if (ret < 0) { SysMessage(_("Error opening Controller 1 plugin!")); return -1; }
diff --git a/gui/data/Makefile.am b/gui/data/Makefile.am
new file mode 100644
index 00000000..07966973
--- /dev/null
+++ b/gui/data/Makefile.am
@@ -0,0 +1,7 @@
+#glade_DATA = pcsxr.ui
+#gladedir = $(datadir)/pcsxr
+
+desktopdir = $(datadir)/applications
+desktop_DATA = pcsxr.desktop
+
+EXTRA_DIST = $(glade_DATA) $(desktop_DATA)
diff --git a/data/pcsxr.desktop b/gui/data/pcsxr.desktop
index c284f003..c284f003 100644
--- a/data/pcsxr.desktop
+++ b/gui/data/pcsxr.desktop
diff --git a/data/pcsxr.ui b/gui/data/pcsxr.ui
index 23b7d449..6f6a9b12 100644
--- a/data/pcsxr.ui
+++ b/gui/data/pcsxr.ui
@@ -1,21 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.18.3 -->
+<!-- Generated with glade 3.20.0 -->
<interface>
- <requires lib="gtk+" version="3.0"/>
- <object class="GtkIconFactory" id="iconfactory1">
- <sources>
- <source stock-id="generated-icon-iso-open-png" filename="iso-open.png"/>
- <source stock-id="generated-icon-pad-png" filename="pad.png"/>
- <source stock-id="generated-icon-cdr-png" filename="cdr.png"/>
- <source stock-id="generated-icon-gpu-png" filename="gpu.png"/>
- <source stock-id="generated-icon-sio1-png" filename="sio1.png"/>
- <source stock-id="generated-icon-memcard-png" filename="memcard.png"/>
- <source stock-id="generated-icon-iso-reopen-png" filename="iso-reopen.png"/>
- <source stock-id="generated-icon-spu-png" filename="spu.png"/>
- <source stock-id="generated-icon-play-png" filename="play.png"/>
- <source stock-id="generated-icon-cd-png" filename="cd.png"/>
- </sources>
- </object>
+ <requires lib="gtk+" version="3.14"/>
<object class="GtkAboutDialog" id="AboutDlg">
<property name="can_focus">False</property>
<property name="border_width">5</property>
@@ -46,6 +32,9 @@
</child>
</object>
</child>
+ <child>
+ <placeholder/>
+ </child>
</object>
<object class="GtkDialog" id="CheatListDlg">
<property name="can_focus">False</property>
@@ -87,7 +76,7 @@
</packing>
</child>
<child>
- <object class="GtkVBox" id="vbox1">
+ <object class="GtkBox" id="vbox1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">15</property>
@@ -131,9 +120,10 @@
</packing>
</child>
<child>
- <object class="GtkHBox" id="hbox1">
+ <object class="GtkBox" id="hbox1">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkButton" id="savebutton1">
@@ -227,6 +217,9 @@
<action-widgets>
<action-widget response="0">closbutton1</action-widget>
</action-widgets>
+ <child>
+ <placeholder/>
+ </child>
</object>
<object class="GtkDialog" id="ConfDlg">
<property name="can_focus">False</property>
@@ -268,10 +261,11 @@
</packing>
</child>
<child>
- <object class="GtkVBox" id="vbox28">
+ <object class="GtkBox" id="vbox28">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="border_width">5</property>
+ <property name="orientation">vertical</property>
<property name="spacing">3</property>
<child>
<object class="GtkFrame" id="frame17">
@@ -284,74 +278,64 @@
<property name="can_focus">False</property>
<property name="border_width">5</property>
<child>
- <object class="GtkTable" id="table4">
+ <object class="GtkGrid" id="table4">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="n_rows">7</property>
- <property name="n_columns">5</property>
- <property name="column_spacing">5</property>
<property name="row_spacing">5</property>
+ <property name="column_spacing">5</property>
<child>
<object class="GtkImage" id="image337">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">generated-icon-gpu-png</property>
+ <property name="icon_name">pcsxr-plugin-gpu</property>
</object>
<packing>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options">GTK_FILL</property>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkImage" id="image341">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">generated-icon-cdr-png</property>
+ <property name="icon_name">pcsxr-plugin-cdr</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">4</property>
- <property name="bottom_attach">5</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options">GTK_FILL</property>
</packing>
</child>
<child>
<object class="GtkImage" id="image340">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">generated-icon-pad-png</property>
+ <property name="icon_name">pcsxr-plugin-pad</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options">GTK_FILL</property>
</packing>
</child>
<child>
<object class="GtkImage" id="image339">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">generated-icon-pad-png</property>
+ <property name="icon_name">pcsxr-plugin-pad</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options">GTK_FILL</property>
</packing>
</child>
<child>
<object class="GtkImage" id="image338">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">generated-icon-spu-png</property>
+ <property name="icon_name">pcsxr-plugin-spu</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options">GTK_FILL</property>
</packing>
</child>
<child>
@@ -370,9 +354,7 @@
</object>
<packing>
<property name="left_attach">3</property>
- <property name="right_attach">4</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"/>
+ <property name="top_attach">0</property>
</packing>
</child>
<child>
@@ -382,10 +364,7 @@
</object>
<packing>
<property name="left_attach">2</property>
- <property name="right_attach">3</property>
<property name="top_attach">4</property>
- <property name="bottom_attach">5</property>
- <property name="y_options">GTK_FILL</property>
</packing>
</child>
<child>
@@ -395,10 +374,7 @@
</object>
<packing>
<property name="left_attach">2</property>
- <property name="right_attach">3</property>
<property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
- <property name="y_options">GTK_FILL</property>
</packing>
</child>
<child>
@@ -412,10 +388,7 @@
</object>
<packing>
<property name="left_attach">2</property>
- <property name="right_attach">3</property>
<property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- <property name="y_options">GTK_FILL</property>
</packing>
</child>
<child>
@@ -425,10 +398,7 @@
</object>
<packing>
<property name="left_attach">2</property>
- <property name="right_attach">3</property>
<property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="y_options">GTK_FILL</property>
</packing>
</child>
<child>
@@ -438,8 +408,7 @@
</object>
<packing>
<property name="left_attach">2</property>
- <property name="right_attach">3</property>
- <property name="y_options">GTK_FILL</property>
+ <property name="top_attach">0</property>
</packing>
</child>
<child>
@@ -458,11 +427,7 @@
</object>
<packing>
<property name="left_attach">4</property>
- <property name="right_attach">5</property>
<property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options"/>
- <property name="y_options"/>
</packing>
</child>
<child>
@@ -481,11 +446,7 @@
</object>
<packing>
<property name="left_attach">4</property>
- <property name="right_attach">5</property>
<property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- <property name="x_options"/>
- <property name="y_options"/>
</packing>
</child>
<child>
@@ -504,11 +465,7 @@
</object>
<packing>
<property name="left_attach">4</property>
- <property name="right_attach">5</property>
<property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
- <property name="x_options"/>
- <property name="y_options"/>
</packing>
</child>
<child>
@@ -527,11 +484,7 @@
</object>
<packing>
<property name="left_attach">4</property>
- <property name="right_attach">5</property>
<property name="top_attach">4</property>
- <property name="bottom_attach">5</property>
- <property name="x_options"/>
- <property name="y_options"/>
</packing>
</child>
<child>
@@ -550,11 +503,7 @@
</object>
<packing>
<property name="left_attach">3</property>
- <property name="right_attach">4</property>
<property name="top_attach">4</property>
- <property name="bottom_attach">5</property>
- <property name="x_options"/>
- <property name="y_options"/>
</packing>
</child>
<child>
@@ -573,11 +522,7 @@
</object>
<packing>
<property name="left_attach">3</property>
- <property name="right_attach">4</property>
<property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
- <property name="x_options"/>
- <property name="y_options"/>
</packing>
</child>
<child>
@@ -596,11 +541,7 @@
</object>
<packing>
<property name="left_attach">3</property>
- <property name="right_attach">4</property>
<property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- <property name="x_options"/>
- <property name="y_options"/>
</packing>
</child>
<child>
@@ -619,89 +560,62 @@
</object>
<packing>
<property name="left_attach">3</property>
- <property name="right_attach">4</property>
<property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options"/>
- <property name="y_options"/>
</packing>
</child>
<child>
<object class="GtkLabel" id="label95">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Graphics:</property>
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"/>
+ <property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label96">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Sound:</property>
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
<property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"/>
</packing>
</child>
<child>
<object class="GtkLabel" id="label85">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Controller 1:</property>
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
<property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"/>
</packing>
</child>
<child>
<object class="GtkLabel" id="label87">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Controller 2:</property>
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
<property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"/>
</packing>
</child>
<child>
<object class="GtkLabel" id="label91">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">CD-ROM:</property>
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
<property name="top_attach">4</property>
- <property name="bottom_attach">5</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"/>
</packing>
</child>
<child>
@@ -720,9 +634,7 @@
</object>
<packing>
<property name="left_attach">4</property>
- <property name="right_attach">5</property>
- <property name="x_options"/>
- <property name="y_options"/>
+ <property name="top_attach">0</property>
</packing>
</child>
<child>
@@ -732,26 +644,19 @@
<property name="icon_name">gtk-find</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">6</property>
- <property name="bottom_attach">7</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options">GTK_FILL</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label89">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Search in:</property>
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
<property name="top_attach">6</property>
- <property name="bottom_attach">7</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"/>
</packing>
</child>
<child>
@@ -776,38 +681,29 @@
</object>
<packing>
<property name="left_attach">2</property>
- <property name="right_attach">5</property>
<property name="top_attach">6</property>
- <property name="bottom_attach">7</property>
</packing>
</child>
<child>
<object class="GtkImage" id="image39">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">generated-icon-sio1-png</property>
+ <property name="icon_name">pcsxr-plugin-sio1</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">5</property>
- <property name="bottom_attach">6</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options">GTK_FILL</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label18">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Link cable:</property>
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
<property name="top_attach">5</property>
- <property name="bottom_attach">6</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"/>
</packing>
</child>
<child>
@@ -817,10 +713,7 @@
</object>
<packing>
<property name="left_attach">2</property>
- <property name="right_attach">3</property>
<property name="top_attach">5</property>
- <property name="bottom_attach">6</property>
- <property name="y_options">GTK_FILL</property>
</packing>
</child>
<child>
@@ -839,11 +732,7 @@
</object>
<packing>
<property name="left_attach">3</property>
- <property name="right_attach">4</property>
<property name="top_attach">5</property>
- <property name="bottom_attach">6</property>
- <property name="x_options"/>
- <property name="y_options"/>
</packing>
</child>
<child>
@@ -862,13 +751,15 @@
</object>
<packing>
<property name="left_attach">4</property>
- <property name="right_attach">5</property>
<property name="top_attach">5</property>
- <property name="bottom_attach">6</property>
- <property name="x_options"/>
- <property name="y_options"/>
</packing>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</object>
</child>
</object>
@@ -920,7 +811,6 @@
<object class="GtkLabel" id="label17">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">BIOS:</property>
</object>
<packing>
@@ -943,7 +833,6 @@
<object class="GtkLabel" id="label16">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Search in:</property>
</object>
<packing>
@@ -1027,6 +916,9 @@
<action-widgets>
<action-widget response="-6">btn_ConfClose</action-widget>
</action-widgets>
+ <child>
+ <placeholder/>
+ </child>
</object>
<object class="GtkDialog" id="McdsDlg">
<property name="can_focus">False</property>
@@ -1040,6 +932,7 @@
<object class="GtkBox" id="dialog-vbox3">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
<child internal-child="action_area">
<object class="GtkButtonBox" id="dialog-action_area3">
<property name="visible">True</property>
@@ -1069,354 +962,240 @@
</packing>
</child>
<child>
- <object class="GtkHBox" id="hbox54">
+ <object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
<child>
- <object class="GtkFrame" id="frame1">
+ <object class="GtkBox" id="hbox54">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="border_width">5</property>
- <property name="label_xalign">0</property>
<child>
- <object class="GtkVBox" id="vbox31">
+ <object class="GtkFrame" id="frame1">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="border_width">6</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkScrolledWindow" id="scrolledwindow3">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="shadow_type">in</property>
- <child>
- <object class="GtkTreeView" id="GtkCList_McdList1">
- <property name="width_request">265</property>
- <property name="height_request">400</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <child internal-child="selection">
- <object class="GtkTreeSelection" id="treeview-selection3"/>
- </child>
- </object>
- </child>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
+ <property name="border_width">5</property>
+ <property name="label_xalign">0</property>
<child>
- <object class="GtkHButtonBox" id="hbuttonbox19">
+ <object class="GtkBox" id="vbox31">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="border_width">5</property>
- <property name="spacing">5</property>
+ <property name="border_width">6</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
<child>
- <object class="GtkButton" id="GtkButton_New1">
+ <object class="GtkScrolledWindow" id="scrolledwindow3">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="receives_default">False</property>
- <signal name="clicked" handler="OnMcd_Reload1" swapped="no"/>
+ <property name="shadow_type">in</property>
<child>
- <object class="GtkAlignment" id="alignment1">
+ <object class="GtkTreeView" id="GtkCList_McdList1">
+ <property name="width_request">265</property>
+ <property name="height_request">400</property>
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xscale">0</property>
- <property name="yscale">0</property>
- <child>
- <object class="GtkHBox" id="hbox57">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">2</property>
- <child>
- <object class="GtkImage" id="image324">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="stock">gtk-new</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">New</property>
- <property name="use_underline">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
+ <property name="can_focus">True</property>
+ <child internal-child="selection">
+ <object class="GtkTreeSelection"/>
</child>
</object>
</child>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
- <object class="GtkButton" id="GtkButton_Format1">
+ <object class="GtkButtonBox" id="hbuttonbox19">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="receives_default">False</property>
- <signal name="clicked" handler="OnMcd_Format" object="1" swapped="yes"/>
+ <property name="can_focus">False</property>
+ <property name="border_width">5</property>
+ <property name="spacing">5</property>
<child>
- <object class="GtkAlignment" id="alignment50">
+ <object class="GtkButton" id="GtkButton_New1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xscale">0</property>
- <property name="yscale">0</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="receives_default">False</property>
+ <signal name="clicked" handler="OnMcd_Reload1" swapped="no"/>
<child>
- <object class="GtkHBox" id="hbox70">
+ <object class="GtkAlignment" id="alignment1">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="spacing">2</property>
- <child>
- <object class="GtkImage" id="image346">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="stock">gtk-clear</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
+ <property name="xscale">0</property>
+ <property name="yscale">0</property>
<child>
- <object class="GtkLabel" id="label111">
+ <object class="GtkBox" id="hbox57">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Format</property>
- <property name="use_underline">True</property>
+ <property name="spacing">2</property>
+ <child>
+ <object class="GtkImage" id="image324">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="stock">gtk-new</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">New</property>
+ <property name="use_underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
</child>
</object>
</child>
</object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
</child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="GtkButton_Delete1">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="receives_default">True</property>
- <signal name="clicked" handler="OnMcd_Delete1" swapped="no"/>
<child>
- <object class="GtkAlignment" id="alignment45">
+ <object class="GtkButton" id="GtkButton_Format1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xscale">0</property>
- <property name="yscale">0</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="receives_default">False</property>
+ <signal name="clicked" handler="OnMcd_Format" object="1" swapped="yes"/>
<child>
- <object class="GtkHBox" id="hbox63">
+ <object class="GtkAlignment" id="alignment50">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="spacing">2</property>
- <child>
- <object class="GtkImage" id="image330">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="stock">gtk-delete</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
+ <property name="xscale">0</property>
+ <property name="yscale">0</property>
<child>
- <object class="GtkLabel" id="label105">
+ <object class="GtkBox" id="hbox70">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Un/Delete</property>
- <property name="use_underline">True</property>
+ <property name="spacing">2</property>
+ <child>
+ <object class="GtkImage" id="image346">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="stock">gtk-clear</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label111">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Format</property>
+ <property name="use_underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
</child>
</object>
</child>
</object>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">2</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="Mcd1Button">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <child>
- <object class="GtkHBox" id="hbox2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">3</property>
- <child>
- <object class="GtkImage" id="image30">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="stock">gtk-floppy</property>
- </object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="Mcd1Label">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label">Loading...</property>
- <property name="ellipsize">middle</property>
- <property name="single_line_mode">True</property>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
- <object class="GtkVSeparator" id="vseparator1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkImage" id="image31">
+ <object class="GtkButton" id="GtkButton_Delete1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="stock">gtk-open</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="receives_default">True</property>
+ <signal name="clicked" handler="OnMcd_Delete1" swapped="no"/>
+ <child>
+ <object class="GtkAlignment" id="alignment45">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xscale">0</property>
+ <property name="yscale">0</property>
+ <child>
+ <object class="GtkBox" id="hbox63">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">2</property>
+ <child>
+ <object class="GtkImage" id="image330">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="stock">gtk-delete</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label105">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Un/Delete</property>
+ <property name="use_underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
- <property name="position">3</property>
+ <property name="position">2</property>
</packing>
</child>
</object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
</child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
- </child>
- </object>
- </child>
- <child type="label">
- <object class="GtkHBox" id="hbox58">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <object class="GtkLabel" id="label100">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">&lt;b&gt;Memory Card 1&lt;/b&gt;</property>
- <property name="use_markup">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="padding">4</property>
- <property name="position">0</property>
- </packing>
- </child>
- </object>
- </child>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkAlignment" id="alignment51">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="top_padding">27</property>
- <property name="bottom_padding">132</property>
- <child>
- <object class="GtkVButtonBox" id="vbuttonbox2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">6</property>
- <property name="layout_style">spread</property>
- <child>
- <object class="GtkButton" id="GtkButton_CopyTo2">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="receives_default">False</property>
- <signal name="clicked" handler="OnMcd_CopyTo2" swapped="no"/>
<child>
- <object class="GtkAlignment" id="alignment41">
+ <object class="GtkButton" id="Mcd1Button">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xscale">0</property>
- <property name="yscale">0</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
<child>
- <object class="GtkHBox" id="hbox59">
+ <object class="GtkBox" id="hbox2">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="spacing">2</property>
+ <property name="spacing">3</property>
<child>
- <object class="GtkImage" id="image326">
+ <object class="GtkImage" id="image30">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">gtk-go-forward</property>
+ <property name="stock">gtk-floppy</property>
</object>
<packing>
<property name="expand">False</property>
@@ -1425,158 +1204,116 @@
</packing>
</child>
<child>
- <object class="GtkLabel" id="label101">
+ <object class="GtkLabel" id="Mcd1Label">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Copy</property>
- <property name="use_underline">True</property>
+ <property name="label">Loading...</property>
+ <property name="ellipsize">middle</property>
+ <property name="single_line_mode">True</property>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
- </object>
- </child>
- </object>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="GtkButton_CopyTo1">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="receives_default">False</property>
- <signal name="clicked" handler="OnMcd_CopyTo1" swapped="no"/>
- <child>
- <object class="GtkAlignment" id="alignment42">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xscale">0</property>
- <property name="yscale">0</property>
- <child>
- <object class="GtkHBox" id="hbox60">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">2</property>
<child>
- <object class="GtkImage" id="image327">
+ <object class="GtkSeparator" id="vseparator1">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">gtk-go-back</property>
</object>
<packing>
<property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
</packing>
</child>
<child>
- <object class="GtkLabel" id="label102">
+ <object class="GtkImage" id="image31">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Copy</property>
- <property name="use_underline">True</property>
+ <property name="stock">gtk-open</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
- <property name="position">1</property>
+ <property name="position">3</property>
</packing>
</child>
</object>
</child>
</object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
</child>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
</child>
- </object>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkFrame" id="frame2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="border_width">5</property>
- <property name="label_xalign">0</property>
- <child>
- <object class="GtkVBox" id="vbox32">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="border_width">6</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkScrolledWindow" id="scrolledwindow4">
- <property name="width_request">265</property>
- <property name="height_request">400</property>
+ <child type="label">
+ <object class="GtkBox" id="hbox58">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="shadow_type">in</property>
<child>
- <object class="GtkTreeView" id="GtkCList_McdList2">
+ <object class="GtkLabel" id="label100">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <child internal-child="selection">
- <object class="GtkTreeSelection" id="treeview-selection4"/>
- </child>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">&lt;b&gt;Memory Card 1&lt;/b&gt;</property>
+ <property name="use_markup">True</property>
</object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">4</property>
+ <property name="position">0</property>
+ </packing>
</child>
</object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
</child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkAlignment" id="alignment51">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="top_padding">27</property>
+ <property name="bottom_padding">132</property>
<child>
- <object class="GtkHButtonBox" id="hbuttonbox20">
+ <object class="GtkButtonBox" id="vbuttonbox2">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="border_width">5</property>
- <property name="spacing">5</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <property name="layout_style">center</property>
<child>
- <object class="GtkButton" id="GtkButton_New2">
+ <object class="GtkButton" id="GtkButton_CopyTo2">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="can_default">True</property>
<property name="receives_default">False</property>
- <signal name="clicked" handler="OnMcd_Reload2" swapped="no"/>
+ <signal name="clicked" handler="OnMcd_CopyTo2" swapped="no"/>
<child>
- <object class="GtkAlignment" id="alignment48">
+ <object class="GtkAlignment" id="alignment41">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xscale">0</property>
<property name="yscale">0</property>
<child>
- <object class="GtkHBox" id="hbox66">
+ <object class="GtkBox" id="hbox59">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">2</property>
<child>
- <object class="GtkImage" id="image333">
+ <object class="GtkImage" id="image326">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">gtk-new</property>
+ <property name="stock">gtk-go-forward</property>
</object>
<packing>
<property name="expand">False</property>
@@ -1585,11 +1322,10 @@
</packing>
</child>
<child>
- <object class="GtkLabel" id="label108">
+ <object class="GtkLabel" id="label101">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">New</property>
+ <property name="label" translatable="yes">Copy</property>
<property name="use_underline">True</property>
</object>
<packing>
@@ -1610,28 +1346,28 @@
</packing>
</child>
<child>
- <object class="GtkButton" id="GtkButton_Format2">
+ <object class="GtkButton" id="GtkButton_CopyTo1">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="can_default">True</property>
<property name="receives_default">False</property>
- <signal name="clicked" handler="OnMcd_Format" object="2" swapped="yes"/>
+ <signal name="clicked" handler="OnMcd_CopyTo1" swapped="no"/>
<child>
- <object class="GtkAlignment" id="alignment49">
+ <object class="GtkAlignment" id="alignment42">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xscale">0</property>
<property name="yscale">0</property>
<child>
- <object class="GtkHBox" id="hbox69">
+ <object class="GtkBox" id="hbox60">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">2</property>
<child>
- <object class="GtkImage" id="image345">
+ <object class="GtkImage" id="image327">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">gtk-clear</property>
+ <property name="stock">gtk-go-back</property>
</object>
<packing>
<property name="expand">False</property>
@@ -1640,11 +1376,10 @@
</packing>
</child>
<child>
- <object class="GtkLabel" id="label110">
+ <object class="GtkLabel" id="label102">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Format</property>
+ <property name="label" translatable="yes">Copy</property>
<property name="use_underline">True</property>
</object>
<packing>
@@ -1664,83 +1399,104 @@
<property name="position">1</property>
</packing>
</child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkFrame" id="frame2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">5</property>
+ <property name="label_xalign">0</property>
+ <child>
+ <object class="GtkBox" id="vbox32">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">6</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
<child>
- <object class="GtkButton" id="GtkButton_Delete2">
+ <object class="GtkScrolledWindow" id="scrolledwindow4">
+ <property name="width_request">265</property>
+ <property name="height_request">400</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="receives_default">True</property>
- <signal name="clicked" handler="OnMcd_Delete2" swapped="no"/>
+ <property name="shadow_type">in</property>
<child>
- <object class="GtkAlignment" id="alignment44">
+ <object class="GtkTreeView" id="GtkCList_McdList2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xscale">0</property>
- <property name="yscale">0</property>
- <child>
- <object class="GtkHBox" id="hbox62">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">2</property>
- <child>
- <object class="GtkImage" id="image329">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="stock">gtk-delete</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label104">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Un/Delete</property>
- <property name="use_underline">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
+ <property name="can_focus">True</property>
+ <child internal-child="selection">
+ <object class="GtkTreeSelection"/>
</child>
</object>
</child>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">2</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
</packing>
</child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="Mcd2Button">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
<child>
- <object class="GtkHBox" id="hbox3">
+ <object class="GtkButtonBox" id="hbuttonbox20">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="spacing">3</property>
+ <property name="border_width">5</property>
+ <property name="spacing">5</property>
<child>
- <object class="GtkImage" id="image32">
+ <object class="GtkButton" id="GtkButton_New2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="stock">gtk-floppy</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="receives_default">False</property>
+ <signal name="clicked" handler="OnMcd_Reload2" swapped="no"/>
+ <child>
+ <object class="GtkAlignment" id="alignment48">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xscale">0</property>
+ <property name="yscale">0</property>
+ <child>
+ <object class="GtkBox" id="hbox66">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">2</property>
+ <child>
+ <object class="GtkImage" id="image333">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="stock">gtk-new</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label108">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">New</property>
+ <property name="use_underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
</object>
<packing>
<property name="expand">False</property>
@@ -1749,85 +1505,244 @@
</packing>
</child>
<child>
- <object class="GtkLabel" id="Mcd2Label">
+ <object class="GtkButton" id="GtkButton_Format2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label">Loading...</property>
- <property name="ellipsize">middle</property>
- <property name="single_line_mode">True</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="receives_default">False</property>
+ <signal name="clicked" handler="OnMcd_Format" object="2" swapped="yes"/>
+ <child>
+ <object class="GtkAlignment" id="alignment49">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xscale">0</property>
+ <property name="yscale">0</property>
+ <child>
+ <object class="GtkBox" id="hbox69">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">2</property>
+ <child>
+ <object class="GtkImage" id="image345">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="stock">gtk-clear</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label110">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Format</property>
+ <property name="use_underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
</object>
<packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
<child>
- <object class="GtkVSeparator" id="vseparator2">
+ <object class="GtkButton" id="GtkButton_Delete2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="receives_default">True</property>
+ <signal name="clicked" handler="OnMcd_Delete2" swapped="no"/>
+ <child>
+ <object class="GtkAlignment" id="alignment44">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xscale">0</property>
+ <property name="yscale">0</property>
+ <child>
+ <object class="GtkBox" id="hbox62">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">2</property>
+ <child>
+ <object class="GtkImage" id="image329">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="stock">gtk-delete</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label104">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Un/Delete</property>
+ <property name="use_underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
</object>
<packing>
<property name="expand">False</property>
- <property name="fill">True</property>
+ <property name="fill">False</property>
<property name="position">2</property>
</packing>
</child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="Mcd2Button">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
<child>
- <object class="GtkImage" id="image33">
+ <object class="GtkBox" id="hbox3">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">gtk-open</property>
+ <property name="spacing">3</property>
+ <child>
+ <object class="GtkImage" id="image32">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="stock">gtk-floppy</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="Mcd2Label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label">Loading...</property>
+ <property name="ellipsize">middle</property>
+ <property name="single_line_mode">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSeparator" id="vseparator2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="image33">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="stock">gtk-open</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">3</property>
- </packing>
</child>
</object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
</child>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
</child>
- </object>
- </child>
- <child type="label">
- <object class="GtkHBox" id="hbox67">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <object class="GtkLabel" id="label109">
+ <child type="label">
+ <object class="GtkBox" id="hbox67">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="label" translatable="yes">&lt;b&gt;Memory Card 2&lt;/b&gt;</property>
- <property name="use_markup">True</property>
+ <child>
+ <object class="GtkLabel" id="label109">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">&lt;b&gt;Memory Card 2&lt;/b&gt;</property>
+ <property name="use_markup">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">4</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="padding">4</property>
- <property name="position">0</property>
- </packing>
</child>
</object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
- <property name="position">2</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="GtkCheckButton_PerGameMcd">
+ <property name="label" translatable="yes">Enable per game memory cards</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="border_width">2</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
</packing>
</child>
</object>
<packing>
- <property name="expand">True</property>
+ <property name="expand">False</property>
<property name="fill">True</property>
- <property name="position">2</property>
+ <property name="position">1</property>
</packing>
</child>
</object>
@@ -1835,6 +1750,9 @@
<action-widgets>
<action-widget response="-5">McdClose</action-widget>
</action-widgets>
+ <child>
+ <placeholder/>
+ </child>
</object>
<object class="GtkDialog" id="MemViewDlg">
<property name="can_focus">False</property>
@@ -1878,12 +1796,12 @@
</packing>
</child>
<child>
- <object class="GtkHBox" id="hbox10">
+ <object class="GtkBox" id="hbox10">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">13</property>
<child>
- <object class="GtkHBox" id="hbox11">
+ <object class="GtkBox" id="hbox11">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">10</property>
@@ -1891,7 +1809,6 @@
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Address (Hexadecimal):</property>
</object>
<packing>
@@ -1923,7 +1840,7 @@
</packing>
</child>
<child>
- <object class="GtkHBox" id="hbox111">
+ <object class="GtkBox" id="hbox111">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">10</property>
@@ -2001,6 +1918,9 @@
<child internal-child="selection">
<object class="GtkTreeSelection" id="treeview-selection5"/>
</child>
+ <style>
+ <class name="monospace"/>
+ </style>
</object>
</child>
</object>
@@ -2011,7 +1931,7 @@
</packing>
</child>
<child>
- <object class="GtkHButtonBox" id="hbuttonbox2">
+ <object class="GtkButtonBox" id="hbuttonbox2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">20</property>
@@ -2022,7 +1942,7 @@
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<child>
- <object class="GtkHBox" id="hbox12">
+ <object class="GtkBox" id="hbox12">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
@@ -2041,7 +1961,6 @@
<object class="GtkLabel" id="label3">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Raw Dump...</property>
</object>
<packing>
@@ -2065,7 +1984,7 @@
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<child>
- <object class="GtkHBox" id="hbox13">
+ <object class="GtkBox" id="hbox13">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
@@ -2084,7 +2003,6 @@
<object class="GtkLabel" id="label10">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Patch Memory...</property>
</object>
<packing>
@@ -2114,6 +2032,9 @@
<action-widgets>
<action-widget response="0">memview_close</action-widget>
</action-widgets>
+ <child>
+ <placeholder/>
+ </child>
</object>
<object class="GtkDialog" id="NetDlg">
<property name="can_focus">False</property>
@@ -2156,9 +2077,10 @@
</packing>
</child>
<child>
- <object class="GtkVBox" id="vbox27">
+ <object class="GtkBox" id="vbox27">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
<child>
<object class="GtkFrame" id="frame19">
<property name="visible">True</property>
@@ -2171,7 +2093,7 @@
<property name="can_focus">False</property>
<property name="border_width">5</property>
<child>
- <object class="GtkHBox" id="hbox68">
+ <object class="GtkBox" id="hbox68">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">5</property>
@@ -2269,180 +2191,458 @@
<action-widgets>
<action-widget response="-6">closebutton2</action-widget>
</action-widgets>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <object class="GtkListStore" id="PGXP_Mode_list">
+ <columns>
+ <!-- column-name item -->
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">Disabled</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Memory only</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Memory + Cpu logic</col>
+ </row>
+ </data>
+ </object>
+ <object class="GtkDialog" id="PgxpDlg">
+ <property name="can_focus">False</property>
+ <property name="title" translatable="yes">Configure PGXP</property>
+ <property name="resizable">False</property>
+ <property name="modal">True</property>
+ <property name="window_position">center-on-parent</property>
+ <property name="type_hint">dialog</property>
+ <child internal-child="vbox">
+ <object class="GtkBox">
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox">
+ <property name="can_focus">False</property>
+ <property name="layout_style">end</property>
+ <child>
+ <object class="GtkButton" id="PgxpDlg_close">
+ <property name="label">gtk-close</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_stock">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">5</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">5</property>
+ <child>
+ <object class="GtkFrame" id="PgxpDlg_Options">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label_xalign">0</property>
+ <child>
+ <object class="GtkAlignment">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">5</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkCheckButton" id="PGXP_GTE">
+ <property name="label" translatable="yes">Enable PGXP GTE vertex creation</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="PGXP_Cache">
+ <property name="label" translatable="yes">Enable vertex caching.</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="PGXP_Texture">
+ <property name="label" translatable="yes">Enable perspective correct texturing.</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Options</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkFrame" id="PgxpDlg_Mode">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label_xalign">0</property>
+ <child>
+ <object class="GtkAlignment">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">5</property>
+ <property name="orientation">vertical</property>
+ <property name="baseline_position">top</property>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">10</property>
+ <property name="homogeneous">True</property>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="PGXP_Mode">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="model">PGXP_Mode_list</property>
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderertext6"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="PGXP_Mode_title">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="margin_top">4</property>
+ <property name="margin_bottom">4</property>
+ <property name="label" translatable="yes">Mode</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="PGXP_Mode_description">
+ <property name="height_request">100</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_right">10</property>
+ <property name="label" translatable="yes">Description</property>
+ <property name="wrap">True</property>
+ <property name="width_chars">40</property>
+ <property name="max_width_chars">0</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Select PGXP Mode</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="0">PgxpDlg_close</action-widget>
+ </action-widgets>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <object class="GtkAdjustment" id="adjustment_PsxClock">
+ <property name="lower">0.5</property>
+ <property name="upper">5</property>
+ <property name="step_increment">0.25</property>
+ <property name="page_increment">10</property>
</object>
<object class="GtkImage" id="image1">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">gtk-open</property>
+ <property name="icon_name">pcsxr-load-state</property>
<property name="icon_size">1</property>
</object>
<object class="GtkImage" id="image10">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">gtk-revert-to-saved</property>
+ <property name="icon_name">pcsxr-load-state</property>
<property name="icon_size">1</property>
</object>
<object class="GtkImage" id="image11">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">gtk-preferences</property>
+ <property name="icon_name">pcsxr-settings</property>
<property name="icon_size">1</property>
</object>
<object class="GtkImage" id="image12">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">gtk-properties</property>
+ <property name="icon_name">pcsxr-cpu</property>
<property name="icon_size">1</property>
</object>
<object class="GtkImage" id="image13">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">gtk-floppy</property>
+ <property name="icon_name">pcsxr-memcard</property>
<property name="icon_size">1</property>
</object>
<object class="GtkImage" id="image14">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">gtk-properties</property>
+ <property name="icon_name">pcsxr-plugin-netplay</property>
<property name="icon_size">1</property>
</object>
<object class="GtkImage" id="image15">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">gtk-indent</property>
+ <property name="icon_name">pcsxr-cheats</property>
<property name="icon_size">1</property>
</object>
<object class="GtkImage" id="image16">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">gtk-index</property>
+ <property name="icon_name">pcsxr-cheats-browse</property>
<property name="icon_size">1</property>
</object>
<object class="GtkImage" id="image17">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">gtk-find</property>
+ <property name="icon_name">pcsxr-cheats-search</property>
<property name="icon_size">1</property>
</object>
<object class="GtkImage" id="image18">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">gtk-about</property>
+ <property name="icon_name">pcsxr-about</property>
<property name="icon_size">1</property>
</object>
<object class="GtkImage" id="image19">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">gtk-save-as</property>
+ <property name="icon_name">pcsxr-save-state</property>
<property name="icon_size">1</property>
</object>
<object class="GtkImage" id="image2">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0.49000000953674316</property>
- <property name="stock">gtk-cdrom</property>
+ <property name="icon_name">pcsxr-cd-open</property>
<property name="icon_size">1</property>
</object>
<object class="GtkImage" id="image20">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">gtk-stop</property>
+ <property name="icon_name">pcsxr-shutdown</property>
<property name="icon_size">1</property>
</object>
<object class="GtkImage" id="image21">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">gtk-select-color</property>
+ <property name="icon_name">pcsxr-plugin-gpu</property>
<property name="icon_size">1</property>
</object>
<object class="GtkImage" id="image22">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">gtk-convert</property>
+ <property name="icon_name">pcsxr-plugin-spu</property>
<property name="icon_size">1</property>
</object>
<object class="GtkImage" id="image23">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">gtk-cdrom</property>
+ <property name="icon_name">pcsxr-plugin-cdr</property>
<property name="icon_size">1</property>
</object>
<object class="GtkImage" id="image24">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">gtk-execute</property>
+ <property name="icon_name">pcsxr-plugin-pad</property>
<property name="icon_size">1</property>
</object>
<object class="GtkImage" id="image25">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">gtk-quit</property>
+ <property name="icon_name">pcsxr-exit</property>
<property name="icon_size">1</property>
</object>
<object class="GtkImage" id="image3">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">gtk-open</property>
+ <property name="icon_name">pcsxr-iso-open</property>
<property name="icon_size">1</property>
</object>
<object class="GtkImage" id="image34">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">gtk-revert-to-saved</property>
+ <property name="icon_name">pcsxr-memory-dump</property>
<property name="icon_size">1</property>
</object>
<object class="GtkImage" id="image4">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">gtk-convert</property>
+ <property name="icon_name">pcsxr-run-bios</property>
<property name="icon_size">1</property>
</object>
<object class="GtkImage" id="image42">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">gtk-execute</property>
+ <property name="icon_name">pcsxr-plugin-sio1</property>
+ <property name="icon_size">1</property>
+ </object>
+ <object class="GtkImage" id="image43">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="icon_name">pcsxr-pgxp</property>
<property name="icon_size">1</property>
</object>
<object class="GtkImage" id="image5">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">gtk-execute</property>
+ <property name="icon_name">pcsxr-run-exe</property>
<property name="icon_size">1</property>
</object>
<object class="GtkImage" id="image6">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">gtk-go-forward</property>
+ <property name="icon_name">pcsxr-play</property>
<property name="icon_size">1</property>
</object>
<object class="GtkImage" id="image7">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">gtk-refresh</property>
+ <property name="icon_name">pcsxr-reset</property>
<property name="icon_size">1</property>
</object>
<object class="GtkImage" id="image8">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">gtk-open</property>
+ <property name="icon_name">pcsxr-iso-reopen</property>
<property name="icon_size">1</property>
</object>
<object class="GtkImage" id="image9">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">gtk-save-as</property>
+ <property name="icon_name">pcsxr-save-state</property>
<property name="icon_size">1</property>
</object>
- <object class="GtkWindow" id="MainWindow">
+ <object class="GtkApplicationWindow" id="MainWindow">
<property name="can_focus">False</property>
<property name="title" translatable="yes">PCSXR</property>
<property name="resizable">False</property>
<property name="icon_name">pcsxr-icon.png</property>
<signal name="destroy" handler="OnDestroy" swapped="no"/>
<child>
- <object class="GtkVBox" id="vbox18">
+ <object class="GtkBox" id="vbox18">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
<child>
<object class="GtkMenuBar" id="menubar1">
<property name="visible">True</property>
@@ -2935,6 +3135,23 @@
</object>
</child>
<child>
+ <object class="GtkImageMenuItem" id="pgxp1">
+ <property name="label" translatable="yes">_PGXP...</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="use_underline">True</property>
+ <property name="image">image43</property>
+ <property name="use_stock">False</property>
+ <signal name="activate" handler="OnConf_Pgxp" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSeparatorMenuItem" id="separator10">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ </child>
+ <child>
<object class="GtkImageMenuItem" id="cpu1">
<property name="label" translatable="yes">_CPU...</property>
<property name="visible">True</property>
@@ -3045,11 +3262,9 @@
</packing>
</child>
<child>
- <object class="GtkTable" id="tableToolbox">
+ <object class="GtkToolbar" id="tableToolbox">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="border_width">5</property>
- <property name="n_columns">11</property>
<child>
<object class="GtkToolButton" id="toolbutton_runcd">
<property name="visible">True</property>
@@ -3057,8 +3272,12 @@
<property name="has_tooltip">True</property>
<property name="tooltip_text" translatable="yes">Run CD</property>
<property name="use_underline">True</property>
- <property name="stock_id">generated-icon-cd-png</property>
+ <property name="icon_name">pcsxr-cd-open</property>
</object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
</child>
<child>
<object class="GtkToolButton" id="toolbutton_runimage">
@@ -3067,11 +3286,11 @@
<property name="has_tooltip">True</property>
<property name="tooltip_text" translatable="yes">Run ISO Image</property>
<property name="use_underline">True</property>
- <property name="stock_id">generated-icon-iso-open-png</property>
+ <property name="icon_name">pcsxr-iso-open</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
</packing>
</child>
<child>
@@ -3080,8 +3299,8 @@
<property name="can_focus">False</property>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="right_attach">3</property>
+ <property name="expand">False</property>
+ <property name="homogeneous">False</property>
</packing>
</child>
<child>
@@ -3091,11 +3310,11 @@
<property name="has_tooltip">True</property>
<property name="tooltip_text" translatable="yes">Continue Emulation</property>
<property name="use_underline">True</property>
- <property name="stock_id">generated-icon-play-png</property>
+ <property name="icon_name">pcsxr-play</property>
</object>
<packing>
- <property name="left_attach">3</property>
- <property name="right_attach">4</property>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
</packing>
</child>
<child>
@@ -3105,11 +3324,11 @@
<property name="has_tooltip">True</property>
<property name="tooltip_text" translatable="yes">Switch ISO Image</property>
<property name="use_underline">True</property>
- <property name="stock_id">generated-icon-iso-reopen-png</property>
+ <property name="icon_name">pcsxr-iso-reopen</property>
</object>
<packing>
- <property name="left_attach">4</property>
- <property name="right_attach">5</property>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
</packing>
</child>
<child>
@@ -3118,8 +3337,8 @@
<property name="can_focus">False</property>
</object>
<packing>
- <property name="left_attach">5</property>
- <property name="right_attach">6</property>
+ <property name="expand">False</property>
+ <property name="homogeneous">False</property>
</packing>
</child>
<child>
@@ -3129,11 +3348,11 @@
<property name="has_tooltip">True</property>
<property name="tooltip_text" translatable="yes">Configure Memory Cards</property>
<property name="use_underline">True</property>
- <property name="stock_id">generated-icon-memcard-png</property>
+ <property name="icon_name">pcsxr-memcard</property>
</object>
<packing>
- <property name="left_attach">6</property>
- <property name="right_attach">7</property>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
</packing>
</child>
<child>
@@ -3143,11 +3362,11 @@
<property name="has_tooltip">True</property>
<property name="tooltip_text" translatable="yes">Configure Graphics</property>
<property name="use_underline">True</property>
- <property name="stock_id">generated-icon-gpu-png</property>
+ <property name="icon_name">pcsxr-plugin-gpu</property>
</object>
<packing>
- <property name="left_attach">7</property>
- <property name="right_attach">8</property>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
</packing>
</child>
<child>
@@ -3157,11 +3376,11 @@
<property name="has_tooltip">True</property>
<property name="tooltip_text" translatable="yes">Configure Sound</property>
<property name="use_underline">True</property>
- <property name="stock_id">generated-icon-spu-png</property>
+ <property name="icon_name">pcsxr-plugin-spu</property>
</object>
<packing>
- <property name="left_attach">8</property>
- <property name="right_attach">9</property>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
</packing>
</child>
<child>
@@ -3171,11 +3390,11 @@
<property name="has_tooltip">True</property>
<property name="tooltip_text" translatable="yes">Configure CD-ROM</property>
<property name="use_underline">True</property>
- <property name="stock_id">generated-icon-cdr-png</property>
+ <property name="icon_name">pcsxr-plugin-cdr</property>
</object>
<packing>
- <property name="left_attach">9</property>
- <property name="right_attach">10</property>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
</packing>
</child>
<child>
@@ -3185,11 +3404,11 @@
<property name="has_tooltip">True</property>
<property name="tooltip_text" translatable="yes">Configure Controllers</property>
<property name="use_underline">True</property>
- <property name="stock_id">generated-icon-pad-png</property>
+ <property name="icon_name">pcsxr-plugin-pad</property>
</object>
<packing>
- <property name="left_attach">10</property>
- <property name="right_attach">11</property>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
</packing>
</child>
</object>
@@ -3203,7 +3422,7 @@
<object class="GtkImage" id="image160">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="pixbuf">pcsxr.png</property>
+ <property name="pixbuf">pixmaps/pcsxr.png</property>
</object>
<packing>
<property name="expand">True</property>
@@ -3225,6 +3444,9 @@
</child>
</object>
</child>
+ <child type="titlebar">
+ <placeholder/>
+ </child>
</object>
<object class="GtkListStore" id="liststore1">
<columns>
@@ -3360,18 +3582,17 @@
<property name="left_padding">5</property>
<property name="right_padding">5</property>
<child>
- <object class="GtkVBox" id="vbox2">
+ <object class="GtkBox" id="vbox2">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
- <object class="GtkTable" id="table1">
+ <object class="GtkGrid" id="table1">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="n_rows">3</property>
- <property name="n_columns">4</property>
- <property name="column_spacing">5</property>
<property name="row_spacing">5</property>
+ <property name="column_spacing">5</property>
<child>
<object class="GtkComboBox" id="combo_datatype">
<property name="visible">True</property>
@@ -3386,42 +3607,40 @@
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
<property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="y_options"/>
</packing>
</child>
<child>
<object class="GtkLabel" id="label6">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Search For:</property>
</object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ </packing>
</child>
<child>
<object class="GtkLabel" id="label7">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Data Type:</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label8">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Value:</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
</packing>
</child>
<child>
@@ -3432,9 +3651,7 @@
</object>
<packing>
<property name="left_attach">2</property>
- <property name="right_attach">3</property>
<property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
</packing>
</child>
<child>
@@ -3451,8 +3668,7 @@
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="y_options"/>
+ <property name="top_attach">0</property>
</packing>
</child>
<child>
@@ -3464,10 +3680,7 @@
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
<property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- <property name="y_options"/>
</packing>
</child>
<child>
@@ -3484,10 +3697,7 @@
</object>
<packing>
<property name="left_attach">3</property>
- <property name="right_attach">4</property>
<property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="y_options"/>
</packing>
</child>
<child>
@@ -3498,15 +3708,10 @@
</object>
<packing>
<property name="left_attach">2</property>
- <property name="right_attach">3</property>
<property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
</packing>
</child>
<child>
- <placeholder/>
- </child>
- <child>
<object class="GtkEntry" id="entry_valueto">
<property name="visible">True</property>
<property name="can_focus">True</property>
@@ -3515,14 +3720,15 @@
</object>
<packing>
<property name="left_attach">3</property>
- <property name="right_attach">4</property>
<property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
</packing>
</child>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
</object>
<packing>
<property name="expand">False</property>
@@ -3531,7 +3737,7 @@
</packing>
</child>
<child>
- <object class="GtkHBox" id="hbox4">
+ <object class="GtkBox" id="hbox4">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
@@ -3562,9 +3768,10 @@
</packing>
</child>
<child>
- <object class="GtkVButtonBox" id="vbuttonbox1">
+ <object class="GtkButtonBox" id="vbuttonbox1">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
<property name="spacing">10</property>
<property name="layout_style">start</property>
<child>
@@ -3573,7 +3780,7 @@
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<child>
- <object class="GtkHBox" id="hbox7">
+ <object class="GtkBox" id="hbox7">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
@@ -3593,7 +3800,6 @@
<object class="GtkLabel" id="label13">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Freeze</property>
</object>
<packing>
@@ -3617,7 +3823,7 @@
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<child>
- <object class="GtkHBox" id="hbox8">
+ <object class="GtkBox" id="hbox8">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
@@ -3637,7 +3843,6 @@
<object class="GtkLabel" id="label14">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Modify</property>
</object>
<packing>
@@ -3661,7 +3866,7 @@
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<child>
- <object class="GtkHBox" id="hbox9">
+ <object class="GtkBox" id="hbox9">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
@@ -3681,7 +3886,6 @@
<object class="GtkLabel" id="label15">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Copy</property>
</object>
<packing>
@@ -3718,8 +3922,7 @@
<object class="GtkLabel" id="label_resultsfound">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0</property>
+ <property name="halign">start</property>
<property name="label" translatable="yes">label_resultsfound</property>
<property name="single_line_mode">True</property>
</object>
@@ -3730,7 +3933,7 @@
</packing>
</child>
<child>
- <object class="GtkHButtonBox" id="hbuttonbox1">
+ <object class="GtkButtonBox" id="hbuttonbox1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">20</property>
@@ -3741,7 +3944,7 @@
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<child>
- <object class="GtkHBox" id="hbox5">
+ <object class="GtkBox" id="hbox5">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
@@ -3761,7 +3964,6 @@
<object class="GtkLabel" id="label11">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Search</property>
</object>
<packing>
@@ -3785,7 +3987,7 @@
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<child>
- <object class="GtkHBox" id="hbox6">
+ <object class="GtkBox" id="hbox6">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
@@ -3805,7 +4007,6 @@
<object class="GtkLabel" id="label12">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Restart</property>
</object>
<packing>
@@ -3854,6 +4055,9 @@
<action-widgets>
<action-widget response="0">closebutton</action-widget>
</action-widgets>
+ <child>
+ <placeholder/>
+ </child>
</object>
<object class="GtkListStore" id="liststore5">
<columns>
@@ -3912,10 +4116,11 @@
</packing>
</child>
<child>
- <object class="GtkVBox" id="vbox25">
+ <object class="GtkBox" id="vbox25">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="border_width">5</property>
+ <property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkFrame" id="frame15">
@@ -3923,14 +4128,11 @@
<property name="can_focus">False</property>
<property name="label_xalign">0</property>
<child>
- <object class="GtkTable" id="table3">
+ <object class="GtkGrid" id="table3">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="border_width">5</property>
- <property name="n_rows">12</property>
- <child>
- <placeholder/>
- </child>
+ <property name="orientation">vertical</property>
<child>
<object class="GtkCheckButton" id="GtkCheckButton_SpuIrq">
<property name="label" translatable="yes">SPU IRQ Always Enabled</property>
@@ -3938,14 +4140,11 @@
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_underline">True</property>
- <property name="xalign">0</property>
<property name="draw_indicator">True</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"/>
</packing>
</child>
<child>
@@ -3955,14 +4154,11 @@
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_underline">True</property>
- <property name="xalign">0</property>
<property name="draw_indicator">True</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"/>
</packing>
</child>
<child>
@@ -3972,14 +4168,11 @@
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_underline">True</property>
- <property name="xalign">0</property>
<property name="draw_indicator">True</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"/>
</packing>
</child>
<child>
@@ -3989,12 +4182,11 @@
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_underline">True</property>
- <property name="xalign">0</property>
<property name="draw_indicator">True</property>
</object>
<packing>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"/>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
</packing>
</child>
<child>
@@ -4004,14 +4196,11 @@
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_underline">True</property>
- <property name="xalign">0</property>
<property name="draw_indicator">True</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">5</property>
- <property name="bottom_attach">6</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"/>
</packing>
</child>
<child>
@@ -4021,14 +4210,11 @@
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_underline">True</property>
- <property name="xalign">0</property>
<property name="draw_indicator">True</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">7</property>
- <property name="bottom_attach">8</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"/>
</packing>
</child>
<child>
@@ -4038,14 +4224,11 @@
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_underline">True</property>
- <property name="xalign">0</property>
<property name="draw_indicator">True</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">6</property>
- <property name="bottom_attach">7</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"/>
</packing>
</child>
<child>
@@ -4055,14 +4238,11 @@
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_underline">True</property>
- <property name="xalign">0</property>
<property name="draw_indicator">True</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">8</property>
- <property name="bottom_attach">9</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"/>
</packing>
</child>
<child>
@@ -4072,14 +4252,11 @@
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_underline">True</property>
- <property name="xalign">0</property>
<property name="draw_indicator">True</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">9</property>
- <property name="bottom_attach">10</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"/>
</packing>
</child>
<child>
@@ -4089,14 +4266,11 @@
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_underline">True</property>
- <property name="xalign">0</property>
<property name="draw_indicator">True</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">10</property>
- <property name="bottom_attach">11</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"/>
</packing>
</child>
<child>
@@ -4106,14 +4280,11 @@
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_underline">True</property>
- <property name="xalign">0</property>
<property name="draw_indicator">True</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">11</property>
- <property name="bottom_attach">12</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"/>
</packing>
</child>
<child>
@@ -4123,14 +4294,11 @@
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_underline">True</property>
- <property name="xalign">0</property>
<property name="draw_indicator">True</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">12</property>
- <property name="bottom_attach">13</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"/>
</packing>
</child>
<child>
@@ -4140,16 +4308,16 @@
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_underline">True</property>
- <property name="xalign">0</property>
<property name="draw_indicator">True</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">13</property>
- <property name="bottom_attach">14</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"/>
</packing>
</child>
+ <child>
+ <placeholder/>
+ </child>
</object>
</child>
<child type="label">
@@ -4173,7 +4341,7 @@
<property name="can_focus">False</property>
<property name="label_xalign">0</property>
<child>
- <object class="GtkHBox" id="hbox51">
+ <object class="GtkBox" id="hbox51">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="border_width">5</property>
@@ -4224,7 +4392,7 @@
<property name="can_focus">False</property>
<property name="label_xalign">0</property>
<child>
- <object class="GtkHBox" id="hbox50">
+ <object class="GtkBox" id="hbox50">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="border_width">5</property>
@@ -4344,7 +4512,7 @@
<property name="can_focus">False</property>
<property name="label_xalign">0</property>
<child>
- <object class="GtkHBox" id="hbox14">
+ <object class="GtkBox" id="hbox14">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="border_width">5</property>
@@ -4481,7 +4649,7 @@
<property name="can_focus">False</property>
<property name="label_xalign">0</property>
<child>
- <object class="GtkHBox" id="hbox49">
+ <object class="GtkBox" id="hbox49">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="border_width">5</property>
@@ -4493,7 +4661,6 @@
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_underline">True</property>
- <property name="xalign">0.5</property>
<property name="draw_indicator">True</property>
</object>
<packing>
@@ -4537,6 +4704,100 @@
<property name="position">4</property>
</packing>
</child>
+ <child>
+ <object class="GtkFrame" id="frame_oc">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label_xalign">0</property>
+ <child>
+ <object class="GtkAlignment">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">5</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">5</property>
+ <child>
+ <object class="GtkCheckButton" id="GtkCheckButton_OverClock">
+ <property name="label" translatable="yes">Overclock</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="GtkSpinButton_PsxClock">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="max_width_chars">6</property>
+ <property name="adjustment">adjustment_PsxClock</property>
+ <property name="digits">2</property>
+ <property name="numeric">True</property>
+ <property name="update_policy">if-valid</property>
+ <property name="value">1</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="GtkCheckButton_MemHack">
+ <property name="label" translatable="yes">WipeOut MemHack</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">&lt;b&gt;CPU Overclocking&lt;/b&gt;</property>
+ <property name="use_markup">True</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">5</property>
+ </packing>
+ </child>
</object>
<packing>
<property name="expand">False</property>
@@ -4549,5 +4810,8 @@
<action-widgets>
<action-widget response="-6">closebutton1</action-widget>
</action-widgets>
+ <child>
+ <placeholder/>
+ </child>
</object>
</interface>
diff --git a/gui/data/pixmaps/Makefile.am b/gui/data/pixmaps/Makefile.am
new file mode 100644
index 00000000..f5be2e62
--- /dev/null
+++ b/gui/data/pixmaps/Makefile.am
@@ -0,0 +1,18 @@
+#pixmapdir = "$(datadir)/pcsxr"
+#pixmap_DATA = \
+ pcsxr-cd-open.png \
+ pcsxr-iso-open.png \
+ pcsxr-iso-reopen.png \
+ pcsxr-memcard.png \
+ pcsxr-play.png \
+ pcsxr-plugin-cdr.png \
+ pcsxr-plugin-gpu.png \
+ pcsxr-plugin-pad.png \
+ pcsxr-plugin-sio1.png \
+ pcsxr-plugin-spu.png \
+ pcsxr.png
+
+icondir = "$(datadir)/pixmaps"
+icon_DATA = pcsxr-icon.png
+
+EXTRA_DIST = $(pixmap_DATA) $(icon_DATA)
diff --git a/gui/data/pixmaps/pcsxr-about.png b/gui/data/pixmaps/pcsxr-about.png
new file mode 100644
index 00000000..1afd9229
--- /dev/null
+++ b/gui/data/pixmaps/pcsxr-about.png
Binary files differ
diff --git a/gui/data/pixmaps/pcsxr-cd-open.png b/gui/data/pixmaps/pcsxr-cd-open.png
new file mode 100644
index 00000000..f72f29a5
--- /dev/null
+++ b/gui/data/pixmaps/pcsxr-cd-open.png
Binary files differ
diff --git a/gui/data/pixmaps/pcsxr-cheats-browse.png b/gui/data/pixmaps/pcsxr-cheats-browse.png
new file mode 100644
index 00000000..311fe66a
--- /dev/null
+++ b/gui/data/pixmaps/pcsxr-cheats-browse.png
Binary files differ
diff --git a/gui/data/pixmaps/pcsxr-cheats-search.png b/gui/data/pixmaps/pcsxr-cheats-search.png
new file mode 100644
index 00000000..21337b72
--- /dev/null
+++ b/gui/data/pixmaps/pcsxr-cheats-search.png
Binary files differ
diff --git a/gui/data/pixmaps/pcsxr-cheats.png b/gui/data/pixmaps/pcsxr-cheats.png
new file mode 100644
index 00000000..d8cfdb03
--- /dev/null
+++ b/gui/data/pixmaps/pcsxr-cheats.png
Binary files differ
diff --git a/gui/data/pixmaps/pcsxr-cpu.png b/gui/data/pixmaps/pcsxr-cpu.png
new file mode 100644
index 00000000..aa2e34ba
--- /dev/null
+++ b/gui/data/pixmaps/pcsxr-cpu.png
Binary files differ
diff --git a/gui/data/pixmaps/pcsxr-exit.png b/gui/data/pixmaps/pcsxr-exit.png
new file mode 100644
index 00000000..c0fe484b
--- /dev/null
+++ b/gui/data/pixmaps/pcsxr-exit.png
Binary files differ
diff --git a/gui/data/pixmaps/pcsxr-icon.png b/gui/data/pixmaps/pcsxr-icon.png
new file mode 100644
index 00000000..736bdec3
--- /dev/null
+++ b/gui/data/pixmaps/pcsxr-icon.png
Binary files differ
diff --git a/gui/data/pixmaps/pcsxr-iso-open.png b/gui/data/pixmaps/pcsxr-iso-open.png
new file mode 100644
index 00000000..4f421296
--- /dev/null
+++ b/gui/data/pixmaps/pcsxr-iso-open.png
Binary files differ
diff --git a/gui/data/pixmaps/pcsxr-iso-reopen.png b/gui/data/pixmaps/pcsxr-iso-reopen.png
new file mode 100644
index 00000000..68ea5387
--- /dev/null
+++ b/gui/data/pixmaps/pcsxr-iso-reopen.png
Binary files differ
diff --git a/gui/data/pixmaps/pcsxr-load-state.png b/gui/data/pixmaps/pcsxr-load-state.png
new file mode 100644
index 00000000..a381e548
--- /dev/null
+++ b/gui/data/pixmaps/pcsxr-load-state.png
Binary files differ
diff --git a/pixmaps/memcard.png b/gui/data/pixmaps/pcsxr-memcard.png
index 2b061b6d..2b061b6d 100755..100644
--- a/pixmaps/memcard.png
+++ b/gui/data/pixmaps/pcsxr-memcard.png
Binary files differ
diff --git a/gui/data/pixmaps/pcsxr-memory-dump.png b/gui/data/pixmaps/pcsxr-memory-dump.png
new file mode 100644
index 00000000..5c62af70
--- /dev/null
+++ b/gui/data/pixmaps/pcsxr-memory-dump.png
Binary files differ
diff --git a/pixmaps/play.png b/gui/data/pixmaps/pcsxr-play.png
index ce003e4d..ce003e4d 100755..100644
--- a/pixmaps/play.png
+++ b/gui/data/pixmaps/pcsxr-play.png
Binary files differ
diff --git a/pixmaps/cdr.png b/gui/data/pixmaps/pcsxr-plugin-cdr.png
index 72737547..72737547 100755..100644
--- a/pixmaps/cdr.png
+++ b/gui/data/pixmaps/pcsxr-plugin-cdr.png
Binary files differ
diff --git a/gui/data/pixmaps/pcsxr-plugin-gpu.png b/gui/data/pixmaps/pcsxr-plugin-gpu.png
new file mode 100644
index 00000000..e024618c
--- /dev/null
+++ b/gui/data/pixmaps/pcsxr-plugin-gpu.png
Binary files differ
diff --git a/gui/data/pixmaps/pcsxr-plugin-netplay.png b/gui/data/pixmaps/pcsxr-plugin-netplay.png
new file mode 100644
index 00000000..1e5ff2f5
--- /dev/null
+++ b/gui/data/pixmaps/pcsxr-plugin-netplay.png
Binary files differ
diff --git a/gui/data/pixmaps/pcsxr-plugin-pad.png b/gui/data/pixmaps/pcsxr-plugin-pad.png
new file mode 100644
index 00000000..dd7656b2
--- /dev/null
+++ b/gui/data/pixmaps/pcsxr-plugin-pad.png
Binary files differ
diff --git a/gui/data/pixmaps/pcsxr-plugin-sio1.png b/gui/data/pixmaps/pcsxr-plugin-sio1.png
new file mode 100644
index 00000000..89d3eeba
--- /dev/null
+++ b/gui/data/pixmaps/pcsxr-plugin-sio1.png
Binary files differ
diff --git a/gui/data/pixmaps/pcsxr-plugin-spu.png b/gui/data/pixmaps/pcsxr-plugin-spu.png
new file mode 100644
index 00000000..5d206afb
--- /dev/null
+++ b/gui/data/pixmaps/pcsxr-plugin-spu.png
Binary files differ
diff --git a/gui/data/pixmaps/pcsxr-reset.png b/gui/data/pixmaps/pcsxr-reset.png
new file mode 100644
index 00000000..74de098d
--- /dev/null
+++ b/gui/data/pixmaps/pcsxr-reset.png
Binary files differ
diff --git a/gui/data/pixmaps/pcsxr-run-bios.png b/gui/data/pixmaps/pcsxr-run-bios.png
new file mode 100644
index 00000000..aa2e34ba
--- /dev/null
+++ b/gui/data/pixmaps/pcsxr-run-bios.png
Binary files differ
diff --git a/gui/data/pixmaps/pcsxr-run-exe.png b/gui/data/pixmaps/pcsxr-run-exe.png
new file mode 100644
index 00000000..3ff9e91c
--- /dev/null
+++ b/gui/data/pixmaps/pcsxr-run-exe.png
Binary files differ
diff --git a/gui/data/pixmaps/pcsxr-save-state.png b/gui/data/pixmaps/pcsxr-save-state.png
new file mode 100644
index 00000000..872109e4
--- /dev/null
+++ b/gui/data/pixmaps/pcsxr-save-state.png
Binary files differ
diff --git a/gui/data/pixmaps/pcsxr-settings.png b/gui/data/pixmaps/pcsxr-settings.png
new file mode 100644
index 00000000..d423e32e
--- /dev/null
+++ b/gui/data/pixmaps/pcsxr-settings.png
Binary files differ
diff --git a/gui/data/pixmaps/pcsxr-shutdown.png b/gui/data/pixmaps/pcsxr-shutdown.png
new file mode 100644
index 00000000..2ab2b165
--- /dev/null
+++ b/gui/data/pixmaps/pcsxr-shutdown.png
Binary files differ
diff --git a/gui/data/pixmaps/pcsxr.png b/gui/data/pixmaps/pcsxr.png
new file mode 100644
index 00000000..4e747a80
--- /dev/null
+++ b/gui/data/pixmaps/pcsxr.png
Binary files differ
diff --git a/libpcsxcore/Makefile.am b/libpcsxcore/Makefile.am
index b67700e4..ee585ab7 100644
--- a/libpcsxcore/Makefile.am
+++ b/libpcsxcore/Makefile.am
@@ -4,25 +4,25 @@ AM_CPPFLAGS = -DLOCALE_DIR=\"${datadir}/locale/\" \
noinst_LIBRARIES = libpcsxcore.a
libpcsxcore_a_SOURCES = \
- psxbios.c \
- cdrom.c \
- psxcounters.c \
- psxdma.c \
- disr3000a.c \
- gpu.c \
- gpu.h \
- spu.c \
- sio.c \
- psxhw.c \
- mdec.c \
- psxmem.c \
- misc.c \
- plugins.c \
- decode_xa.c \
- r3000a.c \
- psxinterpreter.c \
- gte.c \
- psxhle.c \
+ psxbios.c \
+ cdrom.c \
+ psxcounters.c \
+ psxdma.c \
+ disr3000a.c \
+ gpu.c \
+ gpu.h \
+ spu.c \
+ sio.c \
+ psxhw.c \
+ mdec.c \
+ psxmem.c \
+ misc.c \
+ plugins.c \
+ decode_xa.c \
+ r3000a.c \
+ psxinterpreter.c \
+ gte.c \
+ psxhle.c \
cdrom.h \
coff.h \
debug.c \
@@ -54,37 +54,49 @@ libpcsxcore_a_SOURCES = \
socket.c \
socket.h \
ppf.c \
- ppf.h
+ ppf.h \
+ pgxp_cpu.c \
+ pgxp_cpu.h \
+ pgxp_debug.c \
+ pgxp_debug.h \
+ pgxp_gte.c \
+ pgxp_gte.h \
+ pgxp_mem.c \
+ pgxp_mem.h \
+ pgxp_value.c \
+ pgxp_value.h
if ARCH_X86_64
libpcsxcore_a_SOURCES += \
- ix86_64/iGte.h \
- ix86_64/iR3000A-64.c \
- ix86_64/ix86-64.c \
- ix86_64/ix86-64.h \
- ix86_64/ix86_cpudetect.c \
- ix86_64/ix86_fpu.c \
- ix86_64/ix86_3dnow.c \
- ix86_64/ix86_mmx.c \
- ix86_64/ix86_sse.c
-else
+ ix86_64/iGte.h \
+ ix86_64/iR3000A-64.c \
+ ix86_64/ix86-64.c \
+ ix86_64/ix86-64.h \
+ ix86_64/ix86_cpudetect.c \
+ ix86_64/ix86_fpu.c \
+ ix86_64/ix86_3dnow.c \
+ ix86_64/ix86_mmx.c \
+ ix86_64/ix86_sse.c \
+ ix86_64/iPGXP.h
+else
if ARCH_X86
libpcsxcore_a_SOURCES += \
- ix86/iGte.h \
- ix86/iR3000A.c \
- ix86/ix86.c \
- ix86/ix86.h
+ ix86/iGte.h \
+ ix86/iR3000A.c \
+ ix86/ix86.c \
+ ix86/ix86.h \
+ ix86/iPGXP.h
endif
endif
if ARCH_PPC
libpcsxcore_a_SOURCES += \
- ppc/pGte.h \
- ppc/pR3000A.c \
- ppc/ppc.c \
- ppc/ppc.h \
- ppc/ppc_mnemonics.h \
- ppc/reguse.c \
+ ppc/pGte.h \
+ ppc/pR3000A.c \
+ ppc/ppc.c \
+ ppc/ppc.h \
+ ppc/ppc_mnemonics.h \
+ ppc/reguse.c \
ppc/reguse.h
libpcsxcore_a_CCASFLAGS = -x assembler-with-cpp -mregnames -D__POWERPC__
endif
diff --git a/libpcsxcore/cdriso.c b/libpcsxcore/cdriso.c
index af4205cf..4d6c3370 100755
--- a/libpcsxcore/cdriso.c
+++ b/libpcsxcore/cdriso.c
@@ -40,14 +40,11 @@
#ifdef ENABLE_CCDDA
#include "libavcodec/avcodec.h"
#include "libavutil/mathematics.h"
+#include <libavutil/opt.h>
+#include <libavutil/timestamp.h>
#include "libavformat/avformat.h"
+#include <libswresample/swresample.h>
-#define INBUF_SIZE 4096
-#define AUDIO_INBUF_SIZE INBUF_SIZE*4
-#define AUDIO_REFILL_THRESH 4096
-/*#ifndef AVCODEC_MAX_AUDIO_FRAME_SIZE
- #define AVCODEC_MAX_AUDIO_FRAME_SIZE 192000
-#endif*/
#endif
unsigned int cdrIsoMultidiskCount;
@@ -104,9 +101,6 @@ struct trackinfo {
u8 length[3]; // MSF-format
FILE *handle; // for multi-track images CDDA
enum {NONE=0, BIN=1, CCDDA=2
-#ifdef ENABLE_CCDDA1
- ,MP3=AV_CODEC_ID_MP3, APE=AV_CODEC_ID_APE, FLAC=AV_CODEC_ID_FLAC
-#endif
} cddatype; // BIN, WAV, MP3, APE
void* decoded_buffer;
u32 len_decoded_buffer;
@@ -167,17 +161,6 @@ static int get_cdda_type(const char *str)
if (strncmp((str+lenstr-3), "bin", 3) == 0) {
return BIN;
}
-#ifdef ENABLE_CCDDA1
- else if (strncmp((str+lenstr-3), "mp3", 3) == 0) {
- return MP3;
- }
- else if (strncmp((str+lenstr-3), "ape", 3) == 0) {
- return APE;
- }
- else if (strncmp((str+lenstr-4), "flac", 4) == 0) {
- return FLAC;
- }
-#endif
#ifdef ENABLE_CCDDA
else {
return CCDDA;
@@ -194,16 +177,17 @@ static int get_cdda_type(const char *str)
return BIN; // no valid extension or no support; assume bin
}
-static int get_compressed_cdda_track_length(const char* filepath) {
+int get_compressed_cdda_track_length(const char* filepath) {
int seconds = -1;
#ifdef ENABLE_CCDDA
+ av_log_set_level(AV_LOG_QUIET);
av_register_all();
AVFormatContext * inAudioFormat = NULL;
inAudioFormat = avformat_alloc_context();
int errorCode = avformat_open_input(&inAudioFormat, filepath, NULL, NULL);
avformat_find_stream_info(inAudioFormat, NULL);
- seconds = (int)(inAudioFormat->duration/AV_TIME_BASE);
+ seconds = (int)ceil((double)inAudioFormat->duration/(double)AV_TIME_BASE);
avformat_close_input(&inAudioFormat);
#endif
return seconds;
@@ -211,132 +195,208 @@ static int get_compressed_cdda_track_length(const char* filepath) {
#ifdef ENABLE_CCDDA
-static int decode_compressed_cdda_track(FILE* outfile, const char* infilepath, s32 id) {
- AVCodec *codec;
- AVCodecContext *c=NULL;
- AVFormatContext *inAudioFormat = NULL;
- s32 len;
- AVPacket avpkt;
- AVFrame *decoded_frame = NULL;
- s32 got_frame = 0, moreFrames = 1;
- s32 audio_stream_index;
- s32 ret;
-
- //av_init_packet(&avpkt);
-
- avcodec_register_all();
-
- inAudioFormat = avformat_alloc_context();
- int errorCode = avformat_open_input(&inAudioFormat, infilepath, NULL, NULL);
- if (errorCode) {
- SysMessage(_("Audio file opening failed!\n"));
- return errorCode;
+
+int decode_packet(int *got_frame, AVPacket pkt, int audio_stream_idx, AVFrame* frame, AVCodecContext* audio_dec_ctx, void* buf, int* size, SwrContext* swr) {
+ int ret = 0;
+ int decoded = pkt.size;
+ *got_frame = 0;
+
+ if (pkt.stream_index == audio_stream_idx) {
+ ret = avcodec_decode_audio4(audio_dec_ctx, frame, got_frame, &pkt);
+ if (ret < 0) {
+ SysPrintf(_("Error decoding audio frame\n"));
+ return ret;
+ }
+
+ /* Some audio decoders decode only part of the packet, and have to be
+ * called again with the remainder of the packet data.
+ * Sample: fate-suite/lossless-audio/luckynight-partial.shn
+ * Also, some decoders might over-read the packet. */
+
+ decoded = FFMIN(ret, pkt.size);
+
+ if (*got_frame) {
+ size_t unpadded_linesize = frame->nb_samples * av_get_bytes_per_sample(frame->format);
+ swr_convert(swr, (uint8_t**)&buf, frame->nb_samples, (const uint8_t **)frame->data, frame->nb_samples);
+ (*size)+=(unpadded_linesize*2);
+ }
}
- avformat_find_stream_info(inAudioFormat, NULL);
+ return decoded;
+}
+
+int open_codec_context(int *stream_idx, AVFormatContext *fmt_ctx, enum AVMediaType type) {
+ int ret, stream_index;
+ AVStream *st;
+ AVCodecContext *dec_ctx = NULL;
+ AVCodec *dec = NULL;
+ AVDictionary *opts = NULL;
+
+ ret = av_find_best_stream(fmt_ctx, type, -1, -1, NULL, 0);
- /* select the audio stream */
- ret = av_find_best_stream(inAudioFormat, AVMEDIA_TYPE_AUDIO, -1, -1, &codec, 0);
if (ret < 0) {
- avformat_close_input(&inAudioFormat);
- SysMessage(_("Couldn't find any audio stream in file\n"));
+ SysPrintf(_("Could not find %s stream in input file\n"),
+ av_get_media_type_string(type));
return ret;
+ } else {
+ stream_index = ret;
+ st = fmt_ctx->streams[stream_index];
+
+ dec_ctx = st->codec;
+ dec = avcodec_find_decoder(dec_ctx->codec_id);
+ if (!dec) {
+ SysPrintf(_("Failed to find %s codec\n"),
+ av_get_media_type_string(type));
+ return AVERROR(EINVAL);
+ }
+ /* Init the decoders, with or without reference counting */
+ if ((ret = avcodec_open2(dec_ctx, dec, NULL)) < 0) {
+ SysPrintf(_("Failed to open %s codec\n"),
+ av_get_media_type_string(type));
+ return ret;
+ }
+ *stream_idx = stream_index;
}
- audio_stream_index = ret;
- c = inAudioFormat->streams[audio_stream_index]->codec;
- av_opt_set_int(c, "refcounted_frames", 1, 0);
+ return 0;
+}
- c->sample_fmt = AV_SAMPLE_FMT_S16;
- c->channels = 2;
- c->sample_rate = 44100;
+int decode_compressed_cdda_track(char* buf, char* src_filename, int* size) {
+ AVFormatContext *fmt_ctx = NULL;
+ AVCodecContext *audio_dec_ctx;
+ AVStream *audio_stream = NULL;
+ int audio_stream_idx = -1;
+ AVFrame *frame = NULL;
+ AVPacket pkt;
+ SwrContext *resample_context;
+ int ret = 0, got_frame;
- /* open it */
- if (avcodec_open2(c, codec, NULL) < 0) {
- SysMessage(_("Audio decoder opening failed. Compressed audio support not available.\n"));
- avformat_close_input(&inAudioFormat);
- return 3; // codec open failed
+ av_register_all();
+
+ if (avformat_open_input(&fmt_ctx, src_filename, NULL, NULL) < 0) {
+ SysPrintf(_("Could not open source file %s\n"), src_filename);
+ return -1;
}
- //http://ffmpeg.org/doxygen/trunk/doc_2examples_2filtering_audio_8c-example.html#a80
- //http://blog.tomaka17.com/2012/03/libavcodeclibavformat-tutorial/
- do {
- if ((moreFrames=av_read_frame(inAudioFormat, &avpkt)) < 0) {// returns non-zero on error
- break;
- }
- if (avpkt.stream_index != audio_stream_index) {
- continue;
- }
+ if (avformat_find_stream_info(fmt_ctx, NULL) < 0) {
+ SysPrintf(_("Could not find stream information\n"));
+ ret = -1;
+ goto end;
+ }
- if (!decoded_frame) {
- if (!(decoded_frame = avcodec_alloc_frame())) {
- SysMessage(_(" -> Error allocating audio frame buffer. This track will not be available."));
- avformat_close_input(&inAudioFormat);
- av_free(&decoded_frame);
- return 1; // error decoding frame
- }
- } else {
- avcodec_get_frame_defaults(decoded_frame);
- }
- len = avcodec_decode_audio4(c, decoded_frame, &got_frame, &avpkt);
- if (len > 0 && got_frame) {
- /* if a frame has been decoded, output it */
- int data_size = av_samples_get_buffer_size(NULL, c->channels,
- decoded_frame->nb_samples,
- c->sample_fmt, 1);
- //printf ("Channels %i/%i: %i -> %i/%i\n", len, data_size, decoded_frame->sample_rate, c->channels, c->sample_rate);
- fwrite(decoded_frame->data[0], 1, data_size, outfile);
- }
- av_free_packet(&avpkt);
- //avcodec_free_frame(&decoded_frame);
- } while (moreFrames >= 0); // TODO: check for possible leaks
+ if (open_codec_context(&audio_stream_idx, fmt_ctx, AVMEDIA_TYPE_AUDIO) >= 0) {
+ audio_stream = fmt_ctx->streams[audio_stream_idx];
+ audio_dec_ctx = audio_stream->codec;
+ }
- // file will be closed later on, now just flush it
- fflush(outfile);
+ if (!audio_stream) {
+ SysPrintf(_("Could not find audio stream in the input, aborting\n"));
+ ret = -1;
+ goto end;
+ }
- avformat_close_input(&inAudioFormat);
+ // init and configure resampler
+ resample_context = swr_alloc();
+ if (!resample_context)
+ {
+ SysPrintf(_("Could not allocate resample context"));
+ ret = -1;
+ goto end;
+ }
+ av_opt_set_int(resample_context, "in_channel_layout", audio_dec_ctx->channel_layout, 0);
+ av_opt_set_int(resample_context, "out_channel_layout", AV_CH_LAYOUT_STEREO, 0);
+ av_opt_set_int(resample_context, "in_sample_rate", audio_dec_ctx->sample_rate, 0);
+ av_opt_set_int(resample_context, "out_sample_rate", 44100, 0);
+ av_opt_set_sample_fmt(resample_context, "in_sample_fmt", audio_dec_ctx->sample_fmt, 0);
+ av_opt_set_sample_fmt(resample_context, "out_sample_fmt", AV_SAMPLE_FMT_S16, 0);
+ if (swr_init(resample_context) < 0)
+ {
+ SysPrintf(_("Could not open resample context"));
+ ret = -1;
+ goto end;
+ }
- // TODO not sure if all resources are freed...
- //avcodec_close(c);
- //av_free(c);
- //av_free(&decoded_frame);
- return 0;
+
+ frame = av_frame_alloc();
+ if (!frame) {
+ SysPrintf(_("Could not allocate frame\n"));
+ ret = AVERROR(ENOMEM);
+ goto end;
+ }
+
+ /* initialize packet, set data to NULL, let the demuxer fill it */
+ av_init_packet(&pkt);
+ pkt.data = NULL;
+ pkt.size = 0;
+
+ /* read frames from the file */
+ while (av_read_frame(fmt_ctx, &pkt) >= 0) {
+ AVPacket orig_pkt = pkt;
+ do {
+ ret = decode_packet(&got_frame, pkt, audio_stream_idx, frame, audio_dec_ctx, buf+(*size), size, resample_context);
+ if (ret < 0)
+ break;
+ pkt.data += ret;
+ pkt.size -= ret;
+ } while (pkt.size > 0);
+ av_packet_unref(&orig_pkt);
+ }
+
+ /* flush cached frames */
+ pkt.data = NULL;
+ pkt.size = 0;
+ do {
+ decode_packet(&got_frame, pkt, audio_stream_idx, frame, audio_dec_ctx, buf+(*size), size, resample_context);
+ } while (got_frame);
+
+end:
+ swr_free(&resample_context);
+ avcodec_close(audio_dec_ctx);
+ avformat_close_input(&fmt_ctx);
+ av_frame_free(&frame);
+ return ret < 0;
}
#endif
-static int do_decode_cdda(struct trackinfo* tri, u32 tracknumber) {
+int do_decode_cdda(struct trackinfo* tri, u32 tracknumber) {
#ifndef ENABLE_CCDDA
- return 4; // support is not compiled in
+ return 0; // support is not compiled in
#else
tri->decoded_buffer = malloc(tri->len_decoded_buffer);
- FILE* decoded_cdda = fmemopen(tri->decoded_buffer, tri->len_decoded_buffer, "wb");
+ memset(tri->decoded_buffer,0,tri->len_decoded_buffer-1);
- if (decoded_cdda == NULL || tri->decoded_buffer == NULL) {
+ if (tri->decoded_buffer == NULL) {
SysMessage(_("Could not allocate memory to decode CDDA TRACK: %s\n"), tri->filepath);
+ fclose(tri->handle); // encoded file handle not needed anymore
+ tri->handle = fmemopen(NULL, 1, "rb"); // change handle to decoded one
+ tri->cddatype = BIN;
+ return 0;
}
fclose(tri->handle); // encoded file handle not needed anymore
int ret;
SysPrintf(_("Decoding audio tr#%u (%s)..."), tracknumber, tri->filepath);
- // decode 2nd input param to 1st output param
- if ((ret=decode_compressed_cdda_track(decoded_cdda, tri->filepath /*tri->handle*/, tri->cddatype)) == 0) {
- int len1 = ftell(decoded_cdda);
- if (len1 > tri->len_decoded_buffer) {
+
+ int len=0;
+
+ if ((ret=decode_compressed_cdda_track(tri->decoded_buffer, tri->filepath, &len)) == 0) {
+ if (len > tri->len_decoded_buffer) {
SysPrintf(_("Buffer overflow..."));
+ SysPrintf(_("Actual %i vs. %i estimated\n"), len, tri->len_decoded_buffer);
+ len = tri->len_decoded_buffer; // we probably segfaulted already, oh well...
}
- //printf("actual %i vs. %i estimated", len1, tri->len_decoded_buffer);
- fclose(decoded_cdda); // close wb file now and will be opened as rb
- tri->handle = fmemopen(tri->decoded_buffer, len1, "rb"); // change handle to decoded one
+
+ tri->handle = fmemopen(tri->decoded_buffer, len, "rb"); // change handle to decoded one
SysPrintf(_("OK\n"), tri->filepath);
}
tri->cddatype = BIN;
- return ret;
+ return len;
#endif
}
// this function tries to get the .toc file of the given .bin
// the necessary data is put into the ti (trackinformation)-array
static int parsetoc(const char *isofile) {
- char tocname[MAXPATHLEN];
+ char tocname[MAXPATHLEN], filename[MAXPATHLEN], *ptr;
FILE *fi;
char linebuf[256], tmp[256], name[256];
char *token;
@@ -375,6 +435,14 @@ static int parsetoc(const char *isofile) {
}
}
+ strcpy(filename, tocname);
+ if ((ptr = strrchr(filename, '/')) == NULL)
+ ptr = strrchr(filename, '\\');
+ if (ptr == NULL)
+ *ptr = 0;
+ else
+ *(ptr + 1) = 0;
+
memset(&ti, 0, sizeof(ti));
cddaBigEndian = TRUE; // cdrdao uses big-endian for CD Audio
@@ -425,6 +493,8 @@ static int parsetoc(const char *isofile) {
else {
sscanf(linebuf, "DATAFILE \"%[^\"]\" %8s", name, time);
tok2msf((char *)&time, (char *)&ti[numtracks].length);
+ strcat(filename, name);
+ ti[numtracks].handle = fopen(filename, "rb");
}
}
else if (!strcmp(token, "FILE")) {
@@ -464,6 +534,8 @@ static int parsetoc(const char *isofile) {
}
}
}
+ if (numtracks > 0)
+ cdHandle = fopen(filename, "rb");
fclose(fi);
@@ -471,160 +543,7 @@ static int parsetoc(const char *isofile) {
}
-int(*cdimg_read_func_archive)(FILE *f, unsigned int base, void *dest, int sector) = NULL;
-#ifdef HAVE_LIBARCHIVE
-#include <archive.h>
-#include <archive_entry.h>
-
-struct archive *a = NULL;
-u32 len_uncompressed_buffer = 0;
-void *cdimage_buffer_mem = NULL;
-FILE* cdimage_buffer = NULL; //cdHandle to store file
-
-int aropen(FILE* fparchive, const char* _fn) {
- s32 r;
- u64 length = 0, length_peek;
- boolean use_temp_file = FALSE; // TODO make a config param
- static struct archive_entry *ae = NULL;
- struct archive_entry *ae_peek;
-
- if (a == NULL && cdimage_buffer == NULL) {
- // We open file twice. First to peek sizes. This nastyness due used interface.
- a = archive_read_new();
- r = archive_read_support_compression_all(a);
- r = archive_read_support_format_all(a);
- //r = archive_read_support_filter_all(a);
- //r = archive_read_support_format_raw(a);
- //r = archive_read_open_FILE(a, archive);
- archive_read_open_filename(a, _fn, 75 * CD_FRAMESIZE_RAW);
- if (r != ARCHIVE_OK) {
- SysPrintf("Archive open failed (%i).\n", r);
- archive_read_free(a);
- a = NULL;
- return -1;
- }
- // Get the biggest file in archive
- while ((r = archive_read_next_header(a, &ae_peek)) == ARCHIVE_OK) {
- length_peek = archive_entry_size(ae_peek);
- //printf("Entry canditate %s %i\n", archive_entry_pathname(ae_peek), length_peek);
- length = MAX(length_peek, length);
- ae = (ae == NULL ? ae_peek : ae);
- }
- archive_read_free(a);
- if (ae == NULL) {
- SysPrintf("Archive entry read failed (%i).\n", r);
- a = NULL;
- return -1;
- }
- //Now really open the file
- a = archive_read_new();
- r = archive_read_support_compression_all(a);
- r = archive_read_support_format_all(a);
- archive_read_open_filename(a, _fn, 75 * CD_FRAMESIZE_RAW);
- while ((r = archive_read_next_header(a, &ae)) == ARCHIVE_OK) {
- length_peek = archive_entry_size(ae);
- if (length_peek == length) {
- //ae = ae_peek;
- SysPrintf(" -- Selected entry %s %i", archive_entry_pathname(ae), length);
- break;
- }
- }
-
- len_uncompressed_buffer = length ? length : 700 * 1024 * 1024;
- }
-
- if (use_temp_file && (cdimage_buffer == NULL || cdHandle != cdimage_buffer)) {
- cdimage_buffer = fopen("/tmp/pcsxr.tmp.bin", "w+b");
- }
- else if (!use_temp_file && (cdimage_buffer == NULL || cdHandle != cdimage_buffer)) {
- if (cdimage_buffer_mem == NULL && ((cdimage_buffer_mem = malloc(len_uncompressed_buffer)) == NULL)) {
- SysMessage("Could not reserve enough memory for full image buffer.\n");
- exit(3);
- }
- //printf("Memory ok2 %u %p\n", len_uncompressed_buffer, cdimage_buffer_mem);
- cdimage_buffer = fmemopen(cdimage_buffer_mem, len_uncompressed_buffer, "w+b");
- }
- else {
-
- }
-
- if (cdHandle != cdimage_buffer) {
- fclose(cdHandle); // opened thru archive so this not needed anymore
- cdHandle = cdimage_buffer;
- }
-
- return 0;
-}
-
-static int cdread_archive(FILE *f, unsigned int base, void *dest, int sector)
-{
- s32 r;
- size_t size;
- size_t readsize;
- static off_t offset = 0; // w/o read always or static/ftell
- const void *buff;
-
- // If not pointing to archive file but CDDA file or some other track
- if (f != cdHandle) {
- return cdimg_read_func_archive(f, base, dest, sector);
- }
-
- // Jump if already completely read
- if (a != NULL /*&& (ecm_file_detected || sector*CD_FRAMESIZE_RAW <= len_uncompressed_buffer)*/) {
- readsize = (sector + 1) * CD_FRAMESIZE_RAW;
- for (fseek(cdimage_buffer, offset, SEEK_SET); offset < readsize;) {
- r = archive_read_data_block(a, &buff, &size, &offset);
- offset += size;
- SysPrintf("ReadArchive seek:%u(%u) cur:%u(%u)\r", sector, readsize / 1024, offset / CD_FRAMESIZE_RAW, offset / 1024);
- fwrite(buff, size, 1, cdimage_buffer);
- if (r != ARCHIVE_OK) {
- //SysPrintf("End of archive.\n");
- archive_read_free(a);
- a = NULL;
- readsize = offset;
- fflush(cdimage_buffer);
- fseek(cdimage_buffer, 0, SEEK_SET);
- }
- }
- }
- else {
- //SysPrintf("ReadSectorArchSector: %u(%u)\n", sector, sector*CD_FRAMESIZE_RAW);
- }
-
- // TODO what causes req sector to be greater than CD size?
- r = cdimg_read_func_archive(cdimage_buffer, base, dest, sector);
- return r;
-}
-int handlearchive(const char *isoname, s32* accurate_length) {
- u32 read_size = accurate_length ? MSF2SECT(70, 70, 16) : MSF2SECT(0, 0, 16);
- int ret = -1;
- if ((ret = aropen(cdHandle, isoname)) == 0) {
- cdimg_read_func = cdread_archive;
- SysPrintf("[+archive]");
- if (!ecm_file_detected) {
-#ifndef ENABLE_ECM_FULL
- //Detect ECM inside archive
- cdimg_read_func_archive = cdread_normal;
- cdread_archive(cdHandle, 0, cdbuffer, read_size);
- if (handleecm("test.ecm", cdimage_buffer, accurate_length) != -1) {
- cdimg_read_func_archive = cdread_ecm_decode;
- cdimg_read_func = cdread_archive;
- SysPrintf("[+ecm]");
- }
-#endif
- }
- else {
- SysPrintf("[+ecm]");
- }
- }
- return ret;
-}
-#else
-int aropen(FILE* fparchive, const char* _fn) { return -1; }
-static int cdread_archive(FILE *f, unsigned int base, void *dest, int sector) { return -1; }
-int handlearchive(const char *isoname, s32* accurate_length) { return -1; }
-#endif
-
+int handlearchive(const char *isoname, s32* accurate_length);
// this function tries to get the .cue file of the given .bin
// the necessary data is put into the ti (trackinformation)-array
static int parsecue(const char *isofile) {
@@ -715,9 +634,8 @@ static int parsecue(const char *isofile) {
// Send to decoder if not lazy decoding
if (!lazy_decode) {
- do_decode_cdda(&(ti[numtracks]), numtracks);
- fseek(ti[numtracks].handle, 0, SEEK_END);
- file_len = ftell(ti[numtracks].handle) / CD_FRAMESIZE_RAW; // accurate length
+ SysPrintf("\n");
+ file_len = do_decode_cdda(&(ti[numtracks]), numtracks) / CD_FRAMESIZE_RAW;
}
}
}
@@ -1301,7 +1219,7 @@ static int cdread_sub_mixed(FILE *f, unsigned int base, void *dest, int sector)
return ret;
}
-static int uncompress2(void *out, unsigned long *out_size, void *in, unsigned long in_size)
+static int uncompress2_internal(void *out, unsigned long *out_size, void *in, unsigned long in_size)
{
static z_stream z;
int ret = 0;
@@ -1380,7 +1298,7 @@ static int cdread_compressed(FILE *f, unsigned int base, void *dest, int sector)
if (is_compressed) {
cdbuffer_size_expect = sizeof(compr_img->buff_raw[0]) << compr_img->block_shift;
cdbuffer_size = cdbuffer_size_expect;
- ret = uncompress2(compr_img->buff_raw[0], &cdbuffer_size, compr_img->buff_compressed, size);
+ ret = uncompress2_internal(compr_img->buff_raw[0], &cdbuffer_size, compr_img->buff_compressed, size);
if (ret != 0) {
SysPrintf("uncompress failed with %d for block %d, sector %d\n",
ret, block, sector);
@@ -1644,6 +1562,157 @@ int handleecm(const char *isoname, FILE* cdh, s32* accurate_length) {
return -1;
}
+int (*cdimg_read_func_archive)(FILE *f, unsigned int base, void *dest, int sector) = NULL;
+#ifdef HAVE_LIBARCHIVE
+#include <archive.h>
+#include <archive_entry.h>
+
+struct archive *a = NULL;
+u32 len_uncompressed_buffer = 0;
+void *cdimage_buffer_mem = NULL;
+FILE* cdimage_buffer = NULL; //cdHandle to store file
+
+int aropen(FILE* fparchive, const char* _fn) {
+ s32 r;
+ u64 length = 0, length_peek;
+ boolean use_temp_file = FALSE; // TODO make a config param
+ static struct archive_entry *ae=NULL;
+ struct archive_entry *ae_peek;
+
+ if (a == NULL && cdimage_buffer == NULL) {
+ // We open file twice. First to peek sizes. This nastyness due used interface.
+ a = archive_read_new();
+// r = archive_read_support_filter_all(a);
+ r = archive_read_support_format_all(a);
+ //r = archive_read_support_filter_all(a);
+ //r = archive_read_support_format_raw(a);
+ //r = archive_read_open_FILE(a, archive);
+ archive_read_open_filename(a, _fn, 75*CD_FRAMESIZE_RAW);
+ if (r != ARCHIVE_OK) {
+ SysPrintf("Archive open failed (%i).\n", r);
+ archive_read_free(a);
+ a = NULL;
+ return -1;
+ }
+ // Get the biggest file in archive
+ while ((r=archive_read_next_header(a, &ae_peek)) == ARCHIVE_OK) {
+ length_peek = archive_entry_size(ae_peek);
+ //printf("Entry canditate %s %i\n", archive_entry_pathname(ae_peek), length_peek);
+ length = MAX(length_peek, length);
+ ae = (ae == NULL ? ae_peek : ae);
+ }
+ archive_read_free(a);
+ if (ae == NULL) {
+ SysPrintf("Archive entry read failed (%i).\n", r);
+ a = NULL;
+ return -1;
+ }
+ //Now really open the file
+ a = archive_read_new();
+// r = archive_read_support_compression_all(a);
+ r = archive_read_support_format_all(a);
+ archive_read_open_filename(a, _fn, 75*CD_FRAMESIZE_RAW);
+ while ((r=archive_read_next_header(a, &ae)) == ARCHIVE_OK) {
+ length_peek = archive_entry_size(ae);
+ if (length_peek == length) {
+ //ae = ae_peek;
+ SysPrintf(" -- Selected entry %s %i", archive_entry_pathname(ae), length);
+ break;
+ }
+ }
+
+ len_uncompressed_buffer = length?length:700*1024*1024;
+ }
+
+ if (use_temp_file && (cdimage_buffer == NULL || cdHandle != cdimage_buffer)) {
+ cdimage_buffer = fopen("/tmp/pcsxr.tmp.bin", "w+b");
+ }
+ else if (!use_temp_file && (cdimage_buffer == NULL || cdHandle != cdimage_buffer)) {
+ if (cdimage_buffer_mem == NULL && ((cdimage_buffer_mem = malloc(len_uncompressed_buffer)) == NULL)) {
+ SysMessage("Could not reserve enough memory for full image buffer.\n");
+ exit(3);
+ }
+ //printf("Memory ok2 %u %p\n", len_uncompressed_buffer, cdimage_buffer_mem);
+ cdimage_buffer = fmemopen(cdimage_buffer_mem, len_uncompressed_buffer, "w+b");
+ } else {
+
+ }
+
+ if (cdHandle != cdimage_buffer) {
+ fclose(cdHandle); // opened thru archive so this not needed anymore
+ cdHandle = cdimage_buffer;
+ }
+
+ return 0;
+}
+
+static int cdread_archive(FILE *f, unsigned int base, void *dest, int sector)
+{
+ s32 r;
+ size_t size;
+ size_t readsize;
+ static off_t offset = 0; // w/o read always or static/ftell
+ const void *buff;
+
+ // If not pointing to archive file but CDDA file or some other track
+ if(f != cdHandle) {
+ return cdimg_read_func_archive(f, base, dest, sector);
+ }
+
+ // Jump if already completely read
+ if (a != NULL /*&& (ecm_file_detected || sector*CD_FRAMESIZE_RAW <= len_uncompressed_buffer)*/) {
+ readsize = (sector+1) * CD_FRAMESIZE_RAW;
+ for (fseek(cdimage_buffer, offset, SEEK_SET); offset < readsize;) {
+ r = archive_read_data_block(a, &buff, &size, &offset);
+ offset += size;
+ SysPrintf("ReadArchive seek:%u(%u) cur:%u(%u)\r", sector, readsize/1024, offset/CD_FRAMESIZE_RAW, offset/1024);
+ fwrite(buff, size, 1, cdimage_buffer);
+ if (r != ARCHIVE_OK) {
+ //SysPrintf("End of archive.\n");
+ archive_read_free(a);
+ a = NULL;
+ readsize = offset;
+ fflush(cdimage_buffer);
+ fseek(cdimage_buffer, 0, SEEK_SET);
+ }
+ }
+ } else {
+ //SysPrintf("ReadSectorArchSector: %u(%u)\n", sector, sector*CD_FRAMESIZE_RAW);
+ }
+
+ // TODO what causes req sector to be greater than CD size?
+ r = cdimg_read_func_archive(cdimage_buffer, base, dest, sector);
+ return r;
+}
+int handlearchive(const char *isoname, s32* accurate_length) {
+ u32 read_size = accurate_length?MSF2SECT(70,70,16) : MSF2SECT(0,0,16);
+ int ret = -1;
+ if ((ret=aropen(cdHandle, isoname)) == 0) {
+ cdimg_read_func = cdread_archive;
+ SysPrintf("[+archive]");
+ if (!ecm_file_detected) {
+#ifndef ENABLE_ECM_FULL
+ //Detect ECM inside archive
+ cdimg_read_func_archive = cdread_normal;
+ cdread_archive(cdHandle, 0, cdbuffer, read_size);
+ if (handleecm("test.ecm", cdimage_buffer, accurate_length) != -1) {
+ cdimg_read_func_archive = cdread_ecm_decode;
+ cdimg_read_func = cdread_archive;
+ SysPrintf("[+ecm]");
+ }
+#endif
+ } else {
+ SysPrintf("[+ecm]");
+ }
+ }
+ return ret;
+}
+#else
+int aropen(FILE* fparchive, const char* _fn) {return -1;}
+static int cdread_archive(FILE *f, unsigned int base, void *dest, int sector) {return -1;}
+int handlearchive(const char *isoname, s32* accurate_length) {return -1;}
+#endif
+
static unsigned char * CALLBACK ISOgetBuffer_compr(void) {
return compr_img->buff_raw[compr_img->sector_in_blk] + 12;
}
diff --git a/pixmaps/Makefile.am b/pixmaps/Makefile.am
deleted file mode 100644
index e77fda4e..00000000
--- a/pixmaps/Makefile.am
+++ /dev/null
@@ -1,7 +0,0 @@
-pixmapdir = "$(datadir)/pcsxr"
-pixmap_DATA = pcsxr.png iso-open.png iso-reopen.png cd.png cdr.png gpu.png memcard.png pad.png play.png sio1.png spu.png
-
-icondir = "$(datadir)/pixmaps"
-icon_DATA = pcsxr-icon.png
-
-EXTRA_DIST = pcsxr.png iso-open.png iso-reopen.png cd.png cdr.png gpu.png memcard.png pad.png play.png sio1.png spu.png pcsxr-icon.png
diff --git a/pixmaps/cd.png b/pixmaps/cd.png
deleted file mode 100755
index 1f07c0e7..00000000
--- a/pixmaps/cd.png
+++ /dev/null
Binary files differ
diff --git a/pixmaps/gpu.png b/pixmaps/gpu.png
deleted file mode 100755
index e49595f3..00000000
--- a/pixmaps/gpu.png
+++ /dev/null
Binary files differ
diff --git a/pixmaps/iso-open.png b/pixmaps/iso-open.png
deleted file mode 100755
index 3daaea2a..00000000
--- a/pixmaps/iso-open.png
+++ /dev/null
Binary files differ
diff --git a/pixmaps/iso-reopen.png b/pixmaps/iso-reopen.png
deleted file mode 100755
index 3294074a..00000000
--- a/pixmaps/iso-reopen.png
+++ /dev/null
Binary files differ
diff --git a/pixmaps/pad.png b/pixmaps/pad.png
deleted file mode 100755
index 186e7be8..00000000
--- a/pixmaps/pad.png
+++ /dev/null
Binary files differ
diff --git a/pixmaps/pcsxr-icon.png b/pixmaps/pcsxr-icon.png
deleted file mode 100755
index 2cc9839f..00000000
--- a/pixmaps/pcsxr-icon.png
+++ /dev/null
Binary files differ
diff --git a/pixmaps/pcsxr.png b/pixmaps/pcsxr.png
deleted file mode 100755
index 8dc59052..00000000
--- a/pixmaps/pcsxr.png
+++ /dev/null
Binary files differ
diff --git a/pixmaps/sio1.png b/pixmaps/sio1.png
deleted file mode 100644
index e9340ade..00000000
--- a/pixmaps/sio1.png
+++ /dev/null
Binary files differ
diff --git a/pixmaps/spu.png b/pixmaps/spu.png
deleted file mode 100755
index 53c9ac51..00000000
--- a/pixmaps/spu.png
+++ /dev/null
Binary files differ
diff --git a/plugins/bladesio1/Makefile.am b/plugins/bladesio1/Makefile.am
index 9e0b6ab5..badd57e5 100644
--- a/plugins/bladesio1/Makefile.am
+++ b/plugins/bladesio1/Makefile.am
@@ -12,9 +12,32 @@ AM_CPPFLAGS = -DLOCALE_DIR=\"${datadir}/locale/\" \
-I$(top_srcdir)/libpcsxcore -I../../include
bin_PROGRAMS = cfgBladeSio1
-cfgBladeSio1_SOURCES = gui.c sio1.h
+cfgBladeSio1_SOURCES = gui.c sio1.h GtkResources.c GtkResources.h
cfgBladeSio1_LDADD = $(GTK3_LIBS)
-glade_DATA = sio1.ui
-gladedir = $(datadir)/psemu/
+# gresource.xml is dynamically generated in CMake. Mirror that here in a static way.
+define gresource_xml =
+<?xml version="1.0" encoding="UTF-8"?>
+<gresources>
+ <gresource prefix="/org/pcsxr/bladesio1">
+ <file>sio1.ui</file>
+ </gresource>
+</gresources>
+endef
+
+bladesio1.gresource.xml:
+ $(file >$@,$(gresource_xml))
+bladesio1_gresource: bladesio1.gresource.xml
+ $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/$<)
+GtkResources.c: bladesio1.gresource.xml $(bladesio1_gresource)
+ $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) --generate-source --c-name bladesio1 $<
+GtkResources.h: bladesio1.gresource.xml $(bladesio1_gresource)
+ $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) --generate-header --c-name bladesio1 $<
+
+
+#glade_DATA = sio1.ui
+#gladedir = $(datadir)/psemu/
EXTRA_DIST = $(glade_DATA)
+
+CLEANFILES = bladesio1.gresource.xml GtkResources.c GtkResources.h
+
diff --git a/plugins/bladesio1/gui.c b/plugins/bladesio1/gui.c
index 99979f15..37ffb83f 100644
--- a/plugins/bladesio1/gui.c
+++ b/plugins/bladesio1/gui.c
@@ -103,7 +103,7 @@ void configure() {
builder = gtk_builder_new();
- if(!gtk_builder_add_from_file(builder, DATADIR "sio1.ui", NULL))
+ if(!gtk_builder_add_from_resource(builder, "/org/pcsxr/bladesio1/sio1.ui", NULL))
g_warning("We could not load the interface!");
settingsRead();
@@ -166,6 +166,7 @@ void about() {
GtkWidget *widget;
widget = gtk_about_dialog_new();
+ gtk_about_dialog_set_logo_icon_name (GTK_ABOUT_DIALOG(widget), "help-about");
gtk_about_dialog_set_program_name(GTK_ABOUT_DIALOG(widget), "Link Cable");
gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(widget), "1.0");
gtk_about_dialog_set_authors(GTK_ABOUT_DIALOG(widget), authors);
diff --git a/plugins/dfcdrom/Makefile.am b/plugins/dfcdrom/Makefile.am
index 6bc42c35..1f87998b 100644
--- a/plugins/dfcdrom/Makefile.am
+++ b/plugins/dfcdrom/Makefile.am
@@ -27,9 +27,32 @@ AM_CPPFLAGS = -DLOCALE_DIR=\"${datadir}/locale/\" \
-I$(top_srcdir)/libpcsxcore -I../../include
bin_PROGRAMS = cfgDFCdrom
-cfgDFCdrom_SOURCES = cdrcfg-0.1df/main.c
+cfgDFCdrom_SOURCES = cdrcfg-0.1df/main.c GtkResources.c GtkResources.h
cfgDFCdrom_LDADD = $(GTK3_LIBS)
-glade_DATA = cdrcfg-0.1df/dfcdrom.ui
-gladedir = $(datadir)/psemu/
+# gresource.xml is dynamically generated in CMake. Mirror that here in a static way.
+define gresource_xml =
+<?xml version="1.0" encoding="UTF-8"?>
+<gresources>
+ <gresource prefix="/org/pcsxr/dfcdrom">
+ <file>dfcdrom.ui</file>
+ </gresource>
+</gresources>
+endef
+
+dfcdrom.gresource.xml:
+ $(file >$@,$(gresource_xml))
+dfcdrom_gresource: dfcdrom.gresource.xml
+ $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir)/cdrcfg-0.1df --generate-dependencies $(srcdir)/$<)
+GtkResources.c: dfcdrom.gresource.xml $(dfcdrom_gresource)
+ $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir)/cdrcfg-0.1df --generate-source --c-name dfcdrom $<
+GtkResources.h: dfcdrom.gresource.xml $(dfcdrom_gresource)
+ $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir)/cdrcfg-0.1df --generate-header --c-name dfcdrom $<
+
+
+#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/dfcdrom/cdrcfg-0.1df/dfcdrom.ui b/plugins/dfcdrom/cdrcfg-0.1df/dfcdrom.ui
index c282b2a1..988dee16 100644
--- a/plugins/dfcdrom/cdrcfg-0.1df/dfcdrom.ui
+++ b/plugins/dfcdrom/cdrcfg-0.1df/dfcdrom.ui
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.19.0 -->
<interface>
- <!-- interface-requires gtk+ 3.0 -->
+ <requires lib="gtk+" version="3.0"/>
<object class="GtkAdjustment" id="adjustmentCacheSize">
<property name="lower">32</property>
<property name="upper">2048</property>
@@ -13,6 +14,76 @@
<property name="step_increment">1</property>
<property name="page_increment">4</property>
</object>
+ <object class="GtkListStore" id="liststoreReadMode">
+ <columns>
+ <!-- column-name Item -->
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">Normal (No Cache)</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Threaded - Faster (With Cache)</col>
+ </row>
+ </data>
+ </object>
+ <object class="GtkListStore" id="liststoreSpindownTime">
+ <columns>
+ <!-- column-name Item -->
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">Default</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">125ms</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">250ms</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">500ms</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">1s</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">2s</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">4s</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">8s</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">16s</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">32s</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">1min</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">2min</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">4min</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">8min</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">16min</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">32min</col>
+ </row>
+ </data>
+ </object>
<object class="GtkDialog" id="CfgWnd">
<property name="visible">True</property>
<property name="can_focus">False</property>
@@ -58,16 +129,17 @@
</packing>
</child>
<child>
- <object class="GtkVBox" id="vbox1">
+ <object class="GtkBox" id="vbox1">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
<child>
<object class="GtkFrame" id="frame1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label_xalign">0</property>
<child>
- <object class="GtkHBox" id="hbox5">
+ <object class="GtkBox" id="hbox5">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="border_width">5</property>
@@ -104,11 +176,12 @@
<property name="can_focus">False</property>
<property name="label_xalign">0</property>
<child>
- <object class="GtkVBox" id="vbox2">
+ <object class="GtkBox" id="vbox2">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
<child>
- <object class="GtkHBox" id="hbox1">
+ <object class="GtkBox" id="hbox1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="border_width">5</property>
@@ -117,8 +190,8 @@
<object class="GtkLabel" id="readmode_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Select read mode:</property>
+ <property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
@@ -152,7 +225,7 @@
</packing>
</child>
<child>
- <object class="GtkHBox" id="hbox2">
+ <object class="GtkBox" id="hbox2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="border_width">5</property>
@@ -161,8 +234,8 @@
<object class="GtkLabel" id="label4">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Cache Size (Def. 64):</property>
+ <property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
@@ -195,7 +268,7 @@
</packing>
</child>
<child>
- <object class="GtkHBox" id="hbox4">
+ <object class="GtkBox" id="hbox4">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="border_width">5</property>
@@ -204,8 +277,8 @@
<object class="GtkLabel" id="label7">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Spindown Time:</property>
+ <property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
@@ -240,7 +313,7 @@
</packing>
</child>
<child>
- <object class="GtkHBox" id="hbox3">
+ <object class="GtkBox" id="hbox3">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="border_width">5</property>
@@ -249,8 +322,8 @@
<object class="GtkLabel" id="label5">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Cdrom Speed (Def. 0 = MAX):</property>
+ <property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
@@ -321,74 +394,4 @@
<action-widget response="-6">cfg_closebutton</action-widget>
</action-widgets>
</object>
- <object class="GtkListStore" id="liststoreReadMode">
- <columns>
- <!-- column-name Item -->
- <column type="gchararray"/>
- </columns>
- <data>
- <row>
- <col id="0" translatable="yes">Normal (No Cache)</col>
- </row>
- <row>
- <col id="0" translatable="yes">Threaded - Faster (With Cache)</col>
- </row>
- </data>
- </object>
- <object class="GtkListStore" id="liststoreSpindownTime">
- <columns>
- <!-- column-name Item -->
- <column type="gchararray"/>
- </columns>
- <data>
- <row>
- <col id="0" translatable="yes">Default</col>
- </row>
- <row>
- <col id="0" translatable="yes">125ms</col>
- </row>
- <row>
- <col id="0" translatable="yes">250ms</col>
- </row>
- <row>
- <col id="0" translatable="yes">500ms</col>
- </row>
- <row>
- <col id="0" translatable="yes">1s</col>
- </row>
- <row>
- <col id="0" translatable="yes">2s</col>
- </row>
- <row>
- <col id="0" translatable="yes">4s</col>
- </row>
- <row>
- <col id="0" translatable="yes">8s</col>
- </row>
- <row>
- <col id="0" translatable="yes">16s</col>
- </row>
- <row>
- <col id="0" translatable="yes">32s</col>
- </row>
- <row>
- <col id="0" translatable="yes">1min</col>
- </row>
- <row>
- <col id="0" translatable="yes">2min</col>
- </row>
- <row>
- <col id="0" translatable="yes">4min</col>
- </row>
- <row>
- <col id="0" translatable="yes">8min</col>
- </row>
- <row>
- <col id="0" translatable="yes">16min</col>
- </row>
- <row>
- <col id="0" translatable="yes">32min</col>
- </row>
- </data>
- </object>
</interface>
diff --git a/plugins/dfcdrom/cdrcfg-0.1df/main.c b/plugins/dfcdrom/cdrcfg-0.1df/main.c
index cc55aa36..a8aa4b67 100755
--- a/plugins/dfcdrom/cdrcfg-0.1df/main.c
+++ b/plugins/dfcdrom/cdrcfg-0.1df/main.c
@@ -208,7 +208,7 @@ long CDRconfigure() {
builder = gtk_builder_new();
- if (!gtk_builder_add_from_file(builder, DATADIR "dfcdrom.ui", NULL)) {
+ if (!gtk_builder_add_from_resource(builder, "/org/pcsxr/dfcdrom/dfcdrom.ui", NULL)) {
g_warning("We could not load the interface!");
return 0;
}
@@ -256,6 +256,7 @@ void CDRabout() {
"Wei Mingzhi <whistler_wmz@users.sf.net>", NULL};
widget = gtk_about_dialog_new();
+ gtk_about_dialog_set_logo_icon_name (GTK_ABOUT_DIALOG(widget), "help-about");
gtk_about_dialog_set_program_name(GTK_ABOUT_DIALOG(widget), "CD-ROM Device Reader");
gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(widget), "1.0");
gtk_about_dialog_set_authors(GTK_ABOUT_DIALOG(widget), authors);
@@ -276,13 +277,13 @@ int main(int argc, char *argv[]) {
gtk_init(&argc, &argv);
if (argc < 2) {
- printf ("Usage: cfgBladeSio1 {about | configure}\n");
+ printf ("Usage: cfgDFCdrom {about | configure}\n");
return 0;
}
if (strcmp(argv[1], "configure") != 0 &&
strcmp(argv[1], "about") != 0) {
- printf ("Usage: cfgBladeSio1 {about | configure}\n");
+ printf ("Usage: cfgDFCdrom {about | configure}\n");
return 0;
}
diff --git a/plugins/dfinput/Makefile.am b/plugins/dfinput/Makefile.am
index 70f86fd1..458259c5 100644
--- a/plugins/dfinput/Makefile.am
+++ b/plugins/dfinput/Makefile.am
@@ -13,9 +13,31 @@ AM_CPPFLAGS = -DLOCALE_DIR=\"${datadir}/locale/\" \
-I../../include -I$(top_srcdir)/libpcsxcore $(SDL2_CFLAGS) $(SDL_CFLAGS)
bin_PROGRAMS = cfgDFInput
-cfgDFInput_SOURCES = cfg-gtk.c pad.h
+cfgDFInput_SOURCES = cfg-gtk.c pad.h GtkResources.c GtkResources.h
cfgDFInput_LDADD = $(GTK3_LIBS) $(SDL2_LIBS) $(SDL_LIBS) -lX11
-glade_DATA = dfinput.ui
-gladedir = $(datadir)/psemu/
+# gresource.xml is dynamically generated in CMake. Mirror that here in a static way.
+define gresource_xml =
+<?xml version="1.0" encoding="UTF-8"?>
+<gresources>
+ <gresource prefix="/org/pcsxr/dfinput">
+ <file>dfinput.ui</file>
+ </gresource>
+</gresources>
+endef
+
+dfinput.gresource.xml:
+ $(file >$@,$(gresource_xml))
+dfinput_gresource: dfinput.gresource.xml
+ $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/$<)
+GtkResources.c: dfinput.gresource.xml $(dfinput_gresource)
+ $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) --generate-source --c-name dfinput $<
+GtkResources.h: dfinput.gresource.xml $(dfinput_gresource)
+ $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) --generate-header --c-name dfinput $<
+
+
+#glade_DATA = dfinput.ui
+#gladedir = $(datadir)/psemu/
EXTRA_DIST = $(glade_DATA)
+
+CLEANFILES = dfinput.gresource.xml GtkResources.c GtkResources.h
diff --git a/plugins/dfinput/cfg-gtk.c b/plugins/dfinput/cfg-gtk.c
index 5f26040f..bcc733d1 100755
--- a/plugins/dfinput/cfg-gtk.c
+++ b/plugins/dfinput/cfg-gtk.c
@@ -246,7 +246,6 @@ static void UpdateKeyList() {
gtk_tree_view_set_model(GTK_TREE_VIEW(widget), GTK_TREE_MODEL(store));
g_object_unref(G_OBJECT(store));
- gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(widget), TRUE);
gtk_widget_show(widget);
}
}
@@ -327,6 +326,7 @@ static void OnDeviceChanged(GtkWidget *widget, gpointer user_data) {
static void OnTypeChanged(GtkWidget *widget, gpointer user_data) {
uint n = GPOINTER_TO_UINT(user_data), current = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
+ char checkbtn[9];
int padTypeList[] = {
PSE_PAD_TYPE_STANDARD,
@@ -336,6 +336,10 @@ static void OnTypeChanged(GtkWidget *widget, gpointer user_data) {
g.cfg.PadDef[n].Type = padTypeList[current];
+ snprintf(checkbtn, sizeof(checkbtn), "checkpv%d", n+1);
+ gtk_widget_set_sensitive(GTK_WIDGET(
+ gtk_builder_get_object(xml, checkbtn)), (g.cfg.PadDef[n].Type == PSE_PAD_TYPE_ANALOGPAD));
+
UpdateKeyList();
}
@@ -351,6 +355,14 @@ static void OnVisualVibration2Toggled(GtkWidget *widget, gpointer user_data) {
g.cfg.PadDef[1].VisualVibration = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
}
+static void OnPhysicalVibration1Toggled(GtkWidget *widget, gpointer user_data) {
+ g.cfg.PadDef[0].PhysicalVibration = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
+}
+
+static void OnPhysicalVibration2Toggled(GtkWidget *widget, gpointer user_data) {
+ g.cfg.PadDef[1].PhysicalVibration = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
+}
+
static void OnHideCursorToggled(GtkWidget *widget, gpointer user_data) {
(void)user_data; // unused
g.cfg.HideCursor = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
@@ -612,9 +624,9 @@ static void PopulateDevList() {
for (j = 0; j < n; j++) {
#if SDL_VERSION_ATLEAST(2, 0, 0)
SDL_Joystick *joystick = SDL_JoystickOpen(j);
- sprintf(buf, "%d: %s", j + 1, SDL_JoystickName(joystick));
+ snprintf(buf, sizeof(buf), "%d: %s", j + 1, SDL_JoystickName(joystick));
#else
- sprintf(buf, "%d: %s", j + 1, SDL_JoystickName(j));
+ snprintf(buf, sizeof(buf), "%d: %s", j + 1, SDL_JoystickName(j));
#endif
gtk_list_store_append(store, &iter);
gtk_list_store_set(store, &iter, 0, buf, -1);
@@ -655,7 +667,7 @@ long PADconfigure() {
xml = gtk_builder_new();
- if (!gtk_builder_add_from_file(xml, DATADIR "dfinput.ui", NULL)) {
+ if (!gtk_builder_add_from_resource(xml, "/org/pcsxr/dfinput/dfinput.ui", NULL)) {
g_warning("We could not load the interface!");
return -1;
}
@@ -748,12 +760,14 @@ long PADconfigure() {
widget = GTK_WIDGET(gtk_builder_get_object(xml, "combotype1"));
gtk_combo_box_set_active(GTK_COMBO_BOX(widget),
padTypeList[g.cfg.PadDef[0].Type]);
+ OnTypeChanged(widget, GUINT_TO_POINTER(0u));
g_signal_connect_data(G_OBJECT(widget), "changed",
G_CALLBACK(OnTypeChanged), GUINT_TO_POINTER(0u), NULL, G_CONNECT_AFTER);
widget = GTK_WIDGET(gtk_builder_get_object(xml, "combotype2"));
gtk_combo_box_set_active(GTK_COMBO_BOX(widget),
padTypeList[g.cfg.PadDef[1].Type]);
+ OnTypeChanged(widget, GUINT_TO_POINTER(1u));
g_signal_connect_data(G_OBJECT(widget), "changed",
G_CALLBACK(OnTypeChanged), GUINT_TO_POINTER(1u), NULL, G_CONNECT_AFTER);
@@ -767,6 +781,16 @@ long PADconfigure() {
g_signal_connect_data(G_OBJECT(widget), "toggled",
G_CALLBACK(OnVisualVibration2Toggled), NULL, NULL, G_CONNECT_AFTER);
+ widget = GTK_WIDGET(gtk_builder_get_object(xml, "checkpv1"));
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), g.cfg.PadDef[0].PhysicalVibration);
+ g_signal_connect_data(G_OBJECT(widget), "toggled",
+ G_CALLBACK(OnPhysicalVibration1Toggled), NULL, NULL, G_CONNECT_AFTER);
+
+ widget = GTK_WIDGET(gtk_builder_get_object(xml, "checkpv2"));
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), g.cfg.PadDef[1].PhysicalVibration);
+ g_signal_connect_data(G_OBJECT(widget), "toggled",
+ G_CALLBACK(OnPhysicalVibration2Toggled), NULL, NULL, G_CONNECT_AFTER);
+
widget = GTK_WIDGET(gtk_builder_get_object(xml, widgetname_change[1]));
gtk_widget_set_sensitive(widget, FALSE);
g_signal_connect_data(G_OBJECT(widget), "clicked",
@@ -837,6 +861,7 @@ void PADabout() {
GtkWidget *widget;
widget = gtk_about_dialog_new();
+ gtk_about_dialog_set_logo_icon_name (GTK_ABOUT_DIALOG(widget), "help-about");
gtk_about_dialog_set_program_name(GTK_ABOUT_DIALOG(widget), "Gamepad/Keyboard Input");
gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(widget), "1.2");
gtk_about_dialog_set_authors(GTK_ABOUT_DIALOG(widget), authors);
diff --git a/plugins/dfinput/cfg.c b/plugins/dfinput/cfg.c
index f1d16673..622c3c34 100755
--- a/plugins/dfinput/cfg.c
+++ b/plugins/dfinput/cfg.c
@@ -37,6 +37,8 @@ static void SetDefaultConfig() {
g.cfg.PadDef[0].VisualVibration = 0;
g.cfg.PadDef[1].VisualVibration = 0;
+ g.cfg.PadDef[0].PhysicalVibration = 1;
+ g.cfg.PadDef[1].PhysicalVibration = 1;
// Pad1 keyboard
g.cfg.PadDef[0].KeyDef[DKEY_SELECT].Key = XK_c;
@@ -164,6 +166,8 @@ void LoadPADConfig() {
g.cfg.PadDef[current].Type = atoi(&buf[5]);
} else if (strncmp(buf, "VisualVibration=", 16) == 0) {
g.cfg.PadDef[current].VisualVibration = atoi(&buf[16]);
+ } else if (strncmp(buf, "PhysicalVibration=", 18) == 0) {
+ g.cfg.PadDef[current].PhysicalVibration = atoi(&buf[18]);
} else if (strncmp(buf, "EmuDev=", 7) == 0) {
g.cfg.E.DevNum = atoi(&buf[5]);
} else if (strncmp(buf, "EMU_FASTFORWARDS=", 17) == 0) {
@@ -362,6 +366,7 @@ void SavePADConfig() {
fprintf(fp, "DevNum=%d\n", g.cfg.PadDef[i].DevNum);
fprintf(fp, "Type=%d\n", g.cfg.PadDef[i].Type);
fprintf(fp, "VisualVibration=%d\n", g.cfg.PadDef[i].VisualVibration);
+ fprintf(fp, "PhysicalVibration=%d\n", g.cfg.PadDef[i].PhysicalVibration);
fprintf(fp, "Select=%d,%d,%d\n", g.cfg.PadDef[i].KeyDef[DKEY_SELECT].Key,
g.cfg.PadDef[i].KeyDef[DKEY_SELECT].JoyEvType, g.cfg.PadDef[i].KeyDef[DKEY_SELECT].J.d);
diff --git a/plugins/dfinput/dfinput.ui b/plugins/dfinput/dfinput.ui
index 17dfbdb9..2d291e22 100644
--- a/plugins/dfinput/dfinput.ui
+++ b/plugins/dfinput/dfinput.ui
@@ -1,23 +1,58 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.20.0 -->
<interface>
- <!-- interface-requires gtk+ 3.0 -->
+ <requires lib="gtk+" version="3.14"/>
+ <object class="GtkListStore" id="liststore1">
+ <columns>
+ <!-- column-name item -->
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">Digital Pad</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Analog Pad</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Mouse</col>
+ </row>
+ </data>
+ </object>
+ <object class="GtkListStore" id="liststore2">
+ <columns>
+ <!-- column-name item -->
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">Digital Pad</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Analog Pad</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Mouse</col>
+ </row>
+ </data>
+ </object>
<object class="GtkWindow" id="CfgWnd">
<property name="can_focus">False</property>
<child>
- <object class="GtkTable" id="table1">
+ <object class="GtkGrid" id="table1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="border_width">5</property>
- <property name="n_rows">2</property>
<child>
<object class="GtkNotebook" id="notebook1">
<property name="visible">True</property>
<property name="can_focus">True</property>
<child>
- <object class="GtkVBox" id="vbox1">
+ <object class="GtkBox" id="vbox1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="border_width">5</property>
+ <property name="orientation">vertical</property>
<property name="spacing">2</property>
<child>
<object class="GtkGrid" id="grid1">
@@ -29,14 +64,11 @@
<object class="GtkLabel" id="label10">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Device:</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
</packing>
</child>
<child>
@@ -47,22 +79,17 @@
<packing>
<property name="left_attach">1</property>
<property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label5">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Type:</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
</packing>
</child>
<child>
@@ -80,8 +107,6 @@
<packing>
<property name="left_attach">1</property>
<property name="top_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
</packing>
</child>
</object>
@@ -92,13 +117,37 @@
</packing>
</child>
<child>
- <object class="GtkCheckButton" id="checkvv1">
- <property name="label" translatable="yes">Visual vibration</property>
+ <object class="GtkBox">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="xalign">0</property>
- <property name="draw_indicator">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkCheckButton" id="checkvv1">
+ <property name="label" translatable="yes">Visual vibration</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="checkpv1">
+ <property name="label" translatable="yes">Physical vibration</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
</object>
<packing>
<property name="expand">False</property>
@@ -113,7 +162,6 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="border_width">5</property>
- <property name="window_placement_set">True</property>
<property name="shadow_type">etched-in</property>
<child>
<object class="GtkTreeView" id="treeview1">
@@ -132,7 +180,7 @@
</packing>
</child>
<child>
- <object class="GtkHButtonBox" id="hbuttonbox2">
+ <object class="GtkButtonBox" id="hbuttonbox2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">20</property>
@@ -143,7 +191,7 @@
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<child>
- <object class="GtkHBox" id="hbox1">
+ <object class="GtkBox" id="hbox1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
@@ -151,7 +199,7 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stock">gtk-edit</property>
- <property name="icon-size">1</property>
+ <property name="icon_size">1</property>
</object>
<packing>
<property name="expand">True</property>
@@ -186,7 +234,7 @@
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<child>
- <object class="GtkHBox" id="hbox2">
+ <object class="GtkBox" id="hbox2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
@@ -194,7 +242,7 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stock">gtk-undo</property>
- <property name="icon-size">1</property>
+ <property name="icon_size">1</property>
</object>
<packing>
<property name="expand">True</property>
@@ -243,10 +291,11 @@
</packing>
</child>
<child>
- <object class="GtkVBox" id="vbox2">
+ <object class="GtkBox" id="vbox2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="border_width">5</property>
+ <property name="orientation">vertical</property>
<property name="spacing">2</property>
<child>
<object class="GtkGrid" id="grid2">
@@ -258,14 +307,11 @@
<object class="GtkLabel" id="label11">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Device:</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
</packing>
</child>
<child>
@@ -276,22 +322,17 @@
<packing>
<property name="left_attach">1</property>
<property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label7">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Type:</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
</packing>
</child>
<child>
@@ -309,8 +350,6 @@
<packing>
<property name="left_attach">1</property>
<property name="top_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
</packing>
</child>
</object>
@@ -321,13 +360,37 @@
</packing>
</child>
<child>
- <object class="GtkCheckButton" id="checkvv2">
- <property name="label" translatable="yes">Visual vibration</property>
+ <object class="GtkBox">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="xalign">0</property>
- <property name="draw_indicator">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkCheckButton" id="checkvv2">
+ <property name="label" translatable="yes">Visual vibration</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="checkpv2">
+ <property name="label" translatable="yes">Physical vibration</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
</object>
<packing>
<property name="expand">False</property>
@@ -342,7 +405,6 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="border_width">5</property>
- <property name="window_placement_set">True</property>
<property name="shadow_type">etched-in</property>
<child>
<object class="GtkTreeView" id="treeview2">
@@ -361,7 +423,7 @@
</packing>
</child>
<child>
- <object class="GtkHButtonBox" id="hbuttonbox3">
+ <object class="GtkButtonBox" id="hbuttonbox3">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">20</property>
@@ -372,7 +434,7 @@
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<child>
- <object class="GtkHBox" id="hbox3">
+ <object class="GtkBox" id="hbox3">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
@@ -380,7 +442,7 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stock">gtk-edit</property>
- <property name="icon-size">1</property>
+ <property name="icon_size">1</property>
</object>
<packing>
<property name="expand">True</property>
@@ -415,7 +477,7 @@
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<child>
- <object class="GtkHBox" id="hbox4">
+ <object class="GtkBox" id="hbox4">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
@@ -423,7 +485,7 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stock">gtk-undo</property>
- <property name="icon-size">1</property>
+ <property name="icon_size">1</property>
</object>
<packing>
<property name="expand">True</property>
@@ -471,14 +533,16 @@
<property name="label" translatable="yes">Controller 2</property>
</object>
<packing>
+ <property name="position">1</property>
<property name="tab_fill">False</property>
</packing>
</child>
<child>
- <object class="GtkVBox" id="vbox_e">
+ <object class="GtkBox" id="vbox_e">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="border_width">5</property>
+ <property name="orientation">vertical</property>
<property name="spacing">2</property>
<child>
<object class="GtkGrid" id="grid_e">
@@ -490,14 +554,11 @@
<object class="GtkLabel" id="label_e2">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Device:</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
</packing>
</child>
<child>
@@ -508,8 +569,6 @@
<packing>
<property name="left_attach">1</property>
<property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
</packing>
</child>
</object>
@@ -526,7 +585,6 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="border_width">5</property>
- <property name="window_placement_set">True</property>
<property name="shadow_type">etched-in</property>
<child>
<object class="GtkTreeView" id="treeview_e">
@@ -545,7 +603,7 @@
</packing>
</child>
<child>
- <object class="GtkHButtonBox" id="hbuttonbox_e">
+ <object class="GtkButtonBox" id="hbuttonbox_e">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">20</property>
@@ -556,7 +614,7 @@
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<child>
- <object class="GtkHBox" id="hbox_e1">
+ <object class="GtkBox" id="hbox_e1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
@@ -564,7 +622,7 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stock">gtk-edit</property>
- <property name="icon-size">1</property>
+ <property name="icon_size">1</property>
</object>
<packing>
<property name="expand">True</property>
@@ -599,7 +657,7 @@
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<child>
- <object class="GtkHBox" id="hbox_e2">
+ <object class="GtkBox" id="hbox_e2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
@@ -607,7 +665,7 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stock">gtk-undo</property>
- <property name="icon-size">1</property>
+ <property name="icon_size">1</property>
</object>
<packing>
<property name="expand">True</property>
@@ -655,14 +713,16 @@
<property name="label" translatable="yes">Emulator keys</property>
</object>
<packing>
+ <property name="position">2</property>
<property name="tab_fill">False</property>
</packing>
</child>
<child>
- <object class="GtkVBox" id="vbox3">
+ <object class="GtkBox" id="vbox3">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="border_width">5</property>
+ <property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkCheckButton" id="checkmt">
@@ -670,7 +730,6 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
- <property name="xalign">0</property>
<property name="draw_indicator">True</property>
</object>
<packing>
@@ -685,7 +744,6 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
- <property name="xalign">0</property>
<property name="draw_indicator">True</property>
</object>
<packing>
@@ -700,7 +758,6 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
- <property name="xalign">0</property>
<property name="draw_indicator">True</property>
</object>
<packing>
@@ -726,9 +783,13 @@
</packing>
</child>
</object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ </packing>
</child>
<child>
- <object class="GtkHButtonBox" id="dialog-action_area1">
+ <object class="GtkButtonBox" id="dialog-action_area1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="layout_style">end</property>
@@ -748,46 +809,14 @@
</child>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="y_options">GTK_FILL</property>
</packing>
</child>
</object>
</child>
- </object>
- <object class="GtkListStore" id="liststore1">
- <columns>
- <!-- column-name item -->
- <column type="gchararray"/>
- </columns>
- <data>
- <row>
- <col id="0" translatable="yes">Digital Pad</col>
- </row>
- <row>
- <col id="0" translatable="yes">Analog Pad</col>
- </row>
- <row>
- <col id="0" translatable="yes">Mouse</col>
- </row>
- </data>
- </object>
- <object class="GtkListStore" id="liststore2">
- <columns>
- <!-- column-name item -->
- <column type="gchararray"/>
- </columns>
- <data>
- <row>
- <col id="0" translatable="yes">Digital Pad</col>
- </row>
- <row>
- <col id="0" translatable="yes">Analog Pad</col>
- </row>
- <row>
- <col id="0" translatable="yes">Mouse</col>
- </row>
- </data>
+ <child type="titlebar">
+ <placeholder/>
+ </child>
</object>
</interface>
diff --git a/plugins/dfinput/pad.c b/plugins/dfinput/pad.c
index bd3aef73..f413d0a4 100755
--- a/plugins/dfinput/pad.c
+++ b/plugins/dfinput/pad.c
@@ -17,11 +17,15 @@
*/
#include "pad.h"
-#if !SDL_VERSION_ATLEAST(2,0,0) && defined(__linux__)
+#if defined(__linux__)
+#include <sys/types.h>
+#include <sys/wait.h>
+#if !SDL_VERSION_ATLEAST(2,0,0)
#include <linux/input.h>
#include <sys/file.h>
#include <time.h>
#endif
+#endif
#if SDL_VERSION_ATLEAST(2,0,0)
int has_haptic;
@@ -122,10 +126,10 @@ long PADopen(unsigned long *Disp) {
#if SDL_VERSION_ATLEAST(2,0,0)
SDL_InitSubSystem(SDL_INIT_GAMECONTROLLER);
-
- has_haptic = 0;
- if (SDL_InitSubSystem(SDL_INIT_HAPTIC) == 0)
- has_haptic = 1;
+
+ has_haptic = 0;
+ if (SDL_InitSubSystem(SDL_INIT_HAPTIC) == 0)
+ has_haptic = 1;
#endif
InitSDLJoy();
@@ -491,7 +495,7 @@ unsigned char PADpoll(unsigned char value) {
if (buf == NULL) {
return 0;
}
-
+
switch (CurCmd) {
case CMD_READ_DATA_AND_VIBRATE:
if (g.cfg.PadDef[CurPad].Type == PSE_PAD_TYPE_ANALOGPAD) {
@@ -510,7 +514,7 @@ unsigned char PADpoll(unsigned char value) {
if (!JoyHapticRumble(CurPad, g.PadState[CurPad].VibF[0], g.PadState[CurPad].VibF[1])) {
//gpuVisualVibration(g.PadState[CurPad].VibF[0], g.PadState[CurPad].VibF[1]);
}
-
+
if(gpuVisualVibration != NULL &&
g.cfg.PadDef[CurPad].VisualVibration) {
gpuVisualVibration(g.PadState[CurPad].VibF[0], g.PadState[CurPad].VibF[1]);
diff --git a/plugins/dfinput/pad.h b/plugins/dfinput/pad.h
index 7cd8eefe..3051e6ad 100755
--- a/plugins/dfinput/pad.h
+++ b/plugins/dfinput/pad.h
@@ -158,6 +158,7 @@ typedef struct tagPadDef {
int8_t DevNum;
uint16_t Type;
uint8_t VisualVibration;
+ uint8_t PhysicalVibration;
KEYDEF KeyDef[DKEY_TOTAL];
KEYDEF AnalogDef[ANALOG_TOTAL][4];
#if SDL_VERSION_ATLEAST(2,0,0)
diff --git a/plugins/dfinput/sdljoy.c b/plugins/dfinput/sdljoy.c
index ee139517..3e8cc993 100755
--- a/plugins/dfinput/sdljoy.c
+++ b/plugins/dfinput/sdljoy.c
@@ -64,7 +64,7 @@ int JoyHapticRumble(int pad, uint32_t low, uint32_t high)
#if SDL_VERSION_ATLEAST(2,0,0)
float mag;
- if (g.PadState[pad].haptic) {
+ if (g.PadState[pad].haptic && g.cfg.PadDef[pad].PhysicalVibration) {
/* Stop the effect if it was playing. */
SDL_HapticRumbleStop(g.PadState[pad].haptic);
@@ -74,7 +74,7 @@ int JoyHapticRumble(int pad, uint32_t low, uint32_t high)
if(SDL_HapticRumblePlay(g.PadState[pad].haptic, mag, 500) != 0)
{
- printf("\nFailed to play rumble: %s\n", SDL_GetError());
+ printf("\nFailed to play rumble on pad %d with error: %s\n", pad, SDL_GetError());
return 1;
}
}
diff --git a/plugins/dfinput/xkb.c b/plugins/dfinput/xkb.c
index 53fb90d4..47eac669 100755
--- a/plugins/dfinput/xkb.c
+++ b/plugins/dfinput/xkb.c
@@ -46,7 +46,7 @@ void InitKeyboard() {
resumeScrSaver = 0;
if (g.cfg.PreventScrSaver) {
char buf[64];
- snprintf(buf, 64, "xdg-screensaver suspend 0x%x > /dev/null 2>&1", window);
+ snprintf(buf, sizeof(buf), "xdg-screensaver suspend 0x%x > /dev/null 2>&1", window);
if (pclose(popen(buf, "r")) == 0) {
resumeScrSaver = 1;
printf("Suspending Window ID 0x%x of activating screensaver.\n", window);
@@ -79,7 +79,7 @@ void DestroyKeyboard() {
if (resumeScrSaver) {
char buf[64];
printf("Resuming Window ID 0x%x to activate screensaver.\n", window);
- snprintf(buf, 64, "xdg-screensaver resume 0x%x", window);
+ snprintf(buf, sizeof(buf), "xdg-screensaver resume 0x%x", window);
FILE *phandle = popen(buf, "r");
pclose(phandle);
}
diff --git a/plugins/dfnet/Makefile.am b/plugins/dfnet/Makefile.am
index d639c652..f0a53ea0 100755
--- a/plugins/dfnet/Makefile.am
+++ b/plugins/dfnet/Makefile.am
@@ -12,9 +12,31 @@ AM_CPPFLAGS = -DLOCALE_DIR=\"${datadir}/locale/\" \
-I$(top_srcdir)/libpcsxcore -I../../include
bin_PROGRAMS = cfgDFNet
-cfgDFNet_SOURCES = gui.c
+cfgDFNet_SOURCES = gui.c GtkResources.c GtkResources.h
cfgDFNet_LDADD = $(GTK3_LIBS)
-glade_DATA = dfnet.ui
-gladedir = $(datadir)/psemu/
+# gresource.xml is dynamically generated in CMake. Mirror that here in a static way.
+define gresource_xml =
+<?xml version="1.0" encoding="UTF-8"?>
+<gresources>
+ <gresource prefix="/org/pcsxr/dfnet">
+ <file>dfnet.ui</file>
+ </gresource>
+</gresources>
+endef
+
+dfnet.gresource.xml:
+ $(file >$@,$(gresource_xml))
+dfnet_gresource: dfnet.gresource.xml
+ $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/$<)
+GtkResources.c: dfnet.gresource.xml $(dfnet_gresource)
+ $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) --generate-source --c-name dfnet $<
+GtkResources.h: dfnet.gresource.xml $(dfnet_gresource)
+ $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) --generate-header --c-name dfnet $<
+
+
+#glade_DATA = dfnet.ui
+#gladedir = $(datadir)/psemu/
EXTRA_DIST = $(glade_DATA)
+
+CLEANFILES = dfnet.gresource.xml GtkResources.c GtkResources.h
diff --git a/plugins/dfnet/dfnet.ui b/plugins/dfnet/dfnet.ui
index bdad3a1d..7ab884c2 100755..100644
--- a/plugins/dfnet/dfnet.ui
+++ b/plugins/dfnet/dfnet.ui
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.19.0 -->
<interface>
- <!-- interface-requires gtk+ 3.0 -->
+ <requires lib="gtk+" version="3.0"/>
<object class="GtkDialog" id="dlgStart">
<property name="can_focus">False</property>
<property name="border_width">5</property>
@@ -25,7 +26,7 @@
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<child>
- <object class="GtkHBox" id="hbox3">
+ <object class="GtkBox" id="hbox3">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
@@ -44,8 +45,8 @@
<object class="GtkLabel" id="label5">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Start Game</property>
+ <property name="xalign">0</property>
</object>
<packing>
<property name="expand">True</property>
@@ -68,7 +69,7 @@
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<child>
- <object class="GtkHBox" id="hbox4">
+ <object class="GtkBox" id="hbox4">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
@@ -87,8 +88,8 @@
<object class="GtkLabel" id="label6">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Play Offline</property>
+ <property name="xalign">0</property>
</object>
<packing>
<property name="expand">True</property>
@@ -114,9 +115,10 @@
</packing>
</child>
<child>
- <object class="GtkVBox" id="vbox1">
+ <object class="GtkBox" id="vbox1">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkLabel" id="label1">
@@ -136,20 +138,18 @@ If you selected Client please enter the IP address the Server gave to you in the
</packing>
</child>
<child>
- <object class="GtkTable" id="table1">
+ <object class="GtkGrid" id="table1">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="n_rows">2</property>
- <property name="n_columns">2</property>
- <property name="column_spacing">8</property>
<property name="row_spacing">12</property>
+ <property name="column_spacing">8</property>
<child>
<object class="GtkButton" id="btnCopyIP">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<child>
- <object class="GtkHBox" id="hbox2">
+ <object class="GtkBox" id="hbox2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
@@ -168,8 +168,8 @@ If you selected Client please enter the IP address the Server gave to you in the
<object class="GtkLabel" id="label4">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Copy PC IP to Clipboard</property>
+ <property name="xalign">0</property>
</object>
<packing>
<property name="expand">True</property>
@@ -182,7 +182,7 @@ If you selected Client please enter the IP address the Server gave to you in the
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
+ <property name="top_attach">0</property>
</packing>
</child>
<child>
@@ -195,9 +195,7 @@ If you selected Client please enter the IP address the Server gave to you in the
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
<property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
</packing>
</child>
<child>
@@ -210,6 +208,10 @@ If you selected Client please enter the IP address the Server gave to you in the
<property name="active">True</property>
<property name="draw_indicator">True</property>
</object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ </packing>
</child>
<child>
<object class="GtkRadioButton" id="rbClient">
@@ -223,8 +225,8 @@ If you selected Client please enter the IP address the Server gave to you in the
<property name="group">rbServer</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
</packing>
</child>
</object>
@@ -236,9 +238,10 @@ If you selected Client please enter the IP address the Server gave to you in the
</packing>
</child>
<child>
- <object class="GtkVBox" id="vbox2">
+ <object class="GtkBox" id="vbox2">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="GtkLabel" id="label2">
@@ -254,15 +257,15 @@ If you selected Client please enter the IP address the Server gave to you in the
</packing>
</child>
<child>
- <object class="GtkHBox" id="hbox1">
+ <object class="GtkBox" id="hbox1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkLabel" id="label3">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Port Number</property>
+ <property name="xalign">0</property>
</object>
<packing>
<property name="expand">True</property>
diff --git a/plugins/dfnet/gui.c b/plugins/dfnet/gui.c
index 06c4b888..85d0871f 100755
--- a/plugins/dfnet/gui.c
+++ b/plugins/dfnet/gui.c
@@ -103,7 +103,7 @@ long CFGopen() {
builder = gtk_builder_new();
- if (!gtk_builder_add_from_file(builder, DATADIR "dfnet.ui", NULL)) {
+ if (!gtk_builder_add_from_resource(builder, "/org/pcsxr/dfnet/dfnet.ui", NULL)) {
g_warning("We could not load the interface!");
return 0;
}
@@ -182,6 +182,7 @@ void CFGabout() {
GtkWidget *widget;
widget = gtk_about_dialog_new();
+ gtk_about_dialog_set_logo_icon_name (GTK_ABOUT_DIALOG(widget), "help-about");
gtk_about_dialog_set_program_name(GTK_ABOUT_DIALOG(widget), "Socket NetPlay Driver");
gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(widget), "0.21");
gtk_about_dialog_set_authors(GTK_ABOUT_DIALOG(widget), authors);
diff --git a/plugins/dfsound/Makefile.am b/plugins/dfsound/Makefile.am
index 53255556..9f8130a1 100755
--- a/plugins/dfsound/Makefile.am
+++ b/plugins/dfsound/Makefile.am
@@ -49,9 +49,31 @@ bin_PROGRAMS = cfgDFSound
cfgDFSound_CPPFLAGS = -DLOCALE_DIR=\"${datadir}/locale/\" \
-DDATADIR=\"${datadir}/psemu/\" \
$(GTK3_CFLAGS) $(AM_CPPFLAGS)
-cfgDFSound_SOURCES = spucfg-0.1df/main.c
+cfgDFSound_SOURCES = spucfg-0.1df/main.c GtkResources.c GtkResources.h
cfgDFSound_LDADD = $(GTK3_LIBS)
-glade_DATA = spucfg-0.1df/dfsound.ui
-gladedir = $(datadir)/psemu/
+# gresource.xml is dynamically generated in CMake. Mirror that here in a static way.
+define gresource_xml =
+<?xml version="1.0" encoding="UTF-8"?>
+<gresources>
+ <gresource prefix="/org/pcsxr/dfsound">
+ <file>dfsound.ui</file>
+ </gresource>
+</gresources>
+endef
+
+dfsound.gresource.xml:
+ $(file >$@,$(gresource_xml))
+dfsound_gresource: dfsound.gresource.xml
+ $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir)/spucfg-0.1df --generate-dependencies $(srcdir)/$<)
+GtkResources.c: dfsound.gresource.xml $(dfsound_gresource)
+ $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir)/spucfg-0.1df --generate-source --c-name dfsound $<
+GtkResources.h: dfsound.gresource.xml $(dfsound_gresource)
+ $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir)/spucfg-0.1df --generate-header --c-name dfsound $<
+
+#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/dfsound/spucfg-0.1df/dfsound.ui b/plugins/dfsound/spucfg-0.1df/dfsound.ui
index 1c816a1d..9d897204 100755..100644
--- a/plugins/dfsound/spucfg-0.1df/dfsound.ui
+++ b/plugins/dfsound/spucfg-0.1df/dfsound.ui
@@ -1,6 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.19.0 -->
<interface>
- <!-- interface-requires gtk+ 3.0 -->
+ <requires lib="gtk+" version="3.0"/>
+ <object class="GtkListStore" id="liststoreInterpolation">
+ <columns>
+ <!-- column-name Item -->
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">None</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Simple</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Gaussian</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Cubic</col>
+ </row>
+ </data>
+ </object>
+ <object class="GtkListStore" id="liststoreReverb">
+ <columns>
+ <!-- column-name Item -->
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">Off</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Simple</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Playstation</col>
+ </row>
+ </data>
+ </object>
+ <object class="GtkListStore" id="liststoreVolume">
+ <columns>
+ <!-- column-name Item -->
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">None</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Low</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Medium</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Loud</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Loudest</col>
+ </row>
+ </data>
+ </object>
<object class="GtkDialog" id="CfgWnd">
<property name="can_focus">False</property>
<property name="border_width">5</property>
@@ -42,9 +103,10 @@
</packing>
</child>
<child>
- <object class="GtkVBox" id="vbox1">
+ <object class="GtkBox" id="vbox1">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="GtkFrame" id="frame1">
@@ -57,54 +119,49 @@
<property name="can_focus">False</property>
<property name="border_width">5</property>
<child>
- <object class="GtkTable" id="table1">
+ <object class="GtkGrid" id="table1">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="n_rows">3</property>
- <property name="n_columns">2</property>
- <property name="column_spacing">5</property>
<property name="row_spacing">5</property>
+ <property name="column_spacing">5</property>
+ <property name="column_homogeneous">True</property>
<child>
<object class="GtkLabel" id="label1v">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Volume:</property>
<property name="justify">right</property>
+ <property name="xalign">0</property>
</object>
<packing>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label9">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Interpolation:</property>
<property name="justify">right</property>
+ <property name="xalign">0</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label8">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Reverb:</property>
<property name="justify">right</property>
+ <property name="xalign">0</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
</packing>
</child>
<child>
@@ -121,8 +178,7 @@
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="y_options">GTK_FILL</property>
+ <property name="top_attach">0</property>
</packing>
</child>
<child>
@@ -139,11 +195,7 @@
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
<property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options">GTK_FILL</property>
</packing>
</child>
<child>
@@ -160,11 +212,7 @@
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
<property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options">GTK_FILL</property>
</packing>
</child>
</object>
@@ -189,9 +237,10 @@
<property name="can_focus">False</property>
<property name="border_width">5</property>
<child>
- <object class="GtkVBox" id="vbox3">
+ <object class="GtkBox" id="vbox3">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="GtkCheckButton" id="chkXASpeed">
@@ -234,9 +283,10 @@
<property name="can_focus">False</property>
<property name="border_width">5</property>
<child>
- <object class="GtkVBox" id="vbox4">
+ <object class="GtkBox" id="vbox4">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="GtkCheckButton" id="chkHiCompat">
@@ -334,64 +384,4 @@
<action-widget response="0">btn_close</action-widget>
</action-widgets>
</object>
- <object class="GtkListStore" id="liststoreInterpolation">
- <columns>
- <!-- column-name Item -->
- <column type="gchararray"/>
- </columns>
- <data>
- <row>
- <col id="0" translatable="yes">None</col>
- </row>
- <row>
- <col id="0" translatable="yes">Simple</col>
- </row>
- <row>
- <col id="0" translatable="yes">Gaussian</col>
- </row>
- <row>
- <col id="0" translatable="yes">Cubic</col>
- </row>
- </data>
- </object>
- <object class="GtkListStore" id="liststoreReverb">
- <columns>
- <!-- column-name Item -->
- <column type="gchararray"/>
- </columns>
- <data>
- <row>
- <col id="0" translatable="yes">Off</col>
- </row>
- <row>
- <col id="0" translatable="yes">Simple</col>
- </row>
- <row>
- <col id="0" translatable="yes">Playstation</col>
- </row>
- </data>
- </object>
- <object class="GtkListStore" id="liststoreVolume">
- <columns>
- <!-- column-name Item -->
- <column type="gchararray"/>
- </columns>
- <data>
- <row>
- <col id="0" translatable="yes">None</col>
- </row>
- <row>
- <col id="0" translatable="yes">Low</col>
- </row>
- <row>
- <col id="0" translatable="yes">Medium</col>
- </row>
- <row>
- <col id="0" translatable="yes">Loud</col>
- </row>
- <row>
- <col id="0" translatable="yes">Loudest</col>
- </row>
- </data>
- </object>
</interface>
diff --git a/plugins/dfsound/spucfg-0.1df/main.c b/plugins/dfsound/spucfg-0.1df/main.c
index 2a57a67f..2fe837b7 100755
--- a/plugins/dfsound/spucfg-0.1df/main.c
+++ b/plugins/dfsound/spucfg-0.1df/main.c
@@ -82,6 +82,7 @@ int main(int argc, char *argv[])
if (strcmp(argv[1], "about") == 0) {
const char *authors[]= {"Pete Bernert and the P.E.Op.S. team", "Ryan Schultz", "Andrew Burton", NULL};
widget = gtk_about_dialog_new ();
+ gtk_about_dialog_set_logo_icon_name (GTK_ABOUT_DIALOG(widget), "help-about");
gtk_about_dialog_set_program_name (GTK_ABOUT_DIALOG (widget), "dfsound PCSXR Sound Plugin");
gtk_about_dialog_set_version (GTK_ABOUT_DIALOG (widget), "1.6");
gtk_about_dialog_set_authors (GTK_ABOUT_DIALOG (widget), authors);
@@ -98,7 +99,7 @@ int main(int argc, char *argv[])
else if (strcmp(argv[1], "configure") == 0) {
builder = gtk_builder_new();
- if (!gtk_builder_add_from_file(builder, DATADIR "dfsound.ui", NULL)) {
+ if (!gtk_builder_add_from_resource(builder, "/org/pcsxr/dfsound/dfsound.ui", NULL)) {
g_warning("We could not load the interface!");
return 0;
}
diff --git a/plugins/dfxvideo/Makefile.am b/plugins/dfxvideo/Makefile.am
index 3036da5f..520749b2 100755
--- a/plugins/dfxvideo/Makefile.am
+++ b/plugins/dfxvideo/Makefile.am
@@ -26,9 +26,32 @@ libDFXVideo_la_LDFLAGS = -module -avoid-version
libDFXVideo_la_LIBADD = -lX11 -lXv -lXext -lm
bin_PROGRAMS = cfgDFXVideo
-cfgDFXVideo_SOURCES = gpucfg-0.1df/main.c
+cfgDFXVideo_SOURCES = gpucfg-0.1df/main.c GtkResources.c GtkResources.h
cfgDFXVideo_LDADD = $(GTK3_LIBS) -lXext
-glade_DATA = gpucfg-0.1df/dfxvideo.ui
-gladedir = $(datadir)/psemu/
+# gresource.xml is dynamically generated in CMake. Mirror that here in a static way.
+define gresource_xml =
+<?xml version="1.0" encoding="UTF-8"?>
+<gresources>
+ <gresource prefix="/org/pcsxr/dfxvideo">
+ <file>dfxvideo.ui</file>
+ </gresource>
+</gresources>
+endef
+
+dfxvideo.gresource.xml:
+ $(file >$@,$(gresource_xml))
+dfxvideo_gresource: dfxvideo.gresource.xml
+ $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir)/gpucfg-0.1df --generate-dependencies $(srcdir)/$<)
+GtkResources.c: dfxvideo.gresource.xml $(dfxvideo_gresource)
+ $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir)/gpucfg-0.1df --generate-source --c-name dfxvideo $<
+GtkResources.h: dfxvideo.gresource.xml $(dfxvideo_gresource)
+ $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir)/gpucfg-0.1df --generate-header --c-name dfxvideo $<
+
+
+#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/dfxvideo/gpucfg-0.1df/dfxvideo.ui b/plugins/dfxvideo/gpucfg-0.1df/dfxvideo.ui
index 6acee0d6..54633d89 100755..100644
--- a/plugins/dfxvideo/gpucfg-0.1df/dfxvideo.ui
+++ b/plugins/dfxvideo/gpucfg-0.1df/dfxvideo.ui
@@ -1,6 +1,85 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.19.0 -->
<interface>
- <!-- interface-requires gtk+ 3.0 -->
+ <requires lib="gtk+" version="3.0"/>
+ <object class="GtkListStore" id="liststoreDither">
+ <columns>
+ <!-- column-name Item -->
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">0: Off (fastest)</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">1: Game dependant</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">2: Always</col>
+ </row>
+ </data>
+ </object>
+ <object class="GtkListStore" id="liststoreRes">
+ <columns>
+ <!-- column-name Item -->
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">320x240</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">640x480</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">800x600</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">1024x768</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">1152x864</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">1280x1024</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">1600x1200</col>
+ </row>
+ </data>
+ </object>
+ <object class="GtkListStore" id="liststoreStretching">
+ <columns>
+ <!-- column-name Item -->
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">0: None</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">1: 2xSai</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">2: 2xSuperSai</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">3: SuperEagle</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">4: Scale2x</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">5: Scale3x</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">6: HQ2X</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">7: HQ3X</col>
+ </row>
+ </data>
+ </object>
<object class="GtkWindow" id="CfgWnd">
<property name="visible">True</property>
<property name="can_focus">False</property>
@@ -12,9 +91,10 @@
<property name="type_hint">dialog</property>
<signal name="destroy" handler="on_CfgWnd_destroy" swapped="no"/>
<child>
- <object class="GtkVBox" id="vbox1">
+ <object class="GtkBox" id="vbox1">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="GtkFrame" id="frame1">
@@ -30,55 +110,50 @@
<property name="left_padding">5</property>
<property name="right_padding">5</property>
<child>
- <object class="GtkVBox" id="vbox7">
+ <object class="GtkBox" id="vbox7">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
<child>
- <object class="GtkTable" id="table1">
+ <object class="GtkGrid" id="table1">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="n_rows">3</property>
- <property name="n_columns">2</property>
- <property name="column_spacing">30</property>
<property name="row_spacing">6</property>
+ <property name="column_homogeneous">True</property>
<child>
<object class="GtkLabel" id="label14">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Initial Window Size:</property>
+ <property name="xalign">0</property>
</object>
<packing>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label15">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Stretching:</property>
+ <property name="xalign">0</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label16">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Dithering:</property>
+ <property name="xalign">0</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
</packing>
</child>
<child>
@@ -96,11 +171,7 @@
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
<property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options">GTK_FILL</property>
</packing>
</child>
<child>
@@ -118,15 +189,11 @@
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
<property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options">GTK_FILL</property>
</packing>
</child>
<child>
- <object class="GtkHBox" id="hbox2">
+ <object class="GtkBox" id="hbox2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">10</property>
@@ -170,7 +237,7 @@
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
+ <property name="top_attach">0</property>
</packing>
</child>
</object>
@@ -181,7 +248,7 @@
</packing>
</child>
<child>
- <object class="GtkHBox" id="hbox1">
+ <object class="GtkBox" id="hbox1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
@@ -232,9 +299,10 @@
<property name="left_padding">5</property>
<property name="right_padding">5</property>
<child>
- <object class="GtkVBox" id="vbox3">
+ <object class="GtkBox" id="vbox3">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
<child>
<object class="GtkCheckButton" id="checkShowFPS">
<property name="label" translatable="yes">Show FPS</property>
@@ -270,10 +338,9 @@
</packing>
</child>
<child>
- <object class="GtkTable" id="table2">
+ <object class="GtkGrid" id="table2">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="n_columns">3</property>
<property name="column_spacing">12</property>
<child>
<object class="GtkCheckButton" id="checkSetFPS">
@@ -287,8 +354,8 @@
<property name="draw_indicator">True</property>
</object>
<packing>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
</packing>
</child>
<child>
@@ -300,9 +367,7 @@
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="x_options"></property>
- <property name="y_options"></property>
+ <property name="top_attach">0</property>
</packing>
</child>
<child>
@@ -319,7 +384,7 @@
</object>
<packing>
<property name="left_attach">2</property>
- <property name="right_attach">3</property>
+ <property name="top_attach">0</property>
</packing>
</child>
</object>
@@ -354,9 +419,10 @@
<property name="left_padding">5</property>
<property name="right_padding">5</property>
<child>
- <object class="GtkVBox" id="vbox4">
+ <object class="GtkBox" id="vbox4">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
<child>
<object class="GtkCheckButton" id="checkUseFixes">
<property name="label" translatable="yes">Use game fixes</property>
@@ -379,15 +445,11 @@
<property name="can_focus">False</property>
<property name="left_padding">19</property>
<child>
- <object class="GtkTable" id="table_fixes">
+ <object class="GtkGrid" id="table_fixes">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="n_rows">6</property>
- <property name="n_columns">2</property>
<property name="column_spacing">16</property>
- <child>
- <placeholder/>
- </child>
+ <property name="column_homogeneous">True</property>
<child>
<object class="GtkCheckButton" id="checkFix5">
<property name="label" translatable="yes">Disable CPU Saving</property>
@@ -400,10 +462,8 @@
<property name="draw_indicator">True</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">4</property>
- <property name="bottom_attach">5</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
</packing>
</child>
<child>
@@ -418,8 +478,8 @@
<property name="draw_indicator">True</property>
</object>
<packing>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
</packing>
</child>
<child>
@@ -434,10 +494,8 @@
<property name="draw_indicator">True</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">5</property>
- <property name="bottom_attach">6</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
</packing>
</child>
<child>
@@ -452,10 +510,8 @@
<property name="draw_indicator">True</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
</packing>
</child>
<child>
@@ -470,10 +526,8 @@
<property name="draw_indicator">True</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
</packing>
</child>
<child>
@@ -488,10 +542,8 @@
<property name="draw_indicator">True</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
</packing>
</child>
<child>
@@ -508,9 +560,7 @@
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
+ <property name="top_attach">0</property>
</packing>
</child>
<child>
@@ -527,11 +577,7 @@
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
<property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
</packing>
</child>
<child>
@@ -548,11 +594,7 @@
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
<property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
</packing>
</child>
<child>
@@ -569,11 +611,7 @@
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
<property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
</packing>
</child>
<child>
@@ -590,11 +628,7 @@
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
<property name="top_attach">4</property>
- <property name="bottom_attach">5</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
</packing>
</child>
<child>
@@ -611,11 +645,7 @@
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
<property name="top_attach">5</property>
- <property name="bottom_attach">6</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
</packing>
</child>
</object>
@@ -639,7 +669,7 @@
</packing>
</child>
<child>
- <object class="GtkHButtonBox" id="hbuttonbox1">
+ <object class="GtkButtonBox" id="hbuttonbox1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">12</property>
@@ -669,82 +699,4 @@
</object>
</child>
</object>
- <object class="GtkListStore" id="liststoreDither">
- <columns>
- <!-- column-name Item -->
- <column type="gchararray"/>
- </columns>
- <data>
- <row>
- <col id="0" translatable="yes">0: Off (fastest)</col>
- </row>
- <row>
- <col id="0" translatable="yes">1: Game dependant</col>
- </row>
- <row>
- <col id="0" translatable="yes">2: Always</col>
- </row>
- </data>
- </object>
- <object class="GtkListStore" id="liststoreRes">
- <columns>
- <!-- column-name Item -->
- <column type="gchararray"/>
- </columns>
- <data>
- <row>
- <col id="0" translatable="yes">320x240</col>
- </row>
- <row>
- <col id="0" translatable="yes">640x480</col>
- </row>
- <row>
- <col id="0" translatable="yes">800x600</col>
- </row>
- <row>
- <col id="0" translatable="yes">1024x768</col>
- </row>
- <row>
- <col id="0" translatable="yes">1152x864</col>
- </row>
- <row>
- <col id="0" translatable="yes">1280x1024</col>
- </row>
- <row>
- <col id="0" translatable="yes">1600x1200</col>
- </row>
- </data>
- </object>
- <object class="GtkListStore" id="liststoreStretching">
- <columns>
- <!-- column-name Item -->
- <column type="gchararray"/>
- </columns>
- <data>
- <row>
- <col id="0" translatable="yes">0: None</col>
- </row>
- <row>
- <col id="0" translatable="yes">1: 2xSai</col>
- </row>
- <row>
- <col id="0" translatable="yes">2: 2xSuperSai</col>
- </row>
- <row>
- <col id="0" translatable="yes">3: SuperEagle</col>
- </row>
- <row>
- <col id="0" translatable="yes">4: Scale2x</col>
- </row>
- <row>
- <col id="0" translatable="yes">5: Scale3x</col>
- </row>
- <row>
- <col id="0" translatable="yes">6: HQ2X</col>
- </row>
- <row>
- <col id="0" translatable="yes">7: HQ3X</col>
- </row>
- </data>
- </object>
</interface>
diff --git a/plugins/dfxvideo/gpucfg-0.1df/main.c b/plugins/dfxvideo/gpucfg-0.1df/main.c
index 805495e6..ef44ed1c 100755
--- a/plugins/dfxvideo/gpucfg-0.1df/main.c
+++ b/plugins/dfxvideo/gpucfg-0.1df/main.c
@@ -135,6 +135,7 @@ main (int argc, char *argv[])
if (strcmp(argv[1], "about") == 0) {
const char *authors[]= {"Pete Bernert and the P.E.Op.S. team", "Ryan Schultz", "Andrew Burton", NULL};
widget = gtk_about_dialog_new ();
+ gtk_about_dialog_set_logo_icon_name (GTK_ABOUT_DIALOG(widget), "help-about");
gtk_about_dialog_set_program_name (GTK_ABOUT_DIALOG (widget), "P.E.Op.S PCSXR Video Plugin");
gtk_about_dialog_set_version (GTK_ABOUT_DIALOG (widget), "1.17");
gtk_about_dialog_set_authors (GTK_ABOUT_DIALOG (widget), authors);
@@ -151,7 +152,7 @@ main (int argc, char *argv[])
else {
builder = gtk_builder_new();
- if (!gtk_builder_add_from_file(builder, DATADIR "dfxvideo.ui", NULL)) {
+ if (!gtk_builder_add_from_resource(builder, "/org/pcsxr/dfxvideo/dfxvideo.ui", NULL)) {
g_warning("We could not load the interface!");
return -1;
}
diff --git a/plugins/nullsio1/Makefile.am b/plugins/nullsio1/Makefile.am
new file mode 100644
index 00000000..9d78b632
--- /dev/null
+++ b/plugins/nullsio1/Makefile.am
@@ -0,0 +1,10 @@
+bindir = @libdir@/games/psemu/
+libdir = @libdir@/games/psemu/
+
+lib_LTLIBRARIES = libNullSio1.la
+
+libNullSio1_la_SOURCES = sio1.c typedefs.h
+libNullSio1_la_LDFLAGS = -module -avoid-version
+
+AM_CPPFLAGS = -DDATADIR=\"${datadir}/psemu/\" \
+ -I$(top_srcdir)/libpcsxcore -I../../include
diff --git a/plugins/nullsio1/sio1.c b/plugins/nullsio1/sio1.c
new file mode 100644
index 00000000..44311f4b
--- /dev/null
+++ b/plugins/nullsio1/sio1.c
@@ -0,0 +1,289 @@
+/***************************************************************************
+ * Copyright (C) 2013 by Blade_Arma <edgbla@yandex.ru> *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the *
+ * Free Software Foundation, Inc., *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *
+ ***************************************************************************/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdint.h>
+
+#include "typedefs.h"
+#include "psemu_plugin_defs.h"
+
+#ifndef CALLBACK
+#define CALLBACK
+#endif
+
+/***************************************************************************/
+
+static char *pluginName = "sio1Null";
+
+static const unsigned char version = 1;
+static const unsigned char revision = 1;
+static const unsigned char build = 1;
+
+static void (CALLBACK *irqCallback)() = 0;
+
+/* sio status flags.
+ */
+enum {
+ SR_TXRDY = 0x0001,
+ SR_RXRDY = 0x0002,
+ SR_TXU = 0x0004,
+ SR_PERROR = 0x0008,
+ SR_OE = 0x0010,
+ SR_FE = 0x0020,
+ SR_0040 = 0x0040, // ?
+ SR_DSR = 0x0080,
+ SR_CTS = 0x0100,
+ SR_IRQ = 0x0200
+};
+
+/* sio mode flags.
+ */
+enum {
+ MR_BR_1 = 0x0001,
+ MR_BR_16 = 0x0002,
+ MR_BR_64 = 0x0003,
+ MR_CHLEN_5 = 0x0000,
+ MR_CHLEN_6 = 0x0004,
+ MR_CHLEN_7 = 0x0008,
+ MR_CHLEN_8 = 0x000C,
+ MR_PEN = 0x0010,
+ MR_P_EVEN = 0x0020,
+ MR_SB_00 = 0x0000,
+ MR_SB_01 = 0x0040,
+ MR_SB_10 = 0x0080,
+ MR_SB_11 = 0x00C0
+};
+
+/* sio control flags.
+ */
+enum {
+ CR_TXEN = 0x0001,
+ CR_DTR = 0x0002,
+ CR_RXEN = 0x0004,
+ CR_0008 = 0x0008, // ?
+ CR_ERRRST = 0x0010,
+ CR_RTS = 0x0020,
+ CR_RST = 0x0040,
+ CR_0080 = 0x0080, // HM?
+ CR_BUFSZ_1 = 0x0000,
+ CR_BUFSZ_2 = 0x0100,
+ CR_BUFSZ_4 = 0x0200,
+ CR_BUFSZ_8 = 0x0300,
+ CR_TXIEN = 0x0400,
+ CR_RXIEN = 0x0800,
+ CR_DSRIEN = 0x1000,
+ CR_2000 = 0x2000 // CTSIEN?
+};
+
+static u16 statReg; // 0x1f801054: 0x185 SR_TXRDY | SR_TXU | SR_DSR | SR_CTS
+static u16 modeReg; // 0x1f801058: 0x0
+static u16 ctrlReg; // 0x1f80105A: 0x0
+static u16 baudReg; // 0x1f80105E: 0x0
+
+/***************************************************************************/
+
+long CALLBACK SIO1init() {
+ return 0;
+}
+
+long CALLBACK SIO1shutdown() {
+ return 0;
+}
+
+/***************************************************************************/
+
+long CALLBACK SIO1open(unsigned long *gpuDisp) {
+ statReg = SR_TXRDY | SR_TXU | SR_DSR | SR_CTS;
+ modeReg = 0x0000;
+ ctrlReg = 0x0000;
+ baudReg = 0x0000;
+ return 0;
+}
+
+long CALLBACK SIO1close() {
+ return 0;
+}
+
+/***************************************************************************/
+
+void CALLBACK SIO1pause() {
+}
+
+void CALLBACK SIO1resume() {
+}
+
+/***************************************************************************/
+
+long CALLBACK SIO1keypressed(int key) {
+ return 0;
+}
+
+/***************************************************************************/
+
+/* Write.
+ */
+
+void CALLBACK SIO1writeData8(u8 data) {
+}
+
+void CALLBACK SIO1writeData16(u16 data) {
+}
+
+void CALLBACK SIO1writeData32(u32 data) {
+}
+
+void CALLBACK SIO1writeStat16(u16 stat) {
+}
+
+void CALLBACK SIO1writeStat32(u32 stat) {
+ SIO1writeStat16(stat);
+}
+
+void CALLBACK SIO1writeMode16(u16 mode) {
+ modeReg = mode;
+}
+
+void CALLBACK SIO1writeMode32(u32 mode) {
+ SIO1writeMode16(mode);
+}
+
+void CALLBACK SIO1writeCtrl16(u16 ctrl) {
+ u16 ctrlSaved = ctrlReg;
+
+ ctrlReg = ctrl;
+
+ if(ctrlReg & CR_ERRRST) {
+ ctrlReg &= ~CR_ERRRST;
+ statReg &= ~(SR_PERROR | SR_OE | SR_FE | SR_IRQ);
+ }
+
+ if(ctrlReg & CR_RST) {
+ statReg &= ~SR_IRQ;
+ statReg |= SR_TXRDY | SR_TXU;
+ modeReg = 0;
+ ctrlReg = 0;
+ baudReg = 0;
+ }
+
+ if(ctrlReg & CR_TXIEN) {
+ if(!(statReg & SR_IRQ)) {
+ irqCallback();
+ statReg |= SR_IRQ;
+ }
+ }
+}
+
+void CALLBACK SIO1writeCtrl32(u32 ctrl) {
+ SIO1writeCtrl16(ctrl);
+}
+
+void CALLBACK SIO1writeBaud16(u16 baud) {
+ baudReg = baud;
+}
+
+void CALLBACK SIO1writeBaud32(u32 baud) {
+ SIO1writeBaud16(baud);
+}
+
+/* Read.
+ */
+
+u8 CALLBACK SIO1readData8() {
+ u8 data[1] = {0};
+ return *(u8*)data;
+}
+
+u16 CALLBACK SIO1readData16() {
+ u8 data[2] = {0, 0};
+ return *(u16*)data;
+}
+
+u32 CALLBACK SIO1readData32() {
+ u8 data[4] = {0, 0, 0, 0};
+ return *(u32*)data;
+}
+
+u16 CALLBACK SIO1readStat16() {
+ return statReg;
+}
+
+u32 CALLBACK SIO1readStat32() {
+ return statReg;
+}
+
+u16 CALLBACK SIO1readMode16() {
+ return modeReg;
+}
+
+u32 CALLBACK SIO1readMode32() {
+ return modeReg;
+}
+
+u16 CALLBACK SIO1readCtrl16() {
+ return ctrlReg;
+}
+
+u32 CALLBACK SIO1readCtrl32() {
+ return ctrlReg;
+}
+
+u16 CALLBACK SIO1readBaud16() {
+ return baudReg;
+}
+
+u32 CALLBACK SIO1readBaud32() {
+ return baudReg;
+}
+
+/***************************************************************************/
+
+void CALLBACK SIO1update(uint32_t t) {
+}
+
+void CALLBACK SIO1registerCallback(void (CALLBACK *callback)()) {
+ irqCallback = callback;
+}
+
+/***************************************************************************/
+
+unsigned long CALLBACK PSEgetLibType() {
+ return PSE_LT_SIO1;
+}
+
+char* CALLBACK PSEgetLibName() {
+ return pluginName;
+}
+
+unsigned long CALLBACK PSEgetLibVersion() {
+ return version << 16 | revision << 8 | build;
+}
+
+long CALLBACK SIO1test() {
+ return 0;
+}
+
+void CALLBACK SIO1about() {
+}
+
+void CALLBACK SIO1configure() {
+}
+
+/***************************************************************************/
diff --git a/plugins/nullsio1/typedefs.h b/plugins/nullsio1/typedefs.h
new file mode 100644
index 00000000..452d2b3a
--- /dev/null
+++ b/plugins/nullsio1/typedefs.h
@@ -0,0 +1,35 @@
+/***************************************************************************
+ * Copyright (C) 2013 by Blade_Arma <edgbla@yandex.ru> *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the *
+ * Free Software Foundation, Inc., *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *
+ ***************************************************************************/
+
+#ifndef _TYPEDEFS_H_
+#define _TYPEDEFS_H_
+
+typedef int8_t s8;
+typedef int16_t s16;
+typedef int32_t s32;
+typedef int64_t s64;
+typedef intptr_t sptr;
+
+typedef uint8_t u8;
+typedef uint16_t u16;
+typedef uint32_t u32;
+typedef uint64_t u64;
+typedef uintptr_t uptr;
+
+#endif // _TYPEDEFS_H_
diff --git a/plugins/peopsxgl/Makefile.am b/plugins/peopsxgl/Makefile.am
index 3c8f7250..576e140d 100755
--- a/plugins/peopsxgl/Makefile.am
+++ b/plugins/peopsxgl/Makefile.am
@@ -9,16 +9,49 @@ libdir = @libdir@/games/psemu/
lib_LTLIBRARIES = libpeopsxgl.la
-libpeopsxgl_la_SOURCES = cfg.c cfg.h draw.c draw.h fps.c fps.h gl_ext.h \
- gpu.c gpu.h key.c key.h menu.c menu.h prim.c prim.h soft.c soft.h \
- texture.c texture.h gte_accuracy.c gte_accuracy.h
+libpeopsxgl_la_SOURCES = \
+ cfg.c cfg.h \
+ draw.c draw.h \
+ fps.c fps.h \
+ gl_ext.h \
+ gpu.c gpu.h \
+ key.c key.h \
+ menu.c menu.h \
+ prim.c prim.h \
+ soft.c soft.h \
+ texture.c texture.h \
+ gte_accuracy.c gte_accuracy.h \
+ pgxp_gpu.c pgxp_gpu.h
libpeopsxgl_la_LDFLAGS = -module -avoid-version
libpeopsxgl_la_LIBADD = -lX11 -lXxf86vm -lGL -lm
bin_PROGRAMS = cfgpeopsxgl
-cfgpeopsxgl_SOURCES = gpucfg/main.c
+cfgpeopsxgl_SOURCES = gpucfg/main.c GtkResources.c GtkResources.h
cfgpeopsxgl_LDADD = $(GTK3_LIBS)
-glade_DATA = gpucfg/peopsxgl.ui
-gladedir = $(datadir)/psemu/
+# gresource.xml is dynamically generated in CMake. Mirror that here in a static way.
+define gresource_xml =
+<?xml version="1.0" encoding="UTF-8"?>
+<gresources>
+ <gresource prefix="/org/pcsxr/peopsxgl">
+ <file>peopsxgl.ui</file>
+ </gresource>
+</gresources>
+endef
+
+peopsxgl.gresource.xml:
+ $(file >$@,$(gresource_xml))
+peopsxgl_gresource: peopsxgl.gresource.xml
+ $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir)/gpucfg --generate-dependencies $(srcdir)/$<)
+GtkResources.c: peopsxgl.gresource.xml $(peopsxgl_gresource)
+ $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir)/gpucfg --generate-source --c-name peopsxgl $<
+GtkResources.h: peopsxgl.gresource.xml $(peopsxgl_gresource)
+ $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir)/gpucfg --generate-header --c-name peopsxgl $<
+
+
+#glade_DATA = gpucfg/peopsxgl.ui
+#gladedir = $(datadir)/psemu/
EXTRA_DIST = $(glade_DATA)
+
+CLEANFILES = peopsxgl.gresource.xml GtkResources.c GtkResources.h
+
diff --git a/plugins/peopsxgl/gpu.c b/plugins/peopsxgl/gpu.c
index 99ef36ba..c19dd2b6 100755
--- a/plugins/peopsxgl/gpu.c
+++ b/plugins/peopsxgl/gpu.c
@@ -48,7 +48,7 @@ static int iOldMode=0;
#include "fps.h"
#include "key.h"
#include "gte_accuracy.h"
-#include "PGXP_gpu.h"
+#include "pgxp_gpu.h"
#ifdef _WINDOWS
#include "resource.h"
#include "ssave.h"
diff --git a/plugins/peopsxgl/gpucfg/main.c b/plugins/peopsxgl/gpucfg/main.c
index 812ec5f9..b29c85fb 100755
--- a/plugins/peopsxgl/gpucfg/main.c
+++ b/plugins/peopsxgl/gpucfg/main.c
@@ -257,7 +257,7 @@ int main( int argc, char **argv ) {
builder = gtk_builder_new();
// Load the glade file
- if ( !gtk_builder_add_from_file( builder, DATADIR "peopsxgl.ui", &error ) ) {
+ if ( !gtk_builder_add_from_resource( builder, "/org/pcsxr/peopsxgl/peopsxgl.ui", &error ) ) {
g_warning( "%s", error->message );
g_free( error );
return( 1 );
@@ -269,6 +269,7 @@ int main( int argc, char **argv ) {
const char *authors[]= {"Adapted from P.E.Op.S OpenGL GPU by Pete Bernert", NULL};
widget = gtk_about_dialog_new();
+ gtk_about_dialog_set_logo_icon_name (GTK_ABOUT_DIALOG(widget), "help-about");
gtk_about_dialog_set_program_name(GTK_ABOUT_DIALOG(widget), "OpenGL GPU Driver");
gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(widget), "1.18");
gtk_about_dialog_set_authors(GTK_ABOUT_DIALOG(widget), authors);
diff --git a/plugins/peopsxgl/gpucfg/peopsxgl.ui b/plugins/peopsxgl/gpucfg/peopsxgl.ui
index 895c8d45..c53a9852 100755..100644
--- a/plugins/peopsxgl/gpucfg/peopsxgl.ui
+++ b/plugins/peopsxgl/gpucfg/peopsxgl.ui
@@ -1,6 +1,170 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.19.0 -->
<interface>
- <!-- interface-requires gtk+ 3.0 -->
+ <requires lib="gtk+" version="3.0"/>
+ <object class="GtkAdjustment" id="f">
+ <property name="lower">20</property>
+ <property name="upper">200</property>
+ <property name="value">60</property>
+ <property name="step_increment">1</property>
+ <property name="page_increment">10</property>
+ </object>
+ <object class="GtkListStore" id="liststore1">
+ <columns>
+ <!-- column-name item -->
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">Emulated VRam - Ok most times</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Gfx card buffer reads</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Gfx card buffer moves</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Gfx card buffer reads and moves</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Full Software (FVP)</col>
+ </row>
+ </data>
+ </object>
+ <object class="GtkListStore" id="liststore2">
+ <columns>
+ <!-- column-name item -->
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">Emulated VRam - Needs FVP</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Black - Fast, no effects</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Gfx card buffer - Can be slow</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Gfx card and soft - Slow</col>
+ </row>
+ </data>
+ </object>
+ <object class="GtkListStore" id="liststore3">
+ <columns>
+ <!-- column-name item -->
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">None - Fastest, most glitches</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Minimum - Missing screens</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Standard - OK for most games</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Enhanced - Shows more stuff</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Extended - Causing garbage</col>
+ </row>
+ </data>
+ </object>
+ <object class="GtkListStore" id="liststore4">
+ <columns>
+ <!-- column-name item -->
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">None (Standard)</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">2xSaI (Much vram needed)</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Scaled (Needs tex filtering)</col>
+ </row>
+ </data>
+ </object>
+ <object class="GtkListStore" id="liststore5">
+ <columns>
+ <!-- column-name item -->
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">None</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Standard - Glitches will happen</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Extended - No black borders</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Standard without sprites - Unfiltered 2D</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Extended without sprites - Unfiltered 2D</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Standard + smoothed sprites</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Extended + smoothed sprites</col>
+ </row>
+ </data>
+ </object>
+ <object class="GtkListStore" id="liststore6">
+ <columns>
+ <!-- column-name item -->
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">Don't care - Use driver's default textures</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">4444 - Fast, but less colorful</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">5551 - Nice colors, bad transparency</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">8888 - Best colors, more ram needed</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">BGR8888 - Faster on some cards</col>
+ </row>
+ </data>
+ </object>
+ <object class="GtkAdjustment" id="s">
+ <property name="lower">-1</property>
+ <property name="upper">255</property>
+ <property name="step_increment">1</property>
+ <property name="page_increment">10</property>
+ </object>
+ <object class="GtkAdjustment" id="v">
+ <property name="upper">1024</property>
+ <property name="step_increment">1</property>
+ <property name="page_increment">10</property>
+ </object>
+ <object class="GtkAdjustment" id="x">
+ <property name="upper">9999</property>
+ <property name="step_increment">1</property>
+ <property name="page_increment">10</property>
+ </object>
+ <object class="GtkAdjustment" id="y">
+ <property name="upper">9999</property>
+ <property name="step_increment">1</property>
+ <property name="page_increment">10</property>
+ </object>
<object class="GtkDialog" id="MainDialog">
<property name="can_focus">False</property>
<property name="border_width">5</property>
@@ -14,24 +178,94 @@
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">2</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox" id="dialog-action_area3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="layout_style">end</property>
+ <child>
+ <object class="GtkButton" id="btnFast">
+ <property name="label" translatable="yes">Fast</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes">Autoconfigure for fast display</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ <property name="secondary">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="btnBeautiful">
+ <property name="label" translatable="yes">Beautiful</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes">Auto configure for beautiful display</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ <property name="secondary">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="btnSave">
+ <property name="label">gtk-ok</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_stock">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="btnCancel">
+ <property name="label">gtk-cancel</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_stock">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
<child>
<object class="GtkNotebook" id="notebook1">
<property name="visible">True</property>
<property name="can_focus">True</property>
<child>
- <object class="GtkVBox" id="vbox2">
+ <object class="GtkBox" id="vbox2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="border_width">10</property>
+ <property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
- <object class="GtkTable" id="table2">
+ <object class="GtkGrid" id="table2">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="n_rows">2</property>
- <property name="n_columns">2</property>
- <property name="column_spacing">5</property>
<property name="row_spacing">5</property>
+ <property name="column_spacing">5</property>
<child>
<object class="GtkSpinButton" id="spinXSize">
<property name="visible">True</property>
@@ -42,9 +276,7 @@
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="x_options"></property>
- <property name="y_options"></property>
+ <property name="top_attach">0</property>
</packing>
</child>
<child>
@@ -57,37 +289,31 @@
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
<property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options"></property>
- <property name="y_options"></property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label7">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Width:</property>
+ <property name="xalign">0</property>
</object>
<packing>
- <property name="x_options"></property>
- <property name="y_options"></property>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label8">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Height:</property>
+ <property name="xalign">0</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options"></property>
- <property name="y_options"></property>
</packing>
</child>
</object>
@@ -170,49 +396,53 @@
</packing>
</child>
<child>
- <object class="GtkVBox" id="vbox6">
+ <object class="GtkBox" id="vbox6">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="border_width">10</property>
+ <property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
- <object class="GtkTable" id="table3">
+ <object class="GtkGrid" id="table3">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="n_rows">3</property>
- <property name="n_columns">2</property>
- <property name="column_spacing">5</property>
<property name="row_spacing">5</property>
+ <property name="column_spacing">5</property>
+ <property name="column_homogeneous">True</property>
<child>
<object class="GtkLabel" id="label9">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Quality:</property>
+ <property name="xalign">0</property>
</object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ </packing>
</child>
<child>
<object class="GtkLabel" id="label10">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Filtering:</property>
+ <property name="xalign">0</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label11">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">HiRes Tex:</property>
+ <property name="xalign">0</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
</packing>
</child>
<child>
@@ -229,7 +459,7 @@
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
+ <property name="top_attach">0</property>
</packing>
</child>
<child>
@@ -246,9 +476,7 @@
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
<property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
</packing>
</child>
<child>
@@ -265,9 +493,7 @@
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
<property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
</packing>
</child>
</object>
@@ -278,7 +504,7 @@
</packing>
</child>
<child>
- <object class="GtkHBox" id="hbox4">
+ <object class="GtkBox" id="hbox4">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">5</property>
@@ -286,8 +512,8 @@
<object class="GtkLabel" id="label12">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">VRam size in MBytes (0..1024, 0=auto):</property>
+ <property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
@@ -333,10 +559,11 @@
</packing>
</child>
<child>
- <object class="GtkVBox" id="vbox3">
+ <object class="GtkBox" id="vbox3">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="border_width">10</property>
+ <property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkCheckButton" id="chkShowFPS">
@@ -374,9 +601,10 @@
<property name="can_focus">False</property>
<property name="left_padding">20</property>
<child>
- <object class="GtkVBox" id="vboxFPSLimit">
+ <object class="GtkBox" id="vboxFPSLimit">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkRadioButton" id="radFPSLimitAuto">
@@ -396,7 +624,7 @@
</packing>
</child>
<child>
- <object class="GtkHBox" id="hbox2">
+ <object class="GtkBox" id="hbox2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">5</property>
@@ -490,49 +718,53 @@
</packing>
</child>
<child>
- <object class="GtkVBox" id="vbox8">
+ <object class="GtkBox" id="vbox8">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="border_width">10</property>
+ <property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
- <object class="GtkTable" id="table4">
+ <object class="GtkGrid" id="table4">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="n_rows">3</property>
- <property name="n_columns">2</property>
- <property name="column_spacing">5</property>
<property name="row_spacing">5</property>
+ <property name="column_spacing">5</property>
+ <property name="column_homogeneous">True</property>
<child>
<object class="GtkLabel" id="label14">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Offscreen drawing:</property>
+ <property name="xalign">0</property>
</object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ </packing>
</child>
<child>
<object class="GtkLabel" id="label15">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Framebuffer textures:</property>
+ <property name="xalign">0</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label16">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Framebuffer access:</property>
+ <property name="xalign">0</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
</packing>
</child>
<child>
@@ -549,7 +781,7 @@
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
+ <property name="top_attach">0</property>
</packing>
</child>
<child>
@@ -566,9 +798,7 @@
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
<property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
</packing>
</child>
<child>
@@ -585,9 +815,7 @@
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
<property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
</packing>
</child>
</object>
@@ -659,13 +887,14 @@
</packing>
</child>
<child>
- <object class="GtkVBox" id="vbox5">
+ <object class="GtkBox" id="vbox5">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="border_width">10</property>
+ <property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
- <object class="GtkHBox" id="hbox3">
+ <object class="GtkBox" id="hbox3">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">5</property>
@@ -826,10 +1055,11 @@
</packing>
</child>
<child>
- <object class="GtkVBox" id="vbox1">
+ <object class="GtkBox" id="vbox1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="border_width">10</property>
+ <property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkCheckButton" id="chkUseGameFixes">
@@ -852,13 +1082,12 @@
<property name="can_focus">False</property>
<property name="left_padding">20</property>
<child>
- <object class="GtkTable" id="tblGameFixes">
+ <object class="GtkGrid" id="tblGameFixes">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="n_rows">9</property>
- <property name="n_columns">2</property>
- <property name="column_spacing">5</property>
<property name="row_spacing">5</property>
+ <property name="column_spacing">5</property>
+ <property name="column_homogeneous">True</property>
<child>
<object class="GtkCheckButton" id="chkCfgFix1">
<property name="label" translatable="yes">Battle cursor (FF7)</property>
@@ -869,7 +1098,8 @@
<property name="draw_indicator">True</property>
</object>
<packing>
- <property name="y_options"></property>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
</packing>
</child>
<child>
@@ -883,8 +1113,7 @@
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="y_options"></property>
+ <property name="top_attach">0</property>
</packing>
</child>
<child>
@@ -897,9 +1126,8 @@
<property name="draw_indicator">True</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="y_options"></property>
</packing>
</child>
<child>
@@ -912,9 +1140,8 @@
<property name="draw_indicator">True</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- <property name="y_options"></property>
</packing>
</child>
<child>
@@ -927,9 +1154,8 @@
<property name="draw_indicator">True</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
- <property name="y_options"></property>
</packing>
</child>
<child>
@@ -942,9 +1168,8 @@
<property name="draw_indicator">True</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">4</property>
- <property name="bottom_attach">5</property>
- <property name="y_options"></property>
</packing>
</child>
<child>
@@ -957,9 +1182,8 @@
<property name="draw_indicator">True</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">5</property>
- <property name="bottom_attach">6</property>
- <property name="y_options"></property>
</packing>
</child>
<child>
@@ -972,9 +1196,8 @@
<property name="draw_indicator">True</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">6</property>
- <property name="bottom_attach">7</property>
- <property name="y_options"></property>
</packing>
</child>
<child>
@@ -987,9 +1210,8 @@
<property name="draw_indicator">True</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">7</property>
- <property name="bottom_attach">8</property>
- <property name="y_options"></property>
</packing>
</child>
<child>
@@ -1002,9 +1224,8 @@
<property name="draw_indicator">True</property>
</object>
<packing>
+ <property name="left_attach">0</property>
<property name="top_attach">8</property>
- <property name="bottom_attach">9</property>
- <property name="y_options"></property>
</packing>
</child>
<child>
@@ -1018,10 +1239,7 @@
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
<property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="y_options"></property>
</packing>
</child>
<child>
@@ -1035,10 +1253,7 @@
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
<property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- <property name="y_options"></property>
</packing>
</child>
<child>
@@ -1052,10 +1267,7 @@
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
<property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
- <property name="y_options"></property>
</packing>
</child>
<child>
@@ -1069,10 +1281,7 @@
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
<property name="top_attach">4</property>
- <property name="bottom_attach">5</property>
- <property name="y_options"></property>
</packing>
</child>
<child>
@@ -1086,10 +1295,7 @@
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
<property name="top_attach">5</property>
- <property name="bottom_attach">6</property>
- <property name="y_options"></property>
</packing>
</child>
<child>
@@ -1103,16 +1309,12 @@
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
<property name="top_attach">6</property>
- <property name="bottom_attach">7</property>
- <property name="y_options"></property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="chkCfgFix65536">
<property name="label" translatable="yes">Unused</property>
- <property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
@@ -1121,10 +1323,7 @@
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">7</property>
- <property name="bottom_attach">8</property>
- <property name="y_options"></property>
+ <property name="top_attach">8</property>
</packing>
</child>
<child>
@@ -1138,10 +1337,7 @@
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">8</property>
- <property name="bottom_attach">9</property>
- <property name="y_options"></property>
+ <property name="top_attach">7</property>
</packing>
</child>
</object>
@@ -1176,77 +1372,6 @@
<property name="position">0</property>
</packing>
</child>
- <child internal-child="action_area">
- <object class="GtkButtonBox" id="dialog-action_area3">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="layout_style">end</property>
- <child>
- <object class="GtkButton" id="btnFast">
- <property name="label" translatable="yes">Fast</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="tooltip_text" translatable="yes">Autoconfigure for fast display</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- <property name="secondary">True</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="btnBeautiful">
- <property name="label" translatable="yes">Beautiful</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="tooltip_text" translatable="yes">Auto configure for beautiful display</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- <property name="secondary">True</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="btnSave">
- <property name="label">gtk-ok</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_stock">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="btnCancel">
- <property name="label">gtk-cancel</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_stock">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">3</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">end</property>
- <property name="position">0</property>
- </packing>
- </child>
</object>
</child>
<action-widgets>
@@ -1256,167 +1381,4 @@
<action-widget response="0">btnCancel</action-widget>
</action-widgets>
</object>
- <object class="GtkAdjustment" id="f">
- <property name="lower">20</property>
- <property name="upper">200</property>
- <property name="value">60</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
- </object>
- <object class="GtkListStore" id="liststore1">
- <columns>
- <!-- column-name item -->
- <column type="gchararray"/>
- </columns>
- <data>
- <row>
- <col id="0" translatable="yes">Emulated VRam - Ok most times</col>
- </row>
- <row>
- <col id="0" translatable="yes">Gfx card buffer reads</col>
- </row>
- <row>
- <col id="0" translatable="yes">Gfx card buffer moves</col>
- </row>
- <row>
- <col id="0" translatable="yes">Gfx card buffer reads and moves</col>
- </row>
- <row>
- <col id="0" translatable="yes">Full Software (FVP)</col>
- </row>
- </data>
- </object>
- <object class="GtkListStore" id="liststore2">
- <columns>
- <!-- column-name item -->
- <column type="gchararray"/>
- </columns>
- <data>
- <row>
- <col id="0" translatable="yes">Emulated VRam - Needs FVP</col>
- </row>
- <row>
- <col id="0" translatable="yes">Black - Fast, no effects</col>
- </row>
- <row>
- <col id="0" translatable="yes">Gfx card buffer - Can be slow</col>
- </row>
- <row>
- <col id="0" translatable="yes">Gfx card and soft - Slow</col>
- </row>
- </data>
- </object>
- <object class="GtkListStore" id="liststore3">
- <columns>
- <!-- column-name item -->
- <column type="gchararray"/>
- </columns>
- <data>
- <row>
- <col id="0" translatable="yes">None - Fastest, most glitches</col>
- </row>
- <row>
- <col id="0" translatable="yes">Minimum - Missing screens</col>
- </row>
- <row>
- <col id="0" translatable="yes">Standard - OK for most games</col>
- </row>
- <row>
- <col id="0" translatable="yes">Enhanced - Shows more stuff</col>
- </row>
- <row>
- <col id="0" translatable="yes">Extended - Causing garbage</col>
- </row>
- </data>
- </object>
- <object class="GtkListStore" id="liststore4">
- <columns>
- <!-- column-name item -->
- <column type="gchararray"/>
- </columns>
- <data>
- <row>
- <col id="0" translatable="yes">None (Standard)</col>
- </row>
- <row>
- <col id="0" translatable="yes">2xSaI (Much vram needed)</col>
- </row>
- <row>
- <col id="0" translatable="yes">Scaled (Needs tex filtering)</col>
- </row>
- </data>
- </object>
- <object class="GtkListStore" id="liststore5">
- <columns>
- <!-- column-name item -->
- <column type="gchararray"/>
- </columns>
- <data>
- <row>
- <col id="0" translatable="yes">None</col>
- </row>
- <row>
- <col id="0" translatable="yes">Standard - Glitches will happen</col>
- </row>
- <row>
- <col id="0" translatable="yes">Extended - No black borders</col>
- </row>
- <row>
- <col id="0" translatable="yes">Standard without sprites - Unfiltered 2D</col>
- </row>
- <row>
- <col id="0" translatable="yes">Extended without sprites - Unfiltered 2D</col>
- </row>
- <row>
- <col id="0" translatable="yes">Standard + smoothed sprites</col>
- </row>
- <row>
- <col id="0" translatable="yes">Extended + smoothed sprites</col>
- </row>
- </data>
- </object>
- <object class="GtkListStore" id="liststore6">
- <columns>
- <!-- column-name item -->
- <column type="gchararray"/>
- </columns>
- <data>
- <row>
- <col id="0" translatable="yes">Don't care - Use driver's default textures</col>
- </row>
- <row>
- <col id="0" translatable="yes">4444 - Fast, but less colorful</col>
- </row>
- <row>
- <col id="0" translatable="yes">5551 - Nice colors, bad transparency</col>
- </row>
- <row>
- <col id="0" translatable="yes">8888 - Best colors, more ram needed</col>
- </row>
- <row>
- <col id="0" translatable="yes">BGR8888 - Faster on some cards</col>
- </row>
- </data>
- </object>
- <object class="GtkAdjustment" id="s">
- <property name="lower">-1</property>
- <property name="upper">255</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
- </object>
- <object class="GtkAdjustment" id="v">
- <property name="upper">1024</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
- </object>
- <object class="GtkAdjustment" id="x">
- <property name="upper">9999</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
- </object>
- <object class="GtkAdjustment" id="y">
- <property name="upper">9999</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
- </object>
</interface>
diff --git a/plugins/peopsxgl/prim.c b/plugins/peopsxgl/prim.c
index b2aad92b..1af588f0 100755
--- a/plugins/peopsxgl/prim.c
+++ b/plugins/peopsxgl/prim.c
@@ -25,7 +25,7 @@
#include "draw.h"
#include "soft.h"
#include "texture.h"
-#include "PGXP_gpu.h"
+#include "pgxp_gpu.h"
////////////////////////////////////////////////////////////////////////
// defines
diff --git a/po/LINGUAS b/po/LINGUAS
index f9b86bf6..0f5e43ec 100755..100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -1,9 +1,9 @@
zh_CN
zh_TW
pt_BR
-ru_RU
+ru
it
-fr_FR
-hu_HU
+fr
+hu
ko_KR
es
diff --git a/po/Makefile.in.in b/po/Makefile.in.in
index 3d02752c..3d02752c 100755..100644
--- a/po/Makefile.in.in
+++ b/po/Makefile.in.in
diff --git a/po/Makevars b/po/Makevars
index 7d3f81b4..7d3f81b4 100755..100644
--- a/po/Makevars
+++ b/po/Makevars
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 953ed3b5..953ed3b5 100755..100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
diff --git a/po/fr_FR.po b/po/fr.po
index 50025af0..50025af0 100755..100644
--- a/po/fr_FR.po
+++ b/po/fr.po
diff --git a/po/hu_HU.po b/po/hu.po
index 3f9f8832..3f9f8832 100755..100644
--- a/po/hu_HU.po
+++ b/po/hu.po
diff --git a/po/it.po b/po/it.po
index a4b65c50..a4b65c50 100755..100644
--- a/po/it.po
+++ b/po/it.po
diff --git a/po/pcsxr.pot b/po/pcsxr.pot
index 9c31b34b..9c31b34b 100755..100644
--- a/po/pcsxr.pot
+++ b/po/pcsxr.pot
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 2a12c5b7..2a12c5b7 100755..100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
diff --git a/po/ru_RU.po b/po/ru.po
index 5120c6f6..5120c6f6 100755..100644
--- a/po/ru_RU.po
+++ b/po/ru.po
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 8835751a..8835751a 100755..100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
diff --git a/po/zh_TW.po b/po/zh_TW.po
index 1380fd88..1380fd88 100755..100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po