Skip to content
Snippets Groups Projects
rom.rs 31.9 KiB
Newer Older
  • Learn to ignore specific revisions
  •                 return genie_code.patch_data(data);
    
                }
            }
            (rom.mbc.read_rom)(rom, addr)
        },
        write_rom: |rom: &mut Cartridge, addr: u16, value: u8| (rom.mbc.write_rom)(rom, addr, value),
        read_ram: |rom: &Cartridge, addr: u16| -> u8 { (rom.mbc.read_ram)(rom, addr) },
        write_ram: |rom: &mut Cartridge, addr: u16, value: u8| (rom.mbc.write_ram)(rom, addr, value),
    };
    
    #[cfg(test)]
    mod tests {
        use super::{Cartridge, RomType};
    
        #[test]
        fn test_has_rumble() {
            let mut rom = Cartridge::new();
            rom.set_data(&vec![0; 0x8000]);
            assert!(!rom.has_rumble());
    
            rom.set_rom_type(RomType::Mbc5Rumble);
            assert!(rom.has_rumble());
    
            rom.set_rom_type(RomType::Mbc5RumbleRam);
            assert!(rom.has_rumble());
    
            rom.set_rom_type(RomType::Mbc5RumbleRamBattery);
            assert!(rom.has_rumble());
    
            rom.set_rom_type(RomType::Mbc1);
            assert!(!rom.has_rumble());
        }
    }