Introduce memory editor and fix crash on dumping RDRAM
This commit is contained in:
@@ -23,6 +23,7 @@ static const int cmd_lens[64] = {
|
||||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
|
||||
};
|
||||
|
||||
template <bool crashOnUnimplemented>
|
||||
auto RDP::Read(u32 addr) const -> u32{
|
||||
switch(addr) {
|
||||
case 0x04100000: return dpc.start;
|
||||
@@ -33,20 +34,33 @@ auto RDP::Read(u32 addr) const -> u32{
|
||||
case 0x04100014: return dpc.status.cmdBusy;
|
||||
case 0x04100018: return dpc.status.pipeBusy;
|
||||
case 0x0410001C: return dpc.tmem;
|
||||
default: util::panic("Unhandled DP Command Registers read (addr: {:08X})\n", addr);
|
||||
default:
|
||||
if constexpr (crashOnUnimplemented) {
|
||||
util::panic("Unhandled DP Command Registers read (addr: {:08X})\n", addr);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
template auto RDP::Read<true>(u32 addr) const -> u32;
|
||||
template auto RDP::Read<false>(u32 addr) const -> u32;
|
||||
|
||||
template <bool crashOnUnimplemented>
|
||||
void RDP::Write(MI& mi, Registers& regs, RSP& rsp, u32 addr, u32 val) {
|
||||
switch(addr) {
|
||||
case 0x04100000: WriteStart(val); break;
|
||||
case 0x04100004: WriteEnd(mi, regs, rsp, val); break;
|
||||
case 0x0410000C: WriteStatus(mi, regs, rsp, val); break;
|
||||
default: util::panic("Unhandled DP Command Registers write (addr: {:08X}, val: {:08X})\n", addr, val);
|
||||
default:
|
||||
if constexpr (crashOnUnimplemented) {
|
||||
util::panic("Unhandled DP Command Registers write (addr: {:08X}, val: {:08X})\n", addr, val);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
template void RDP::Write<true>(MI&, Registers&, RSP&, u32, u32);
|
||||
template void RDP::Write<false>(MI&, Registers&, RSP&, u32, u32);
|
||||
|
||||
void RDP::WriteStatus(MI& mi, Registers& regs, RSP& rsp, u32 val) {
|
||||
bool rdpUnfrozen = false;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user