Completely botched my last commit. Left the IPU's cleanup only half finished. >_<

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@601 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
Jake.Stine 2009-02-25 16:57:34 +00:00
parent c46ef87c89
commit 8f0bacec20
1 changed files with 10 additions and 6 deletions

View File

@ -297,7 +297,7 @@ __forceinline u64 ipuRead64(u32 mem)
DevCon::Notice("reading 64bit IPU top"); DevCon::Notice("reading 64bit IPU top");
break; break;
case 0x10002030: // IPU_TOP case 0x30: // IPU_TOP
IPU_LOG("Ipu read64: IPU_TOP=%x, bp = %d\n",ipuRegs->top,g_BP.BP); IPU_LOG("Ipu read64: IPU_TOP=%x, bp = %d\n",ipuRegs->top,g_BP.BP);
//return *(u64*)&ipuRegs->top; //return *(u64*)&ipuRegs->top;
@ -350,15 +350,17 @@ __forceinline void ipuWrite32(u32 mem, u32 value)
// of memory (if not, it's probably bad code). // of memory (if not, it's probably bad code).
jASSUME( ( mem & ~0xfff ) == 0x10002000 ); jASSUME( ( mem & ~0xfff ) == 0x10002000 );
mem &= 0xfff;
IPUProcessInterrupt(); IPUProcessInterrupt();
switch (mem){ switch (mem){
case 0x10002000: // IPU_CMD case 0x00: // IPU_CMD
IPU_LOG("Ipu write32: IPU_CMD=0x%08X\n",value); IPU_LOG("Ipu write32: IPU_CMD=0x%08X\n",value);
IPUCMD_WRITE(value); IPUCMD_WRITE(value);
break; break;
case 0x10002010: // IPU_CTRL
case 0x10: // IPU_CTRL
ipuRegs->ctrl._u32 = (value&0x47f30000)|(ipuRegs->ctrl._u32&0x8000ffff); ipuRegs->ctrl._u32 = (value&0x47f30000)|(ipuRegs->ctrl._u32&0x8000ffff);
if( ipuRegs->ctrl.IDP == 3 ) { if( ipuRegs->ctrl.IDP == 3 ) {
SysPrintf("IPU Invalid Intra DC Precision, switching to 9 bits\n"); SysPrintf("IPU Invalid Intra DC Precision, switching to 9 bits\n");
@ -369,8 +371,8 @@ __forceinline void ipuWrite32(u32 mem, u32 value)
} }
IPU_LOG("Ipu write32: IPU_CTRL=0x%08X\n",value); IPU_LOG("Ipu write32: IPU_CTRL=0x%08X\n",value);
break; break;
default: default:
IPU_LOG("Ipu write32: Unknown=%x\n", mem); IPU_LOG("Ipu write32: Unknown=%x\n", mem);
*(u32*)((u8*)ipuRegs + mem) = value; *(u32*)((u8*)ipuRegs + mem) = value;
@ -384,11 +386,13 @@ __forceinline void ipuWrite64(u32 mem, u64 value)
// of memory (if not, it's probably bad code). // of memory (if not, it's probably bad code).
jASSUME( ( mem & ~0xfff ) == 0x10002000 ); jASSUME( ( mem & ~0xfff ) == 0x10002000 );
mem &= 0xfff;
IPUProcessInterrupt(); IPUProcessInterrupt();
switch (mem){ switch( mem )
case 0x10002000: {
case 0x10:
IPU_LOG("Ipu write64: IPU_CMD=0x%08X\n",value); IPU_LOG("Ipu write64: IPU_CMD=0x%08X\n",value);
IPUCMD_WRITE((u32)value); IPUCMD_WRITE((u32)value);
break; break;