Mercurial > repos > blastem
changeset 2385:ce9f5a42c481
Ensure VDP double_res flag is updated when loading a save state
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Tue, 21 Nov 2023 21:01:16 -0800 |
parents | 03e6ac327ba0 |
children | 9f178feb3cb0 |
files | vdp.c |
diffstat | 1 files changed, 4 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/vdp.c Tue Nov 21 20:47:11 2023 -0800 +++ b/vdp.c Tue Nov 21 21:01:16 2023 -0800 @@ -144,6 +144,10 @@ } context->border_top = calc_crop(top_crop, border_top); context->top_offset = border_top - context->border_top; + context->double_res = (context->regs[REG_MODE_4] & (BIT_INTERLACE | BIT_DOUBLE_RES)) == (BIT_INTERLACE | BIT_DOUBLE_RES); + if (!context->double_res) { + context->flags2 &= ~FLAG2_EVEN_FIELD; + } } static uint8_t static_table_init_done; @@ -4646,12 +4650,6 @@ uint8_t buffer[2] = {reg, value}; event_log(EVENT_VDP_REG, context->cycles, sizeof(buffer), buffer); context->regs[reg] = value; - if (reg == REG_MODE_4) { - context->double_res = (value & (BIT_INTERLACE | BIT_DOUBLE_RES)) == (BIT_INTERLACE | BIT_DOUBLE_RES); - if (!context->double_res) { - context->flags2 &= ~FLAG2_EVEN_FIELD; - } - } if (reg == REG_MODE_1 || reg == REG_MODE_2 || reg == REG_MODE_4) { update_video_params(context); }