From 4a9c6fc806a99ff8aba7b340dbf8c04aedc7d325 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Magalh=C3=A3es?= <joamag@gmail.com> Date: Thu, 7 Jul 2022 23:51:36 +0100 Subject: [PATCH] fix: else if in interrup handling --- examples/sdl/src/main.rs | 4 ++-- src/cpu.rs | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/examples/sdl/src/main.rs b/examples/sdl/src/main.rs index 2e236739..140783c7 100644 --- a/examples/sdl/src/main.rs +++ b/examples/sdl/src/main.rs @@ -85,14 +85,14 @@ fn main() { game_boy.load_boot_default(); //game_boy.load_rom_file("../../res/roms.prop/tetris.gb"); - game_boy.load_rom_file("../../res/roms.prop/dr_mario.gb"); + //game_boy.load_rom_file("../../res/roms.prop/dr_mario.gb"); //game_boy.load_rom_file("../../res/roms.prop/alleyway.gb"); //game_boy.load_rom_file("../../res/roms/firstwhite.gb"); //game_boy.load_rom_file("../../res/roms/opus5.gb"); //game_boy.load_rom_file("../../res/roms/paradius/cpu/01-special.gb"); // PASSED - //game_boy.load_rom_file("../../res/roms/paradius/cpu/02-interrupts.gb"); + game_boy.load_rom_file("../../res/roms/paradius/cpu/02-interrupts.gb"); //game_boy.load_rom_file("../../res/roms/paradius/cpu/03-op sp,hl.gb"); // PASSED //game_boy.load_rom_file("../../res/roms/paradius/cpu/04-op r,imm.gb"); // PASSED //game_boy.load_rom_file("../../res/roms/paradius/cpu/05-op rp.gb"); // PASSED diff --git a/src/cpu.rs b/src/cpu.rs index ad6e6b3b..5d3b2c5f 100644 --- a/src/cpu.rs +++ b/src/cpu.rs @@ -130,9 +130,8 @@ impl Cpu { return 16; } - // @todo aggregate the handling of these interrupts - if (self.mmu.ie & 0x04 == 0x04) && self.mmu.timer().int_tima() { + else if (self.mmu.ie & 0x04 == 0x04) && self.mmu.timer().int_tima() { println!("Going to run Timer interrupt handler (0x50)"); self.disable_int(); -- GitLab