#[repr(align(256))]pub struct OamShadow {
pub entries: [OamEntry; 40],
pub spare: [u8; 96],
}Expand description
A page of entries for OamDma to hand over.
The hardware takes only the high byte of the source address, so this is
aligned to 256. Anywhere the linker puts a static is a legal source: work
RAM runs 0xC000..0xE000 and read-only data sits below 0x8000, both inside
the 0x0000..0xE000 the transfer can read.
Alignment rounds the size up from the 160 bytes of entries, and
spare is the remainder. A transfer reads the entries only, so
those bytes are free for whatever wants to travel with the objects: per-object
velocities, animation counters, what a metasprite each belongs to.
Fields§
§entries: [OamEntry; 40]What the transfer hands to the hardware.
spare: [u8; 96]Room the alignment leaves over. The transfer does not read it.
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl BankSafe for OamShadow
impl Freeze for OamShadow
impl RefUnwindSafe for OamShadow
impl Send for OamShadow
impl Sync for OamShadow
impl Unpin for OamShadow
impl UnsafeUnpin for OamShadow
impl UnwindSafe for OamShadow
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more