GB: Fixed open bus behavior for some registers
Fixes unused_hwio-GS and if_ie_registers
This commit is contained in:
parent
72cd44393a
commit
b758e97753
2 changed files with 4 additions and 4 deletions
|
@ -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) {
|
||||||
|
|
|
@ -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)
|
||||||
|
|
Loading…
Add table
Reference in a new issue