From 9c0a978d5c1ebc652e8ed2d30ad32aed88a7e1e7 Mon Sep 17 00:00:00 2001 From: "Jake.Stine" Date: Thu, 7 May 2009 15:56:10 +0000 Subject: [PATCH] IopMem: Added FireWire port handling to the new IopHardware handlers (oops!). EErec: Removed an instance of duplicated cycle counting for split blocks. git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1146 96395faa-99c1-11dd-bbfe-3dabce05a288 --- pcsx2/ps2/Iop/IopHwRead.cpp | 6 +++++- pcsx2/ps2/Iop/IopHwWrite.cpp | 6 +++++- pcsx2/ps2/Iop/IopHw_Internal.h | 10 +++++----- pcsx2/x86/ix86-32/iR5900-32.cpp | 3 --- 4 files changed, 15 insertions(+), 10 deletions(-) diff --git a/pcsx2/ps2/Iop/IopHwRead.cpp b/pcsx2/ps2/Iop/IopHwRead.cpp index b89c3bfae..372d67683 100644 --- a/pcsx2/ps2/Iop/IopHwRead.cpp +++ b/pcsx2/ps2/Iop/IopHwRead.cpp @@ -395,7 +395,7 @@ mem32_t __fastcall iopHwRead32_Page8( u32 addr ) const int parm = (masked_addr-0x240) / 8; ret = (masked_addr & 4) ? sio2_getSend2( parm ) : sio2_getSend1( parm ); } - else + else if( masked_addr <= 0x280 ) { switch( masked_addr ) { @@ -423,6 +423,10 @@ mem32_t __fastcall iopHwRead32_Page8( u32 addr ) break; } } + else if( addr >= pgmsk(HW_FW_START) && addr <= pgmsk(HW_FW_END) ) + { + ret = FWread32( addr ); + } } else ret = psxHu32(addr); diff --git a/pcsx2/ps2/Iop/IopHwWrite.cpp b/pcsx2/ps2/Iop/IopHwWrite.cpp index d8e413375..9b6bbb80e 100644 --- a/pcsx2/ps2/Iop/IopHwWrite.cpp +++ b/pcsx2/ps2/Iop/IopHwWrite.cpp @@ -521,7 +521,7 @@ void __fastcall iopHwWrite32_Page8( u32 addr, mem32_t val ) const int parm = (masked_addr-0x240) / 8; if(masked_addr & 4) sio2_setSend2( parm, val ); else sio2_setSend1( parm, val ); } - else + else if( masked_addr <= 0x280 ) { switch( masked_addr ) { @@ -536,6 +536,10 @@ void __fastcall iopHwWrite32_Page8( u32 addr, mem32_t val ) break; } } + else if( addr >= pgmsk(HW_FW_START) && addr <= pgmsk(HW_FW_END) ) + { + FWwrite32( addr, val ); + } } else psxHu32(addr) = val; diff --git a/pcsx2/ps2/Iop/IopHw_Internal.h b/pcsx2/ps2/Iop/IopHw_Internal.h index c15e7d9a0..a4eaab925 100644 --- a/pcsx2/ps2/Iop/IopHw_Internal.h +++ b/pcsx2/ps2/Iop/IopHw_Internal.h @@ -190,13 +190,13 @@ static __forceinline const char* _log_GetIopHwName( u32 addr ) { return "SPU2"; } - else if( addr >= 0x1f808200 ) + else if( addr >= pgmsk(HW_FW_START) && addr <= pgmsk(HW_FW_END) ) { - if( addr < 0x1f808240 ) - return "SIO2 param"; - else if( addr < 0x260 ) - return "SIO2 send"; + return "FW"; } + else if( addr >= 0x1f808200 && addr < 0x1f808240 ) { return "SIO2 param"; } + else if( addr >= 0x1f808240 && addr < 0x1f808260 ) { return "SIO2 send"; } + return "Unknown"; } } diff --git a/pcsx2/x86/ix86-32/iR5900-32.cpp b/pcsx2/x86/ix86-32/iR5900-32.cpp index 629198bff..17f820ff5 100644 --- a/pcsx2/x86/ix86-32/iR5900-32.cpp +++ b/pcsx2/x86/ix86-32/iR5900-32.cpp @@ -1623,11 +1623,8 @@ StartRecomp: } else { - assert( branch != 3 ); if( branch ) assert( !willbranch3 ); - else - ADD32ItoM((int)&cpuRegs.cycle, eeScaleBlockCycles() ); if( willbranch3 || !branch) {