From da00e240e52e7b149c974bf7e22e03e29426face Mon Sep 17 00:00:00 2001 From: Lior Halphon Date: Sat, 2 Apr 2016 16:29:02 +0300 Subject: [PATCH] Correct read of IF and write of IE --- Core/memory.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Core/memory.c b/Core/memory.c index 459bf76..95938b3 100644 --- a/Core/memory.c +++ b/Core/memory.c @@ -94,8 +94,9 @@ static unsigned char read_high_memory(GB_gameboy_t *gb, unsigned short addr) if (addr < 0xFF80) { switch (addr & 0xFF) { - case GB_IO_JOYP: case GB_IO_IF: + return gb->io_registers[GB_IO_IF] | 0xE0; + case GB_IO_JOYP: case GB_IO_DIV: case GB_IO_TIMA: case GB_IO_TMA: @@ -473,7 +474,7 @@ static void write_high_memory(GB_gameboy_t *gb, unsigned short addr, unsigned ch if (addr == 0xFFFF) { /* Interrupt mask */ - gb->interrupt_enable = value; + gb->interrupt_enable = value & 0x1F; return; }