Show game framebuffer

This commit is contained in:
2024-07-21 17:26:04 -05:00
parent 447642f0b2
commit ed26f3f42a
6 changed files with 73 additions and 7 deletions
+6 -4
View File
@@ -1,7 +1,9 @@
use super::registers::PPURegisters;
use super::registers::{PPURegisters, MAX_TV_HEIGHT, MAX_TV_WIDTH};
const FRAMEBUFFER_SIZE: usize = MAX_TV_HEIGHT * MAX_TV_WIDTH * 4;
pub struct PPU {
framebuffer: Vec<u8>,
framebuffer: [u8; FRAMEBUFFER_SIZE],
pub registers: PPURegisters,
was_vblank_nmi_set: bool,
pub is_irq_set: bool,
@@ -10,7 +12,7 @@ pub struct PPU {
impl PPU {
pub fn new() -> Self {
Self {
framebuffer: vec![],
framebuffer: [0xFF; FRAMEBUFFER_SIZE],
registers: PPURegisters::new(),
was_vblank_nmi_set: false,
is_irq_set: false,
@@ -46,7 +48,7 @@ impl PPU {
}
}
pub fn framebuffer(&self) -> &Vec<u8> {
pub fn framebuffer(&self) -> &[u8] {
&self.framebuffer
}
}
+3
View File
@@ -88,6 +88,9 @@ pub const STAT78: u16 = 0x213F; // PPU1 Status and PPU1 Version Number
pub const MAX_BG_WIDTH: usize = 16 * 64;
pub const MAX_BG_HEIGHT: usize = 16 * 64;
pub const MAX_TV_WIDTH: usize = 512;
pub const MAX_TV_HEIGHT: usize = 448;
#[derive(Debug, PartialEq, Copy, Clone)]
pub enum TileSize {