aboutsummaryrefslogtreecommitdiff
path: root/libpcsxcore
diff options
context:
space:
mode:
authornotaz2011-10-10 17:38:43 +0300
committernotaz2011-10-30 23:48:07 +0200
commit9f7ee52edab5d7ba8f7da69f3c15d1d0025bd15b (patch)
treea64a49983294dbaad8315ebcfbe53ea154fc95b4 /libpcsxcore
parent6e1a0c4dc569a9635344e42e2f9e973f0b9ab6d5 (diff)
downloadpcsx_rearmed-9f7ee52edab5d7ba8f7da69f3c15d1d0025bd15b.tar.gz
pcsx_rearmed-9f7ee52edab5d7ba8f7da69f3c15d1d0025bd15b.tar.bz2
pcsx_rearmed-9f7ee52edab5d7ba8f7da69f3c15d1d0025bd15b.zip
psxcounters: avoid doing excessive updates
this may cause missed interrupts in very rare cases, but performance penalty this makes is surely not worth it.
Diffstat (limited to 'libpcsxcore')
-rw-r--r--libpcsxcore/psxcounters.c17
1 files changed, 5 insertions, 12 deletions
diff --git a/libpcsxcore/psxcounters.c b/libpcsxcore/psxcounters.c
index db1462d..90c3d14 100644
--- a/libpcsxcore/psxcounters.c
+++ b/libpcsxcore/psxcounters.c
@@ -70,7 +70,8 @@ static const u32 VBlankStart[] = { 240, 256 };
static const u32 HSyncTotal[] = { 263, 313 };
static const u32 SpuUpdInterval[] = { 32, 32 };
-static const s32 VerboseLevel = 0;
+#define VERBOSE_LEVEL 0
+static const s32 VerboseLevel = VERBOSE_LEVEL;
/******************************************************************************/
@@ -92,8 +93,9 @@ void setIrq( u32 irq )
}
static
-void verboseLog( s32 level, const char *str, ... )
+void verboseLog( u32 level, const char *str, ... )
{
+#if VERBOSE_LEVEL > 0
if( level <= VerboseLevel )
{
va_list va;
@@ -106,6 +108,7 @@ void verboseLog( s32 level, const char *str, ... )
printf( "%s", buf );
fflush( stdout );
}
+#endif
}
/******************************************************************************/
@@ -338,8 +341,6 @@ void psxRcntWcount( u32 index, u32 value )
{
verboseLog( 2, "[RCNT %i] wcount: %x\n", index, value );
- psxRcntUpdate();
-
_psxRcntWcount( index, value );
psxRcntSet();
}
@@ -348,8 +349,6 @@ void psxRcntWmode( u32 index, u32 value )
{
verboseLog( 1, "[RCNT %i] wmode: %x\n", index, value );
- psxRcntUpdate();
-
rcnts[index].mode = value;
rcnts[index].irqState = 0;
@@ -401,8 +400,6 @@ void psxRcntWtarget( u32 index, u32 value )
{
verboseLog( 1, "[RCNT %i] wtarget: %x\n", index, value );
- psxRcntUpdate();
-
rcnts[index].target = value;
_psxRcntWcount( index, _psxRcntRcount( index ) );
@@ -415,8 +412,6 @@ u32 psxRcntRcount( u32 index )
{
u32 count;
- psxRcntUpdate();
-
count = _psxRcntRcount( index );
// Parasite Eve 2 fix.
@@ -440,8 +435,6 @@ u32 psxRcntRmode( u32 index )
{
u16 mode;
- psxRcntUpdate();
-
mode = rcnts[index].mode;
rcnts[index].mode &= 0xe7ff;