GPU: Add some missing state reset

This commit is contained in:
Connor McLaughlin
2019-10-04 20:33:37 +10:00
parent 4422fb0545
commit 4d22bec8fd
4 changed files with 18 additions and 1 deletions

View File

@ -33,10 +33,14 @@ void GPU::Reset()
void GPU::SoftReset()
{
m_GPUSTAT.bits = 0x14802000;
m_drawing_area = {};
m_drawing_offset = {};
m_crtc_state = {};
m_crtc_state.regs.display_address_start = 0;
m_crtc_state.regs.horizontal_display_range = 0xC60260;
m_crtc_state.regs.vertical_display_range = 0x3FC10;
m_GP0_command.clear();
m_GPUREAD_buffer.clear();
m_render_state = {};
m_render_state.texture_page_changed = true;
m_render_state.texture_color_mode_changed = true;
@ -48,7 +52,10 @@ void GPU::SoftReset()
bool GPU::DoState(StateWrapper& sw)
{
if (sw.IsReading())
FlushRender();
{
// perform a reset to discard all pending draws/fb state
Reset();
}
sw.Do(&m_GPUSTAT.bits);