From 7cdaaf5fd7e9b9db4d5322019f4cc8f5f216d594 Mon Sep 17 00:00:00 2001 From: OBattler Date: Thu, 15 Jul 2021 03:00:16 +0200 Subject: [PATCH] Made sure several machine types call video_reset() before initializing their internal video, fixes #1423. --- src/machine/m_amstrad.c | 2 ++ src/machine/m_at_compaq.c | 2 ++ src/machine/m_pcjr.c | 1 + src/machine/m_tandy.c | 2 ++ src/machine/m_xt_olivetti.c | 16 +++++++++++----- 5 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/machine/m_amstrad.c b/src/machine/m_amstrad.c index ddddc6705..c4ace48f0 100644 --- a/src/machine/m_amstrad.c +++ b/src/machine/m_amstrad.c @@ -2441,6 +2441,8 @@ machine_amstrad_init(const machine_t *model, int type) ams->language = 7; + video_reset(gfxcard); + if (gfxcard == VID_INTERNAL) switch(type) { case AMS_PC1512: loadfont("roms/machines/pc1512/40078", 8); diff --git a/src/machine/m_at_compaq.c b/src/machine/m_at_compaq.c index 62212c405..e0aef82ef 100644 --- a/src/machine/m_at_compaq.c +++ b/src/machine/m_at_compaq.c @@ -823,6 +823,8 @@ machine_at_compaq_init(const machine_t *model, int type) write_ram, write_ramw, write_raml, 0xa0000+ram, MEM_MAPPING_INTERNAL, NULL); + video_reset(gfxcard); + switch(type) { case COMPAQ_PORTABLEII: break; diff --git a/src/machine/m_pcjr.c b/src/machine/m_pcjr.c index 8a399115f..5b468d2f6 100644 --- a/src/machine/m_pcjr.c +++ b/src/machine/m_pcjr.c @@ -824,6 +824,7 @@ machine_pcjr_init(const machine_t *model) cpu_set(); /* Initialize the video controller. */ + video_reset(gfxcard); loadfont("roms/video/mda/mda.rom", 0); mem_mapping_add(&pcjr->mapping, 0xb8000, 0x08000, vid_read, NULL, NULL, diff --git a/src/machine/m_tandy.c b/src/machine/m_tandy.c index c09ca21c8..ab01241a0 100644 --- a/src/machine/m_tandy.c +++ b/src/machine/m_tandy.c @@ -1509,6 +1509,8 @@ machine_tandy1k_init(const machine_t *model, int type) if (fdc_type == FDC_INTERNAL) device_add(&fdc_xt_tandy_device); + video_reset(gfxcard); + switch(type) { case TYPE_TANDY: keyboard_set_table(scancode_tandy); diff --git a/src/machine/m_xt_olivetti.c b/src/machine/m_xt_olivetti.c index d4171ddca..87f2d8791 100644 --- a/src/machine/m_xt_olivetti.c +++ b/src/machine/m_xt_olivetti.c @@ -742,6 +742,7 @@ int machine_xt_m24_init(const machine_t *model) { int ret; + m24_kbd_t *m24_kbd; ret = bios_load_interleaved("roms/machines/m24/olivetti_m24_version_1.43_low.bin", "roms/machines/m24/olivetti_m24_version_1.43_high.bin", @@ -750,11 +751,6 @@ machine_xt_m24_init(const machine_t *model) if (bios_only || !ret) return ret; - if (gfxcard == VID_INTERNAL) - device_add(&ogc_m24_device); - - m24_kbd_t *m24_kbd; - m24_kbd = (m24_kbd_t *) malloc(sizeof(m24_kbd_t)); memset(m24_kbd, 0x00, sizeof(m24_kbd_t)); @@ -777,6 +773,11 @@ machine_xt_m24_init(const machine_t *model) nmi_init(); + video_reset(gfxcard); + + if (gfxcard == VID_INTERNAL) + device_add(&ogc_m24_device); + return ret; } @@ -858,6 +859,11 @@ machine_xt_m19_init(const machine_t *model) nmi_init(); + video_reset(gfxcard); + + if (gfxcard == VID_INTERNAL) + device_add(&ogc_m24_device); + return ret; }