There were two notable bugs: - the maple transfer/data sizes were not being set correctly - align_32byte always realigned the address of `_scene`, and not the `mem` parameter as expected. This had the effect of the maple-DMA send and receive buffers being the same buffer. On real hardware, this causes unpredicable behavior.
9 lines
305 B
C++
9 lines
305 B
C++
#pragma once
|
|
|
|
#include <cstdint>
|
|
|
|
void maple_init_host_command(uint32_t * buf, uint32_t * receive_address);
|
|
void maple_init_device_request(uint32_t * buf, uint32_t * receive_address);
|
|
void maple_init_get_condition(uint32_t * buf, uint32_t * receive_address);
|
|
void maple_dma_start(uint32_t * command_buf);
|