notaz.gp2x.de
/
pcsx_rearmed.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
cdrom: maybe more accurate lid behavior
[pcsx_rearmed.git]
/
libpcsxcore
/
psxhw.c
diff --git
a/libpcsxcore/psxhw.c
b/libpcsxcore/psxhw.c
index
4811f99
..
b8ca199
100644
(file)
--- a/
libpcsxcore/psxhw.c
+++ b/
libpcsxcore/psxhw.c
@@
-42,7
+42,7
@@
void psxHwReset() {
cdrReset();
psxRcntInit();
HW_GPU_STATUS = SWAP32(0x10802000);
cdrReset();
psxRcntInit();
HW_GPU_STATUS = SWAP32(0x10802000);
- psxHwReadGpuSRptr = Config.hacks.gpu_busy
_hack
+ psxHwReadGpuSRptr = Config.hacks.gpu_busy
? psxHwReadGpuSRbusyHack : psxHwReadGpuSR;
}
? psxHwReadGpuSRbusyHack : psxHwReadGpuSR;
}
@@
-85,8
+85,13
@@
void psxHwWriteDmaIcr32(u32 value)
void psxHwWriteGpuSR(u32 value)
{
void psxHwWriteGpuSR(u32 value)
{
+ u32 old_sr = HW_GPU_STATUS, new_sr;
GPU_writeStatus(value);
gpuSyncPluginSR();
GPU_writeStatus(value);
gpuSyncPluginSR();
+ new_sr = HW_GPU_STATUS;
+ // "The Next Tetris" seems to rely on the field order after enable
+ if ((old_sr ^ new_sr) & new_sr & SWAP32(PSXGPU_ILACE))
+ frame_counter |= 1;
}
u32 psxHwReadGpuSR(void)
}
u32 psxHwReadGpuSR(void)