AMMediaboard: extract TestHardware "TEST OK" magic numbers to named constants
Replace raw hex literals with TEST_OK_WORD0/TEST_OK_WORD1 constexpr constants and consolidate the endianness explanation at the definition site.
This commit is contained in:
1 parent
adbecd00ec
commit
ab0d300041
1 file changed
+10
-10
@@ -72,6 +72,10 @@ static int WSAGetLastError()
|
|||||||
namespace AMMediaboard
|
namespace AMMediaboard
|
||||||
{
|
{
|
||||||
|
|
||||||
|
// Written via Write_U32_Swap (LE) because PPC display code reads with lwz + manual bswap32.
|
||||||
|
static constexpr u32 TEST_OK_WORD0 = 0x54455354; // "TEST"
|
||||||
|
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()}
|
||||||
{
|
{
|
||||||
@@ -1601,12 +1605,10 @@ u32 ExecuteCommand(std::array<u32, 3>& dicmd_buf, u32* diimm_buf, u32 address, u
|
|||||||
DEBUG_LOG_FMT(AMMEDIABOARD, "GC-AM: TestHardware (Execute2): type={:08x} str_ptr={:08x}",
|
DEBUG_LOG_FMT(AMMEDIABOARD, "GC-AM: TestHardware (Execute2): type={:08x} str_ptr={:08x}",
|
||||||
test_type, string_ptr);
|
test_type, string_ptr);
|
||||||
|
|
||||||
// Write "TEST OK\0" to the string buffer.
|
|
||||||
// Data must be LE because the PPC display code byte-swaps when reading.
|
|
||||||
if (string_ptr != 0)
|
if (string_ptr != 0)
|
||||||
{
|
{
|
||||||
memory.Write_U32_Swap(0x54455354, string_ptr);
|
memory.Write_U32_Swap(TEST_OK_WORD0, string_ptr);
|
||||||
memory.Write_U32_Swap(0x204F4B00, string_ptr + 4);
|
memory.Write_U32_Swap(TEST_OK_WORD1, string_ptr + 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Phase 1: Echo test_type back. The 0x80 flag is set below in the generic path.
|
// Phase 1: Echo test_type back. The 0x80 flag is set below in the generic path.
|
||||||
@@ -1965,11 +1967,10 @@ u32 ExecuteCommand(std::array<u32, 3>& dicmd_buf, u32* diimm_buf, u32 address, u
|
|||||||
"GC-AM: TestHardware (Execute1 inner): type={:08x} str_ptr={:08x}",
|
"GC-AM: TestHardware (Execute1 inner): type={:08x} str_ptr={:08x}",
|
||||||
test_type, string_ptr);
|
test_type, string_ptr);
|
||||||
|
|
||||||
// PPC display code reads with lwz + manual bswap32; data must be LE.
|
|
||||||
if (string_ptr != 0)
|
if (string_ptr != 0)
|
||||||
{
|
{
|
||||||
memory.Write_U32_Swap(0x54455354, string_ptr);
|
memory.Write_U32_Swap(TEST_OK_WORD0, string_ptr);
|
||||||
memory.Write_U32_Swap(0x204F4B00, string_ptr + 4);
|
memory.Write_U32_Swap(TEST_OK_WORD1, string_ptr + 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Phase 1: Echo test_type back. The 0x80 flag is set below.
|
// Phase 1: Echo test_type back. The 0x80 flag is set below.
|
||||||
@@ -2111,9 +2112,8 @@ u32 ExecuteCommand(std::array<u32, 3>& dicmd_buf, u32* diimm_buf, u32 address, u
|
|||||||
DEBUG_LOG_FMT(AMMEDIABOARD, "GC-AM: ({:08x})", s_media_buffer_32[12]);
|
DEBUG_LOG_FMT(AMMEDIABOARD, "GC-AM: ({:08x})", s_media_buffer_32[12]);
|
||||||
|
|
||||||
// On real systems it shows the status about the DIMM/GD-ROM here
|
// On real systems it shows the status about the DIMM/GD-ROM here
|
||||||
// We just show "TEST OK"
|
memory.Write_U32_Swap(TEST_OK_WORD0, s_media_buffer_32[12]);
|
||||||
memory.Write_U32_Swap(0x54455354, s_media_buffer_32[12]);
|
memory.Write_U32_Swap(TEST_OK_WORD1, s_media_buffer_32[12] + 4);
|
||||||
memory.Write_U32_Swap(0x204F4B00, s_media_buffer_32[12] + 4);
|
|
||||||
|
|
||||||
s_media_buffer_32[1] = s_media_buffer_32[9];
|
s_media_buffer_32[1] = s_media_buffer_32[9];
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in new issue
Block a user