diff options
author | notaz | 2011-12-04 23:33:50 +0200 |
---|---|---|
committer | notaz | 2011-12-05 01:08:25 +0200 |
commit | ddbaf678c49d33cf60f1eac5069e3275baa2c685 (patch) | |
tree | 6ed9f1a9d0dd5673baabf909cb6338fb1941c104 /libpcsxcore/psxcounters.c | |
parent | adb4b2c6fff620ecd65e3786a2f961413507c1a4 (diff) | |
download | pcsx_rearmed-ddbaf678c49d33cf60f1eac5069e3275baa2c685.tar.gz pcsx_rearmed-ddbaf678c49d33cf60f1eac5069e3275baa2c685.tar.bz2 pcsx_rearmed-ddbaf678c49d33cf60f1eac5069e3275baa2c685.zip |
move some gpu status handling to core
this removes need to update each gpu plugin when this stuff is changed
Diffstat (limited to 'libpcsxcore/psxcounters.c')
-rw-r--r-- | libpcsxcore/psxcounters.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/libpcsxcore/psxcounters.c b/libpcsxcore/psxcounters.c index 177ccb7..e8d2796 100644 --- a/libpcsxcore/psxcounters.c +++ b/libpcsxcore/psxcounters.c @@ -22,6 +22,7 @@ */ #include "psxcounters.h" +#include "gpu.h" #include "debug.h" /******************************************************************************/ @@ -75,6 +76,7 @@ static u32 spuSyncCount = 0; static u32 hsync_steps = 0; static u32 gpu_wants_hcnt = 0; static u32 base_cycle = 0; +static u32 frame_counter = 0; u32 psxNextCounter = 0, psxNextsCounter = 0; @@ -294,7 +296,9 @@ void psxRcntUpdate() if( hSyncCount == VBlankStart[Config.PsxType] ) { GPU_vBlank( 1, &hSyncCount, &gpu_wants_hcnt ); - + //if( !(HW_GPU_STATUS & PSXGPU_ILACE) ) // hmh + HW_GPU_STATUS |= PSXGPU_LCF; + // For the best times. :D //setIrq( 0x01 ); } @@ -303,12 +307,17 @@ void psxRcntUpdate() if( hSyncCount >= (Config.VSyncWA ? HSyncTotal[Config.PsxType] / BIAS : HSyncTotal[Config.PsxType]) ) { hSyncCount = 0; + frame_counter++; GPU_vBlank( 0, &hSyncCount, &gpu_wants_hcnt ); setIrq( 0x01 ); EmuUpdate(); GPU_updateLace(); + + HW_GPU_STATUS &= ~PSXGPU_LCF; + if( HW_GPU_STATUS & PSXGPU_ILACE ) + HW_GPU_STATUS |= frame_counter << 31; } // Schedule next call, in hsyncs |