- Fix Silent Hill Origins, Max Payne 2 and a few others. This was a really old bug :p

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2681 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
ramapcsx2 2010-03-08 02:19:58 +00:00
parent 8064d9a4d4
commit a7aac122d6
1 changed files with 10 additions and 0 deletions

View File

@ -509,6 +509,16 @@ static s32 __forceinline __fastcall GetNoiseValues( V_Core& thiscore, uint voice
// of the SPU2 (between 0x0000 and SPU2_DYN_MEMLINE) // of the SPU2 (between 0x0000 and SPU2_DYN_MEMLINE)
static __forceinline void spu2M_WriteFast( u32 addr, s16 value ) static __forceinline void spu2M_WriteFast( u32 addr, s16 value )
{ {
// Fixes some of the oldest hangs in pcsx2's history! :p
for( int i=0; i<2; i++ )
{
if( Cores[i].IRQEnable && Cores[i].IRQA == addr )
{
//printf("Core %d special write IRQ Called (IRQ passed). IRQA = %x\n",i,addr);
Spdif.Info |= 4 << i;
SetIrqCall();
}
}
// throw an assertion if the memory range is invalid: // throw an assertion if the memory range is invalid:
#ifndef DEBUG_FAST #ifndef DEBUG_FAST
jASSUME( addr < SPU2_DYN_MEMLINE ); jASSUME( addr < SPU2_DYN_MEMLINE );