Introduce memory editor and fix crash on dumping RDRAM

This commit is contained in:
CocoSimone
2022-10-12 01:46:22 +02:00
parent eafebc4c28
commit fc6642554c
27 changed files with 1058 additions and 214 deletions

View File

@@ -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;