diff --git a/src/cpu.rs b/src/cpu.rs index f4693abad04c75991f748bc02b2b789ae1ffc1df..a6632d0616a0d2bd8ca48d9e0914a2c8900fc3e7 100644 --- a/src/cpu.rs +++ b/src/cpu.rs @@ -56,7 +56,7 @@ impl Cpu { half_carry: false, carry: false, halted: false, - mmu: mmu, + mmu, cycles: 0, } } @@ -117,14 +117,13 @@ impl Cpu { // @todo this is so bad, need to improve this by an order // of magnitude, to be able to have better performance - if self.halted { - if ((self.mmu.ie & 0x01 == 0x01) && self.mmu.ppu().int_vblank()) + if self.halted + && (((self.mmu.ie & 0x01 == 0x01) && self.mmu.ppu().int_vblank()) || ((self.mmu.ie & 0x02 == 0x02) && self.mmu.ppu().int_stat()) || ((self.mmu.ie & 0x04 == 0x04) && self.mmu.timer().int_tima()) - || ((self.mmu.ie & 0x10 == 0x10) && self.mmu.pad().int_pad()) - { - self.halted = false; - } + || ((self.mmu.ie & 0x10 == 0x10) && self.mmu.pad().int_pad())) + { + self.halted = false; } if self.ime {