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
frontend: menu: limit enum text length
[pcsx_rearmed.git]
/
libpcsxcore
/
psxcounters.c
diff --git
a/libpcsxcore/psxcounters.c
b/libpcsxcore/psxcounters.c
index
7317c87
..
cd99842
100644
(file)
--- a/
libpcsxcore/psxcounters.c
+++ b/
libpcsxcore/psxcounters.c
@@
-190,20
+190,16
@@
void psxRcntReset( u32 index )
{
u32 count;
{
u32 count;
+ rcnts[index].mode |= RcUnknown10;
+
if( rcnts[index].counterState == CountToTarget )
{
if( rcnts[index].counterState == CountToTarget )
{
+ count = psxRegs.cycle;
+ count -= rcnts[index].cycleStart;
+ if( rcnts[index].rate > 1 )
+ count /= rcnts[index].rate;
if( rcnts[index].mode & RcCountToTarget )
if( rcnts[index].mode & RcCountToTarget )
- {
- count = psxRegs.cycle;
- count -= rcnts[index].cycleStart;
- if (rcnts[index].rate > 1)
- count /= rcnts[index].rate;
count -= rcnts[index].target;
count -= rcnts[index].target;
- }
- else
- {
- count = _psxRcntRcount( index );
- }
_psxRcntWcount( index, count );
_psxRcntWcount( index, count );
@@
-218,8
+214,12
@@
void psxRcntReset( u32 index )
}
rcnts[index].mode |= RcCountEqTarget;
}
rcnts[index].mode |= RcCountEqTarget;
+
+ if( count < 0xffff ) // special case, overflow too?
+ return;
}
}
- else if( rcnts[index].counterState == CountToOverflow )
+
+ if( rcnts[index].counterState == CountToOverflow )
{
count = psxRegs.cycle;
count -= rcnts[index].cycleStart;
{
count = psxRegs.cycle;
count -= rcnts[index].cycleStart;
@@
-241,10
+241,6
@@
void psxRcntReset( u32 index )
rcnts[index].mode |= RcOverflow;
}
rcnts[index].mode |= RcOverflow;
}
-
- rcnts[index].mode |= RcUnknown10;
-
- psxRcntSet();
}
void psxRcntUpdate()
}
void psxRcntUpdate()
@@
-332,9
+328,10
@@
void psxRcntUpdate()
base_cycle += hsync_steps * 8791293;
rcnts[3].cycle = base_cycle >> 12;
base_cycle &= 0xfff;
base_cycle += hsync_steps * 8791293;
rcnts[3].cycle = base_cycle >> 12;
base_cycle &= 0xfff;
- psxRcntSet();
}
}
+ psxRcntSet();
+
#ifndef NDEBUG
DebugVSync();
#endif
#ifndef NDEBUG
DebugVSync();
#endif