diff --git a/Core/memory.c b/Core/memory.c index d3d9aaa6..148c9867 100644 --- a/Core/memory.c +++ b/Core/memory.c @@ -780,7 +780,7 @@ static void write_high_memory(GB_gameboy_t *gb, uint16_t addr, uint8_t value) } else if ((gb->io_registers[GB_IO_JOYP] & 0x30) != (value & 0x30)) { GB_sgb_write(gb, value); - gb->io_registers[GB_IO_JOYP] = value & 0xF0; + gb->io_registers[GB_IO_JOYP] = (value & 0xF0) | (gb->io_registers[GB_IO_JOYP] & 0x0F); GB_update_joyp(gb); } return;