From 99dc3210d6fa1ec4eae909b42bacdd6fa99e2344 Mon Sep 17 00:00:00 2001 From: Kevin Hamacher Date: Fri, 14 Feb 2020 11:45:37 +0100 Subject: [PATCH] more code fixes --- Cargo.toml | 1 + src/cartridge.rs | 14 +++++++------- src/interconnect.rs | 10 +++++----- src/main.rs | 8 ++++---- src/sound/envelope.rs | 2 +- src/sound/length.rs | 2 +- src/sound/mod.rs | 20 ++++++++++---------- src/sound/square.rs | 4 ++-- src/sound/wave.rs | 4 ++-- 9 files changed, 33 insertions(+), 32 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index f0e7bcd..377eb28 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,6 +2,7 @@ name = "gbc" version = "0.1.0" authors = ["Kevin Hamacher "] +edition = '2018' [dependencies] sdl2 = "*" diff --git a/src/cartridge.rs b/src/cartridge.rs index ec483cf..c666490 100644 --- a/src/cartridge.rs +++ b/src/cartridge.rs @@ -1,4 +1,4 @@ -use super::mbc::mbc::MBC; +use crate::mbc::{mbc, mbc1, mbc2, mbc3}; #[derive(Debug, PartialEq)] enum MemoryBankControllerType { @@ -18,7 +18,7 @@ enum RamSize { } pub struct Cartridge { - mbc: Box, + mbc: Box, savefile: Option, } @@ -57,11 +57,11 @@ impl Cartridge { let ram = Cartridge::load_savefile(&save_file, ram_size); - let mbc: Box = match mbc_type { - MemoryBankControllerType::None => Box::new(super::mbc::mbc::NoMBC::new(rom, ram)), - MemoryBankControllerType::MBC1 => Box::new(super::mbc::mbc1::MBC1::new(rom, ram)), - MemoryBankControllerType::MBC2 => Box::new(super::mbc::mbc2::MBC2::new(rom, ram)), - MemoryBankControllerType::MBC3 => Box::new(super::mbc::mbc3::MBC3::new(rom, ram)), + let mbc: Box = match mbc_type { + MemoryBankControllerType::None => Box::new(mbc::NoMBC::new(rom, ram)), + MemoryBankControllerType::MBC1 => Box::new(mbc1::MBC1::new(rom, ram)), + MemoryBankControllerType::MBC2 => Box::new(mbc2::MBC2::new(rom, ram)), + MemoryBankControllerType::MBC3 => Box::new(mbc3::MBC3::new(rom, ram)), }; Cartridge { diff --git a/src/interconnect.rs b/src/interconnect.rs index ef4f089..3a714a5 100644 --- a/src/interconnect.rs +++ b/src/interconnect.rs @@ -289,9 +289,9 @@ impl Interconnect { // println!("Reading IF: {:02X}", self.interrupt_request_flags); self.interrupt_request_flags } - 0xFF10...0xFF26 => self.sound.sound_object.lock().unwrap().read_byte(addr), - 0xFF30...0xFF3F => self.sound.sound_object.lock().unwrap().read_byte(addr), - 0xFF40...0xFF4B => self.display.read_byte(addr), + 0xFF10..=0xFF26 => self.sound.sound_object.lock().unwrap().read_byte(addr), + 0xFF30..=0xFF3F => self.sound.sound_object.lock().unwrap().read_byte(addr), + 0xFF40..=0xFF4B => self.display.read_byte(addr), 0xFF50 => self.disable_bootrom, 0xFF51 => self.vram_dma_source_high, 0xFF52 => self.vram_dma_source_low, @@ -345,14 +345,14 @@ impl Interconnect { 0xFF0F => { self.interrupt_request_flags = val; } - 0xFF10...0xFF26 => { + 0xFF10..=0xFF26 => { self.sound .sound_object .lock() .unwrap() .write_byte(addr, val); } - 0xFF30...0xFF3F => self + 0xFF30..=0xFF3F => self .sound .sound_object .lock() diff --git a/src/main.rs b/src/main.rs index e52ef62..503d2e2 100644 --- a/src/main.rs +++ b/src/main.rs @@ -43,14 +43,14 @@ fn main() { } pub fn read_file>(rom_path: P) -> Result, io::Error> { - let mut file = r#try!(fs::File::open(rom_path)); + let mut file = fs::File::open(rom_path)?; let mut buf = Vec::new(); - r#try!(file.read_to_end(&mut buf)); + file.read_to_end(&mut buf)?; Ok(buf.into_boxed_slice()) } pub fn write_file>(path: P, data: &Box<[u8]>) -> Result<(), io::Error> { - let mut file = r#try!(fs::File::create(path)); - r#try!(file.write(&data)); + let mut file = fs::File::create(path)?; + file.write(&data)?; Ok(()) } diff --git a/src/sound/envelope.rs b/src/sound/envelope.rs index 3a5c4f6..bd04d85 100644 --- a/src/sound/envelope.rs +++ b/src/sound/envelope.rs @@ -1,5 +1,5 @@ // Implements the envelopes -use sound::{AudioComponent, AudioModule}; +use crate::sound::{AudioComponent, AudioModule}; #[derive(Clone, Debug)] pub enum EnvelopeDirection { diff --git a/src/sound/length.rs b/src/sound/length.rs index defd224..faa4192 100644 --- a/src/sound/length.rs +++ b/src/sound/length.rs @@ -1,5 +1,5 @@ // Implement the length counter -use sound::{AudioComponent, AudioModule}; +use crate::sound::{AudioComponent, AudioModule}; use std::fmt::Debug; #[derive(Default, Debug)] diff --git a/src/sound/mod.rs b/src/sound/mod.rs index 1536cf8..acbfa37 100644 --- a/src/sound/mod.rs +++ b/src/sound/mod.rs @@ -72,7 +72,7 @@ impl Channel1 { pub fn read_byte(&self, addr: u16) -> u8 { match addr { - 0xFF10...0xFF14 => self.stored_regs[(addr - 0xFF10) as usize], + 0xFF10..=0xFF14 => self.stored_regs[(addr - 0xFF10) as usize], _ => { println!("Channel1 does not support reading ({:04X})", addr); 0 @@ -228,7 +228,7 @@ impl Channel3 { self.length_counter.set_enabled(val & 1 << 6); } - 0xFF30...0xFF3F => { + 0xFF30..=0xFF3F => { self.wave_gen.set_sample_pair((addr - 0xFF30) as usize, val); } _ => panic!("Channel3: Write not supported: {:04X} = {:02X}", addr, val), @@ -414,14 +414,14 @@ impl Sound { pub fn write_byte(&mut self, addr: u16, val: u8) { // println!("Snd: {:04X} = {:02X} ({:08b})", addr, val, val); match addr { - 0xFF10...0xFF14 => self.channel1.write_byte(addr, val), - 0xFF16...0xFF19 => self.channel2.write_byte(addr, val), - 0xFF1A...0xFF1E => self.channel3.write_byte(addr, val), + 0xFF10..=0xFF14 => self.channel1.write_byte(addr, val), + 0xFF16..=0xFF19 => self.channel2.write_byte(addr, val), + 0xFF1A..=0xFF1E => self.channel3.write_byte(addr, val), 0xFF24 => self.sound_channel_volume_control = val, 0xFF25 => self.sound_output_terminal_selector = val, 0xFF26 => self.enabled = val, - 0xFF30...0xFF3F => self.channel3.write_byte(addr, val), + 0xFF30..=0xFF3F => self.channel3.write_byte(addr, val), _ => { // panic!("Sound: Write {:02X} to {:04X} unsupported", val, addr); @@ -433,14 +433,14 @@ impl Sound { pub fn read_byte(&self, addr: u16) -> u8 { // println!("RD {:04X}", addr); match addr { - 0xFF10...0xFF14 => self.channel1.read_byte(addr), - 0xFF16...0xFF19 => self.channel2.read_byte(addr), - 0xFF1A...0xFF1E => self.channel3.read_byte(addr), + 0xFF10..=0xFF14 => self.channel1.read_byte(addr), + 0xFF16..=0xFF19 => self.channel2.read_byte(addr), + 0xFF1A..=0xFF1E => self.channel3.read_byte(addr), 0xFF24 => self.sound_channel_volume_control, 0xFF25 => self.sound_output_terminal_selector, 0xFF26 => self.enabled, - 0xFF30...0xFF3F => self.channel3.read_byte(addr), + 0xFF30..=0xFF3F => self.channel3.read_byte(addr), _ => panic!("Sound: Read from {:04X} unsupported", addr), } diff --git a/src/sound/square.rs b/src/sound/square.rs index 845e7ba..ab761cd 100644 --- a/src/sound/square.rs +++ b/src/sound/square.rs @@ -1,6 +1,6 @@ // Square wave generator -use sound::AudioComponent; -use sound::OUTPUT_SAMPLE_RATE; +use crate::sound::AudioComponent; +use crate::sound::OUTPUT_SAMPLE_RATE; #[derive(Debug)] pub enum DutyCycle { diff --git a/src/sound/wave.rs b/src/sound/wave.rs index 596516d..d7caac5 100644 --- a/src/sound/wave.rs +++ b/src/sound/wave.rs @@ -1,6 +1,6 @@ // Square wave generator -use sound::AudioComponent; -use sound::OUTPUT_SAMPLE_RATE; +use crate::sound::AudioComponent; +use crate::sound::OUTPUT_SAMPLE_RATE; #[derive(Debug, Default)] struct SamplePair(u8);