summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorSND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2011-01-02 07:55:52 +0000
committerSND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2011-01-02 07:55:52 +0000
commitd4a2f0051ab1a43fbf2376ec905319797a1fdc3c (patch)
tree4094b1c78afb63fad13be19b271487ba8ebde4a8 /plugins
parent975b596091422b2583ed6d5e0e56efeb4626dfac (diff)
downloadpcsxr-d4a2f0051ab1a43fbf2376ec905319797a1fdc3c.tar.gz
- dfsound: quick fix (FF9 music, maybe others as well).
- peopsxgl (unix): imported new config utility written by Kivutar, with minor amendments (https://github.com/Kivutar/cfgPeopsMesaGL). git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@61694 e17a0e51-4ae3-4d35-97c3-1a29b211df97
Diffstat (limited to 'plugins')
-rw-r--r--plugins/dfsound/externals.h2
-rw-r--r--plugins/dfsound/spu.c7
-rw-r--r--plugins/peopsxgl/Makefile.am2
-rw-r--r--plugins/peopsxgl/gpucfg/main.c1220
-rw-r--r--plugins/peopsxgl/gpucfg/peopsxgl.ui1727
5 files changed, 1616 insertions, 1342 deletions
diff --git a/plugins/dfsound/externals.h b/plugins/dfsound/externals.h
index 3143c6df..b8a5c43d 100644
--- a/plugins/dfsound/externals.h
+++ b/plugins/dfsound/externals.h
@@ -276,7 +276,7 @@ extern unsigned long spuAddr;
extern int bEndThread;
extern int bThreadEnded;
extern int bSpuInit;
-extern unsigned long dwNewChannel;
+extern uint32_t dwNewChannel;
extern int SSumR[];
extern int SSumL[];
diff --git a/plugins/dfsound/spu.c b/plugins/dfsound/spu.c
index f6c8ebd5..40e32094 100644
--- a/plugins/dfsound/spu.c
+++ b/plugins/dfsound/spu.c
@@ -109,7 +109,7 @@ static HANDLE hMainThread;
static pthread_t thread = (pthread_t)-1; // thread id (linux)
#endif
-unsigned long dwNewChannel=0; // flags for faster testing, if new channel starts
+uint32_t dwNewChannel=0; // flags for faster testing, if new channel starts
void (CALLBACK *irqCallback)(void)=0; // func of main emu, called on spu irq
void (CALLBACK *cddavCallback)(unsigned short,unsigned short)=0;
@@ -596,7 +596,10 @@ static void *MAINThread(void *arg)
for(ch=0;ch<MAXCHAN;ch++) // loop em all... we will collect 1 ms of sound of each playing channel
{
- if(s_chan[ch].bNew) StartSound(ch); // start new sound
+ if(s_chan[ch].bNew) {
+ StartSound(ch); // start new sound
+ dwNewChannel&=~(1<<ch); // clear new channel bit
+ }
if(!s_chan[ch].bOn) continue; // channel not playing? next
if(s_chan[ch].iActFreq!=s_chan[ch].iUsedFreq) // new psx frequency?
diff --git a/plugins/peopsxgl/Makefile.am b/plugins/peopsxgl/Makefile.am
index f0bb949a..e7478efa 100644
--- a/plugins/peopsxgl/Makefile.am
+++ b/plugins/peopsxgl/Makefile.am
@@ -20,4 +20,4 @@ cfgpeopsxgl_LDADD = $(GTK2_LIBS)
glade_DATA = gpucfg/peopsxgl.ui
gladedir = $(datadir)/psemu/
-#EXTRA_DIST = $(glade_DATA)
+EXTRA_DIST = $(glade_DATA)
diff --git a/plugins/peopsxgl/gpucfg/main.c b/plugins/peopsxgl/gpucfg/main.c
index 199160c2..f9dbdeef 100644
--- a/plugins/peopsxgl/gpucfg/main.c
+++ b/plugins/peopsxgl/gpucfg/main.c
@@ -1,545 +1,723 @@
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include <gtk/gtk.h>
-
-#include <unistd.h>
-#include <stdio.h>
-#include <stdlib.h>
+#include <stdlib.h>
#include <string.h>
-#define SETCHECK(winame) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gtk_builder_get_object (wndMain,winame)), TRUE)
-#define SETEDITVAL(winame,v) sprintf(t,"%d",v);gtk_entry_set_text(GTK_ENTRY(gtk_builder_get_object (wndMain,winame)), t)
-#define SETLIST(winame,v) gtk_combo_box_set_active(GTK_COMBO_BOX(gtk_builder_get_object(wndMain,winame)), v)
-
-static GtkBuilder *wndMain;
-void SaveConfig(void);
-
-int main (int argc, char *argv[])
-{
- GtkWidget *main_win;
- GError *error = NULL;
- FILE *in;char t[256];int len,val;
- char * pB, * p;
-
- if(argc!=2) return 0;
- if(strcmp(argv[1],"CFG")!=0 && strcmp(argv[1],"ABOUT")!=0)
- return 0;
-
- gtk_set_locale ();
- gtk_init (&argc, &argv);
-
- wndMain = gtk_builder_new();
- gtk_builder_set_translation_domain(wndMain, PACKAGE_NAME);
- if (!gtk_builder_add_from_file (wndMain, DATADIR "peopsxgl.ui", &error))
- {
- g_warning ("Couldn't load builder file: %s", error->message);
- g_error_free (error);
- return -1;
- }
-
- if (strcmp(argv[1],"ABOUT") == 0)
- {
- main_win = GTK_WIDGET(gtk_builder_get_object(wndMain, "AboutWnd"));
- gtk_widget_show_all (main_win);
- gtk_dialog_run(GTK_DIALOG(main_win));
- return 0;
- }
-
- main_win = GTK_WIDGET(gtk_builder_get_object(wndMain, "CfgWnd"));
-
- in = fopen("gpuPeopsMesaGL.cfg","rb");
- if(in)
- {
- pB=(char *)malloc(32767);
- memset(pB,0,32767);
- len = fread(pB, 1, 32767, in);
- fclose(in);
- }
- else pB=0;
-
- val=640;
- if(pB)
- {
- strcpy(t,"\nResX");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;}
- if(p) val=atoi(p+len);
- if(val<10) val=10;
- }
- SETEDITVAL("edtXSize",val);
-
- val=480;
- if(pB)
- {
- strcpy(t,"\nResY");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;}
- if(p) val=atoi(p+len);
- if(val<10) val=10;
- }
- SETEDITVAL("edtYSize",val);
-
- val=0;
- if(pB)
- {
- strcpy(t,"\nKeepRatio");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;}
- if(p) val=atoi(p+len);
- if(val<0) val=0;
- if(val>1) val=1;
- }
- if(val) SETCHECK("chkKeepRatio");
-
- val=0;
- if(pB)
- {
- strcpy(t,"\nVRamSize");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;}
- if(p) val=atoi(p+len);
- if(val<0) val=0;
- if(val>1024) val=1024;
- }
- SETEDITVAL("edtMaxTex",val);
-
- val=0;
- if(pB)
- {
- strcpy(t,"\n15bitMdec");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;}
- if(p) val=atoi(p+len);
- if(val<0) val=0;
- if(val>1) val=1;
- }
- if(val) SETCHECK("chk15bitMdec");
-
- val=0;
- if(pB)
- {
- strcpy(t,"\nHiResTextures");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;}
- if(p) val=atoi(p+len);
- if(val<0) val=0;
- if(val>2) val=2;
- }
- SETLIST("cmbHiresTex",val);
-
- val=0;
- if(pB)
- {
- strcpy(t,"\nFullScreen");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;}
- if(p) val=atoi(p+len);
- if(val<0) val=0;
- if(val>1) val=1;
- }
- if(val) SETCHECK("chkFullScreen");
-
- val=0;
- if(pB)
- {
- strcpy(t,"\nScanLines");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;}
- if(p) val=atoi(p+len);
- if(val<0) val=0;
- if(val>1) val=1;
- }
- if(val) SETCHECK("chkScanlines");
-
- val=0;
- if(pB)
- {
- strcpy(t,"\nScanLinesBlend");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;}
- if(p) val=atoi(p+len);
- if(val<-1) val=-1;
- if(val>255) val=255;
- }
- SETEDITVAL("edtScanBlend",val);
-
- val=1;
- if(pB)
- {
- strcpy(t,"\nFrameTextures");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;}
- if(p) val=atoi(p+len);
- if(val<0) val=0;
- if(val>3) val=3;
- }
- SETLIST("cmbFrameTex",val);
-
- val=0;
- if(pB)
- {
- strcpy(t,"\nFrameAccess");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;}
- if(p) val=atoi(p+len);
- if(val<0) val=0;
- if(val>4) val=4;
- }
- SETLIST("cmbFrameAcc",val);
-
- val=0;
- if(pB)
- {
- strcpy(t,"\nTexFilter");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;}
- if(p) val=atoi(p+len);
- if(val<0) val=0;
- if(val>6) val=6;
- }
- SETLIST("cmbFilter",val);
-
- val=0;
- if(pB)
- {
- strcpy(t,"\nAdvancedBlend");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;}
- if(p) val=atoi(p+len);
- if(val<0) val=0;
- if(val>1) val=1;
- }
- if(val) SETCHECK("chkABlend");
-
- val=0;
- if(pB)
- {
- strcpy(t,"\nDithering");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;}
- if(p) val=atoi(p+len);
- if(val<0) val=0;
- if(val>1) val=1;
- }
- if(val) SETCHECK("chkDither");
-
- val=0;
- if(pB)
- {
- strcpy(t,"\nLineMode");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;}
- if(p) val=atoi(p+len);
- if(val<0) val=0;
- if(val>1) val=1;
- }
- if(val) SETCHECK("chkLinemode");
-
- val=0;
- if(pB)
- {
- strcpy(t,"\nShowFPS");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;}
- if(p) val=atoi(p+len);
- if(val<0) val=0;
- if(val>1) val=1;
- }
- if(val) SETCHECK("chkShowFPS");
-
- val=1;
- if(pB)
- {
- strcpy(t,"\nUseFrameLimit");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;}
- if(p) val=atoi(p+len);
- if(val<0) val=0;
- if(val>1) val=1;
- }
- if(val) SETCHECK("chkFPSLimit");
-
- val=0;
- if(pB)
- {
- strcpy(t,"\nUseFrameSkip");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;}
- if(p) val=atoi(p+len);
- if(val<0) val=0;
- if(val>1) val=1;
- }
- if(val) SETCHECK("chkFPSSkip");
-
- val=2;
- if(pB)
- {
- strcpy(t,"\nFPSDetection");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;}
- if(p) val=atoi(p+len)+1;
- if(val<1) val=1;
- if(val>2) val=2;
- }
- if(val==2) SETCHECK("rdbLimAuto");
- if(val==1) SETCHECK("rdbLimMan");
-
- val=200;
- if(pB)
- {
- strcpy(t,"\nFrameRate");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;}
- if(p) val=atoi(p+len);
- if(val<0) val=0;
- if(val>1000) val=1000;
- }
- SETEDITVAL("edtFPSlim",val);
-
- val=2;
- if(pB)
- {
- strcpy(t,"\nOffscreenDrawing");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;}
- if(p) val=atoi(p+len);
- if(val<0) val=0;
- if(val>4) val=4;
- }
- SETLIST("cmbOffscreen",val);
-
- val=1;
- if(pB)
- {
- strcpy(t,"\nOpaquePass");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;}
- if(p) val=atoi(p+len);
- if(val<0) val=0;
- if(val>1) val=1;
- }
- if(val) SETCHECK("chkOpaque");
-
- val=0;
- if(pB)
- {
- strcpy(t,"\nAntiAlias");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;}
- if(p) val=atoi(p+len);
- if(val<0) val=0;
- if(val>1) val=1;
- }
- if(val) SETCHECK("chkAntiA");
-
- val=0;
- if(pB)
- {
- strcpy(t,"\nTexQuality");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;}
- if(p) val=atoi(p+len);
- if(val<0) val=0;
- if(val>4) val=4;
- }
- SETLIST("cmbQuality",val);
-
- val=0;
- if(pB)
- {
- strcpy(t,"\nMaskDetect");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;}
- if(p) val=atoi(p+len);
- if(val<0) val=0;
- if(val>1) val=1;
- }
- if(val) SETCHECK("chkMaskBit");
-
- val=1;
- if(pB)
- {
- strcpy(t,"\nFastMdec");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;}
- if(p) val=atoi(p+len);
- if(val<0) val=0;
- if(val>1) val=1;
- }
- if(val) SETCHECK("chkFastMdec");
-
- val=1;
- if(pB)
- {
- strcpy(t,"\nOGLExtensions");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;}
- if(p) val=atoi(p+len);
- if(val<0) val=0;
- if(val>1) val=1;
- }
- if(val) SETCHECK("chkExtensions");
-
- val=0;
- if(pB)
- {
- strcpy(t,"\nScreenSmoothing");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;}
- if(p) val=atoi(p+len);
- if(val<0) val=0;
- if(val>1) val=1;
- }
- if(val) SETCHECK("chkBlur");
-
- val=0;
- if(pB)
- {
- strcpy(t,"\nUseFixes");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;}
- if(p) val=atoi(p+len);
- if(val<0) val=0;
- if(val>1) val=1;
- }
- if(val) SETCHECK("chkGameFixes");
-
- val=0;
- if(pB)
- {
- strcpy(t,"\nCfgFixes");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;}
- if(p) val=atoi(p+len);
- }
-
- for(len=0;len<18;len++)
- {
- if(val & (1<<len))
- {
- sprintf(t,"chkFix%d",len);
- SETCHECK(t);
- }
- }
-
- if(pB) free(pB);
-
- gtk_widget_show_all (main_win);
- if (gtk_dialog_run(GTK_DIALOG(main_win))==GTK_RESPONSE_OK) {SaveConfig();}
- return 0;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-
-void SetCfgVal(char * pB,char * pE,int val)
-{
- char * p, *ps, *pC;char t[32];
-
- sprintf(t,"%d",val);
-
- p=strstr(pB,pE);
- if(p)
- {
- p=strstr(p,"=");
- if(!p) return;
- p++;
- while(*p && *p!='\n' && *p!='-' && (*p<'0' || *p>'9')) p++;
- if(*p==0 || *p=='\n') return;
- ps=p;
- while((*p>='0' && *p<='9') || *p=='-') p++;
- pC=(char *)malloc(32767);
- strcpy(pC,p);
- strcpy(ps,t);
- strcat(pB,pC);
- free(pC);
- }
- else
- {
- strcat(pB,pE);
- strcat(pB," = ");
- strcat(pB,t);
- strcat(pB,"\n");
- }
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-
-#define GETEDITVAL(winame) atoi(gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object (wndMain,winame))))
-#define GETCHECK(winame) gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gtk_builder_get_object (wndMain,winame)))
-#define GETLIST(winame) gtk_combo_box_get_active(GTK_COMBO_BOX(gtk_builder_get_object(wndMain,winame)))
-
-void SaveConfig(void)
-{
- FILE *in;int len,val;char * pB;char t[16];
-
- pB=(char *)malloc(32767);
- memset(pB,0,32767);
-
- in = fopen("gpuPeopsMesaGL.cfg","rb");
- if(in)
- {
- len = fread(pB, 1, 32767, in);
- fclose(in);
- }
-
- ///////////////////////////////////////////////////////////////////////////////
-
- val=GETEDITVAL("edtXSize");
- if(val<10) val=10;
- SetCfgVal(pB,"\nResX",val);
-
- val=GETEDITVAL("edtYSize");
- if(val<10) val=10;
- SetCfgVal(pB,"\nResY",val);
-
- val=GETCHECK("chkKeepRatio");
- SetCfgVal(pB,"\nKeepRatio",val);
-
- val=GETEDITVAL("edtMaxTex");
- if(val<0) val=0;
- if(val>1024) val=1024;
- SetCfgVal(pB,"\nVRamSize",val);
-
- val=GETCHECK("chk15bitMdec");
- SetCfgVal(pB,"\n15bitMdec",val);
-
- val=GETLIST("cmbHiresTex");
- SetCfgVal(pB,"\nHiResTextures",val);
-
- val=GETCHECK("chkFullScreen");
- SetCfgVal(pB,"\nFullScreen",val);
-
- val=GETCHECK("chkScanlines");
- SetCfgVal(pB,"\nScanLines",val);
-
- val=GETEDITVAL("edtScanBlend");
- if(val<-1) val=-1;
- if(val>255) val=255;
- SetCfgVal(pB,"\nScanLinesBlend",val);
-
- val=GETLIST("cmbFrameTex");
- SetCfgVal(pB,"\nFrameTextures",val);
-
- val=GETLIST("cmbFrameAcc");
- SetCfgVal(pB,"\nFrameAccess",val);
-
- val=GETLIST("cmbFilter");
- SetCfgVal(pB,"\nTexFilter",val);
-
- val=GETCHECK("chkABlend");
- SetCfgVal(pB,"\nAdvancedBlend",val);
+#include "config.h"
- val=GETCHECK("chkDither");
- SetCfgVal(pB,"\nDithering",val);
+#ifdef ENABLE_NLS
+#include <libintl.h>
+#include <locale.h>
+#endif
- val=GETCHECK("chkLinemode");
- SetCfgVal(pB,"\nLineMode",val);
+// Widgets
+GtkWidget *window,
+ *btnCancel,
+ *btnSave,
+ *spinXSize,
+ *spinYSize,
+ *chkKeepRatio,
+ *chkDithering,
+ *chkFullScreen,
+ *cbxTexQuality,
+ *cbxTexFiltering,
+ *cbxHiResTex,
+ *spinVRam,
+ *chkShowFPS,
+ *chkUseFPSLimit,
+ *vboxFPSLimit,
+ *radFPSLimitAuto,
+ *radFPSLimitManual,
+ *spinFPSLimit,
+ *chkUseFrameSkipping,
+ *cbxOffscreen,
+ *cbxFBTex,
+ *cbxFBAccess,
+ *chkMaskDetect,
+ *chkOpaquePass,
+ *chkAdvancedBlend,
+ *chkScanLines,
+ *spinScanLinesBlend,
+ *chkFastMdec,
+ *chk15bitMdec,
+ *chkLineMode,
+ *chkAntiAlias,
+ *chkOGLExtensions,
+ *chkScreenSmoothing,
+ *chkUseGameFixes,
+ *tblGameFixes,
+ *chkCfgFix1,
+ *chkCfgFix2,
+ *chkCfgFix4,
+ *chkCfgFix8,
+ *chkCfgFix16,
+ *chkCfgFix32,
+ *chkCfgFix64,
+ *chkCfgFix128,
+ *chkCfgFix256,
+ *chkCfgFix512,
+ *chkCfgFix1024,
+ *chkCfgFix2048,
+ *chkCfgFix4096,
+ *chkCfgFix8192,
+ *chkCfgFix16384,
+ *chkCfgFix32768,
+ *chkCfgFix65536,
+ *chkCfgFix131072,
+ *btnFast,
+ *btnBeautiful;
+
+// Save values to the config file
+void on_btnSave_clicked( GtkObject *object, gpointer user_data ) {
+ FILE *out;
+ out = fopen( "gpuPeopsMesaGL.cfg", "w+" );
+
+ if ( out != NULL ) {
+
+ // Computes the 'fixes' bitfield
+ int cfgFixes = 0;
+ if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( chkCfgFix1 ) ) ) { cfgFixes |= (1 << 0); }
+ if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( chkCfgFix2 ) ) ) { cfgFixes |= (1 << 1); }
+ if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( chkCfgFix4 ) ) ) { cfgFixes |= (1 << 2); }
+ if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( chkCfgFix8 ) ) ) { cfgFixes |= (1 << 3); }
+ if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( chkCfgFix16 ) ) ) { cfgFixes |= (1 << 4); }
+ if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( chkCfgFix32 ) ) ) { cfgFixes |= (1 << 5); }
+ if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( chkCfgFix64 ) ) ) { cfgFixes |= (1 << 6); }
+ if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( chkCfgFix128 ) ) ) { cfgFixes |= (1 << 7); }
+ if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( chkCfgFix256 ) ) ) { cfgFixes |= (1 << 8); }
+ if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( chkCfgFix512 ) ) ) { cfgFixes |= (1 << 9); }
+ if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( chkCfgFix1024 ) ) ) { cfgFixes |= (1 << 10); }
+ if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( chkCfgFix2048 ) ) ) { cfgFixes |= (1 << 11); }
+ if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( chkCfgFix4096 ) ) ) { cfgFixes |= (1 << 12); }
+ if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( chkCfgFix8192 ) ) ) { cfgFixes |= (1 << 13); }
+ if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( chkCfgFix16384 ) ) ) { cfgFixes |= (1 << 14); }
+ if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( chkCfgFix32768 ) ) ) { cfgFixes |= (1 << 15); }
+ if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( chkCfgFix65536 ) ) ) { cfgFixes |= (1 << 16); }
+ if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( chkCfgFix131072 ) ) ) { cfgFixes |= (1 << 17); }
+
+ // Print data to the config file
+ fprintf( out, "\nResX = %i", gtk_spin_button_get_value_as_int( GTK_SPIN_BUTTON( spinXSize ) ) );
+ fprintf( out, "\nResY = %i", gtk_spin_button_get_value_as_int( GTK_SPIN_BUTTON( spinYSize ) ) );
+ fprintf( out, "\nKeepRatio = %i", gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( chkKeepRatio ) ) );
+ fprintf( out, "\nDithering = %i", gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( chkDithering ) ) );
+ fprintf( out, "\nFullScreen = %i", gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( chkFullScreen ) ) );
+ fprintf( out, "\nTexQuality = %i", gtk_combo_box_get_active( GTK_COMBO_BOX( cbxTexQuality ) ) );
+ fprintf( out, "\nTexFilter = %i", gtk_combo_box_get_active( GTK_COMBO_BOX( cbxTexFiltering ) ) );
+ fprintf( out, "\nHiResTextures = %i", gtk_combo_box_get_active( GTK_COMBO_BOX( cbxHiResTex ) ) );
+ fprintf( out, "\nVRamSize = %i", gtk_spin_button_get_value_as_int( GTK_SPIN_BUTTON( spinVRam ) ) );
+ fprintf( out, "\nShowFPS = %i", gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( chkShowFPS ) ) );
+ fprintf( out, "\nUseFrameLimit = %i", gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( chkUseFPSLimit ) ) );
+ fprintf( out, "\nFPSDetection = %i", gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( radFPSLimitAuto ) ) );
+ fprintf( out, "\nFrameRate = %i", gtk_spin_button_get_value_as_int( GTK_SPIN_BUTTON( spinFPSLimit ) ) );
+ fprintf( out, "\nUseFrameSkip = %i", gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( chkUseFrameSkipping ) ) );
+ fprintf( out, "\nOffscreenDrawing = %i", gtk_combo_box_get_active( GTK_COMBO_BOX( cbxOffscreen ) ) );
+ fprintf( out, "\nFrameTextures = %i", gtk_combo_box_get_active( GTK_COMBO_BOX( cbxFBTex ) ) );
+ fprintf( out, "\nFrameAccess = %i", gtk_combo_box_get_active( GTK_COMBO_BOX( cbxFBAccess ) ) );
+ fprintf( out, "\nMaskDetect = %i", gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( chkMaskDetect ) ) );
+ fprintf( out, "\nOpaquePass = %i", gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( chkOpaquePass ) ) );
+ fprintf( out, "\nAdvancedBlend = %i", gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( chkAdvancedBlend ) ) );
+ fprintf( out, "\nScanLines = %i", gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( chkScanLines ) ) );
+ fprintf( out, "\nScanLinesBlend = %i", gtk_spin_button_get_value_as_int( GTK_SPIN_BUTTON( spinScanLinesBlend ) ) );
+ fprintf( out, "\nFastMdec = %i", gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( chkFastMdec ) ) );
+ fprintf( out, "\n15bitMdec = %i", gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( chk15bitMdec ) ) );
+ fprintf( out, "\nLineMode = %i", gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( chkLineMode ) ) );
+ fprintf( out, "\nAntiAlias = %i", gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( chkAntiAlias ) ) );
+ fprintf( out, "\nOGLExtensions = %i", gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( chkOGLExtensions ) ) );
+ fprintf( out, "\nScreenSmoothing = %i", gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( chkScreenSmoothing ) ) );
+ fprintf( out, "\nUseFixes = %i", gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( chkUseGameFixes ) ) );
+ fprintf( out, "\nCfgFixes = %i", cfgFixes );
+
+ fclose( out );
+ }
- val=GETCHECK("chkShowFPS");
- SetCfgVal(pB,"\nShowFPS",val);
+ gtk_main_quit();
+}
- val=GETCHECK("chkFPSLimit");
- SetCfgVal(pB,"\nUseFrameLimit",val);
+// Autoconfiguration callbacks
+
+void on_btnFast_clicked( GtkObject *object, gpointer user_data ) {
+ gtk_spin_button_set_value( GTK_SPIN_BUTTON( spinXSize ), 640 );
+ gtk_spin_button_set_value( GTK_SPIN_BUTTON( spinYSize ), 480 );
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkKeepRatio ), 0 );
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkDithering ), 0 );
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkFullScreen ), 0 );
+ gtk_combo_box_set_active( GTK_COMBO_BOX( cbxTexQuality ), 0 );
+ gtk_combo_box_set_active( GTK_COMBO_BOX( cbxTexFiltering ), 0 );
+ gtk_combo_box_set_active( GTK_COMBO_BOX( cbxHiResTex ), 0 );
+ gtk_spin_button_set_value( GTK_SPIN_BUTTON( spinVRam ), 0 );
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkShowFPS ), 0 );
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkUseFPSLimit ), 1 );
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( radFPSLimitAuto ), 1 );
+ gtk_spin_button_set_value( GTK_SPIN_BUTTON( spinFPSLimit ), 200 );
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkUseFrameSkipping ), 0 );
+ gtk_combo_box_set_active( GTK_COMBO_BOX( cbxOffscreen ), 1 );
+ gtk_combo_box_set_active( GTK_COMBO_BOX( cbxFBTex ), 1 );
+ gtk_combo_box_set_active( GTK_COMBO_BOX( cbxFBAccess ), 0 );
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkMaskDetect ), 0 );
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkOpaquePass ), 1 );
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkAdvancedBlend ), 0 );
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkScanLines ), 0 );
+ gtk_spin_button_set_value( GTK_SPIN_BUTTON( spinScanLinesBlend ), 0 );
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkFastMdec ), 1 );
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chk15bitMdec ), 1 );
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkLineMode ), 0 );
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkAntiAlias ), 0 );
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkOGLExtensions ), 1 );
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkScreenSmoothing ), 0 );
+}
- val=GETCHECK("chkFPSSkip");
- SetCfgVal(pB,"\nUseFrameSkip",val);
+void on_btnBeautiful_clicked( GtkObject *object, gpointer user_data ) {
+ gtk_spin_button_set_value( GTK_SPIN_BUTTON( spinXSize ), 640 );
+ gtk_spin_button_set_value( GTK_SPIN_BUTTON( spinYSize ), 480 );
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkKeepRatio ), 0 );
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkDithering ), 0 );
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkFullScreen ), 0 );
+ gtk_combo_box_set_active( GTK_COMBO_BOX( cbxTexQuality ), 3 );
+ gtk_combo_box_set_active( GTK_COMBO_BOX( cbxTexFiltering ), 0 );
+ gtk_combo_box_set_active( GTK_COMBO_BOX( cbxHiResTex ), 0 );
+ gtk_spin_button_set_value( GTK_SPIN_BUTTON( spinVRam ), 0 );
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkShowFPS ), 0 );
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkUseFPSLimit ), 1 );
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( radFPSLimitAuto ), 1 );
+ gtk_spin_button_set_value( GTK_SPIN_BUTTON( spinFPSLimit ), 200 );
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkUseFrameSkipping ), 0 );
+ gtk_combo_box_set_active( GTK_COMBO_BOX( cbxOffscreen ), 3 );
+ gtk_combo_box_set_active( GTK_COMBO_BOX( cbxFBTex ), 2 );
+ gtk_combo_box_set_active( GTK_COMBO_BOX( cbxFBAccess ), 0 );
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkMaskDetect ), 1 );
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkOpaquePass ), 1 );
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkAdvancedBlend ), 1 );
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkScanLines ), 0 );
+ gtk_spin_button_set_value( GTK_SPIN_BUTTON( spinScanLinesBlend ), 0 );
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkFastMdec ), 0 );
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chk15bitMdec ), 0 );
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkLineMode ), 0 );
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkAntiAlias ), 0 );
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkOGLExtensions ), 1 );
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkScreenSmoothing ), 0 );
+}
- val=GETCHECK("rdbLimAuto");
- if(val) val=1; else val=0;
- SetCfgVal(pB,"\nFPSDetection",val);
+// Callbacks used to toggle the sensitivity of some parts of the GUI
- val=GETEDITVAL("edtFPSlim");
- if(val<0) val=0;
- if(val>1000) val=1000;
- SetCfgVal(pB,"\nFrameRate",val);
+void on_chkUseGameFixes_toggled( GtkObject *object, gpointer user_data ) {
+ gtk_widget_set_sensitive( tblGameFixes, gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( chkUseGameFixes ) ) );
+}
- val=GETLIST("cmbOffscreen");
- SetCfgVal(pB,"\nOffscreenDrawing",val);
+void on_chkUseFPSLimit_toggled( GtkObject *object, gpointer user_data ) {
+ gtk_widget_set_sensitive( vboxFPSLimit, gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( chkUseFPSLimit ) ) );
+}
- val=GETCHECK("chkOpaque");
- SetCfgVal(pB,"\nOpaquePass",val);
+void on_radFPSLimitManual_toggled( GtkObject *object, gpointer user_data ) {
+ gtk_widget_set_sensitive( spinFPSLimit, gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( radFPSLimitManual ) ) );
+}
- val=GETCHECK("chkAntiA");
- SetCfgVal(pB,"\nAntiAlias",val);
+void on_chkScanLines_toggled( GtkObject *object, gpointer user_data ) {
+ gtk_widget_set_sensitive( spinScanLinesBlend, gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( chkScanLines ) ) );
+}
- val=GETLIST("cmbQuality");
- SetCfgVal(pB,"\nTexQuality",val);
+/* Instanciates the GUI
+ Reads the config file
+ Sets widget states according to the config file
+ Connect callbacks to signals */
+int main( int argc, char **argv ) {
+ GtkBuilder *builder;
+ GError *error = NULL;
+ FILE *in;
+ char *pB, *p;
+ int len, val;
+ char t[256];
+
+#ifdef ENABLE_NLS
+ setlocale (LC_ALL, "");
+ bindtextdomain (GETTEXT_PACKAGE, LOCALE_DIR);
+ bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+ textdomain (GETTEXT_PACKAGE);
+#endif
- val=GETCHECK("chkMaskBit");
- SetCfgVal(pB,"\nMaskDetect",val);
+ gtk_set_locale();
+ gtk_init( &argc, &argv );
- val=GETCHECK("chkFastMdec");
- SetCfgVal(pB,"\nFastMdec",val);
+ builder = gtk_builder_new();
- val=GETCHECK("chkExtensions");
- SetCfgVal(pB,"\nOGLExtensions",val);
+ // Load the glade file
+ if ( !gtk_builder_add_from_file( builder, DATADIR "peopsxgl.ui", &error ) ) {
+ g_warning( "%s", error->message );
+ g_free( error );
+ return( 1 );
+ }
- val=GETCHECK("chkBlur");
- SetCfgVal(pB,"\nScreenSmoothing",val);
+ // Display the About dialog when the emulator ask for it
+ if ( argv[1] && strcmp( argv[1], "ABOUT" ) == 0 ) {
+ GtkWidget *widget;
+ const char *authors[]= {"Adapted from P.E.Op.S OpenGL GPU by Pete Bernert", NULL};
- val=GETCHECK("chkGameFixes");
- SetCfgVal(pB,"\nUseFixes",val);
+ widget = gtk_about_dialog_new();
+ gtk_about_dialog_set_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);
+ gtk_about_dialog_set_website(GTK_ABOUT_DIALOG(widget), "http://pcsxr.codeplex.com/");
- val=0;
- for(len=0;len<18;len++)
- {
- sprintf(t,"chkFix%d",len);
- if(GETCHECK(t)) val|=(1<<len);
- }
- SetCfgVal(pB,"\nCfgFixes",val);
+ gtk_dialog_run(GTK_DIALOG(widget));
+ gtk_widget_destroy(widget);
- ///////////////////////////////////////////////////////////////////////////////
+ return 0;
+ }
- if((in=fopen("gpuPeopsMesaGL.cfg","wb"))!=NULL)
- {
- fwrite(pB,strlen(pB),1,in);
- fclose(in);
- }
+ // Get widgets from the glade file
+ window = GTK_WIDGET( gtk_builder_get_object( builder, "MainDialog" ) );
+ btnCancel = GTK_WIDGET( gtk_builder_get_object( builder, "btnCancel" ) );
+ btnSave = GTK_WIDGET( gtk_builder_get_object( builder, "btnSave" ) );
+ spinXSize = GTK_WIDGET( gtk_builder_get_object( builder, "spinXSize" ) );
+ spinYSize = GTK_WIDGET( gtk_builder_get_object( builder, "spinYSize" ) );
+ chkKeepRatio = GTK_WIDGET( gtk_builder_get_object( builder, "chkKeepRatio" ) );
+ chkDithering = GTK_WIDGET( gtk_builder_get_object( builder, "chkDithering" ) );
+ chkFullScreen = GTK_WIDGET( gtk_builder_get_object( builder, "chkFullScreen" ) );
+ cbxTexQuality = GTK_WIDGET( gtk_builder_get_object( builder, "cbxTexQuality" ) );
+ cbxTexFiltering = GTK_WIDGET( gtk_builder_get_object( builder, "cbxTexFiltering" ) );
+ cbxHiResTex = GTK_WIDGET( gtk_builder_get_object( builder, "cbxHiResTex" ) );
+ spinVRam = GTK_WIDGET( gtk_builder_get_object( builder, "spinVRam" ) );
+ chkShowFPS = GTK_WIDGET( gtk_builder_get_object( builder, "chkShowFPS" ) );
+ chkUseFPSLimit = GTK_WIDGET( gtk_builder_get_object( builder, "chkUseFPSLimit" ) );
+ vboxFPSLimit = GTK_WIDGET( gtk_builder_get_object( builder, "vboxFPSLimit" ) );
+ radFPSLimitAuto = GTK_WIDGET( gtk_builder_get_object( builder, "radFPSLimitAuto" ) );
+ radFPSLimitManual = GTK_WIDGET( gtk_builder_get_object( builder, "radFPSLimitManual" ) );
+ spinFPSLimit = GTK_WIDGET( gtk_builder_get_object( builder, "spinFPSLimit" ) );
+ chkUseFrameSkipping = GTK_WIDGET( gtk_builder_get_object( builder, "chkUseFrameSkipping" ) );
+ cbxOffscreen = GTK_WIDGET( gtk_builder_get_object( builder, "cbxOffscreen" ) );
+ cbxFBTex = GTK_WIDGET( gtk_builder_get_object( builder, "cbxFBTex" ) );
+ cbxFBAccess = GTK_WIDGET( gtk_builder_get_object( builder, "cbxFBAccess" ) );
+ chkMaskDetect = GTK_WIDGET( gtk_builder_get_object( builder, "chkMaskDetect" ) );
+ chkOpaquePass = GTK_WIDGET( gtk_builder_get_object( builder, "chkOpaquePass" ) );
+ chkAdvancedBlend = GTK_WIDGET( gtk_builder_get_object( builder, "chkAdvancedBlend" ) );
+ chkScanLines = GTK_WIDGET( gtk_builder_get_object( builder, "chkScanLines" ) );
+ spinScanLinesBlend = GTK_WIDGET( gtk_builder_get_object( builder, "spinScanLinesBlend" ) );
+ chkFastMdec = GTK_WIDGET( gtk_builder_get_object( builder, "chkFastMdec" ) );
+ chk15bitMdec = GTK_WIDGET( gtk_builder_get_object( builder, "chk15bitMdec" ) );
+ chkLineMode = GTK_WIDGET( gtk_builder_get_object( builder, "chkLineMode" ) );
+ chkAntiAlias = GTK_WIDGET( gtk_builder_get_object( builder, "chkAntiAlias" ) );
+ chkOGLExtensions = GTK_WIDGET( gtk_builder_get_object( builder, "chkOGLExtensions" ) );
+ chkScreenSmoothing = GTK_WIDGET( gtk_builder_get_object( builder, "chkScreenSmoothing" ) );
+ chkUseGameFixes = GTK_WIDGET( gtk_builder_get_object( builder, "chkUseGameFixes" ) );
+ tblGameFixes = GTK_WIDGET( gtk_builder_get_object( builder, "tblGameFixes" ) );
+ chkCfgFix1 = GTK_WIDGET( gtk_builder_get_object( builder, "chkCfgFix1" ) );
+ chkCfgFix2 = GTK_WIDGET( gtk_builder_get_object( builder, "chkCfgFix2" ) );
+ chkCfgFix4 = GTK_WIDGET( gtk_builder_get_object( builder, "chkCfgFix4" ) );
+ chkCfgFix8 = GTK_WIDGET( gtk_builder_get_object( builder, "chkCfgFix8" ) );
+ chkCfgFix16 = GTK_WIDGET( gtk_builder_get_object( builder, "chkCfgFix16" ) );
+ chkCfgFix32 = GTK_WIDGET( gtk_builder_get_object( builder, "chkCfgFix32" ) );
+ chkCfgFix64 = GTK_WIDGET( gtk_builder_get_object( builder, "chkCfgFix64" ) );
+ chkCfgFix128 = GTK_WIDGET( gtk_builder_get_object( builder, "chkCfgFix128" ) );
+ chkCfgFix256 = GTK_WIDGET( gtk_builder_get_object( builder, "chkCfgFix256" ) );
+ chkCfgFix512 = GTK_WIDGET( gtk_builder_get_object( builder, "chkCfgFix512" ) );
+ chkCfgFix1024 = GTK_WIDGET( gtk_builder_get_object( builder, "chkCfgFix1024" ) );
+ chkCfgFix2048 = GTK_WIDGET( gtk_builder_get_object( builder, "chkCfgFix2048" ) );
+ chkCfgFix4096 = GTK_WIDGET( gtk_builder_get_object( builder, "chkCfgFix4096" ) );
+ chkCfgFix8192 = GTK_WIDGET( gtk_builder_get_object( builder, "chkCfgFix8192" ) );
+ chkCfgFix16384 = GTK_WIDGET( gtk_builder_get_object( builder, "chkCfgFix16384" ) );
+ chkCfgFix32768 = GTK_WIDGET( gtk_builder_get_object( builder, "chkCfgFix32768" ) );
+ chkCfgFix65536 = GTK_WIDGET( gtk_builder_get_object( builder, "chkCfgFix65536" ) );
+ chkCfgFix131072 = GTK_WIDGET( gtk_builder_get_object( builder, "chkCfgFix131072" ) );
+ btnFast = GTK_WIDGET( gtk_builder_get_object( builder, "btnFast" ) );
+ btnBeautiful = GTK_WIDGET( gtk_builder_get_object( builder, "btnBeautiful" ) );
+
+ // Read the config file
+ in = fopen( "gpuPeopsMesaGL.cfg", "rb" );
+ if ( in ) {
+ pB = (char *) malloc( 32767 );
+ memset( pB, 0, 32767 );
+ len = fread( pB, 1, 32767, in );
+ fclose(in);
+ }
+ else pB = 0;
+
+ val = 640;
+ if ( pB ) {
+ strcpy( t, "\nResX" );
+ p = strstr( pB, t );
+ if ( p ) {
+ p = strstr( p, "=" );
+ len = 1;
+ val = atoi( p + len );
+ }
+ }
+ gtk_spin_button_set_value( GTK_SPIN_BUTTON( spinXSize ), val );
+
+ val = 480;
+ if ( pB ) {
+ strcpy( t, "\nResY" );
+ p = strstr( pB, t );
+ if ( p ) {
+ p = strstr( p, "=" );
+ len = 1;
+ val = atoi( p + len );
+ }
+ }
+ gtk_spin_button_set_value( GTK_SPIN_BUTTON( spinYSize ), val );
+
+ val = 0;
+ if ( pB ) {
+ strcpy( t, "\nKeepRatio" );
+ p = strstr( pB, t );
+ if ( p ) {
+ p = strstr( p, "=" );
+ len = 1;
+ val = atoi( p + len );
+ }
+ }
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkKeepRatio ), val );
+
+ val = 0;
+ if ( pB ) {
+ strcpy( t, "\nDithering" );
+ p = strstr( pB, t );
+ if ( p ) {
+ p = strstr( p, "=" );
+ len = 1;
+ val = atoi( p + len );
+ }
+ }
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkDithering ), val );
+
+ val = 0;
+ if ( pB ) {
+ strcpy( t, "\nFullScreen" );
+ p = strstr( pB, t );
+ if ( p ) {
+ p = strstr( p, "=" );
+ len = 1;
+ val = atoi( p + len );
+ }
+ }
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkFullScreen ), val );
+
+ val = 0;
+ if ( pB ) {
+ strcpy( t, "\nTexQuality" );
+ p = strstr( pB, t );
+ if ( p ) {
+ p = strstr( p, "=" );
+ len = 1;
+ val = atoi( p + len );
+ }
+ }
+ gtk_combo_box_set_active( GTK_COMBO_BOX( cbxTexQuality ), val );
+
+ val = 0;
+ if ( pB ) {
+ strcpy( t, "\nTexFilter" );
+ p = strstr( pB, t );
+ if ( p ) {
+ p = strstr( p, "=" );
+ len = 1;
+ val = atoi( p + len );
+ }
+ }
+ gtk_combo_box_set_active( GTK_COMBO_BOX( cbxTexFiltering ), val );
+
+ val = 0;
+ if ( pB ) {
+ strcpy( t, "\nHiResTextures" );
+ p = strstr( pB, t );
+ if ( p ) {
+ p = strstr( p, "=" );
+ len = 1;
+ val = atoi( p + len );
+ }
+ }
+ gtk_combo_box_set_active( GTK_COMBO_BOX( cbxHiResTex ), val );
+
+ val = 0;
+ if ( pB ) {
+ strcpy(t,"\nVRamSize");
+ p = strstr( pB, t );
+ if ( p ) {
+ p = strstr( p, "=" );
+ len = 1;
+ val = atoi( p + len );
+ }
+ }
+ gtk_spin_button_set_value( GTK_SPIN_BUTTON( spinVRam ), val );
+
+ val = 0;
+ if ( pB ) {
+ strcpy( t, "\nShowFPS" );
+ p = strstr( pB, t );
+ if ( p ) {
+ p = strstr( p, "=" );
+ len = 1;
+ val = atoi( p + len );
+ }
+ }
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkShowFPS ), val );
+
+ val = 1;
+ if ( pB ) {
+ strcpy( t, "\nUseFrameLimit" );
+ p = strstr( pB, t );
+ if ( p ) {
+ p = strstr( p, "=" );
+ len = 1;
+ val = atoi( p + len );
+ }
+ }
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkUseFPSLimit ), val );
+
+ val = 1;
+ if ( pB ) {
+ strcpy( t, "\nFPSDetection" );
+ p = strstr( pB, t );
+ if ( p ) {
+ p = strstr( p, "=" );
+ len = 1;
+ val = atoi( p + len );
+ }
+ }
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( radFPSLimitAuto ), val );
+
+ val = 200;
+ if ( pB ) {
+ strcpy(t,"\nFrameRate");
+ p = strstr( pB, t );
+ if ( p ) {
+ p = strstr( p, "=" );
+ len = 1;
+ val = atoi( p + len );
+ }
+ }
+ gtk_spin_button_set_value( GTK_SPIN_BUTTON( spinFPSLimit ), val );
+
+ val = 0;
+ if ( pB ) {
+ strcpy( t, "\nUseFrameSkip" );
+ p = strstr( pB, t );
+ if ( p ) {
+ p = strstr( p, "=" );
+ len = 1;
+ val = atoi( p + len );
+ }
+ }
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkUseFrameSkipping ), val );
+
+ val = 2;
+ if ( pB ) {
+ strcpy( t, "\nOffscreenDrawing" );
+ p = strstr( pB, t );
+ if ( p ) {
+ p = strstr( p, "=" );
+ len = 1;
+ val = atoi( p + len );
+ }
+ }
+ gtk_combo_box_set_active( GTK_COMBO_BOX( cbxOffscreen ), val );
+
+ val = 1;
+ if ( pB ) {
+ strcpy( t, "\nFrameTextures" );
+ p = strstr( pB, t );
+ if ( p ) {
+ p = strstr( p, "=" );
+ len = 1;
+ val = atoi( p + len );
+ }
+ }
+ gtk_combo_box_set_active( GTK_COMBO_BOX( cbxFBTex ), val );
+
+ val = 0;
+ if ( pB ) {
+ strcpy( t, "\nFrameAccess" );
+ p = strstr( pB, t );
+ if ( p ) {
+ p = strstr( p, "=" );
+ len = 1;
+ val = atoi( p + len );
+ }
+ }
+ gtk_combo_box_set_active( GTK_COMBO_BOX( cbxFBAccess ), val );
+
+ val = 0;
+ if ( pB ) {
+ strcpy( t, "\nMaskDetect" );
+ p = strstr( pB, t );
+ if ( p ) {
+ p = strstr( p, "=" );
+ len = 1;
+ val = atoi( p + len );
+ }
+ }
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkMaskDetect ), val );
+
+ val = 1;
+ if ( pB ) {
+ strcpy( t, "\nOpaquePass" );
+ p = strstr( pB, t );
+ if ( p ) {
+ p = strstr( p, "=" );
+ len = 1;
+ val = atoi( p + len );
+ }
+ }
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkOpaquePass ), val );
+
+ val = 0;
+ if ( pB ) {
+ strcpy( t, "\nAdvancedBlend" );
+ p = strstr( pB, t );
+ if ( p ) {
+ p = strstr( p, "=" );
+ len = 1;
+ val = atoi( p + len );
+ }
+ }
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkAdvancedBlend ), val );
+
+ val = 0;
+ if ( pB ) {
+ strcpy( t, "\nScanLines" );
+ p = strstr( pB, t );
+ if ( p ) {
+ p = strstr( p, "=" );
+ len = 1;
+ val = atoi( p + len );
+ }
+ }
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkScanLines ), val );
+
+ val = 0;
+ if ( pB ) {
+ strcpy(t,"\nScanLinesBlend");
+ p = strstr( pB, t );
+ if ( p ) {
+ p = strstr( p, "=" );
+ len = 1;
+ val = atoi( p + len );
+ }
+ }
+ gtk_spin_button_set_value( GTK_SPIN_BUTTON( spinScanLinesBlend ), val );
+
+ val = 1;
+ if ( pB ) {
+ strcpy( t, "\nFastMdec" );
+ p = strstr( pB, t );
+ if ( p ) {
+ p = strstr( p, "=" );
+ len = 1;
+ val = atoi( p + len );
+ }
+ }
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkFastMdec ), val );
+
+ val = 0;
+ if ( pB ) {
+ strcpy( t, "\n15bitMdec" );
+ p = strstr( pB, t );
+ if ( p ) {
+ p = strstr( p, "=" );
+ len = 1;
+ val = atoi( p + len );
+ }
+ }
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chk15bitMdec ), val );
+
+ val = 0;
+ if ( pB ) {
+ strcpy( t, "\nLineMode" );
+ p = strstr( pB, t );
+ if ( p ) {
+ p = strstr( p, "=" );
+ len = 1;
+ val = atoi( p + len );
+ }
+ }
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkLineMode ), val );
+
+ val = 0;
+ if ( pB ) {
+ strcpy( t, "\nAntiAlias" );
+ p = strstr( pB, t );
+ if ( p ) {
+ p = strstr( p, "=" );
+ len = 1;
+ val = atoi( p + len );
+ }
+ }
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkAntiAlias ), val );
+
+ val = 0;
+ if ( pB ) {
+ strcpy( t, "\nOGLExtensions" );
+ p = strstr( pB, t );
+ if ( p ) {
+ p = strstr( p, "=" );
+ len = 1;
+ val = atoi( p + len );
+ }
+ }
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkOGLExtensions ), val );
+
+ val = 0;
+ if ( pB ) {
+ strcpy( t, "\nScreenSmoothing" );
+ p = strstr( pB, t );
+ if ( p ) {
+ p = strstr( p, "=" );
+ len = 1;
+ val = atoi( p + len );
+ }
+ }
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkScreenSmoothing ), val );
+
+ val = 0;
+ if ( pB ) {
+ strcpy( t, "\nCfgFixes" );
+ p = strstr( pB, t );
+ if ( p ) {
+ p = strstr( p, "=" );
+ len = 1;
+ val = atoi( p + len );
+ }
+ }
+ if ( val & (1 << 17) ) { gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkCfgFix131072 ), TRUE ); }
+ if ( val & (1 << 16) ) { gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkCfgFix65536 ), TRUE ); }
+ if ( val & (1 << 15) ) { gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkCfgFix32768 ), TRUE ); }
+ if ( val & (1 << 14) ) { gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkCfgFix16384 ), TRUE ); }
+ if ( val & (1 << 13) ) { gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkCfgFix8192 ), TRUE ); }
+ if ( val & (1 << 12) ) { gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkCfgFix4096 ), TRUE ); }
+ if ( val & (1 << 11) ) { gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkCfgFix2048 ), TRUE ); }
+ if ( val & (1 << 10) ) { gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkCfgFix1024 ), TRUE ); }
+ if ( val & (1 << 9) ) { gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkCfgFix512 ), TRUE ); }
+ if ( val & (1 << 8) ) { gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkCfgFix256 ), TRUE ); }
+ if ( val & (1 << 7) ) { gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkCfgFix128 ), TRUE ); }
+ if ( val & (1 << 6) ) { gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkCfgFix64 ), TRUE ); }
+ if ( val & (1 << 5) ) { gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkCfgFix32 ), TRUE ); }
+ if ( val & (1 << 4) ) { gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkCfgFix16 ), TRUE ); }
+ if ( val & (1 << 3) ) { gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkCfgFix8 ), TRUE ); }
+ if ( val & (1 << 2) ) { gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkCfgFix4 ), TRUE ); }
+ if ( val & (1 << 1) ) { gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkCfgFix2 ), TRUE ); }
+ if ( val & (1 << 0) ) { gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( chkCfgFix1 ), TRUE ); }
+
+ gtk_builder_connect_signals( builder, NULL );
+
+ g_object_unref( G_OBJECT( builder ) );
+
+ // Connect callbacks to signals
+ gtk_signal_connect( GTK_OBJECT( window ), "destroy", GTK_SIGNAL_FUNC( gtk_main_quit ), NULL );
+ gtk_signal_connect( GTK_OBJECT( btnCancel ), "clicked", GTK_SIGNAL_FUNC( gtk_main_quit ), NULL );
+ gtk_signal_connect( GTK_OBJECT( btnSave ), "clicked", GTK_SIGNAL_FUNC( on_btnSave_clicked ), NULL );
+ gtk_signal_connect( GTK_OBJECT( chkUseGameFixes ), "toggled", GTK_SIGNAL_FUNC( on_chkUseGameFixes_toggled ), NULL );
+ gtk_signal_connect( GTK_OBJECT( chkUseFPSLimit ), "toggled", GTK_SIGNAL_FUNC( on_chkUseFPSLimit_toggled ), NULL );
+ gtk_signal_connect( GTK_OBJECT( radFPSLimitManual ), "toggled", GTK_SIGNAL_FUNC( on_radFPSLimitManual_toggled ), NULL );
+ gtk_signal_connect( GTK_OBJECT( chkScanLines ), "toggled", GTK_SIGNAL_FUNC( on_chkScanLines_toggled ), NULL );
+ gtk_signal_connect( GTK_OBJECT( btnFast ), "clicked", GTK_SIGNAL_FUNC( on_btnFast_clicked ), NULL );
+ gtk_signal_connect( GTK_OBJECT( btnBeautiful ), "clicked", GTK_SIGNAL_FUNC( on_btnBeautiful_clicked ), NULL );
+
+ // Call some callbacks to ensure widget state consistency
+ on_chkUseGameFixes_toggled( GTK_OBJECT( chkUseGameFixes ), NULL );
+ on_chkUseFPSLimit_toggled( GTK_OBJECT( chkUseFPSLimit ), NULL );
+ on_radFPSLimitManual_toggled( GTK_OBJECT( radFPSLimitManual ), NULL );
+ on_chkScanLines_toggled( GTK_OBJECT( chkScanLines ), NULL );
+
+ gtk_widget_show( window );
+
+ gtk_main();
- free(pB);
+ return 0;
}
-
-
-
diff --git a/plugins/peopsxgl/gpucfg/peopsxgl.ui b/plugins/peopsxgl/gpucfg/peopsxgl.ui
index 538c08ce..b96b6485 100644
--- a/plugins/peopsxgl/gpucfg/peopsxgl.ui
+++ b/plugins/peopsxgl/gpucfg/peopsxgl.ui
@@ -1,1004 +1,911 @@
<?xml version="1.0"?>
<interface>
- <requires lib="gtk+" version="2.16"/>
+ <requires lib="gtk+" version="2.14"/>
<!-- interface-naming-policy project-wide -->
- <object class="GtkListStore" id="liststore6">
- <columns>
- <!-- column-name item -->
- <column type="gchararray"/>
- </columns>
- <data>
- <row>
- <col id="0" translatable="yes">0: Emulated vram - ok most times</col>
- </row>
- <row>
- <col id="0" translatable="yes">1: Gfx card buffer reads</col>
- </row>
- <row>
- <col id="0" translatable="yes">2: Gfx card buffer moves</col>
- </row>
- <row>
- <col id="0" translatable="yes">3: Gfx buffer reads </col>
- </row>
- <row>
- <col id="0" translatable="yes">4: Full Software (FVP)</col>
- </row>
- </data>
- </object>
- <object class="GtkListStore" id="liststore5">
- <columns>
- <!-- column-name item -->
- <column type="gchararray"/>
- </columns>
- <data>
- <row>
- <col id="0" translatable="yes">0: None - Fastest, most glitches</col>
- </row>
- <row>
- <col id="0" translatable="yes">1: Minimum - Missing screens</col>
- </row>
- <row>
- <col id="0" translatable="yes">2: Standard - OK for most games</col>
- </row>
- <row>
- <col id="0" translatable="yes">3: Enhanced - Shows more stuff</col>
- </row>
- <row>
- <col id="0" translatable="yes">4: 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">0: Emulated vram - Needs FVP</col>
- </row>
- <row>
- <col id="0" translatable="yes">1: Black - Fast, no effects</col>
- </row>
- <row>
- <col id="0" translatable="yes">2: Gfx card buffer - Can be slow</col>
- </row>
- <row>
- <col id="0" translatable="yes">3: Gfx card </col>
- </row>
- </data>
- </object>
- <object class="GtkListStore" id="liststore3">
- <columns>
- <!-- column-name item -->
- <column type="gchararray"/>
- </columns>
- <data>
- <row>
- <col id="0" translatable="yes">0: None (standard)</col>
- </row>
- <row>
- <col id="0" translatable="yes">1: 2xSaI (much vram needed)</col>
- </row>
- <row>
- <col id="0" translatable="yes">2: Scaled (needs tex filtering)</col>
- </row>
- </data>
- </object>
- <object class="GtkListStore" id="liststore2">
- <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: Standard - Glitches will happen</col>
- </row>
- <row>
- <col id="0" translatable="yes">2: Extended - No black borders</col>
- </row>
- <row>
- <col id="0" translatable="yes">3: Standard without sprites - unfiltered 2D</col>
- </row>
- <row>
- <col id="0" translatable="yes">4: Extended without sprites - unfiltered 2D</col>
- </row>
- <row>
- <col id="0" translatable="yes">5: Standard + smoothed sprites</col>
- </row>
- <row>
- <col id="0" translatable="yes">6: Extended + smoothed sprites</col>
- </row>
- </data>
- </object>
- <object class="GtkListStore" id="liststore1">
- <columns>
- <!-- column-name item -->
- <column type="gchararray"/>
- </columns>
- <data>
- <row>
- <col id="0" translatable="yes">0: don't care - Use driver's default textures</col>
- </row>
- <row>
- <col id="0" translatable="yes">1: 4444 - Fast, but less colorful</col>
- </row>
- <row>
- <col id="0" translatable="yes">2: 5551 - Nice colors, bad transparency</col>
- </row>
- <row>
- <col id="0" translatable="yes">3: 8888 - Best colors, more ram needed</col>
- </row>
- <row>
- <col id="0" translatable="yes">4: BGR8888 - Faster on some cards</col>
- </row>
- </data>
- </object>
- <object class="GtkDialog" id="CfgWnd">
+ <object class="GtkDialog" id="MainDialog">
<property name="border_width">5</property>
- <property name="title" translatable="yes">P.E.Op.S. MesaGL PSX GPU configuration...</property>
+ <property name="title" translatable="yes">OpenGL Driver configuration</property>
<property name="resizable">False</property>
- <property name="modal">True</property>
<property name="window_position">center</property>
<property name="type_hint">normal</property>
+ <property name="has_separator">False</property>
<child internal-child="vbox">
- <object class="GtkVBox" id="fixed1">
+ <object class="GtkVBox" id="dialog-vbox3">
+ <property name="visible">True</property>
<property name="orientation">vertical</property>
+ <property name="spacing">2</property>
<child>
- <object class="GtkHBox" id="my_hbox0">
- <property name="spacing">5</property>
+ <object class="GtkNotebook" id="notebook1">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
<child>
- <object class="GtkFrame" id="frmWindow">
- <property name="label_xalign">0</property>
+ <object class="GtkVBox" id="vbox2">
+ <property name="visible">True</property>
+ <property name="border_width">10</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">5</property>
<child>
- <object class="GtkVBox" id="fixed2">
- <property name="border_width">5</property>
- <property name="orientation">vertical</property>
+ <object class="GtkTable" id="table2">
+ <property name="visible">True</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>
<child>
- <object class="GtkTable" id="table1">
+ <object class="GtkSpinButton" id="spinXSize">
<property name="visible">True</property>
- <property name="n_rows">2</property>
- <property name="n_columns">3</property>
- <child>
- <object class="GtkCheckButton" id="chkFullScreen">
- <property name="label" translatable="yes">Fullscreen</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="left_attach">2</property>
- <property name="right_attach">3</property>
- </packing>
- </child>
- <child>
- <object class="GtkEntry" id="edtXSize">
- <property name="can_focus">True</property>
- <property name="max_length">5</property>
- <property name="invisible_char">&#x2022;</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkEntry" id="edtYSize">
- <property name="can_focus">True</property>
- <property name="invisible_char">&#x2022;</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>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label2">
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Width:</property>
- <property name="justify">right</property>
- </object>
- </child>
- <child>
- <object class="GtkLabel" id="label3">
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Height:</property>
- <property name="justify">right</property>
- </object>
- <packing>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- </packing>
- </child>
- <child>
- <placeholder/>
- </child>
+ <property name="can_focus">True</property>
+ <property name="invisible_char">&#x2022;</property>
+ <property name="adjustment">x</property>
+ <property name="numeric">True</property>
</object>
<packing>
- <property name="position">0</property>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="x_options"></property>
+ <property name="y_options"></property>
</packing>
</child>
<child>
- <object class="GtkCheckButton" id="chkDither">
- <property name="label" translatable="yes">Dithering</property>
- <property name="can_focus">False</property>
- <property name="receives_default">False</property>
- <property name="draw_indicator">True</property>
+ <object class="GtkSpinButton" id="spinYSize">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="invisible_char">&#x2022;</property>
+ <property name="adjustment">y</property>
+ <property name="numeric">True</property>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
+ <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="GtkCheckButton" id="chkKeepRatio">
- <property name="label" translatable="yes">Keep psx aspect ratio</property>
- <property name="can_focus">False</property>
- <property name="receives_default">False</property>
- <property name="draw_indicator">True</property>
+ <object class="GtkLabel" id="label7">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Width:</property>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">2</property>
+ <property name="x_options"></property>
+ <property name="y_options"></property>
</packing>
</child>
+ <child>
+ <object class="GtkLabel" id="label8">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Height:</property>
+ </object>
+ <packing>
+ <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>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="chkFullScreen">
+ <property name="label" translatable="yes">Fullscreen</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">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="chkDithering">
+ <property name="label" translatable="yes">Dithering</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">False</property>
+ <property name="position">2</property>
+ </packing>
</child>
- <child type="label">
- <object class="GtkLabel" id="frame-label1">
- <property name="label" translatable="yes">Window options</property>
+ <child>
+ <object class="GtkCheckButton" id="chkKeepRatio">
+ <property name="label" translatable="yes">Keep psx aspect ratio</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">False</property>
+ <property name="position">3</property>
+ </packing>
</child>
</object>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Window options</property>
+ </object>
<packing>
- <property name="position">0</property>
+ <property name="tab_fill">False</property>
</packing>
</child>
<child>
- <object class="GtkFrame" id="frmTextures">
- <property name="label_xalign">0</property>
+ <object class="GtkVBox" id="vbox6">
+ <property name="visible">True</property>
+ <property name="border_width">10</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">5</property>
<child>
- <object class="GtkVBox" id="fixed3">
- <property name="border_width">5</property>
- <property name="orientation">vertical</property>
+ <object class="GtkTable" id="table3">
+ <property name="visible">True</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>
<child>
- <object class="GtkHBox" id="hbox3">
+ <object class="GtkLabel" id="label9">
<property name="visible">True</property>
- <child>
- <object class="GtkVBox" id="vbox1">
- <property name="visible">True</property>
- <property name="orientation">vertical</property>
- <property name="spacing">2</property>
- <child>
- <object class="GtkLabel" id="label5">
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Quality:</property>
- </object>
- <packing>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label6">
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Filtering:</property>
- </object>
- <packing>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label23">
- <property name="xalign">0</property>
- <property name="label" translatable="yes">HiRes Tex:</property>
- </object>
- <packing>
- <property name="fill">False</property>
- <property name="position">2</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkVBox" id="vbox3">
- <property name="visible">True</property>
- <property name="orientation">vertical</property>
- <property name="spacing">2</property>
- <child>
- <object class="GtkComboBox" id="cmbQuality">
- <property name="model">liststore1</property>
- <child>
- <object class="GtkCellRendererText" id="cellrenderertext1"/>
- <attributes>
- <attribute name="text">0</attribute>
- </attributes>
- </child>
- </object>
- <packing>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBox" id="cmbFilter">
- <property name="model">liststore2</property>
- <child>
- <object class="GtkCellRendererText" id="cellrenderertext2"/>
- <attributes>
- <attribute name="text">0</attribute>
- </attributes>
- </child>
- </object>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBox" id="cmbHiresTex">
- <property name="model">liststore3</property>
- <child>
- <object class="GtkCellRendererText" id="cellrenderertext3"/>
- <attributes>
- <attribute name="text">0</attribute>
- </attributes>
- </child>
- </object>
- <packing>
- <property name="position">2</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Quality:</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label10">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Filtering:</property>
</object>
<packing>
- <property name="position">0</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
</packing>
</child>
<child>
- <object class="GtkHBox" id="my_hbox6">
- <child>
- <object class="GtkLabel" id="label7">
- <property name="label" translatable="yes">VRam size in MBytes (0..1024, 0=auto):</property>
- <property name="justify">center</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkEntry" id="edtMaxTex">
- <property name="can_focus">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="padding">5</property>
- <property name="position">1</property>
- </packing>
- </child>
+ <object class="GtkLabel" id="label11">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">HiRes Tex:</property>
</object>
<packing>
- <property name="position">1</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
</packing>
</child>
- </object>
- </child>
- <child type="label">
- <object class="GtkLabel" id="frame-label2">
- <property name="label" translatable="yes">Textures</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkHBox" id="hbox2">
- <property name="visible">True</property>
- <property name="spacing">5</property>
- <child>
- <object class="GtkFrame" id="frmFPS">
- <property name="label_xalign">0</property>
- <child>
- <object class="GtkVBox" id="fixed4">
- <property name="border_width">5</property>
- <property name="orientation">vertical</property>
<child>
- <object class="GtkCheckButton" id="chkShowFPS">
- <property name="label" translatable="yes">Show FPS display on startup</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="draw_indicator">True</property>
+ <object class="GtkComboBox" id="cbxTexQuality">
+ <property name="visible">True</property>
+ <property name="model">liststore6</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">0</property>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
</packing>
</child>
<child>
- <object class="GtkCheckButton" id="chkFPSLimit">
- <property name="label" translatable="yes">Use FPS limit</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="draw_indicator">True</property>
+ <object class="GtkComboBox" id="cbxTexFiltering">
+ <property name="visible">True</property>
+ <property name="model">liststore5</property>
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderertext5"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
</object>
<packing>
- <property name="expand">False</property>
- <property name="position">1</property>
+ <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>
- <object class="GtkCheckButton" id="chkFPSSkip">
- <property name="label" translatable="yes">Use Frame skipping</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="draw_indicator">True</property>
+ <object class="GtkComboBox" id="cbxHiResTex">
+ <property name="visible">True</property>
+ <property name="model">liststore4</property>
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderertext4"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">2</property>
+ <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>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkHBox" id="hbox4">
+ <property name="visible">True</property>
+ <property name="spacing">5</property>
<child>
- <object class="GtkRadioButton" id="rdbLimAuto">
- <property name="label" translatable="yes">FPS limit auto-detection</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="draw_indicator">True</property>
- <property name="group">rdbLimMan</property>
+ <object class="GtkLabel" id="label12">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">VRam size in MBytes (0..1024, 0=auto):</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
- <property name="position">3</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
- <object class="GtkHBox" id="my_hbox12">
- <child>
- <object class="GtkRadioButton" id="rdbLimMan">
- <property name="label" translatable="yes">FPS limit manual</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkEntry" id="edtFPSlim">
- <property name="can_focus">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="padding">5</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label8">
- <property name="label" translatable="yes">FPS</property>
- <property name="justify">center</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">2</property>
- </packing>
- </child>
+ <object class="GtkSpinButton" id="spinVRam">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="invisible_char">&#x2022;</property>
+ <property name="adjustment">v</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
- <property name="position">4</property>
+ <property name="position">1</property>
</packing>
</child>
</object>
- </child>
- <child type="label">
- <object class="GtkLabel" id="frame-label3">
- <property name="label" translatable="yes">Framerate</property>
- </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
</child>
</object>
<packing>
- <property name="position">0</property>
+ <property name="position">1</property>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="label2">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Textures</property>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ <property name="tab_fill">False</property>
</packing>
</child>
<child>
- <object class="GtkFrame" id="frmCompat">
- <property name="label_xalign">0</property>
+ <object class="GtkVBox" id="vbox3">
+ <property name="visible">True</property>
+ <property name="border_width">10</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">5</property>
+ <child>
+ <object class="GtkCheckButton" id="chkShowFPS">
+ <property name="label" translatable="yes">Show FPS display on startup</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">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="chkUseFPSLimit">
+ <property name="label" translatable="yes">Use FPS limit</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="position">1</property>
+ </packing>
+ </child>
<child>
- <object class="GtkVBox" id="fixed5">
- <property name="border_width">5</property>
- <property name="orientation">vertical</property>
+ <object class="GtkAlignment" id="alignment3">
+ <property name="visible">True</property>
+ <property name="left_padding">20</property>
<child>
- <object class="GtkHBox" id="hbox1">
+ <object class="GtkVBox" id="vboxFPSLimit">
<property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">5</property>
<child>
- <object class="GtkVBox" id="vbox2">
+ <object class="GtkRadioButton" id="radFPSLimitAuto">
+ <property name="label" translatable="yes">FPS limit auto-detector</property>
<property name="visible">True</property>
- <property name="orientation">vertical</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">radFPSLimitManual</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkHBox" id="hbox2">
+ <property name="visible">True</property>
+ <property name="spacing">5</property>
<child>
- <object class="GtkHBox" id="hbox4">
+ <object class="GtkRadioButton" id="radFPSLimitManual">
+ <property name="label" translatable="yes">FPS limit manual</property>
<property name="visible">True</property>
- <child>
- <object class="GtkVBox" id="vbox4">
- <property name="visible">True</property>
- <property name="orientation">vertical</property>
- <property name="spacing">2</property>
- <child>
- <object class="GtkLabel" id="label9">
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Offscreen Drawing:</property>
- </object>
- <packing>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label10">
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Framebuffer textures:</property>
- </object>
- <packing>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label22">
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Framebuffer access:</property>
- </object>
- <packing>
- <property name="fill">False</property>
- <property name="position">2</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkVBox" id="vbox5">
- <property name="visible">True</property>
- <property name="orientation">vertical</property>
- <property name="spacing">2</property>
- <child>
- <object class="GtkComboBox" id="cmbOffscreen">
- <property name="model">liststore5</property>
- <child>
- <object class="GtkCellRendererText" id="cellrenderertext5"/>
- <attributes>
- <attribute name="markup">0</attribute>
- <attribute name="text">0</attribute>
- </attributes>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBox" id="cmbFrameAcc">
- <property name="model">liststore6</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>
- <object class="GtkComboBox" id="cmbFrameTex">
- <property name="model">liststore4</property>
- <child>
- <object class="GtkCellRendererText" id="cellrenderertext4"/>
- <attributes>
- <attribute name="text">0</attribute>
- </attributes>
- </child>
- </object>
- <packing>
- <property name="position">2</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="chkMaskBit">
- <property name="label" translatable="yes">Mask bit detection (needed by a few games, zbuffer)</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
+ <property name="active">True</property>
<property name="draw_indicator">True</property>
</object>
<packing>
- <property name="position">1</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
- <object class="GtkCheckButton" id="chkOpaque">
- <property name="label" translatable="yes">Alpha Multipass (correct opaque texture areas)</property>
+ <object class="GtkSpinButton" id="spinFPSLimit">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
<property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="draw_indicator">True</property>
+ <property name="invisible_char">&#x2022;</property>
+ <property name="adjustment">f</property>
</object>
<packing>
- <property name="position">2</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
</packing>
</child>
<child>
- <object class="GtkCheckButton" id="chkABlend">
- <property name="label" translatable="yes">Advanced blending (Accurate psx color emulation)</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="draw_indicator">True</property>
+ <object class="GtkLabel" id="label13">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">FPS</property>
</object>
<packing>
- <property name="position">3</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
</packing>
</child>
</object>
<packing>
- <property name="position">0</property>
+ <property name="expand">False</property>
+ <property name="position">1</property>
</packing>
</child>
</object>
- <packing>
- <property name="position">0</property>
- </packing>
</child>
</object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">2</property>
+ </packing>
</child>
- <child type="label">
- <object class="GtkLabel" id="frame-label4">
- <property name="label" translatable="yes">Compatibility</property>
+ <child>
+ <object class="GtkCheckButton" id="chkUseFrameSkipping">
+ <property name="label" translatable="yes">Use Frame skipping</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">False</property>
+ <property name="position">3</property>
+ </packing>
</child>
</object>
<packing>
- <property name="position">1</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="label3">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Framerate</property>
+ </object>
+ <packing>
+ <property name="position">2</property>
+ <property name="tab_fill">False</property>
</packing>
</child>
- </object>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkHBox" id="my_hbox3">
- <property name="spacing">5</property>
<child>
- <object class="GtkFrame" id="frmMisc">
- <property name="label_xalign">0</property>
+ <object class="GtkVBox" id="vbox8">
+ <property name="visible">True</property>
+ <property name="border_width">10</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">5</property>
<child>
- <object class="GtkVBox" id="fixed6">
- <property name="border_width">5</property>
- <property name="orientation">vertical</property>
+ <object class="GtkTable" id="table4">
+ <property name="visible">True</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>
<child>
- <object class="GtkHBox" id="my_hbox4">
- <child>
- <object class="GtkCheckButton" id="chkScanlines">
- <property name="label" translatable="yes">Scanlines</property>
- <property name="can_focus">False</property>
- <property name="receives_default">False</property>
- <property name="draw_indicator">True</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="label11">
- <property name="label" translatable="yes">Blending (0..255,-1=dot):</property>
- <property name="justify">center</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="padding">13</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkEntry" id="edtScanBlend">
- <property name="can_focus">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">2</property>
- </packing>
- </child>
+ <object class="GtkLabel" id="label14">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Offscreen drawing:</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label15">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Framebuffer textures:</property>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
</packing>
</child>
<child>
- <object class="GtkCheckButton" id="chkFastMdec">
- <property name="label" translatable="yes">Unfiltered MDECs (small movie speedup)</property>
- <property name="can_focus">False</property>
- <property name="receives_default">False</property>
- <property name="draw_indicator">True</property>
+ <object class="GtkLabel" id="label16">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Framebuffer access:</property>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
</packing>
</child>
<child>
- <object class="GtkCheckButton" id="chk15bitMdec">
- <property name="label" translatable="yes">Force 15 bit framebuffer updates (faster movies)</property>
- <property name="can_focus">False</property>
- <property name="receives_default">False</property>
- <property name="draw_indicator">True</property>
+ <object class="GtkComboBox" id="cbxOffscreen">
+ <property name="visible">True</property>
+ <property name="model">liststore3</property>
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderertext3"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">2</property>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
</packing>
</child>
<child>
- <object class="GtkCheckButton" id="chkLinemode">
- <property name="label" translatable="yes">Line mode (polygons will not get filled)</property>
- <property name="can_focus">False</property>
- <property name="receives_default">False</property>
- <property name="draw_indicator">True</property>
+ <object class="GtkComboBox" id="cbxFBTex">
+ <property name="visible">True</property>
+ <property name="model">liststore2</property>
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderertext2"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">3</property>
+ <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>
- <object class="GtkCheckButton" id="chkAntiA">
- <property name="label" translatable="yes">Polygon anti-aliasing (slow with most cards)</property>
- <property name="can_focus">False</property>
- <property name="receives_default">False</property>
- <property name="draw_indicator">True</property>
+ <object class="GtkComboBox" id="cbxFBAccess">
+ <property name="visible">True</property>
+ <property name="model">liststore1</property>
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderertext1"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">4</property>
+ <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>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="chkMaskDetect">
+ <property name="label" translatable="yes">Mask bit detection (Needed by a few games, zbuffer)</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="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="chkOpaquePass">
+ <property name="label" translatable="yes">Alpha multipass (Correct opaque texture areas)</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="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="chkAdvancedBlend">
+ <property name="label" translatable="yes">Advanced blending (Accurate psx color emulation)</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="position">3</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="label4">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Compatibility</property>
+ </object>
+ <packing>
+ <property name="position">3</property>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkVBox" id="vbox5">
+ <property name="visible">True</property>
+ <property name="border_width">10</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">5</property>
+ <child>
+ <object class="GtkHBox" id="hbox3">
+ <property name="visible">True</property>
+ <property name="spacing">5</property>
<child>
- <object class="GtkCheckButton" id="chkExtensions">
- <property name="label" translatable="yes">Use OpenGL extensions (recommended)</property>
- <property name="can_focus">False</property>
+ <object class="GtkCheckButton" id="chkScanLines">
+ <property name="label" translatable="yes">Scanlines Blending (0..255, -1=dot):</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">False</property>
- <property name="position">5</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
- <object class="GtkCheckButton" id="chkBlur">
- <property name="label" translatable="yes">Screen smoothing (can be slow or unsupported)</property>
- <property name="can_focus">False</property>
- <property name="receives_default">False</property>
- <property name="draw_indicator">True</property>
+ <object class="GtkSpinButton" id="spinScanLinesBlend">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="invisible_char">&#x2022;</property>
+ <property name="adjustment">s</property>
</object>
<packing>
<property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">6</property>
+ <property name="position">1</property>
</packing>
</child>
</object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="chkFastMdec">
+ <property name="label" translatable="yes">Unfiltered MDECs (Small movie speedup)</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="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="chk15bitMdec">
+ <property name="label" translatable="yes">Force 15 bit framebuffer updates (Faster movies)</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="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="chkLineMode">
+ <property name="label" translatable="yes">Line mode (Polygons will not get filled)</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="position">3</property>
+ </packing>
</child>
- <child type="label">
- <object class="GtkLabel" id="frame-label5">
- <property name="label" translatable="yes">Misc</property>
+ <child>
+ <object class="GtkCheckButton" id="chkAntiAlias">
+ <property name="label" translatable="yes">Polygon anti-aliasing (Slow with most cards)</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="position">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="chkOGLExtensions">
+ <property name="label" translatable="yes">Use OpenGL extensions (Recommended)</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="position">5</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="chkScreenSmoothing">
+ <property name="label" translatable="yes">Screen smoothing (Can be slow or unsupported)</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="position">6</property>
+ </packing>
</child>
</object>
<packing>
- <property name="position">0</property>
+ <property name="position">4</property>
+ </packing>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="label5">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Misc</property>
+ </object>
+ <packing>
+ <property name="position">4</property>
+ <property name="tab_fill">False</property>
</packing>
</child>
<child>
- <object class="GtkFrame" id="frmFixes">
- <property name="label_xalign">0</property>
+ <object class="GtkVBox" id="vbox1">
+ <property name="visible">True</property>
+ <property name="border_width">10</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">5</property>
<child>
- <object class="GtkVBox" id="fixed7">
- <property name="border_width">5</property>
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkCheckButton" id="chkGameFixes">
- <property name="label" translatable="yes">Use game fixes</property>
- <property name="can_focus">False</property>
- <property name="receives_default">False</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="position">0</property>
- </packing>
- </child>
+ <object class="GtkCheckButton" id="chkUseGameFixes">
+ <property name="label" translatable="yes">Use game fixes</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="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkAlignment" id="alignment8">
+ <property name="visible">True</property>
+ <property name="left_padding">20</property>
<child>
- <object class="GtkTable" id="fix_table">
+ <object class="GtkTable" id="tblGameFixes">
+ <property name="visible">True</property>
<property name="n_rows">9</property>
<property name="n_columns">2</property>
- <property name="homogeneous">True</property>
+ <property name="column_spacing">5</property>
+ <property name="row_spacing">5</property>
<child>
- <object class="GtkCheckButton" id="chkFix0">
- <property name="label" translatable="yes">01: Battle cursor (FF7)</property>
- <property name="can_focus">False</property>
+ <object class="GtkCheckButton" id="chkCfgFix1">
+ <property name="label" translatable="yes">Battle cursor (FF7)</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="y_options"></property>
+ </packing>
</child>
<child>
- <object class="GtkCheckButton" id="chkFix1">
- <property name="label" translatable="yes">02: Direct FB updates</property>
- <property name="can_focus">False</property>
+ <object class="GtkCheckButton" id="chkCfgFix512">
+ <property name="label" translatable="yes">Yellow rect (FF9)</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="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="chkCfgFix2">
+ <property name="label" translatable="yes">Direct FB updates</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="top_attach">1</property>
<property name="bottom_attach">2</property>
+ <property name="y_options"></property>
</packing>
</child>
<child>
- <object class="GtkCheckButton" id="chkFix2">
- <property name="label" translatable="yes">04: Black brightness (Lunar)</property>
- <property name="can_focus">False</property>
+ <object class="GtkCheckButton" id="chkCfgFix4">
+ <property name="label" translatable="yes">Black brightness (Lunar)</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="top_attach">2</property>
<property name="bottom_attach">3</property>
+ <property name="y_options"></property>
</packing>
</child>
<child>
- <object class="GtkCheckButton" id="chkFix3">
- <property name="label" translatable="yes">08: Swap front detection</property>
- <property name="can_focus">False</property>
+ <object class="GtkCheckButton" id="chkCfgFix8">
+ <property name="label" translatable="yes">Swap front detection</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="top_attach">3</property>
<property name="bottom_attach">4</property>
+ <property name="y_options"></property>
</packing>
</child>
<child>
- <object class="GtkCheckButton" id="chkFix4">
- <property name="label" translatable="yes">10: Disable coord check</property>
- <property name="can_focus">False</property>
+ <object class="GtkCheckButton" id="chkCfgFix16">
+ <property name="label" translatable="yes">Disable coord check</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="top_attach">4</property>
<property name="bottom_attach">5</property>
+ <property name="y_options"></property>
</packing>
</child>
<child>
- <object class="GtkCheckButton" id="chkFix5">
- <property name="label" translatable="yes">20: No blue glitches (LoD)</property>
- <property name="can_focus">False</property>
+ <object class="GtkCheckButton" id="chkCfgFix32">
+ <property name="label" translatable="yes">No blue glitches (LoD)</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="top_attach">5</property>
<property name="bottom_attach">6</property>
+ <property name="y_options"></property>
</packing>
</child>
<child>
- <object class="GtkCheckButton" id="chkFix6">
- <property name="label" translatable="yes">40: Soft FB access</property>
- <property name="can_focus">False</property>
+ <object class="GtkCheckButton" id="chkCfgFix64">
+ <property name="label" translatable="yes">Soft FB access</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="top_attach">6</property>
<property name="bottom_attach">7</property>
+ <property name="y_options"></property>
</packing>
</child>
<child>
- <object class="GtkCheckButton" id="chkFix7">
- <property name="label" translatable="yes">80: PC fps calculation</property>
- <property name="can_focus">False</property>
+ <object class="GtkCheckButton" id="chkCfgFix128">
+ <property name="label" translatable="yes">PC FPS calculation</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="top_attach">7</property>
<property name="bottom_attach">8</property>
+ <property name="y_options"></property>
</packing>
</child>
<child>
- <object class="GtkCheckButton" id="chkFix8">
- <property name="label" translatable="yes">100: Old frame skipping</property>
- <property name="can_focus">False</property>
+ <object class="GtkCheckButton" id="chkCfgFix256">
+ <property name="label" translatable="yes">Old frame skipping</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="top_attach">8</property>
<property name="bottom_attach">9</property>
+ <property name="y_options"></property>
</packing>
</child>
<child>
- <object class="GtkCheckButton" id="chkFix9">
- <property name="label" translatable="yes">200: Yellow rect (FF9)</property>
- <property name="can_focus">False</property>
- <property name="receives_default">False</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="chkFix10">
- <property name="label" translatable="yes">400: No subtr. blending</property>
- <property name="can_focus">False</property>
+ <object class="GtkCheckButton" id="chkCfgFix1024">
+ <property name="label" translatable="yes">No subtr. blending</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>
@@ -1007,12 +914,14 @@
<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>
- <object class="GtkCheckButton" id="chkFix11">
- <property name="label" translatable="yes">800: Lazy upload (DW7)</property>
- <property name="can_focus">False</property>
+ <object class="GtkCheckButton" id="chkCfgFix2048">
+ <property name="label" translatable="yes">Lazy upload (DW7)</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>
@@ -1021,12 +930,14 @@
<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>
- <object class="GtkCheckButton" id="chkFix12">
- <property name="label" translatable="yes">1000: Odd/even hack</property>
- <property name="can_focus">False</property>
+ <object class="GtkCheckButton" id="chkCfgFix4096">
+ <property name="label" translatable="yes">Odd/even hack</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>
@@ -1035,12 +946,14 @@
<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>
- <object class="GtkCheckButton" id="chkFix13">
- <property name="label" translatable="yes">2000: Adjust screen width</property>
- <property name="can_focus">False</property>
+ <object class="GtkCheckButton" id="chkCfgFix8192">
+ <property name="label" translatable="yes">Adjust screen width</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>
@@ -1049,12 +962,14 @@
<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>
- <object class="GtkCheckButton" id="chkFix14">
- <property name="label" translatable="yes">4000: Old texture filtering</property>
- <property name="can_focus">False</property>
+ <object class="GtkCheckButton" id="chkCfgFix16384">
+ <property name="label" translatable="yes">Old texture filtering</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>
@@ -1063,12 +978,14 @@
<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>
- <object class="GtkCheckButton" id="chkFix15">
- <property name="label" translatable="yes">8000: Additional uploads</property>
- <property name="can_focus">False</property>
+ <object class="GtkCheckButton" id="chkCfgFix32768">
+ <property name="label" translatable="yes">Additional uploads</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>
@@ -1077,12 +994,15 @@
<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="chkFix16">
- <property name="label" translatable="yes">10000: unused</property>
- <property name="can_focus">False</property>
+ <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>
<property name="draw_indicator">True</property>
</object>
@@ -1091,12 +1011,14 @@
<property name="right_attach">2</property>
<property name="top_attach">7</property>
<property name="bottom_attach">8</property>
+ <property name="y_options"></property>
</packing>
</child>
<child>
- <object class="GtkCheckButton" id="chkFix17">
- <property name="label" translatable="yes">20000: fake 'gpu busy'</property>
- <property name="can_focus">False</property>
+ <object class="GtkCheckButton" id="chkCfgFix131072">
+ <property name="label" translatable="yes">Fake 'GPU busy'</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>
@@ -1105,104 +1027,275 @@
<property name="right_attach">2</property>
<property name="top_attach">8</property>
<property name="bottom_attach">9</property>
+ <property name="y_options"></property>
</packing>
</child>
</object>
- <packing>
- <property name="position">1</property>
- </packing>
</child>
</object>
- </child>
- <child type="label">
- <object class="GtkLabel" id="frame-label6">
- <property name="label" translatable="yes">Special game fixes</property>
- </object>
+ <packing>
+ <property name="position">1</property>
+ </packing>
</child>
</object>
<packing>
- <property name="position">1</property>
+ <property name="position">5</property>
+ </packing>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="label6">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Special game fixes</property>
+ </object>
+ <packing>
+ <property name="position">5</property>
+ <property name="tab_fill">False</property>
</packing>
</child>
</object>
<packing>
- <property name="position">2</property>
+ <property name="position">0</property>
</packing>
</child>
<child internal-child="action_area">
- <object class="GtkHButtonBox" id="act_area1">
- <property name="layout_style">center</property>
+ <object class="GtkHButtonBox" id="dialog-action_area3">
+ <property name="visible">True</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">False</property>
- <property name="receives_default">False</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>
+ <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">False</property>
- <property name="receives_default">False</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">1</property>
+ <property name="position">3</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="pack_type">end</property>
- <property name="position">3</property>
+ <property name="position">0</property>
</packing>
</child>
</object>
</child>
<action-widgets>
- <action-widget response="-5">btnSave</action-widget>
- <action-widget response="-6">btnCancel</action-widget>
+ <action-widget response="0">btnFast</action-widget>
+ <action-widget response="0">btnBeautiful</action-widget>
+ <action-widget response="0">btnSave</action-widget>
+ <action-widget response="0">btnCancel</action-widget>
</action-widgets>
</object>
- <object class="GtkAboutDialog" id="AboutWnd">
- <property name="border_width">5</property>
- <property name="type_hint">dialog</property>
- <property name="program_name">P.E.Op.S. MesaGL PSX GPU</property>
- <property name="version">1.78</property>
- <property name="copyright" translatable="yes">Coded by: Pete Bernert</property>
- <property name="comments" translatable="yes">Release date: 01.04.2009</property>
- <property name="website">http://www.pbernert.com</property>
- <property name="website_label" translatable="yes">http://www.pbernert.com</property>
- <child internal-child="vbox">
- <object class="GtkVBox" id="dialog-vbox3">
- <property name="visible">True</property>
- <property name="orientation">vertical</property>
- <property name="spacing">2</property>
- <child>
- <placeholder/>
- </child>
- <child internal-child="action_area">
- <object class="GtkHButtonBox" id="dialog-action_area4">
- <property name="visible">True</property>
- <property name="layout_style">end</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="pack_type">end</property>
- <property name="position">0</property>
- </packing>
- </child>
- </object>
- </child>
+ <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="GtkAdjustment" id="f">
+ <property name="value">60</property>
+ <property name="lower">20</property>
+ <property name="upper">200</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="v">
+ <property name="upper">1024</property>
+ <property name="step_increment">1</property>
+ <property name="page_increment">10</property>
+ </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>
</interface>