mirror of
https://github.com/FranLMSP/snes.git
synced 2026-10-03 16:05:18 -04:00
Compute 2bpp background framebuffer (#4)
This commit is contained in:
@@ -111,7 +111,7 @@ pub enum BgSize {
|
||||
T32x32,
|
||||
T64x32, // V Mirror
|
||||
T32x64, // H Mirror
|
||||
T64x64, // H Mirror
|
||||
T64x64, // H/V Mirror
|
||||
}
|
||||
|
||||
impl BgSize {
|
||||
@@ -266,10 +266,10 @@ impl PPURegisters {
|
||||
pub fn get_bg_tile_size(&self, background: Background) -> TileSize {
|
||||
let byte = self._read(BGMODE);
|
||||
let bit = match background {
|
||||
Background::Bg1 => byte >> 3 & 0b1 == 1, // Bit 4
|
||||
Background::Bg2 => byte >> 4 & 0b1 == 1, // Bit 5
|
||||
Background::Bg3 => byte >> 5 & 0b1 == 1, // Bit 6
|
||||
Background::Bg4 => byte >> 6 & 0b1 == 1, // Bit 7
|
||||
Background::Bg1 => byte >> 4 & 0b1 == 1, // Bit 4
|
||||
Background::Bg2 => byte >> 5 & 0b1 == 1, // Bit 5
|
||||
Background::Bg3 => byte >> 6 & 0b1 == 1, // Bit 6
|
||||
Background::Bg4 => byte >> 7 & 0b1 == 1, // Bit 7
|
||||
};
|
||||
match bit {
|
||||
true => TileSize::P16x16,
|
||||
@@ -393,9 +393,9 @@ mod ppu_registers_test {
|
||||
#[test]
|
||||
fn test_get_bg_tile_size() {
|
||||
let mut registers = PPURegisters::new();
|
||||
registers.write(BGMODE, 0b00000100);
|
||||
registers.write(BGMODE, 0b00000000);
|
||||
assert_eq!(registers.get_bg_tile_size(Background::Bg1), TileSize::P8x8);
|
||||
registers.write(BGMODE, 0b00001100);
|
||||
registers.write(BGMODE, 0b00010000);
|
||||
assert_eq!(registers.get_bg_tile_size(Background::Bg1), TileSize::P16x16);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user