From b94590dacb040587d146a3c9b4ad1084d0890eeb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jo=C3=A3o=20Magalh=C3=A3es?= <joamag@gmail.com>
Date: Mon, 11 Jul 2022 00:41:57 +0100
Subject: [PATCH] fix: tiny MBC5 fixes

---
 examples/sdl/src/main.rs | 6 ++++--
 src/rom.rs               | 6 +-----
 2 files changed, 5 insertions(+), 7 deletions(-)

diff --git a/examples/sdl/src/main.rs b/examples/sdl/src/main.rs
index a3411a55..ee5ffe2a 100644
--- a/examples/sdl/src/main.rs
+++ b/examples/sdl/src/main.rs
@@ -157,13 +157,15 @@ fn main() {
     game_boy.load_boot_default();
 
     //let rom = game_boy.load_rom_file("../../res/roms.prop/tetris.gb");
-    //let rom = game_boy.load_rom_file("../../res/roms.prop/dr_mario.gb");
+    let rom = game_boy.load_rom_file("../../res/roms.prop/dr_mario.gb");
     //let rom = game_boy.load_rom_file("../../res/roms.prop/alleyway.gb");
     //let rom = game_boy.load_rom_file("../../res/roms.prop/super_mario.gb");
     //let rom = game_boy.load_rom_file("../../res/roms.prop/super_mario_2.gb");
     //let rom = game_boy.load_rom_file("../../res/roms.prop/pokemon_red.gb");
-    let rom = game_boy.load_rom_file("../../res/roms.prop/pokemon_yellow.gb");
+    //let rom = game_boy.load_rom_file("../../res/roms.prop/pokemon_yellow.gb");
     //let rom = game_boy.load_rom_file("../../res/roms.prop/zelda.gb");
+    //let rom = game_boy.load_rom_file("../../res/roms.prop/django.gb");
+    //let rom = game_boy.load_rom_file("../../res/roms.prop/2048.gb");
 
     //let rom = game_boy.load_rom_file("../../res/roms/firstwhite.gb");
     //let rom = game_boy.load_rom_file("../../res/roms/opus5.gb");
diff --git a/src/rom.rs b/src/rom.rs
index d83821ec..b791a353 100644
--- a/src/rom.rs
+++ b/src/rom.rs
@@ -548,11 +548,7 @@ pub static MBC5: Mbc = Mbc {
             }
             // ROM bank selection
             0x2000 => {
-                let mut rom_bank = value & 0xff;
-                rom_bank = rom_bank & (rom.rom_bank_count * 2 - 1) as u8;
-                if rom_bank == 0 {
-                    rom_bank = 1;
-                }
+                let rom_bank = value & 0xff;
                 rom.set_rom_bank(rom_bank);
             }
             // RAM bank selection
-- 
GitLab