maple: init_block_write depends on 32-bit accesses

The <uint8_t> template instantiation was causing 8-bit writes to the
command buffer, when they were intended to be 32-bit writes. This
garbled and truncated the data ultimately sent to the VMU LCD.
This commit is contained in:
Zack Buhman 2023-12-15 18:26:30 +08:00
parent 2689ad4011
commit 5d1e2f7225

View File

@ -99,7 +99,7 @@ void init_block_write(uint32_t * command_buf, uint32_t * receive_buf,
destination_ap, block_write::command_code, (sizeof (struct block_write::data_fields<uint8_t[0]>)) + data_size, destination_ap, block_write::command_code, (sizeof (struct block_write::data_fields<uint8_t[0]>)) + data_size,
true); true);
auto host_command = reinterpret_cast<struct host_command<block_write::data_fields<uint8_t[0]>> *>(command_buf); auto host_command = reinterpret_cast<struct host_command<block_write::data_fields<uint32_t[0]>> *>(command_buf);
auto& fields = host_command->bus_data.data_fields; auto& fields = host_command->bus_data.data_fields;
// BW LCD function type // BW LCD function type