diff options
author | notaz | 2011-10-10 17:38:43 +0300 |
---|---|---|
committer | notaz | 2011-10-30 23:48:07 +0200 |
commit | 9f7ee52edab5d7ba8f7da69f3c15d1d0025bd15b (patch) | |
tree | a64a49983294dbaad8315ebcfbe53ea154fc95b4 | |
parent | 6e1a0c4dc569a9635344e42e2f9e973f0b9ab6d5 (diff) | |
download | pcsx_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.
-rw-r--r-- | libpcsxcore/psxcounters.c | 17 |
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; |