Interpreter: don't PanicAlert on write to SPR_HID2.

The alert apparently triggers on Midway Arcade Treasures 2; given that the
game otherwise works fine, it's not a high priority to accurately emulate
the bit in question.

Fixes issue 7197.
This commit is contained in:
magumagu 2014-04-18 20:20:42 -07:00
parent 68d0a32ef9
commit 002fb0b563
1 changed files with 4 additions and 22 deletions

View File

@ -293,28 +293,10 @@ void Interpreter::mtspr(UGeckoInstruction _inst)
} }
break; break;
case SPR_HID2: // HID2 case SPR_HID2: // HID2
{ // TODO: generate illegal instruction for paired inst if PSE or LSQE
UReg_HID2 old_hid2; // not set.
old_hid2.Hex = oldValue; // TODO: disable write gather pipe if WPE not set
// TODO: emulate locked cache and DMA bits.
//if (HID2.LCE && !old_hid2.LCE)
// PanicAlert("Locked cache enabled!");
if (HID2.PSE == 0)
PanicAlert("WARNING: PSE (paired single enable) in HID2 was unset");
// bool WriteGatherPipeEnable = (bool)HID2.WPE; //TODO?
// bool LockedCacheEnable = (bool)HID2.LCE;
// int DMAQueueLength = HID2.DMAQL; // Ignore - our DMA:s are instantaneous
// bool PairedSingleEnable = HID2.PSE;
// bool QuantizeEnable = HID2.LSQE;
//TODO(ector): Protect LC memory if LCE is false.
//TODO(ector): Honor PSE.
//_assert_msg_(POWERPC, WriteGatherPipeEnable, "Write gather pipe not enabled!");
//if ((HID2.PSE == 0))
// MessageBox(nullptr, "PSE in HID2 is set", "Warning", MB_OK);
}
break; break;
case SPR_WPAR: case SPR_WPAR: