fix: improve types of heap allocated arrays

This commit is contained in:
Rekai Nyangadzayi Musuka 2021-03-16 22:51:41 -05:00
parent 528b88eeb7
commit 06821bf880
4 changed files with 12 additions and 12 deletions

View File

@ -30,7 +30,7 @@ impl Cartridge {
MBCKind::None => todo!("Handle no MBC Situation"), MBCKind::None => todo!("Handle no MBC Situation"),
MBCKind::MBC1 => MBC1 { MBCKind::MBC1 => MBC1 {
ram_size, ram_size,
ram: vec![0; ram_byte_count as usize].into_boxed_slice(), ram: vec![0; ram_byte_count as usize],
bank_count, bank_count,
..Default::default() ..Default::default()
}, },
@ -90,7 +90,7 @@ struct MBC1 {
current_ram_bank: u8, // 2-bit number current_ram_bank: u8, // 2-bit number
mode: bool, mode: bool,
ram_size: RamSize, ram_size: RamSize,
ram: Box<[u8]>, ram: Vec<u8>,
bank_count: BankCount, bank_count: BankCount,
ram_enabled: bool, ram_enabled: bool,
} }

View File

@ -1,12 +1,12 @@
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
pub struct HighRam { pub struct HighRam {
buf: Box<[u8]>, buf: Box<[u8; 127]>,
} }
impl Default for HighRam { impl Default for HighRam {
fn default() -> Self { fn default() -> Self {
Self { Self {
buf: vec![0u8; 128].into_boxed_slice(), buf: Box::new([0u8; 127]),
} }
} }
} }

View File

@ -8,8 +8,8 @@ pub struct Ppu {
pub lcd_control: LCDControl, pub lcd_control: LCDControl,
pub monochrome: Monochrome, pub monochrome: Monochrome,
pub pos: ScreenPosition, pub pos: ScreenPosition,
pub vram: Box<[u8]>, pub vram: Box<[u8; 8192]>,
pub oam: Box<[u8]>, pub oam: Box<[u8; 160]>,
frame_buf: [u8; GB_WIDTH * GB_HEIGHT * 4], frame_buf: [u8; GB_WIDTH * GB_HEIGHT * 4],
pub stat: LCDStatus, pub stat: LCDStatus,
cycles: Cycles, cycles: Cycles,
@ -81,8 +81,8 @@ impl Default for Ppu {
monochrome: Default::default(), monochrome: Default::default(),
pos: Default::default(), pos: Default::default(),
stat: Default::default(), stat: Default::default(),
vram: vec![0; 8192].into_boxed_slice(), vram: Box::new([0u8; 8192]),
oam: vec![0; 160].into_boxed_slice(), oam: Box::new([0u8; 160]),
cycles: 0.into(), cycles: 0.into(),
frame_buf: [0; GB_WIDTH * GB_HEIGHT * 4], frame_buf: [0; GB_WIDTH * GB_HEIGHT * 4],
} }

View File

@ -1,6 +1,6 @@
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
pub struct WorkRam { pub struct WorkRam {
bank: Box<[u8]>, bank: Box<[u8; 4096]>,
} }
impl WorkRam { impl WorkRam {
@ -16,7 +16,7 @@ impl WorkRam {
impl Default for WorkRam { impl Default for WorkRam {
fn default() -> Self { fn default() -> Self {
Self { Self {
bank: vec![0u8; 4096].into_boxed_slice(), bank: Box::new([0u8; 4096]),
} }
} }
} }
@ -35,14 +35,14 @@ pub enum BankNumber {
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
pub struct VariableWorkRam { pub struct VariableWorkRam {
current: BankNumber, current: BankNumber,
bank_n: Box<[[u8; 4096]]>, // 4K for Variable amount of Banks (Banks 1 -> 7) in Game Boy Colour bank_n: Box<[[u8; 4096]; 7]>, // 4K for Variable amount of Banks (Banks 1 -> 7) in Game Boy Colour
} }
impl Default for VariableWorkRam { impl Default for VariableWorkRam {
fn default() -> Self { fn default() -> Self {
Self { Self {
current: BankNumber::One, current: BankNumber::One,
bank_n: vec![[0u8; 4096]; 7].into_boxed_slice(), bank_n: Box::new([[0u8; 4096]; 7]),
} }
} }
} }