aboutsummaryrefslogtreecommitdiff
path: root/src/mapper.rs
diff options
context:
space:
mode:
authorDeterminant <ted.sybil@gmail.com>2017-11-17 15:00:24 -0500
committerDeterminant <ted.sybil@gmail.com>2017-11-17 15:00:24 -0500
commit2f4262c1273108abfcce00e897c520f5a7f4be41 (patch)
tree0915021d63092913de7cc88fe39088f936a4126d /src/mapper.rs
parente2ccf6053d58a2a478814f4a26018989f6fa0f26 (diff)
rearrange the proj
Diffstat (limited to 'src/mapper.rs')
-rw-r--r--src/mapper.rs10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/mapper.rs b/src/mapper.rs
index fc02ed2..583c452 100644
--- a/src/mapper.rs
+++ b/src/mapper.rs
@@ -3,8 +3,8 @@ extern crate core;
use memory::VMem;
use cartridge::{Cartridge, BankType};
-pub struct Mapper2<'a> {
- cart: Cartridge,
+pub struct Mapper2<'a, C> where C: Cartridge {
+ cart: C,
prg_bank1: &'a [u8],
prg_bank2: &'a [u8],
chr_bank: &'a mut [u8],
@@ -12,7 +12,7 @@ pub struct Mapper2<'a> {
prg_nbank: usize
}
-impl<'a> VMem for Mapper2<'a> {
+impl<'a, C> VMem for Mapper2<'a, C> where C: Cartridge {
fn read(&self, addr: u16) -> u8 {
let addr = addr as usize;
if addr < 0x2000 { /* 0x2000 size bank */
@@ -46,8 +46,8 @@ impl<'a> VMem for Mapper2<'a> {
}
}
-impl<'a> Mapper2<'a> {
- pub fn new(cart: Cartridge) -> Self {
+impl<'a, C> Mapper2<'a, C> where C: Cartridge {
+ pub fn new(cart: C) -> Self {
unsafe {
let nbank = cart.get_size(BankType::PrgRom) >> 14;
let null = core::mem::uninitialized();