aboutsummaryrefslogtreecommitdiff
path: root/src/cartridge.rs
diff options
context:
space:
mode:
authorDeterminant <ted.sybil@gmail.com>2018-01-08 00:32:32 +0800
committerDeterminant <ted.sybil@gmail.com>2018-01-08 00:32:32 +0800
commit96c7c1e4fee261ecf386fb2fff2155f06a2f7973 (patch)
treea7d32d2173ca7ae277a97e47ed78fe654545c31b /src/cartridge.rs
parentdf6acf714c3ea975e75057b8b5a1d5e0fdf83109 (diff)
support console state load/save (minor bugs still present)
Diffstat (limited to 'src/cartridge.rs')
-rw-r--r--src/cartridge.rs6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/cartridge.rs b/src/cartridge.rs
index 52b43ca..ca9c31e 100644
--- a/src/cartridge.rs
+++ b/src/cartridge.rs
@@ -1,4 +1,5 @@
#![allow(dead_code)]
+use utils::{Read, Write};
#[derive(Copy, Clone)]
pub enum MirrorType {
@@ -17,7 +18,10 @@ pub enum BankType {
pub trait Cartridge {
fn get_size(&self, kind: BankType) -> usize;
- fn get_bank<'a>(&mut self, base: usize, size: usize, kind: BankType) -> &'a mut [u8];
+ fn get_bank<'a>(&self, base: usize, size: usize, kind: BankType) -> &'a [u8];
+ fn get_bank_mut<'a>(&mut self, base: usize, size: usize, kind: BankType) -> &'a mut [u8];
#[inline(always)] fn get_mirror_type(&self) -> MirrorType;
#[inline(always)] fn set_mirror_type(&mut self, mt: MirrorType);
+ fn load(&mut self, reader: &mut Read) -> bool;
+ fn save(&self, writer: &mut Write) -> bool;
}