GB: Fixed open bus behavior for some registers

Fixes unused_hwio-GS and if_ie_registers
This commit is contained in:
Sour 2020-05-23 13:01:59 -04:00
parent 72cd44393a
commit b758e97753
2 changed files with 4 additions and 4 deletions

View file

@ -154,7 +154,7 @@ bool GbMemoryManager::IsOamDmaRunning()
void GbMemoryManager::WriteDma(uint16_t addr, uint8_t value)
{
_console->ProcessMemoryRead<CpuType::Gameboy>(addr, value, MemoryOperationType::DmaWrite);
_ppu->WriteOam(addr, value, true);
_ppu->WriteOam((uint8_t)addr, value, true);
}
uint8_t GbMemoryManager::ReadDma(uint16_t addr)
@ -254,7 +254,7 @@ uint8_t GbMemoryManager::ReadRegister(uint16_t addr)
case 0xFF04: case 0xFF05: case 0xFF06: case 0xFF07:
return _timer->Read(addr);
case 0xFF0F: return _state.IrqRequests; break; //IF - Interrupt flags (R/W)
case 0xFF0F: return _state.IrqRequests | 0xE0; break; //IF - Interrupt flags (R/W)
default: return 0xFF; //Open bus
}
@ -325,7 +325,7 @@ void GbMemoryManager::WriteRegister(uint16_t addr, uint8_t value)
_timer->Write(addr, value);
break;
case 0xFF0F: _state.IrqRequests = value; break; //IF - Interrupt flags (R/W)
case 0xFF0F: _state.IrqRequests = value & 0x1F; break; //IF - Interrupt flags (R/W)
}
}
} else if(addr >= 0xFE00) {

View file

@ -440,7 +440,7 @@ uint8_t GbPpu::Read(uint16_t addr)
}
LogDebug("[Debug] GB - Missing read handler: $" + HexUtilities::ToHex(addr));
return 0;
return 0xFF;
}
void GbPpu::Write(uint16_t addr, uint8_t value)