1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
use super::*; /// "Background 2 Affine Parameter Matrix" (Affine/Bitmap mode only). /// /// Given as `[pa, pb, pc, pd]`. /// /// Each value is a signed fixed-point value: /// * 8 fraction bits /// * 7 integer bits /// * sign bit #[cfg(feature = "unsafe_addresses")] pub const BG2_AFFINE_MATRIX: WriteOnlyVolAddr<[i16; 4]> = unsafe { WriteOnlyVolAddr::new(0x0400_0020) }; /// "Background 2 Reference Point" (Affine/Bitmap mode only). /// /// Given in `[x, y]`. /// /// Each coordinate is a signed fixed-point value: /// * 8 fraction bits /// * 19 integer bits /// * sign bit /// /// This adds up to less than 32 bits used, but you can just write a normal /// `i32` value and it'll ignore the high bits and "wrap" into the correct /// range. #[cfg(feature = "unsafe_addresses")] pub const BG2_REF_POINT: WriteOnlyVolAddr<[i32; 2]> = unsafe { WriteOnlyVolAddr::new(0x0400_0028) }; /// "Background 3 Affine Parameter Matrix" (Affine mode only). /// /// Given as `[pa, pb, pc, pd]`. /// /// Each value is a signed fixed-point value: /// * 8 fraction bits /// * 7 integer bits /// * sign bit #[cfg(feature = "unsafe_addresses")] pub const BG3_AFFINE_MATRIX: WriteOnlyVolAddr<[i16; 4]> = unsafe { WriteOnlyVolAddr::new(0x0400_0030) }; /// "Background 3 Reference Point" (Affine mode only). /// /// Given in `[x, y]`. /// /// Each coordinate is a signed fixed-point value: /// * 8 fraction bits /// * 19 integer bits /// * sign bit /// /// You can just write a normal `i32` value and it'll simply end up ignoring the /// high bits and "wrapping" properly into range. #[cfg(feature = "unsafe_addresses")] pub const BG3_REF_POINT: WriteOnlyVolAddr<[i32; 2]> = unsafe { WriteOnlyVolAddr::new(0x0400_0038) };