fixes etc
This commit is contained in:
parent
866d4ded80
commit
edb348ec60
1 changed files with 14 additions and 7 deletions
19
src/main.rs
19
src/main.rs
|
@ -28,8 +28,8 @@ type ROM = Vec<u8>;
|
|||
|
||||
#[derive(Clone, Copy)]
|
||||
struct Inner {
|
||||
right: u8,
|
||||
left: u8,
|
||||
right: u8,
|
||||
}
|
||||
|
||||
#[derive(Clone, Copy)]
|
||||
|
@ -42,6 +42,8 @@ pub struct Memory {
|
|||
rom: ROM,
|
||||
vram: [u8; 8192],
|
||||
ram: [u8; 8192],
|
||||
switchable_ram: [u8; 8192],
|
||||
cpu_ram: [u8; 128],
|
||||
}
|
||||
|
||||
impl Memory {
|
||||
|
@ -50,6 +52,8 @@ impl Memory {
|
|||
rom,
|
||||
vram: [0x0; 8192],
|
||||
ram: [0x0; 8192],
|
||||
switchable_ram: [0x0; 8192],
|
||||
cpu_ram: [0x0; 128],
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -64,7 +68,7 @@ impl Memory {
|
|||
return self.vram[(address - 0x8000) as usize];
|
||||
}
|
||||
0xA000..0xC000 => {
|
||||
panic!("switchable ram bank");
|
||||
return self.switchable_ram[(address - 0xA000) as usize];
|
||||
}
|
||||
0xC000..0xE000 => {
|
||||
return self.ram[(address - 0xC000) as usize];
|
||||
|
@ -85,7 +89,7 @@ impl Memory {
|
|||
panic!("empty");
|
||||
}
|
||||
0xFF80..0xFFFF => {
|
||||
panic!("internal ram");
|
||||
return self.cpu_ram[(address - 0xFF80) as usize];
|
||||
}
|
||||
0xFFFF => {
|
||||
panic!("interrupt enable register");
|
||||
|
@ -97,13 +101,13 @@ impl Memory {
|
|||
match address {
|
||||
0x0..0x8000 => {
|
||||
// change this with MBC code...
|
||||
println!("tried to write to rom?");
|
||||
println!("tried to write {:#5X} at {:#X}", data, address);
|
||||
}
|
||||
0x8000..0xA000 => {
|
||||
self.vram[(address - 0x8000) as usize] = data;
|
||||
}
|
||||
0xA000..0xC000 => {
|
||||
panic!("switchable ram bank");
|
||||
self.switchable_ram[(address - 0xA000) as usize] = data;
|
||||
}
|
||||
0xC000..0xE000 => {
|
||||
self.ram[(address - 0xC000) as usize] = data;
|
||||
|
@ -124,7 +128,7 @@ impl Memory {
|
|||
panic!("empty");
|
||||
}
|
||||
0xFF80..0xFFFF => {
|
||||
panic!("internal ram");
|
||||
self.cpu_ram[(address - 0xFF80) as usize] = data;
|
||||
}
|
||||
0xFFFF => {
|
||||
panic!("interrupt enable register");
|
||||
|
@ -174,8 +178,11 @@ fn main() {
|
|||
state,
|
||||
};
|
||||
loop {
|
||||
for _ in 0..10 {
|
||||
cpu.exec_next();
|
||||
}
|
||||
pause();
|
||||
}
|
||||
}
|
||||
|
||||
#[allow(dead_code)]
|
||||
|
|
Loading…
Add table
Reference in a new issue