From 844773420296727f5daecb699aec8e8b2f92235a Mon Sep 17 00:00:00 2001 From: ramapcsx2 Date: Tue, 20 Jan 2009 11:15:42 +0000 Subject: [PATCH] Fatal frame should work now. Also repaired a *slight* mistake I made :p git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@610 a6443dda-0b58-4228-96e9-037be469359c --- pcsx2/MTGS.cpp | 5 ++++- pcsx2/VifDma.cpp | 10 +++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/pcsx2/MTGS.cpp b/pcsx2/MTGS.cpp index 0a9c137189..3ab3d0686c 100644 --- a/pcsx2/MTGS.cpp +++ b/pcsx2/MTGS.cpp @@ -790,7 +790,10 @@ int mtgsThreadObject::PrepDataPacket( GIF_PATH pathidx, const u8* srcdata, u32 s //jASSUME( (size&15) == 0); //fixme: Vif sometimes screws up and size is unaligned, try this then (rama) - if( (size&15) != 0) Console::Error( "MTGS problem, size unaligned"); size = (size+15)&(~15); + if( (size&15) != 0){ + Console::Error( "MTGS problem, size unaligned"); + size = (size+15)&(~15); + } // retval has the amount of data *not* processed, so we only need to reserve // enough room for size - retval: diff --git a/pcsx2/VifDma.cpp b/pcsx2/VifDma.cpp index 3cc099f5dc..bf0323574d 100644 --- a/pcsx2/VifDma.cpp +++ b/pcsx2/VifDma.cpp @@ -1821,7 +1821,7 @@ static void Vif1CMDNull(){ // invalid opcode if ((vif1Regs->err & 0x4) == 0) { //Ignore vifcode and tag mismatch error //fixme: VifCmd unknown hack, see if more games get here (rama) - SysPrintf( "UNKNOWN VifCmd: %x\n If you're not playing Fatal Frame report this please!", vif1.cmd ); + SysPrintf( "UNKNOWN VifCmd: %x\n", vif1.cmd ); //vif1Regs->stat |= 1 << 13; vif1.irq++; } @@ -1909,16 +1909,16 @@ int VIF1transfer(u32 *data, int size, int istag) { vif1UNPACK(data); } else { VIF_LOG( "VIFtransfer: cmd %x, num %x, imm %x, size %x\n", vif1.cmd, (data[0] >> 16) & 0xff, data[0] & 0xffff, vif1.vifpacketsize ); - //vif1CMD(data, size); - /*if((vif1.cmd & 0x7f) > 0x51){ + if((vif1.cmd & 0x7f) > 0x51){ + //fixme: VifCmd unknown hack, see if more games get here (rama) if ((vif1Regs->err & 0x4) == 0) { //Ignore vifcode and tag mismatch error SysPrintf( "UNKNOWN VifCmd: %x\n", vif1.cmd ); - vif1Regs->stat |= 1 << 13; + //vif1Regs->stat |= 1 << 13; vif1.irq++; } vif1.cmd = 0; - } else*/ Vif1CMDTLB[(vif1.cmd & 0x7f)](); + } else Vif1CMDTLB[(vif1.cmd & 0x7f)](); } //vif1Regs->stat &= ~VIF1_STAT_VPS_D; //if(vif1.tag.size > 0) vif1Regs->stat |= VIF1_STAT_VPS_W;