#![warn(missing_docs)]
mod affine;
mod managed;
mod sprites;
mod unmanaged;
pub use sprites::{
include_aseprite, DynamicSprite, Graphics, PaletteVram, Size, Sprite, SpriteLoader, SpriteVram,
Tag, TagMap,
};
pub use affine::AffineMatrixInstance;
pub use managed::{OamManaged, Object};
pub use unmanaged::{AffineMode, OamIterator, OamSlot, OamUnmanaged, ObjectUnmanaged};
use super::DISPLAY_CONTROL;
const OBJECT_ATTRIBUTE_MEMORY: *mut u16 = 0x0700_0000 as *mut u16;
#[deprecated = "use OamManaged directly instead"]
pub type ObjectController<'a> = OamManaged<'a>;
pub(super) unsafe fn initilise_oam() {
for i in 0..128 {
let ptr = (OBJECT_ATTRIBUTE_MEMORY).add(i * 4);
ptr.write_volatile(0b10 << 8);
}
DISPLAY_CONTROL.set_bits(1, 1, 0x6);
DISPLAY_CONTROL.set_bits(1, 1, 0xC);
DISPLAY_CONTROL.set_bits(0, 1, 0x7);
}