mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2026-04-26 10:06:17 -05:00
AMMediaboard: Increase NetworkCommandAddress2 range
This commit is contained in:
parent
9cb2229601
commit
5bddb6e244
|
|
@ -82,6 +82,11 @@ static constexpr u32 TEST_OK_WORD1 = 0x204F4B00; // " OK\0"
|
||||||
MediaBoardRange::MediaBoardRange(u32 start_, u32 size_, std::span<u8> buffer_)
|
MediaBoardRange::MediaBoardRange(u32 start_, u32 size_, std::span<u8> buffer_)
|
||||||
: start{start_}, end{start_ + size_}, buffer{buffer_.data()}, buffer_size{buffer_.size()}
|
: start{start_}, end{start_ + size_}, buffer{buffer_.data()}, buffer_size{buffer_.size()}
|
||||||
{
|
{
|
||||||
|
if (size_ <= buffer_.size())
|
||||||
|
return;
|
||||||
|
WARN_LOG_FMT(AMMEDIABOARD,
|
||||||
|
"Invalid MediaBoardRange: start=0x{:08x}, size=0x{:06x}, buffer_size=0x{:06x}",
|
||||||
|
start, size_, buffer_.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
using Common::SEND_FLAGS;
|
using Common::SEND_FLAGS;
|
||||||
|
|
@ -185,11 +190,11 @@ static const MediaBoardRange s_mediaboard_ranges[] = {
|
||||||
{DIMMCommandVersion2, 0x60, Common::AsWritableU8Span(s_media_buffer_32)},
|
{DIMMCommandVersion2, 0x60, Common::AsWritableU8Span(s_media_buffer_32)},
|
||||||
{DIMMCommandVersion2_2, 0x220, Common::AsWritableU8Span(s_media_buffer_32)},
|
{DIMMCommandVersion2_2, 0x220, Common::AsWritableU8Span(s_media_buffer_32)},
|
||||||
{NetworkCommandAddress1, 0x1040, s_network_command_buffer},
|
{NetworkCommandAddress1, 0x1040, s_network_command_buffer},
|
||||||
{NetworkCommandAddress2, 0x20000, s_network_command_buffer},
|
{NetworkCommandAddress2, 0x40000, s_network_command_buffer}, // TODO: Guesswork, verify this.
|
||||||
{NetworkBufferAddress1, 0x10000, s_network_buffer},
|
{NetworkBufferAddress1, 0x10000, s_network_buffer},
|
||||||
{NetworkBufferAddress2, 0x10000, s_network_buffer},
|
{NetworkBufferAddress2, 0x10000, s_network_buffer},
|
||||||
{NetworkBufferAddress3, 0x50000, s_network_buffer},
|
{NetworkBufferAddress3, 0x50000, s_network_buffer},
|
||||||
{NetworkBufferAddress4, 0xc0000, s_network_buffer},
|
{NetworkBufferAddress4, 0xc0000, s_network_buffer}, // TODO: size bigger than buffer's?
|
||||||
{NetworkBufferAddress5, 0x10000, s_network_buffer},
|
{NetworkBufferAddress5, 0x10000, s_network_buffer},
|
||||||
{AllNetSettings, 0x8000, s_allnet_settings},
|
{AllNetSettings, 0x8000, s_allnet_settings},
|
||||||
{AllNetBuffer, 0x1000, s_allnet_buffer},
|
{AllNetBuffer, 0x1000, s_allnet_buffer},
|
||||||
|
|
@ -1490,6 +1495,8 @@ u32 ExecuteCommand(std::array<u32, 3>& dicmd_buf, u32* diimm_buf, u32 address, u
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
PrintMBBuffer(address, length);
|
PrintMBBuffer(address, length);
|
||||||
|
ERROR_LOG_FMT(AMMEDIABOARD, "Unhandled Media Board Read: offset={0:08x} length={0:08x}",
|
||||||
|
offset, length);
|
||||||
PanicAlertFmtT("Unhandled Media Board Read: offset={0:08x} length={0:08x}", offset, length);
|
PanicAlertFmtT("Unhandled Media Board Read: offset={0:08x} length={0:08x}", offset, length);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -1838,6 +1845,8 @@ u32 ExecuteCommand(std::array<u32, 3>& dicmd_buf, u32* diimm_buf, u32 address, u
|
||||||
// Max GC disc offset
|
// Max GC disc offset
|
||||||
if (offset >= 0x57058000)
|
if (offset >= 0x57058000)
|
||||||
{
|
{
|
||||||
|
ERROR_LOG_FMT(AMMEDIABOARD, "Unhandled Media Board Read: offset={0:08x} length={0:08x}",
|
||||||
|
offset, length);
|
||||||
PanicAlertFmtT("Unhandled Media Board Read: offset={0:08x} length={0:08x}", offset, length);
|
PanicAlertFmtT("Unhandled Media Board Read: offset={0:08x} length={0:08x}", offset, length);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
@ -2034,6 +2043,8 @@ u32 ExecuteCommand(std::array<u32, 3>& dicmd_buf, u32* diimm_buf, u32 address, u
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
ERROR_LOG_FMT(AMMEDIABOARD, "Unhandled Media Board Command:{0:04x}",
|
||||||
|
static_cast<u16>(ammb_command));
|
||||||
PanicAlertFmtT("Unhandled Media Board Command:{0:04x}", static_cast<u16>(ammb_command));
|
PanicAlertFmtT("Unhandled Media Board Command:{0:04x}", static_cast<u16>(ammb_command));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
@ -2077,6 +2088,8 @@ u32 ExecuteCommand(std::array<u32, 3>& dicmd_buf, u32* diimm_buf, u32 address, u
|
||||||
if (offset >= 0x57058000)
|
if (offset >= 0x57058000)
|
||||||
{
|
{
|
||||||
PrintMBBuffer(address, length);
|
PrintMBBuffer(address, length);
|
||||||
|
ERROR_LOG_FMT(AMMEDIABOARD, "Unhandled Media Board Write: offset={0:08x} length={0:08x}",
|
||||||
|
offset, length);
|
||||||
PanicAlertFmtT("Unhandled Media Board Write: offset={0:08x} length={0:08x}", offset, length);
|
PanicAlertFmtT("Unhandled Media Board Write: offset={0:08x} length={0:08x}", offset, length);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
@ -2268,10 +2281,13 @@ u32 ExecuteCommand(std::array<u32, 3>& dicmd_buf, u32* diimm_buf, u32 address, u
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ERROR_LOG_FMT(AMMEDIABOARD, "Unhandled Media Board Execute:{0:04x}",
|
||||||
|
static_cast<u16>(ammb_command));
|
||||||
PanicAlertFmtT("Unhandled Media Board Execute:{0:04x}", static_cast<u16>(ammb_command));
|
PanicAlertFmtT("Unhandled Media Board Execute:{0:04x}", static_cast<u16>(ammb_command));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
ERROR_LOG_FMT(AMMEDIABOARD, "Unhandled Media Board Command:{0:02x}", command);
|
||||||
PanicAlertFmtT("Unhandled Media Board Command:{0:02x}", command);
|
PanicAlertFmtT("Unhandled Media Board Command:{0:02x}", command);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user