summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authoriCatButler <i.am.catbutler@gmail.com>2016-05-08 13:29:54 +0100
committeriCatButler <i.am.catbutler@gmail.com>2016-05-08 13:29:54 +0100
commitcd126bcb7cdb6a555ff1829ba9d535596ef58609 (patch)
tree0bb244b04faac15c04f38f889763db2793c4eb82 /plugins
parentca61b53f6c99e49de4620395bc8dbe5b71c9e2db (diff)
Revert pcsxr@87829
https://github.com/iCatButler/pcsxr/commit/a37e3f092fd84658c67ec537590dd5f4710ee174 "peopsgl/xvideo: fixed interlace/frame bit31 toggling. Now X-Men Acade… …mies are fine. Obsoletes use of odd/even hack." This fixes a hang on going to the title screen in many games.
Diffstat (limited to 'plugins')
-rwxr-xr-xplugins/peopsxgl/gpu.c33
1 files changed, 6 insertions, 27 deletions
diff --git a/plugins/peopsxgl/gpu.c b/plugins/peopsxgl/gpu.c
index 60be981b..fd784c51 100755
--- a/plugins/peopsxgl/gpu.c
+++ b/plugins/peopsxgl/gpu.c
@@ -182,7 +182,6 @@ int iFakePrimBusy = 0;
int iRumbleVal = 0;
int iRumbleTime = 0;
uint32_t vBlank=0;
-BOOL oddLines;
////////////////////////////////////////////////////////////////////////
// stuff to make this a true PDK module
@@ -580,7 +579,6 @@ long CALLBACK GPUinit()
// device initialised already !
//lGPUstatusRet = 0x74000000;
vBlank = 0;
- oddLines = FALSE;
STATUSREG = 0x14802000;
GPUIsIdle;
@@ -2031,8 +2029,8 @@ static unsigned short usFirstPos=2;
void CALLBACK GPUupdateLace(void)
{
- if(!(dwActFixes&0x1000))
- STATUSREG^=0x80000000; // interlaced bit toggle, if the CC game fix is not active (see gpuReadStatus)
+ //if(!(dwActFixes&0x1000))
+ // STATUSREG^=0x80000000; // interlaced bit toggle, if the CC game fix is not active (see gpuReadStatus)
if(!(dwActFixes&128)) // normal frame limit func
CheckFrameRate();
@@ -2044,7 +2042,7 @@ void CALLBACK GPUupdateLace(void)
if(PSXDisplay.Interlaced) // interlaced mode?
{
- //STATUSREG^=0x80000000;
+ STATUSREG^=0x80000000;
if(PSXDisplay.DisplayMode.x>0 && PSXDisplay.DisplayMode.y>0)
{
updateDisplay(); // -> swap buffers (new frame)
@@ -2069,16 +2067,7 @@ void CALLBACK GPUupdateLace(void)
////////////////////////////////////////////////////////////////////////
uint32_t CALLBACK GPUreadStatus(void)
-{
- if (vBlank || oddLines == FALSE)
- { // vblank or even lines
- STATUSREG &= ~(0x80000000);
- }
- else
- { // Oddlines and not vblank
- STATUSREG |= 0x80000000;
- }
-
+{
if(dwActFixes&0x1000) // CC game fix
{
static int iNumRead=0;
@@ -2105,7 +2094,7 @@ uint32_t CALLBACK GPUreadStatus(void)
}
}
- return STATUSREG;
+ return STATUSREG | (vBlank ? 0x80000000 : 0 );;
}
////////////////////////////////////////////////////////////////////////
@@ -3626,15 +3615,5 @@ void CALLBACK GPUdisplayFlags(uint32_t dwFlags)
void CALLBACK GPUvBlank( int val )
{
- vBlank = val;
- oddLines = oddLines ? FALSE : TRUE; // bit changes per frame when not interlaced
- //printf("VB %x (%x)\n", oddLines, vBlank);
-}
-
-void CALLBACK GPUhSync( int val ) {
- // Interlaced mode - update bit every scanline
- if (PSXDisplay.Interlaced) {
- oddLines = (val%2 ? FALSE : TRUE);
- }
- //printf("HS %x (%x)\n", oddLines, vBlank);
+ vBlank = val;
}