GPU: Prevent emulator locking up when switching between PAL/NTSC mode

This commit is contained in:
Connor McLaughlin 2020-03-20 01:12:41 +10:00
parent bad5b30a61
commit d67bcd654c
2 changed files with 13 additions and 5 deletions

View File

@ -321,13 +321,17 @@ void GPU::UpdateCRTCConfig()
if (m_GPUSTAT.pal_mode)
{
cs.vertical_total = 314;
cs.horizontal_total = 3406;
cs.vertical_total = PAL_TOTAL_LINES;
cs.current_scanline %= PAL_TOTAL_LINES;
cs.horizontal_total = PAL_TICKS_PER_LINE;
cs.current_tick_in_scanline %= PAL_TICKS_PER_LINE;
}
else
{
cs.vertical_total = 263;
cs.horizontal_total = 3413;
cs.vertical_total = NTSC_TOTAL_LINES;
cs.current_scanline %= NTSC_TOTAL_LINES;
cs.horizontal_total = NTSC_TICKS_PER_LINE;
cs.current_tick_in_scanline %= NTSC_TICKS_PER_LINE;
}
const TickCount ticks_per_frame = cs.horizontal_total * cs.vertical_total;

View File

@ -94,7 +94,11 @@ public:
MAX_PRIMITIVE_HEIGHT = 512,
DOT_TIMER_INDEX = 0,
HBLANK_TIMER_INDEX = 1,
MAX_RESOLUTION_SCALE = 16
MAX_RESOLUTION_SCALE = 16,
NTSC_TICKS_PER_LINE = 3413,
NTSC_TOTAL_LINES = 263,
PAL_TICKS_PER_LINE = 3406,
PAL_TOTAL_LINES = 314,
};
// 4x4 dither matrix.