GIFpath: Making a note about the BIOS using the packed register address 0x7f, and disabling logging for that address, since it spams.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1935 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
Jake.Stine 2009-09-30 12:35:40 +00:00
parent 7b800cf290
commit 0b027385b0
1 changed files with 17 additions and 7 deletions

View File

@ -177,7 +177,14 @@ static void __fastcall RegHandlerLABEL(const u32* data)
static void __fastcall RegHandlerUNMAPPED(const u32* data) static void __fastcall RegHandlerUNMAPPED(const u32* data)
{ {
Console::Notice( "Unmapped GIFtag Register Index: Ignoring." ); const int regidx = ((u8*)data)[8];
// Known "unknowns":
// the bios likes to write to 0x7f using an EOP giftag with NLOOP set to 4.
// Not sure what it's trying to accomplish exactly. Ignoring seems to work fine.
if( regidx != 0x7f )
Console::Notice( "Ignoring Unmapped GIFtag Register, Index = %02x", regidx );
} }
#define INSERT_UNMAPPED_4 RegHandlerUNMAPPED, RegHandlerUNMAPPED, RegHandlerUNMAPPED, RegHandlerUNMAPPED, #define INSERT_UNMAPPED_4 RegHandlerUNMAPPED, RegHandlerUNMAPPED, RegHandlerUNMAPPED, RegHandlerUNMAPPED,
@ -251,13 +258,16 @@ void SaveStateBase::gifPathFreeze()
} }
static __forceinline void gsHandler(const u8* pMem) { static __forceinline void gsHandler(const u8* pMem)
{
const int handler = pMem[8]; const int handler = pMem[8];
if (handler >= 0x60) { if (handler >= 0x60)
// Question: What happens if an app writes to uncharted register space {
// on real PS2 hardware (handler 0x63 and higher)? Probably a silent // Question: What happens if an app writes to uncharted register space on real PS2
// ignorance, but not tested so just guessing... --air // hardware (handler 0x63 and higher)? Probably a silent ignorance, but not tested
s_gifPath.Handlers[handler&0x3]((const u32*)pMem); // so just guessing... --air
s_gifPath.Handlers[handler-0x60]((const u32*)pMem);
} }
} }