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) void GbMemoryManager::WriteDma(uint16_t addr, uint8_t value)
{ {
_console->ProcessMemoryRead<CpuType::Gameboy>(addr, value, MemoryOperationType::DmaWrite); _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) 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: case 0xFF04: case 0xFF05: case 0xFF06: case 0xFF07:
return _timer->Read(addr); 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 default: return 0xFF; //Open bus
} }
@ -325,7 +325,7 @@ void GbMemoryManager::WriteRegister(uint16_t addr, uint8_t value)
_timer->Write(addr, value); _timer->Write(addr, value);
break; 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) { } 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)); LogDebug("[Debug] GB - Missing read handler: $" + HexUtilities::ToHex(addr));
return 0; return 0xFF;
} }
void GbPpu::Write(uint16_t addr, uint8_t value) void GbPpu::Write(uint16_t addr, uint8_t value)