Clean up startup messages

This commit is contained in:
2026-04-09 07:39:51 -05:00
parent 5b2fc83dfb
commit 309cc9c2df

View File

@@ -1,6 +1,7 @@
use std::{fmt, sync::Arc}; use std::{fmt, sync::Arc};
use bitfield::bitfield; use bitfield::bitfield;
use log::info;
use crate::{ use crate::{
CPUMMRegisters, PPU, apu::APU, controllers::Controllers, cpu::DmaState, ppu::PPUMMRegisters, CPUMMRegisters, PPU, apu::APU, controllers::Controllers, cpu::DmaState, ppu::PPUMMRegisters,
@@ -303,6 +304,7 @@ enum SegmentId {
ChrBank0, ChrBank0,
ChrBank1, ChrBank1,
PrgRam,
NVRam, NVRam,
} }
@@ -358,12 +360,12 @@ impl Mapped {
}; };
let (prg_rom, rom) = rom.split_at(mapper.prg_rom_size as usize * 0x4000); let (prg_rom, rom) = rom.split_at(mapper.prg_rom_size as usize * 0x4000);
let (chr_rom, _rom) = rom.split_at(mapper.chr_rom_size as usize * 0x2000); let (chr_rom, _rom) = rom.split_at(mapper.chr_rom_size as usize * 0x2000);
println!("Mapper: {}/{}", mapper.mapper, mapper.sub_mapper); info!("Mapper: {}/{}", mapper.mapper, mapper.sub_mapper);
assert_eq!( // assert_eq!(
mapper.prg_nv_ram_size.low_count(), // mapper.prg_nv_ram_size.low_count(),
0, // 0,
"No support for PRG-RAM" // "No support for PRG-RAM"
); // );
// assert_eq!( // assert_eq!(
// mapper.chr_nv_ram_size.low_count(), // mapper.chr_nv_ram_size.low_count(),
// 0, // 0,
@@ -394,6 +396,12 @@ impl Mapped {
0x6000, 0x6000,
mapper.prg_nv_ram_size.high_count() as u16, mapper.prg_nv_ram_size.high_count() as u16,
)); ));
} else if mapper.prg_nv_ram_size.low_count() > 0 {
cpu_segments.push(Segment::ram(
SegmentId::PrgRam,
0x6000,
mapper.prg_nv_ram_size.low_count() as u16,
));
} }
let mut ppu_segments = vec![ let mut ppu_segments = vec![
Segment::mirror(SegmentId::VramMirror, 0x3000, 0x0F00, 0x0000), Segment::mirror(SegmentId::VramMirror, 0x3000, 0x0F00, 0x0000),
@@ -464,7 +472,7 @@ impl Mapped {
let prg_banks: Vec<Arc<[u8]>> = let prg_banks: Vec<Arc<[u8]>> =
prg_rom.chunks(0x4000).map(|ch| Arc::from(ch)).collect(); prg_rom.chunks(0x4000).map(|ch| Arc::from(ch)).collect();
for (i, b) in prg_banks.iter().enumerate() { for (i, b) in prg_banks.iter().enumerate() {
println!("{i}: {:X?}", &b[0x3FF0..]); info!("{i}: {:X?}", &b[0x3FF0..]);
} }
cpu_segments.push(Segment::rom( cpu_segments.push(Segment::rom(
SegmentId::PrgBank0, SegmentId::PrgBank0,
@@ -476,7 +484,7 @@ impl Mapped {
0xC000, 0xC000,
prg_banks.last().unwrap().clone(), prg_banks.last().unwrap().clone(),
)); ));
println!("CHR_ROM: {}", chr_rom.len()); info!("CHR_ROM: {}", chr_rom.len());
let chr_banks: Vec<Arc<[u8]>> = let chr_banks: Vec<Arc<[u8]>> =
chr_rom.chunks(0x1000).map(|ch| Arc::from(ch)).collect(); chr_rom.chunks(0x1000).map(|ch| Arc::from(ch)).collect();
if chr_rom.len() == 0 { if chr_rom.len() == 0 {
@@ -502,7 +510,7 @@ impl Mapped {
cur_prg_bank: 0, cur_prg_bank: 0,
} }
} else { } else {
todo!() todo!("support mapper chip: {}/{}", mapper.mapper, mapper.sub_mapper)
}; };
Self { Self {
cpu: MemoryMap { cpu: MemoryMap {