Show game framebuffer (#8)

This commit is contained in:
2024-07-21 17:53:33 -05:00
committed by GitHub
parent 447642f0b2
commit 3468b1f948
7 changed files with 73 additions and 7 deletions
+5 -3
View File
@@ -1,4 +1,6 @@
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>,
@@ -10,7 +12,7 @@ pub struct PPU {
impl PPU {
pub fn new() -> Self {
Self {
framebuffer: vec![],
framebuffer: vec![0; 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 {