bn::hdma namespace
#include <bn_hdma.h>

H-Blank direct memory access related functions.

Functions

auto running() -> bool
Indicates if HDMA is active or not.
void start(const bn::span<const uint16_t>& source_ref, uint16_t& destination_ref)
Start copying each frame the given amount of elements from the memory location referenced by source_ref to the memory location referenced by destination_ref.
void stop()
Stops copying elements each frame.
auto high_priority_running() -> bool
Indicates if high priority HDMA is active or not.
void high_priority_start(const bn::span<const uint16_t>& source_ref, uint16_t& destination_ref)
Start copying each frame with high priority the given amount of elements from the memory location referenced by source_ref to the memory location referenced by destination_ref.
void high_priority_stop()
Stops copying elements each frame with high priority.

Function documentation

void bn::hdma::start(const bn::span<const uint16_t>& source_ref, uint16_t& destination_ref)

Start copying each frame the given amount of elements from the memory location referenced by source_ref to the memory location referenced by destination_ref.

Parameters
source_ref Const reference to the memory location to copy from. It must refer to a multiple of bn::display::height() values.
destination_ref Reference to the memory location to copy to.

The elements are not copied but referenced, so they should be alive while HDMA is running to avoid dangling references.

If the elements overlap, the behavior is undefined.

bool bn::hdma::high_priority_running()

Indicates if high priority HDMA is active or not.

High priority HDMA can cause issues with audio, so avoid it unless necessary.

void bn::hdma::high_priority_start(const bn::span<const uint16_t>& source_ref, uint16_t& destination_ref)

Start copying each frame with high priority the given amount of elements from the memory location referenced by source_ref to the memory location referenced by destination_ref.

Parameters
source_ref Const reference to the memory location to copy from. It must refer to a multiple of bn::display::height() values.
destination_ref Reference to the memory location to copy to.

The elements are not copied but referenced, so they should be alive while HDMA is running to avoid dangling references.

If the elements overlap, the behavior is undefined.

High priority HDMA can cause issues with audio, so avoid it unless necessary.

void bn::hdma::high_priority_stop()

Stops copying elements each frame with high priority.

High priority HDMA can cause issues with audio, so avoid it unless necessary.