When resetting we don't want to *reset* the dirty bitmap, we want to *set* it to mark the entire VRAM dirty due to the memset() call.
Replace memory_region_reset_dirty() by tcx_set_dirty() which conveniently set the correct ranges dirty. Suggested-by: Mark Cave-Ayland <mark.cave-ayl...@ilande.co.uk> Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org> --- Supersedes: <20220122000707.82918-1-f4...@amsat.org> --- hw/display/tcx.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/hw/display/tcx.c b/hw/display/tcx.c index d4d09d0df8..90e2975e35 100644 --- a/hw/display/tcx.c +++ b/hw/display/tcx.c @@ -371,8 +371,7 @@ static void tcx_reset(DeviceState *d) s->r[258] = s->g[258] = s->b[258] = 255; update_palette_entries(s, 0, 260); memset(s->vram, 0, MAXX*MAXY); - memory_region_reset_dirty(&s->vram_mem, 0, MAXX * MAXY * (1 + 4 + 4), - DIRTY_MEMORY_VGA); + tcx_set_dirty(s, 0, MAXX * MAXY); s->dac_index = 0; s->dac_state = 0; s->cursx = 0xf000; /* Put cursor off screen */ -- 2.34.1