mirror of https://github.com/PCSX2/pcsx2.git
Hack for Midway (Thanks guys!) games, as to show their muppetry in coding, i have left big dev warnings everytime it hits their cockup. On a more serious note, Solves the issue of a failing COP Condition they are trying to achieve.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4077 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
5c54b8279e
commit
fa76cfdeca
|
@ -308,6 +308,7 @@ enum EERegisterAddresses
|
|||
DMAC_RBSR = 0x1000E040,
|
||||
DMAC_RBOR = 0x1000E050,
|
||||
DMAC_STADR = 0x1000E060,
|
||||
DMAC_FAKESTAT = 0x1000E100, //Midway, you're idiots (checked this in the MK Deception ELF!) (Refraction)
|
||||
|
||||
INTC_STAT = 0x1000F000,
|
||||
INTC_MASK = 0x1000F010,
|
||||
|
|
|
@ -385,6 +385,22 @@ __fi bool dmacWrite32( u32 mem, mem32_t& value )
|
|||
return false;
|
||||
}
|
||||
|
||||
//Midway are a bunch of idiots, writing to E100 (reserved) instead of E010
|
||||
//Which causes a CPCOND0 to fail.
|
||||
icase(DMAC_FAKESTAT)
|
||||
{
|
||||
DevCon.Warning("Midway fixup addr=%x writing %x for DMA_STAT", mem, value);
|
||||
HW_LOG("Midways own DMAC_STAT Write 32bit %x", value);
|
||||
|
||||
// lower 16 bits: clear on 1
|
||||
// upper 16 bits: reverse on 1
|
||||
|
||||
psHu16(0xe010) &= ~(value & 0xffff);
|
||||
psHu16(0xe012) ^= (u16)(value >> 16);
|
||||
|
||||
cpuTestDMACInts();
|
||||
return false;
|
||||
}
|
||||
icase(DMAC_STAT)
|
||||
{
|
||||
HW_LOG("DMAC_STAT Write 32bit %x", value);
|
||||
|
|
Loading…
Reference in New Issue