summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorSND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2010-12-29 02:39:14 +0000
committerSND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2010-12-29 02:39:14 +0000
commit0b3c069d3b5887a7b19d612d419b4397f53c40e4 (patch)
tree0513e02879b017342aee44d38159c77f7128d5a8 /plugins
parent402c449811cb93d73bcdd69c5923713f8635411d (diff)
downloadpcsxr-0b3c069d3b5887a7b19d612d419b4397f53c40e4.tar.gz
- dfsound (unix): Added mute option and freqresponse to the config utility.
- gxvideo: Fixed FTBFS. - Fixed Run BIOS (Issue #7806). - Updated gettext scripts. - Credit where it's due. git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@61576 e17a0e51-4ae3-4d35-97c3-1a29b211df97
Diffstat (limited to 'plugins')
-rw-r--r--plugins/dfsound/cfg.c7
-rw-r--r--plugins/dfsound/spu.c808
-rw-r--r--plugins/dfsound/spucfg-0.1df/dfsound.glade215
-rw-r--r--plugins/dfsound/spucfg-0.1df/main.c20
-rw-r--r--plugins/dfxvideo/draw.c7
-rw-r--r--plugins/gxvideo/draw.h1
-rw-r--r--plugins/peopsxgl/gpucfg/gpucfg-newstyle2.glade71
7 files changed, 509 insertions, 420 deletions
diff --git a/plugins/dfsound/cfg.c b/plugins/dfsound/cfg.c
index 70e06685..9414eee5 100644
--- a/plugins/dfsound/cfg.c
+++ b/plugins/dfsound/cfg.c
@@ -112,7 +112,7 @@ void ReadConfigFile(void)
strcpy(t,"\nVolume");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;}
if(p) iVolume=4-atoi(p+len);
if(iVolume<1) iVolume=1;
- if(iVolume>4) iVolume=4;
+ if(iVolume>5) iVolume=5;
strcpy(t,"\nXAPitch");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;}
if(p) iXAPitch=atoi(p+len);
@@ -145,6 +145,11 @@ void ReadConfigFile(void)
if(p) iDisStereo=atoi(p+len);
if(iDisStereo<0) iDisStereo=0;
if(iDisStereo>1) iDisStereo=1;
+
+ strcpy(t,"\nFreqResponse");p=strstr(pB,t);if(p) {p=strstr(p,"=");len=1;}
+ if(p) iFreqResponse=atoi(p+len);
+ if(iFreqResponse<0) iFreqResponse=0;
+ if(iFreqResponse>1) iFreqResponse=1;
free(pB);
}
diff --git a/plugins/dfsound/spu.c b/plugins/dfsound/spu.c
index 7cb81265..9e9f1bbb 100644
--- a/plugins/dfsound/spu.c
+++ b/plugins/dfsound/spu.c
@@ -23,11 +23,11 @@
#include "cfg.h"
#include "dsoundoss.h"
#include "regs.h"
-
-#ifdef _WINDOWS
-#include "debug.h"
-#include "record.h"
-#endif
+
+#ifdef _WINDOWS
+#include "debug.h"
+#include "record.h"
+#endif
#ifdef ENABLE_NLS
#include <libintl.h>
@@ -38,8 +38,8 @@
#define _(x) (x)
#define N_(x) (x)
#endif
-
-#if defined (_WINDOWS)
+
+#if defined (_WINDOWS)
static char * libraryName = N_("DirectSound Driver");
#elif defined (USEMACOSX)
static char * libraryName = N_("Mac OS X Sound");
@@ -79,16 +79,16 @@ int iRecordMode=0;
int iUseReverb=2;
int iUseInterpolation=2;
int iDisStereo=0;
-int iFreqResponse=0;
+int iFreqResponse=0;
// MAIN infos struct for each channel
SPUCHAN s_chan[MAXCHAN+1]; // channel + 1 infos (1 is security for fmod handling)
REVERBInfo rvb;
-unsigned long dwNoiseVal=1; // global noise generator
-unsigned long dwNoiseCount; // global noise generator
-unsigned long dwNoiseClock; // global noise generator
+unsigned long dwNoiseVal=1; // global noise generator
+unsigned long dwNoiseCount; // global noise generator
+unsigned long dwNoiseClock; // global noise generator
int iSpuAsyncWait=0;
unsigned short spuCtrl=0; // some vars to store psx reg infos
@@ -99,15 +99,15 @@ int bEndThread=0; // thread handlers
int bThreadEnded=0;
int bSpuInit=0;
int bSPUIsOpen=0;
-
-#ifdef _WINDOWS
-HWND hWMain=0; // window handle
-HWND hWDebug=0;
-HWND hWRecord=0;
-static HANDLE hMainThread;
+
+#ifdef _WINDOWS
+HWND hWMain=0; // window handle
+HWND hWDebug=0;
+HWND hWRecord=0;
+static HANDLE hMainThread;
#else
static pthread_t thread = (pthread_t)-1; // thread id (linux)
-#endif
+#endif
unsigned long dwNewChannel=0; // flags for faster testing, if new channel starts
@@ -261,11 +261,11 @@ INLINE void StartSound(int ch)
{
StartADSR(ch);
StartREVERB(ch);
-
+
// fussy timing issues - do in VoiceOn
//s_chan[ch].pCurr=s_chan[ch].pStart; // set sample start
- //s_chan[ch].bStop=0;
- //s_chan[ch].bOn=1;
+ //s_chan[ch].bStop=0;
+ //s_chan[ch].bOn=1;
s_chan[ch].s_1=0; // init mixing vars
s_chan[ch].s_2=0;
@@ -319,102 +319,102 @@ INLINE void FModChangeFrequency(int ch,int ns)
////////////////////////////////////////////////////////////////////////
-/*
-Noise Algorithm
-- Dr.Hell (Xebra PS1 emu)
-- 100% accurate (waveform + frequency)
-- http://drhell.web.fc2.com
-
-
-Level change cycle
-Freq = 0x8000 >> (NoiseClock >> 2);
-
-Frequency of half cycle
-Half = ((NoiseClock & 3) * 2) / (4 + (NoiseClock & 3));
-- 0 = (0*2)/(4+0) = 0/4
-- 1 = (1*2)/(4+1) = 2/5
-- 2 = (2*2)/(4+2) = 4/6
-- 3 = (3*2)/(4+3) = 6/7
-
--------------------------------
-
-5*6*7 = 210
-4 - 0*0 = 0
-5 - 42*2 = 84
-6 - 35*4 = 140
-7 - 30*6 = 180
-*/
-
-// Noise Waveform - Dr. Hell (Xebra)
-char NoiseWaveAdd [64] = {
- 1, 0, 0, 1, 0, 1, 1, 0,
- 1, 0, 0, 1, 0, 1, 1, 0,
- 1, 0, 0, 1, 0, 1, 1, 0,
- 1, 0, 0, 1, 0, 1, 1, 0,
- 0, 1, 1, 0, 1, 0, 0, 1,
- 0, 1, 1, 0, 1, 0, 0, 1,
- 0, 1, 1, 0, 1, 0, 0, 1,
- 0, 1, 1, 0, 1, 0, 0, 1
-};
-
-unsigned short NoiseFreqAdd[5] = {
- 0, 84, 140, 180, 210
-};
-
-INLINE void NoiseClock()
-{
- unsigned int level;
-
- level = 0x8000 >> (dwNoiseClock >> 2);
- level <<= 16;
-
- dwNoiseCount += 0x10000;
-
- // Dr. Hell - fraction
- dwNoiseCount += NoiseFreqAdd[ dwNoiseClock & 3 ];
- if( (dwNoiseCount&0xffff) >= NoiseFreqAdd[4] ) {
- dwNoiseCount += 0x10000;
- dwNoiseCount -= NoiseFreqAdd[ dwNoiseClock & 3 ];
- }
-
- if( dwNoiseCount >= level )
- {
- while( dwNoiseCount >= level )
- dwNoiseCount -= level;
-
- // Dr. Hell - form
- dwNoiseVal = (dwNoiseVal<<1) | NoiseWaveAdd[ (dwNoiseVal>>10) & 63 ];
- }
-}
-
-INLINE int iGetNoiseVal(int ch)
-{
- int fa;
-
- fa = (short) dwNoiseVal;
-
- // no clip need
- //if(fa>32767L) fa=32767L;
- //if(fa<-32767L) fa=-32767L;
-
- // don't upset VAG decoder
- //if(iUseInterpolation<2) // no gauss/cubic interpolation?
- //pChannel->SB[29] = fa; // -> store noise val in "current sample" slot
-
- // boost volume - no more!
- //return fa * 3 / 2;
- return fa;
-}
-
+/*
+Noise Algorithm
+- Dr.Hell (Xebra PS1 emu)
+- 100% accurate (waveform + frequency)
+- http://drhell.web.fc2.com
+
+
+Level change cycle
+Freq = 0x8000 >> (NoiseClock >> 2);
+
+Frequency of half cycle
+Half = ((NoiseClock & 3) * 2) / (4 + (NoiseClock & 3));
+- 0 = (0*2)/(4+0) = 0/4
+- 1 = (1*2)/(4+1) = 2/5
+- 2 = (2*2)/(4+2) = 4/6
+- 3 = (3*2)/(4+3) = 6/7
+
+-------------------------------
+
+5*6*7 = 210
+4 - 0*0 = 0
+5 - 42*2 = 84
+6 - 35*4 = 140
+7 - 30*6 = 180
+*/
+
+// Noise Waveform - Dr. Hell (Xebra)
+char NoiseWaveAdd [64] = {
+ 1, 0, 0, 1, 0, 1, 1, 0,
+ 1, 0, 0, 1, 0, 1, 1, 0,
+ 1, 0, 0, 1, 0, 1, 1, 0,
+ 1, 0, 0, 1, 0, 1, 1, 0,
+ 0, 1, 1, 0, 1, 0, 0, 1,
+ 0, 1, 1, 0, 1, 0, 0, 1,
+ 0, 1, 1, 0, 1, 0, 0, 1,
+ 0, 1, 1, 0, 1, 0, 0, 1
+};
+
+unsigned short NoiseFreqAdd[5] = {
+ 0, 84, 140, 180, 210
+};
+
+INLINE void NoiseClock()
+{
+ unsigned int level;
+
+ level = 0x8000 >> (dwNoiseClock >> 2);
+ level <<= 16;
+
+ dwNoiseCount += 0x10000;
+
+ // Dr. Hell - fraction
+ dwNoiseCount += NoiseFreqAdd[ dwNoiseClock & 3 ];
+ if( (dwNoiseCount&0xffff) >= NoiseFreqAdd[4] ) {
+ dwNoiseCount += 0x10000;
+ dwNoiseCount -= NoiseFreqAdd[ dwNoiseClock & 3 ];
+ }
+
+ if( dwNoiseCount >= level )
+ {
+ while( dwNoiseCount >= level )
+ dwNoiseCount -= level;
+
+ // Dr. Hell - form
+ dwNoiseVal = (dwNoiseVal<<1) | NoiseWaveAdd[ (dwNoiseVal>>10) & 63 ];
+ }
+}
+
+INLINE int iGetNoiseVal(int ch)
+{
+ int fa;
+
+ fa = (short) dwNoiseVal;
+
+ // no clip need
+ //if(fa>32767L) fa=32767L;
+ //if(fa<-32767L) fa=-32767L;
+
+ // don't upset VAG decoder
+ //if(iUseInterpolation<2) // no gauss/cubic interpolation?
+ //pChannel->SB[29] = fa; // -> store noise val in "current sample" slot
+
+ // boost volume - no more!
+ //return fa * 3 / 2;
+ return fa;
+}
+
////////////////////////////////////////////////////////////////////////
INLINE void StoreInterpolationVal(int ch,int fa)
-{
- /*
+{
+ /*
// fmod channel = sound output
if(s_chan[ch].bFMod==2) // fmod freq channel
s_chan[ch].SB[29]=fa;
- else
+ else
*/
{
if((spuCtrl&0x4000)==0) fa=0; // muted?
@@ -449,7 +449,7 @@ INLINE void StoreInterpolationVal(int ch,int fa)
INLINE int iGetInterpolationVal(int ch)
{
int fa;
-
+
// fmod channel = sound output
//if(s_chan[ch].bFMod==2) return s_chan[ch].SB[29];
@@ -520,27 +520,25 @@ INLINE int iGetInterpolationVal(int ch)
////////////////////////////////////////////////////////////////////////
-#ifdef _WINDOWS
-static VOID CALLBACK MAINProc(UINT nTimerId, UINT msg, DWORD dwUser, DWORD dwParam1, DWORD dwParam2)
-#else
-static void *MAINThread(void *arg)
+#ifdef _WINDOWS
+static VOID CALLBACK MAINProc(UINT nTimerId, UINT msg, DWORD dwUser, DWORD dwParam1, DWORD dwParam2)
+#else
+static void *MAINThread(void *arg)
#endif
{
int s_1,s_2,fa,ns;
#ifndef _MACOSX
int voldiv = iVolume;
#else
- const int voldiv = 2;
+ int voldiv = 2;
#endif
unsigned char * start;unsigned int nSample;
int ch,predict_nr,shift_factor,flags,d,s;
int bIRQReturn=0;
-
-
- // mute output
- if( voldiv == 5 ) voldiv = 0x7fffffff;
-
-
+
+ // mute output
+ if( voldiv == 5 ) voldiv = 0x7fffffff;
+
while(!bEndThread) // until we are shutting down
{
// ok, at the beginning we are looking if there is
@@ -562,19 +560,19 @@ static void *MAINThread(void *arg)
{
iSecureStart=0; // reset secure
-#ifdef _WINDOWS
- if(iUseTimer) // no-thread mode?
- {
- if(iUseTimer==1) // -> ok, timer mode 1: setup a oneshot timer of x ms to wait
- timeSetEvent(PAUSE_W,1,MAINProc,0,TIME_ONESHOT);
- return; // -> and done this time (timer mode 1 or 2)
- }
- // win thread mode:
- Sleep(PAUSE_W); // sleep for x ms (win)
-#else
- if(iUseTimer) return 0; // linux no-thread mode? bye
- usleep(PAUSE_L); // else sleep for x ms (linux)
-#endif
+#ifdef _WINDOWS
+ if(iUseTimer) // no-thread mode?
+ {
+ if(iUseTimer==1) // -> ok, timer mode 1: setup a oneshot timer of x ms to wait
+ timeSetEvent(PAUSE_W,1,MAINProc,0,TIME_ONESHOT);
+ return; // -> and done this time (timer mode 1 or 2)
+ }
+ // win thread mode:
+ Sleep(PAUSE_W); // sleep for x ms (win)
+#else
+ if(iUseTimer) return 0; // linux no-thread mode? bye
+ usleep(PAUSE_L); // else sleep for x ms (linux)
+#endif
if(dwNewChannel) iSecureStart=1; // if a new channel kicks in (or, of course, sound buffer runs low), we will leave the loop
}
@@ -591,19 +589,19 @@ static void *MAINThread(void *arg)
//- main channel loop -//
//--------------------------------------------------//
{
- ns=0;
- while(ns<NSSIZE) // loop until 1 ms of data is reached
+ ns=0;
+ while(ns<NSSIZE) // loop until 1 ms of data is reached
{
- NoiseClock();
-
- for(ch=0;ch<MAXCHAN;ch++) // loop em all... we will collect 1 ms of sound of each playing channel
+ NoiseClock();
+
+ 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].bOn) continue; // channel not playing? next
-
- if(s_chan[ch].iActFreq!=s_chan[ch].iUsedFreq) // new psx frequency?
- VoiceChangeFrequency(ch);
-
+ if(s_chan[ch].bNew) StartSound(ch); // start new sound
+ if(!s_chan[ch].bOn) continue; // channel not playing? next
+
+ if(s_chan[ch].iActFreq!=s_chan[ch].iUsedFreq) // new psx frequency?
+ VoiceChangeFrequency(ch);
+
if(s_chan[ch].bFMod==1 && iFMod[ns]) // fmod freq channel
FModChangeFrequency(ch,ns);
@@ -615,9 +613,9 @@ static void *MAINThread(void *arg)
if (s_chan[ch].iSilent==1 || start == (unsigned char*)-1) // special "stop" sign
{
- // silence = let channel keep running (IRQs)
- //s_chan[ch].bOn=0; // -> turn everything off
- s_chan[ch].iSilent=2;
+ // silence = let channel keep running (IRQs)
+ //s_chan[ch].bOn=0; // -> turn everything off
+ s_chan[ch].iSilent=2;
s_chan[ch].ADSRX.lVolume=0;
s_chan[ch].ADSRX.EnvelopeVol=0;
@@ -681,51 +679,51 @@ static void *MAINThread(void *arg)
//////////////////////////////////////////// flag handler
- /*
- SPU2-X:
- $4 = set loop to current block
- $2 = keep envelope on (no mute)
- $1 = jump to loop address
-
- silence means no volume (ADSR keeps playing!!)
- */
-
- // Jungle Book - Rhythm 'n Groove - use external loop address
- // - fixes music player (+IRQ generate)
- if((flags&4) && (s_chan[ch].bIgnoreLoop == 0))
- s_chan[ch].pLoop=start-16;
-
- // Jungle Book - Rhythm 'n Groove - don't reset ignore status
- // - fixes gameplay speed (IRQ hits)
- //s_chan[ch].bIgnoreLoop = 0;
-
-
- if(flags&1)
- {
- // ...?
- //s_chan[ch].bIgnoreLoop = 0;
-
- // Xenogears - 7 = play missing sounds
- start = s_chan[ch].pLoop;
-
- // silence = keep playing..?
- if( (flags&2) == 0 ) {
- s_chan[ch].iSilent = 1;
-
- // silence = don't start release phase
- //s_chan[ch].bStop = 1;
-
- //start = (unsigned char *) -1;
- }
- }
-
-#if 0
- // crash check
- if( start == 0 )
- start = (unsigned char *) -1;
- if( start >= spuMemC + 0x80000 )
- start = spuMemC - 0x80000;
-#endif
+ /*
+ SPU2-X:
+ $4 = set loop to current block
+ $2 = keep envelope on (no mute)
+ $1 = jump to loop address
+
+ silence means no volume (ADSR keeps playing!!)
+ */
+
+ // Jungle Book - Rhythm 'n Groove - use external loop address
+ // - fixes music player (+IRQ generate)
+ if((flags&4) && (s_chan[ch].bIgnoreLoop == 0))
+ s_chan[ch].pLoop=start-16;
+
+ // Jungle Book - Rhythm 'n Groove - don't reset ignore status
+ // - fixes gameplay speed (IRQ hits)
+ //s_chan[ch].bIgnoreLoop = 0;
+
+
+ if(flags&1)
+ {
+ // ...?
+ //s_chan[ch].bIgnoreLoop = 0;
+
+ // Xenogears - 7 = play missing sounds
+ start = s_chan[ch].pLoop;
+
+ // silence = keep playing..?
+ if( (flags&2) == 0 ) {
+ s_chan[ch].iSilent = 1;
+
+ // silence = don't start release phase
+ //s_chan[ch].bStop = 1;
+
+ //start = (unsigned char *) -1;
+ }
+ }
+
+#if 0
+ // crash check
+ if( start == 0 )
+ start = (unsigned char *) -1;
+ if( start >= spuMemC + 0x80000 )
+ start = spuMemC - 0x80000;
+#endif
s_chan[ch].pCurr=start; // store values for next cycle
s_chan[ch].s_1=s_1;
@@ -740,21 +738,21 @@ static void *MAINThread(void *arg)
while(iSpuAsyncWait && !bEndThread &&
timeGetTime_spu()<dwWatchTime)
-#ifdef _WINDOWS
- Sleep(1);
-#else
- usleep(1000L);
+#ifdef _WINDOWS
+ Sleep(1);
+#else
+ usleep(1000L);
#endif
}
else
{
lastch=ch;
lastns=ns;
-
-#ifdef _WINDOWS
- return;
+
+#ifdef _WINDOWS
+ return;
#else
- return 0;
+ return 0;
#endif
}
}
@@ -777,9 +775,9 @@ GOON: ;
if(s_chan[ch].bFMod==2) // fmod freq channel
iFMod[ns]=s_chan[ch].sval; // -> store 1T sample data, use that to do fmod on next channel
-
- // mix fmod channel into output
- // - Xenogears save icon (high pitch)
+
+ // mix fmod channel into output
+ // - Xenogears save icon (high pitch)
{
//////////////////////////////////////////////
// ok, left/right sound volume (psx volume goes from 0 ... 0x3fff)
@@ -797,13 +795,13 @@ GOON: ;
if(s_chan[ch].bRVBActive) StoreREVERB(ch,ns);
}
-
- s_chan[ch].spos += s_chan[ch].sinc;
+
+ s_chan[ch].spos += s_chan[ch].sinc;
}
- ////////////////////////////////////////////////
- // ok, go on until 1 ms data of this channel is collected
-
- ns++;
+ ////////////////////////////////////////////////
+ // ok, go on until 1 ms data of this channel is collected
+
+ ns++;
} // end ns
}
@@ -837,60 +835,60 @@ GOON: ;
else // stereo:
for (ns = 0; ns < NSSIZE; ns++)
{
- static double _interpolation_coefficient = 3.759285613;
-
- if(iFreqResponse) {
- int sl,sr;
- double ldiff, rdiff, avg, tmp;
-
- SSumL[ns]+=MixREVERBLeft(ns);
- SSumR[ns]+=MixREVERBRight();
-
- sl = SSumL[ns]; SSumL[ns]=0;
- sr = SSumR[ns]; SSumR[ns]=0;
-
-
- /*
- Frequency Response
- - William Pitcock (nenolod) (UPSE PSF player)
- - accurate (!)
- - http://nenolod.net
- */
-
- avg = ((sl + sr) / 2);
- ldiff = sl - avg;
- rdiff = sr - avg;
-
- tmp = avg + ldiff * _interpolation_coefficient;
- if (tmp < -32768)
- tmp = -32768;
- if (tmp > 32767)
- tmp = 32767;
- sl = (int)tmp;
-
- tmp = avg + rdiff * _interpolation_coefficient;
- if (tmp < -32768)
- tmp = -32768;
- if (tmp > 32767)
- tmp = 32767;
- sr = (int)tmp;
-
-
- *pS++=sl/voldiv;
- *pS++=sr/voldiv;
- } else {
- SSumL[ns]+=MixREVERBLeft(ns);
-
- d=SSumL[ns]/voldiv;SSumL[ns]=0;
- if(d<-32767) d=-32767;if(d>32767) d=32767;
- *pS++=d;
-
- SSumR[ns]+=MixREVERBRight();
-
- d=SSumR[ns]/voldiv;SSumR[ns]=0;
- if(d<-32767) d=-32767;if(d>32767) d=32767;
- *pS++=d;
- }
+ static double _interpolation_coefficient = 3.759285613;
+
+ if(iFreqResponse) {
+ int sl,sr;
+ double ldiff, rdiff, avg, tmp;
+
+ SSumL[ns]+=MixREVERBLeft(ns);
+ SSumR[ns]+=MixREVERBRight();
+
+ sl = SSumL[ns]; SSumL[ns]=0;
+ sr = SSumR[ns]; SSumR[ns]=0;
+
+
+ /*
+ Frequency Response
+ - William Pitcock (nenolod) (UPSE PSF player)
+ - accurate (!)
+ - http://nenolod.net
+ */
+
+ avg = ((sl + sr) / 2);
+ ldiff = sl - avg;
+ rdiff = sr - avg;
+
+ tmp = avg + ldiff * _interpolation_coefficient;
+ if (tmp < -32768)
+ tmp = -32768;
+ if (tmp > 32767)
+ tmp = 32767;
+ sl = (int)tmp;
+
+ tmp = avg + rdiff * _interpolation_coefficient;
+ if (tmp < -32768)
+ tmp = -32768;
+ if (tmp > 32767)
+ tmp = 32767;
+ sr = (int)tmp;
+
+
+ *pS++=sl/voldiv;
+ *pS++=sr/voldiv;
+ } else {
+ SSumL[ns]+=MixREVERBLeft(ns);
+
+ d=SSumL[ns]/voldiv;SSumL[ns]=0;
+ if(d<-32767) d=-32767;if(d>32767) d=32767;
+ *pS++=d;
+
+ SSumR[ns]+=MixREVERBRight();
+
+ d=SSumR[ns]/voldiv;SSumR[ns]=0;
+ if(d<-32767) d=-32767;if(d>32767) d=32767;
+ *pS++=d;
+ }
}
//////////////////////////////////////////////////////
@@ -929,93 +927,93 @@ GOON: ;
InitREVERB();
- //////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////
// feed the sound
- // latency = 25 ms (less pops, crackles, smoother)
-
- //if(iCycle++>=20)
- iCycle += APU_CYCLES_UPDATE;
- if(iCycle > 44000/1000*LATENCY + 100*LATENCY/1000)
+ // latency = 25 ms (less pops, crackles, smoother)
+
+ //if(iCycle++>=20)
+ iCycle += APU_CYCLES_UPDATE;
+ if(iCycle > 44000/1000*LATENCY + 100*LATENCY/1000)
{
SoundFeedStreamData((unsigned char *)pSpuBuffer,
((unsigned char *)pS) - ((unsigned char *)pSpuBuffer));
pS = (short *)pSpuBuffer;
iCycle = 0;
}
-
-
- if( iUseTimer == 2 )
- break;
+
+
+ if( iUseTimer == 2 )
+ break;
}
// end of big main loop...
bThreadEnded = 1;
-
+
#ifndef _WINDOWS
- return 0;
+ return 0;
#endif
}
-
-////////////////////////////////////////////////////////////////////////
-// WINDOWS THREAD... simply calls the timer func and stays forever :)
-////////////////////////////////////////////////////////////////////////
-
-#ifdef _WINDOWS
-
-DWORD WINAPI MAINThreadEx(LPVOID lpParameter)
-{
- MAINProc(0,0,0,0,0);
- return 0;
-}
-
-#endif
+
+////////////////////////////////////////////////////////////////////////
+// WINDOWS THREAD... simply calls the timer func and stays forever :)
+////////////////////////////////////////////////////////////////////////
+
+#ifdef _WINDOWS
+
+DWORD WINAPI MAINThreadEx(LPVOID lpParameter)
+{
+ MAINProc(0,0,0,0,0);
+ return 0;
+}
+
+#endif
// SPU ASYNC... even newer epsxe func
// 1 time every 'cycle' cycles... harhar
-long cpu_cycles;
+long cpu_cycles;
void CALLBACK SPUasync(unsigned long cycle)
{
- cpu_cycles += cycle;
-
+ cpu_cycles += cycle;
+
if(iSpuAsyncWait)
{
iSpuAsyncWait++;
if(iSpuAsyncWait<=64) return;
iSpuAsyncWait=0;
-
- cpu_cycles = cycle;
- }
-
-#ifdef _WINDOWS
- if(iDebugMode==2)
- {
- if(IsWindow(hWDebug)) DestroyWindow(hWDebug);
- hWDebug=0;iDebugMode=0;
- }
- if(iRecordMode==2)
- {
- if(IsWindow(hWRecord)) DestroyWindow(hWRecord);
- hWRecord=0;iRecordMode=0;
- }
-#endif
+
+ cpu_cycles = cycle;
+ }
+
+#ifdef _WINDOWS
+ if(iDebugMode==2)
+ {
+ if(IsWindow(hWDebug)) DestroyWindow(hWDebug);
+ hWDebug=0;iDebugMode=0;
+ }
+ if(iRecordMode==2)
+ {
+ if(IsWindow(hWRecord)) DestroyWindow(hWRecord);
+ hWRecord=0;iRecordMode=0;
+ }
+#endif
if(iUseTimer==2) // special mode, only used in Linux by this spu (or if you enable the experimental Windows mode)
{
if(!bSpuInit) return; // -> no init, no call
- // 1 ms updates
- while( cpu_cycles >= CPU_CLOCK / INTERVAL_TIME )
- {
- #ifdef _WINDOWS
- MAINProc(0,0,0,0,0); // -> experimental win mode... not really tested... don't like the drawbacks
- #else
- MAINThread(0); // -> linux high-compat mode
- #endif
-
- cpu_cycles -= CPU_CLOCK / INTERVAL_TIME;
- }
+ // 1 ms updates
+ while( cpu_cycles >= CPU_CLOCK / INTERVAL_TIME )
+ {
+ #ifdef _WINDOWS
+ MAINProc(0,0,0,0,0); // -> experimental win mode... not really tested... don't like the drawbacks
+ #else
+ MAINThread(0); // -> linux high-compat mode
+ #endif
+
+ cpu_cycles -= CPU_CLOCK / INTERVAL_TIME;
+ }
}
}
@@ -1063,49 +1061,49 @@ void SetupTimer(void)
bEndThread=0; // init thread vars
bThreadEnded=0;
bSpuInit=1; // flag: we are inited
-
-#ifdef _WINDOWS
-
- if(iUseTimer==1) // windows: use timer
- {
- timeBeginPeriod(1);
- timeSetEvent(1,1,MAINProc,0,TIME_ONESHOT);
- }
- else
- if(iUseTimer==0) // windows: use thread
- {
- //_beginthread(MAINThread,0,NULL);
- DWORD dw;
- hMainThread=CreateThread(NULL,0,MAINThreadEx,0,0,&dw);
- SetThreadPriority(hMainThread,
- //THREAD_PRIORITY_TIME_CRITICAL);
- THREAD_PRIORITY_HIGHEST);
- }
-
-#else
-
+
+#ifdef _WINDOWS
+
+ if(iUseTimer==1) // windows: use timer
+ {
+ timeBeginPeriod(1);
+ timeSetEvent(1,1,MAINProc,0,TIME_ONESHOT);
+ }
+ else
+ if(iUseTimer==0) // windows: use thread
+ {
+ //_beginthread(MAINThread,0,NULL);
+ DWORD dw;
+ hMainThread=CreateThread(NULL,0,MAINThreadEx,0,0,&dw);
+ SetThreadPriority(hMainThread,
+ //THREAD_PRIORITY_TIME_CRITICAL);
+ THREAD_PRIORITY_HIGHEST);
+ }
+
+#else
+
if(!iUseTimer) // linux: use thread
{
pthread_create(&thread, NULL, MAINThread, NULL);
- }
-
+ }
+
#endif
}
// REMOVETIMER: kill threads/timers
void RemoveTimer(void)
{
- bEndThread=1; // raise flag to end thread
-
-#ifdef _WINDOWS
-
- if(iUseTimer!=2) // windows thread?
- {
- while(!bThreadEnded) {Sleep(5L);} // -> wait till thread has ended
- Sleep(5L);
- }
- if(iUseTimer==1) timeEndPeriod(1); // windows timer? stop it
-
+ bEndThread=1; // raise flag to end thread
+
+#ifdef _WINDOWS
+
+ if(iUseTimer!=2) // windows thread?
+ {
+ while(!bThreadEnded) {Sleep(5L);} // -> wait till thread has ended
+ Sleep(5L);
+ }
+ if(iUseTimer==1) timeEndPeriod(1); // windows timer? stop it
+
#else
if(!iUseTimer) // linux tread?
{
@@ -1113,8 +1111,8 @@ void RemoveTimer(void)
while(!bThreadEnded && i<2000) {usleep(1000L);i++;} // -> wait until thread has ended
if(thread!=(pthread_t)-1) {pthread_cancel(thread);thread=(pthread_t)-1;} // -> cancel thread anyway
}
-
-#endif
+
+#endif
bThreadEnded=0; // no more spu is running
bSpuInit=0;
@@ -1205,44 +1203,44 @@ long CALLBACK SPUinit(void)
}
// SPUOPEN: called by main emu after init
-#ifdef _WINDOWS
-long CALLBACK SPUopen(HWND hW)
-#else
-long SPUopen(void)
+#ifdef _WINDOWS
+long CALLBACK SPUopen(HWND hW)
+#else
+long SPUopen(void)
#endif
{
- if (bSPUIsOpen) return 0; // security for some stupid main emus
+ if (bSPUIsOpen) return 0; // security for some stupid main emus
-#ifdef _WINDOWS
- LastWrite=0xffffffff;LastPlay=0; // init some play vars
- if(!IsWindow(hW)) hW=GetActiveWindow();
- hWMain = hW; // store hwnd
-#endif
+#ifdef _WINDOWS
+ LastWrite=0xffffffff;LastPlay=0; // init some play vars
+ if(!IsWindow(hW)) hW=GetActiveWindow();
+ hWMain = hW; // store hwnd
+#endif
SetupSound(); // setup sound (before init!)
SetupTimer(); // timer for feeding data
- bSPUIsOpen = 1;
-
-#ifdef _WINDOWS
- if(iDebugMode) // windows debug dialog
- {
- hWDebug=CreateDialog(hInst,MAKEINTRESOURCE(IDD_DEBUG),
- NULL,(DLGPROC)DebugDlgProc);
- SetWindowPos(hWDebug,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE|SWP_SHOWWINDOW|SWP_NOACTIVATE);
- UpdateWindow(hWDebug);
- SetFocus(hWMain);
- }
-
- if(iRecordMode) // windows recording dialog
- {
- hWRecord=CreateDialog(hInst,MAKEINTRESOURCE(IDD_RECORD),
- NULL,(DLGPROC)RecordDlgProc);
- SetWindowPos(hWRecord,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE|SWP_SHOWWINDOW|SWP_NOACTIVATE);
- UpdateWindow(hWRecord);
- SetFocus(hWMain);
- }
-#endif
+ bSPUIsOpen = 1;
+
+#ifdef _WINDOWS
+ if(iDebugMode) // windows debug dialog
+ {
+ hWDebug=CreateDialog(hInst,MAKEINTRESOURCE(IDD_DEBUG),
+ NULL,(DLGPROC)DebugDlgProc);
+ SetWindowPos(hWDebug,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE|SWP_SHOWWINDOW|SWP_NOACTIVATE);
+ UpdateWindow(hWDebug);
+ SetFocus(hWMain);
+ }
+
+ if(iRecordMode) // windows recording dialog
+ {
+ hWRecord=CreateDialog(hInst,MAKEINTRESOURCE(IDD_RECORD),
+ NULL,(DLGPROC)RecordDlgProc);
+ SetWindowPos(hWRecord,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE|SWP_SHOWWINDOW|SWP_NOACTIVATE);
+ UpdateWindow(hWRecord);
+ SetFocus(hWMain);
+ }
+#endif
return PSE_SPU_ERR_SUCCESS;
}
@@ -1252,14 +1250,14 @@ long CALLBACK SPUclose(void)
{
if (!bSPUIsOpen) return 0; // some security
- bSPUIsOpen = 0; // no more open
+ bSPUIsOpen = 0; // no more open
-#ifdef _WINDOWS
- if(IsWindow(hWDebug)) DestroyWindow(hWDebug);
- hWDebug=0;
- if(IsWindow(hWRecord)) DestroyWindow(hWRecord);
- hWRecord=0;
-#endif
+#ifdef _WINDOWS
+ if(IsWindow(hWDebug)) DestroyWindow(hWDebug);
+ hWDebug=0;
+ if(IsWindow(hWRecord)) DestroyWindow(hWRecord);
+ hWRecord=0;
+#endif
RemoveTimer(); // no more feeding
RemoveSound(); // no more sound handling
@@ -1284,25 +1282,25 @@ long CALLBACK SPUtest(void)
// SPUCONFIGURE: call config dialog
long CALLBACK SPUconfigure(void)
-{
-#if defined (_WINDOWS)
- DialogBox(hInst,MAKEINTRESOURCE(IDD_CFGDLG),
- GetActiveWindow(),(DLGPROC)DSoundDlgProc);
+{
+#if defined (_WINDOWS)
+ DialogBox(hInst,MAKEINTRESOURCE(IDD_CFGDLG),
+ GetActiveWindow(),(DLGPROC)DSoundDlgProc);
#elif defined (_MACOSX)
DoConfiguration();
#else
StartCfgTool("CFG");
-#endif
+#endif
return 0;
}
// SPUABOUT: show about window
void CALLBACK SPUabout(void)
-{
-#if defined (_WINDOWS)
- DialogBox(hInst,MAKEINTRESOURCE(IDD_ABOUT),
- GetActiveWindow(),(DLGPROC)AboutDlgProc);
+{
+#if defined (_WINDOWS)
+ DialogBox(hInst,MAKEINTRESOURCE(IDD_ABOUT),
+ GetActiveWindow(),(DLGPROC)AboutDlgProc);
#elif defined (_MACOSX)
DoAbout();
#else
diff --git a/plugins/dfsound/spucfg-0.1df/dfsound.glade2 b/plugins/dfsound/spucfg-0.1df/dfsound.glade2
index c071a09e..d2729bb8 100644
--- a/plugins/dfsound/spucfg-0.1df/dfsound.glade2
+++ b/plugins/dfsound/spucfg-0.1df/dfsound.glade2
@@ -78,7 +78,8 @@
<child>
<widget class="GtkComboBox" id="cbVolume2">
<property name="visible">True</property>
- <property name="items" translatable="yes">Low
+ <property name="items" translatable="yes">None
+Low
Medium
Loud
Loudest</property>
@@ -258,6 +259,18 @@ Cubic</property>
<property name="position">2</property>
</packing>
</child>
+ <child>
+ <widget class="GtkCheckButton" id="chkFreqResponse">
+ <property name="label" translatable="yes">Frequency Response - Output Filter</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="position">3</property>
+ </packing>
+ </child>
</widget>
</child>
</widget>
diff --git a/plugins/dfsound/spucfg-0.1df/main.c b/plugins/dfsound/spucfg-0.1df/main.c
index dd38645a..034379f7 100644
--- a/plugins/dfsound/spucfg-0.1df/main.c
+++ b/plugins/dfsound/spucfg-0.1df/main.c
@@ -126,7 +126,7 @@ int main(int argc, char *argv[])
p = strstr(p, "=");
len = 1;
}
- val = set_limit (p, len, 0, 4);
+ val = set_limit (p, len, -1, 4) + 1;
} else val = 2;
gtk_combo_box_set_active(GTK_COMBO_BOX (glade_xml_get_widget(xml, "cbVolume2")), val);
@@ -194,6 +194,19 @@ int main(int argc, char *argv[])
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (glade_xml_get_widget(xml, "chkDisStereo")), val);
if (pB) {
+ strcpy(t, "\nFreqResponse");
+ p = strstr(pB, t);
+ if (p) {
+ p = strstr(p, "=");
+ len = 1;
+ }
+
+ val = set_limit (p, len, 0, 1);
+ } else val = 0;
+
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (glade_xml_get_widget(xml, "chkFreqResponse")), val);
+
+ if (pB) {
strcpy(t, "\nUseReverb");
p = strstr(pB, t);
if (p) {
@@ -233,7 +246,7 @@ void SaveConfig(GtkWidget *widget, gpointer user_data)
}
val = gtk_combo_box_get_active(GTK_COMBO_BOX(glade_xml_get_widget(xml, "cbVolume2")));
- fprintf(fp, "\nVolume = %d\n", val);
+ fprintf(fp, "\nVolume = %d\n", val - 1);
val = gtk_combo_box_get_active(GTK_COMBO_BOX(glade_xml_get_widget(xml, "cbInterpolation2")));
fprintf(fp, "\nUseInterpolation = %d\n", val);
@@ -250,6 +263,9 @@ void SaveConfig(GtkWidget *widget, gpointer user_data)
val = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(xml, "chkDisStereo")));
fprintf(fp, "\nDisStereo = %d\n", val);
+ val = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(xml, "chkFreqResponse")));
+ fprintf(fp, "\nFreqResponse = %d\n", val);
+
val = gtk_combo_box_get_active(GTK_COMBO_BOX(glade_xml_get_widget(xml, "cbReverb2")));
fprintf(fp, "\nUseReverb = %d\n", val);
diff --git a/plugins/dfxvideo/draw.c b/plugins/dfxvideo/draw.c
index 2594fc22..b0b54a56 100644
--- a/plugins/dfxvideo/draw.c
+++ b/plugins/dfxvideo/draw.c
@@ -1294,9 +1294,6 @@ if (!myvisual)
DestroyDisplay();
}
-
-
- int _i;
uint32_t color;
/* fix the green back ground in YUV mode */
@@ -1416,7 +1413,7 @@ void BlitToYUV(unsigned char * surf,int32_t x,int32_t y)
unsigned short row,column;
unsigned short dx = PreviousPSXDisplay.Range.x1;
unsigned short dy = PreviousPSXDisplay.DisplayMode.y;
- int Y,U,V, R,G,B;
+ int R,G,B;
int32_t lPitch = PSXDisplay.DisplayMode.x << 2;
uint32_t *destpix;
@@ -1567,7 +1564,7 @@ void DoBufferSwap(void)
Screen *screen;
Window _dw;
XvImage *xvi;
- unsigned int dstx, dsty, srcy = 0;
+ unsigned int dstx, dsty;
unsigned int _d, _w, _h; //don't care about _d
finalw = PSXDisplay.DisplayMode.x;
diff --git a/plugins/gxvideo/draw.h b/plugins/gxvideo/draw.h
index edeb1e6e..6ab89518 100644
--- a/plugins/gxvideo/draw.h
+++ b/plugins/gxvideo/draw.h
@@ -25,6 +25,7 @@
#include <stdint.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
+#include <X11/extensions/XShm.h>
#include <X11/extensions/Xvlib.h>
#include "gpu_utils.h"
diff --git a/plugins/peopsxgl/gpucfg/gpucfg-newstyle2.glade b/plugins/peopsxgl/gpucfg/gpucfg-newstyle2.glade
index a39f02ba..538c08ce 100644
--- a/plugins/peopsxgl/gpucfg/gpucfg-newstyle2.glade
+++ b/plugins/peopsxgl/gpucfg/gpucfg-newstyle2.glade
@@ -1,6 +1,6 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0"?>
<interface>
- <requires lib="gtk+" version="2.20"/>
+ <requires lib="gtk+" version="2.16"/>
<!-- interface-naming-policy project-wide -->
<object class="GtkListStore" id="liststore6">
<columns>
@@ -141,10 +141,12 @@
<property name="border_width">5</property>
<property name="title" translatable="yes">P.E.Op.S. MesaGL PSX GPU configuration...</property>
<property name="resizable">False</property>
+ <property name="modal">True</property>
<property name="window_position">center</property>
<property name="type_hint">normal</property>
<child internal-child="vbox">
<object class="GtkVBox" id="fixed1">
+ <property name="orientation">vertical</property>
<child>
<object class="GtkHBox" id="my_hbox0">
<property name="spacing">5</property>
@@ -154,6 +156,7 @@
<child>
<object class="GtkVBox" id="fixed2">
<property name="border_width">5</property>
+ <property name="orientation">vertical</property>
<child>
<object class="GtkTable" id="table1">
<property name="visible">True</property>
@@ -175,7 +178,7 @@
<object class="GtkEntry" id="edtXSize">
<property name="can_focus">True</property>
<property name="max_length">5</property>
- <property name="invisible_char">•</property>
+ <property name="invisible_char">&#x2022;</property>
</object>
<packing>
<property name="left_attach">1</property>
@@ -185,7 +188,7 @@
<child>
<object class="GtkEntry" id="edtYSize">
<property name="can_focus">True</property>
- <property name="invisible_char">•</property>
+ <property name="invisible_char">&#x2022;</property>
</object>
<packing>
<property name="left_attach">1</property>
@@ -228,6 +231,8 @@
<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>
@@ -239,6 +244,8 @@
<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>
@@ -260,12 +267,14 @@
<child>
<object class="GtkVBox" id="fixed3">
<property name="border_width">5</property>
+ <property name="orientation">vertical</property>
<child>
<object class="GtkHBox" id="hbox3">
<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">
@@ -305,6 +314,7 @@
<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">
@@ -375,6 +385,9 @@
<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>
@@ -410,6 +423,7 @@
<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>
@@ -418,6 +432,8 @@
<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>
@@ -429,6 +445,7 @@
<property name="draw_indicator">True</property>
</object>
<packing>
+ <property name="expand">False</property>
<property name="position">1</property>
</packing>
</child>
@@ -440,6 +457,8 @@
<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>
@@ -452,6 +471,8 @@
<property name="group">rdbLimMan</property>
</object>
<packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
<property name="position">3</property>
</packing>
</child>
@@ -466,6 +487,8 @@
<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>
@@ -474,6 +497,9 @@
<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>
@@ -483,11 +509,15 @@
<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>
<packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
<property name="position">4</property>
</packing>
</child>
@@ -509,18 +539,21 @@
<child>
<object class="GtkVBox" id="fixed5">
<property name="border_width">5</property>
+ <property name="orientation">vertical</property>
<child>
<object class="GtkHBox" id="hbox1">
<property name="visible">True</property>
<child>
<object class="GtkVBox" id="vbox2">
<property name="visible">True</property>
+ <property name="orientation">vertical</property>
<child>
<object class="GtkHBox" id="hbox4">
<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">
@@ -560,6 +593,7 @@
<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">
@@ -573,6 +607,8 @@
</child>
</object>
<packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
@@ -587,6 +623,8 @@
</child>
</object>
<packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
@@ -683,6 +721,7 @@
<child>
<object class="GtkVBox" id="fixed6">
<property name="border_width">5</property>
+ <property name="orientation">vertical</property>
<child>
<object class="GtkHBox" id="my_hbox4">
<child>
@@ -693,6 +732,8 @@
<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>
@@ -703,6 +744,8 @@
</object>
<packing>
<property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">13</property>
<property name="position">1</property>
</packing>
</child>
@@ -711,11 +754,15 @@
<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>
<packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
@@ -727,6 +774,8 @@
<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>
@@ -738,6 +787,8 @@
<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>
@@ -749,6 +800,8 @@
<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>
@@ -760,6 +813,8 @@
<property name="draw_indicator">True</property>
</object>
<packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
<property name="position">4</property>
</packing>
</child>
@@ -771,6 +826,8 @@
<property name="draw_indicator">True</property>
</object>
<packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
<property name="position">5</property>
</packing>
</child>
@@ -782,6 +839,8 @@
<property name="draw_indicator">True</property>
</object>
<packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
<property name="position">6</property>
</packing>
</child>
@@ -803,6 +862,7 @@
<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>
@@ -1078,7 +1138,6 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="receives_default">False</property>
- <property name="use_action_appearance">False</property>
<property name="use_stock">True</property>
</object>
<packing>
@@ -1093,7 +1152,6 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="receives_default">False</property>
- <property name="use_action_appearance">False</property>
<property name="use_stock">True</property>
</object>
<packing>
@@ -1128,6 +1186,7 @@
<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/>