diff --git a/src/devices/bus/isa/svga_cirrus.cpp b/src/devices/bus/isa/svga_cirrus.cpp index a7204ce8457..adb203a8c10 100644 --- a/src/devices/bus/isa/svga_cirrus.cpp +++ b/src/devices/bus/isa/svga_cirrus.cpp @@ -38,6 +38,7 @@ MACHINE_CONFIG_START(isa16_svga_cirrus_device::device_add_mconfig) MCFG_PALETTE_ADD("palette", 0x100) MCFG_DEVICE_ADD("vga", CIRRUS_GD5430, 0) + MCFG_VIDEO_SET_SCREEN("screen") MACHINE_CONFIG_END //------------------------------------------------- @@ -119,6 +120,7 @@ MACHINE_CONFIG_START(isa16_svga_cirrus_gd542x_device::device_add_mconfig) MCFG_PALETTE_ADD("palette", 0x100) MCFG_DEVICE_ADD("vga", CIRRUS_GD5428, 0) + MCFG_VIDEO_SET_SCREEN("screen") MACHINE_CONFIG_END //------------------------------------------------- diff --git a/src/devices/bus/isa/svga_s3.cpp b/src/devices/bus/isa/svga_s3.cpp index 353316e1891..7b474ad0774 100644 --- a/src/devices/bus/isa/svga_s3.cpp +++ b/src/devices/bus/isa/svga_s3.cpp @@ -48,6 +48,7 @@ MACHINE_CONFIG_START(isa16_svga_s3_device::device_add_mconfig) MCFG_PALETTE_ADD("palette", 0x100) MCFG_DEVICE_ADD("vga", S3_VGA, 0) + MCFG_VIDEO_SET_SCREEN("screen") MACHINE_CONFIG_END //------------------------------------------------- @@ -155,6 +156,7 @@ MACHINE_CONFIG_START(isa16_s3virge_device::device_add_mconfig) MCFG_PALETTE_ADD("palette", 0x100) MCFG_DEVICE_ADD("vga", S3VIRGE, 0) + MCFG_VIDEO_SET_SCREEN("screen") MACHINE_CONFIG_END //------------------------------------------------- @@ -237,6 +239,7 @@ MACHINE_CONFIG_START(isa16_s3virgedx_device::device_add_mconfig) MCFG_PALETTE_ADD("palette", 0x100) MCFG_DEVICE_ADD("vga", S3VIRGEDX, 0) + MCFG_VIDEO_SET_SCREEN("screen") MACHINE_CONFIG_END //------------------------------------------------- @@ -320,6 +323,7 @@ MACHINE_CONFIG_START(isa16_stealth3d2kpro_device::device_add_mconfig) MCFG_PALETTE_ADD("palette", 0x100) MCFG_DEVICE_ADD("vga", S3VIRGEDX1, 0) + MCFG_VIDEO_SET_SCREEN("screen") MACHINE_CONFIG_END //------------------------------------------------- diff --git a/src/devices/bus/isa/svga_trident.cpp b/src/devices/bus/isa/svga_trident.cpp index 55c01884f63..c5d67e144bc 100644 --- a/src/devices/bus/isa/svga_trident.cpp +++ b/src/devices/bus/isa/svga_trident.cpp @@ -38,6 +38,7 @@ MACHINE_CONFIG_START(isa16_svga_tgui9680_device::device_add_mconfig) MCFG_PALETTE_ADD("palette", 0x100) MCFG_DEVICE_ADD("vga", TRIDENT_VGA, 0) + MCFG_VIDEO_SET_SCREEN("screen") MACHINE_CONFIG_END //------------------------------------------------- diff --git a/src/devices/bus/isa/svga_tseng.cpp b/src/devices/bus/isa/svga_tseng.cpp index 16c76e169b7..952dd937954 100644 --- a/src/devices/bus/isa/svga_tseng.cpp +++ b/src/devices/bus/isa/svga_tseng.cpp @@ -37,6 +37,7 @@ MACHINE_CONFIG_START(isa8_svga_et4k_device::device_add_mconfig) MCFG_PALETTE_ADD("palette", 0x100) MCFG_DEVICE_ADD("vga", TSENG_VGA, 0) + MCFG_VIDEO_SET_SCREEN("screen") MACHINE_CONFIG_END //------------------------------------------------- diff --git a/src/devices/bus/isa/vga.cpp b/src/devices/bus/isa/vga.cpp index 280108cb5b3..0c6701cdc56 100644 --- a/src/devices/bus/isa/vga.cpp +++ b/src/devices/bus/isa/vga.cpp @@ -34,6 +34,7 @@ MACHINE_CONFIG_START(isa8_vga_device::device_add_mconfig) MCFG_PALETTE_ADD("palette", 0x100) MCFG_DEVICE_ADD("vga", VGA, 0) + MCFG_VIDEO_SET_SCREEN("screen") MACHINE_CONFIG_END //------------------------------------------------- diff --git a/src/devices/bus/isa/vga_ati.cpp b/src/devices/bus/isa/vga_ati.cpp index 3e845fae899..d3a0850141a 100644 --- a/src/devices/bus/isa/vga_ati.cpp +++ b/src/devices/bus/isa/vga_ati.cpp @@ -84,6 +84,7 @@ MACHINE_CONFIG_START(isa16_vga_gfxultra_device::device_add_mconfig) MCFG_PALETTE_ADD("palette", 0x100) MCFG_DEVICE_ADD("vga", ATI_VGA, 0) + MCFG_VIDEO_SET_SCREEN("screen") MACHINE_CONFIG_END MACHINE_CONFIG_START(isa16_vga_gfxultrapro_device::device_add_mconfig) @@ -94,6 +95,7 @@ MACHINE_CONFIG_START(isa16_vga_gfxultrapro_device::device_add_mconfig) MCFG_PALETTE_ADD("palette", 0x100) MCFG_DEVICE_ADD("vga", ATIMACH32, 0) + MCFG_VIDEO_SET_SCREEN("screen") MACHINE_CONFIG_END MACHINE_CONFIG_START(isa16_vga_mach64_device::device_add_mconfig) @@ -104,6 +106,7 @@ MACHINE_CONFIG_START(isa16_vga_mach64_device::device_add_mconfig) MCFG_PALETTE_ADD("palette", 0x100) MCFG_DEVICE_ADD("vga", ATIMACH64, 0) + MCFG_VIDEO_SET_SCREEN("screen") MACHINE_CONFIG_END //------------------------------------------------- diff --git a/src/devices/machine/i82371sb.cpp b/src/devices/machine/i82371sb.cpp index 8d63f390ab7..ad96c2099ca 100644 --- a/src/devices/machine/i82371sb.cpp +++ b/src/devices/machine/i82371sb.cpp @@ -166,6 +166,7 @@ MACHINE_CONFIG_START(i82371sb_isa_device::device_add_mconfig) MCFG_PALETTE_ADD("palette", 0x100) MCFG_DEVICE_ADD("vga", VGA, 0) + MCFG_VIDEO_SET_SCREEN("screen") // end-VGA-HACK MACHINE_CONFIG_END diff --git a/src/devices/video/pc_vga.cpp b/src/devices/video/pc_vga.cpp index c4806949ebc..74945acd15b 100644 --- a/src/devices/video/pc_vga.cpp +++ b/src/devices/video/pc_vga.cpp @@ -132,8 +132,8 @@ DEFINE_DEVICE_TYPE(MACH8, mach8_device, "mach8", "Mach8") vga_device::vga_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, type, tag, owner, clock) + , device_video_interface(mconfig, *this) , m_palette(*this, "^palette") - , m_screen(*this,"^screen") { } @@ -224,7 +224,7 @@ TIMER_CALLBACK_MEMBER(vga_device::vblank_timer_cb) { vga.crtc.start_addr = vga.crtc.start_addr_latch; vga.attribute.pel_shift = vga.attribute.pel_shift_latch; - m_vblank_timer->adjust( machine().first_screen()->time_until_pos(vga.crtc.vert_blank_start + vga.crtc.vert_blank_end) ); + m_vblank_timer->adjust( screen().time_until_pos(vga.crtc.vert_blank_start + vga.crtc.vert_blank_end) ); } TIMER_CALLBACK_MEMBER(s3_vga_device::vblank_timer_cb) @@ -235,7 +235,7 @@ TIMER_CALLBACK_MEMBER(s3_vga_device::vblank_timer_cb) else vga.crtc.start_addr = vga.crtc.start_addr_latch; vga.attribute.pel_shift = vga.attribute.pel_shift_latch; - m_vblank_timer->adjust( machine().first_screen()->time_until_pos(vga.crtc.vert_blank_start + vga.crtc.vert_blank_end) ); + m_vblank_timer->adjust( screen().time_until_pos(vga.crtc.vert_blank_start + vga.crtc.vert_blank_end) ); } void vga_device::device_start() @@ -463,7 +463,7 @@ void vga_device::vga_vh_text(bitmap_rgb32 &bitmap, const rectangle &cliprect) pen_t pen; if(vga.crtc.cursor_enable) - vga.cursor.visible = machine().first_screen()->frame_number() & 0x10; + vga.cursor.visible = screen().frame_number() & 0x10; else vga.cursor.visible = 0; @@ -476,7 +476,7 @@ void vga_device::vga_vh_text(bitmap_rgb32 &bitmap, const rectangle &cliprect) attr = vga.memory[(pos<<1) + 1]; font_base = 0x20000+(ch<<5); font_base += ((attr & 8) ? vga.sequencer.char_sel.A : vga.sequencer.char_sel.B)*0x2000; - blink_en = (vga.attribute.data[0x10]&8&&machine().first_screen()->frame_number() & 0x20) ? attr & 0x80 : 0; + blink_en = (vga.attribute.data[0x10]&8&&screen().frame_number() & 0x20) ? attr & 0x80 : 0; fore_col = attr & 0xf; back_col = (attr & 0x70) >> 4; @@ -494,7 +494,7 @@ void vga_device::vga_vh_text(bitmap_rgb32 &bitmap, const rectangle &cliprect) else pen = vga.pens[back_col]; - if(!machine().first_screen()->visible_area().contains(column*width+w, line+h)) + if(!screen().visible_area().contains(column*width+w, line+h)) continue; bitmapline[column*width+w] = pen; @@ -507,7 +507,7 @@ void vga_device::vga_vh_text(bitmap_rgb32 &bitmap, const rectangle &cliprect) else pen = vga.pens[back_col]; - if(!machine().first_screen()->visible_area().contains(column*width+w, line+h)) + if(!screen().visible_area().contains(column*width+w, line+h)) continue; bitmapline[column*width+w] = pen; } @@ -518,7 +518,7 @@ void vga_device::vga_vh_text(bitmap_rgb32 &bitmap, const rectangle &cliprect) (h<=vga.crtc.cursor_scan_end)&&(hvisible_area().contains(column*width, line+h)) + if(!screen().visible_area().contains(column*width, line+h)) continue; bitmap.plot_box(column*width, line+h, width, 1, vga.pens[attr&0xf]); } @@ -563,7 +563,7 @@ void vga_device::vga_vh_ega(bitmap_rgb32 &bitmap, const rectangle &cliprect) data[2]>>=1; data[3]>>=1; - if(!machine().first_screen()->visible_area().contains(c+i-pel_shift, line + yi)) + if(!screen().visible_area().contains(c+i-pel_shift, line + yi)) continue; bitmapline[c+i-pel_shift] = pen; } @@ -610,7 +610,7 @@ void vga_device::vga_vh_vga(bitmap_rgb32 &bitmap, const rectangle &cliprect) for(xi=0;xi<8;xi++) { - if(!machine().first_screen()->visible_area().contains(c+xi-(pel_shift), line + yi)) + if(!screen().visible_area().contains(c+xi-(pel_shift), line + yi)) continue; bitmapline[c+xi-(pel_shift)] = m_palette->pen(vga.memory[(pos & 0xffff)+((xi >> 1)*0x10000)]); } @@ -637,7 +637,7 @@ void vga_device::vga_vh_vga(bitmap_rgb32 &bitmap, const rectangle &cliprect) for(xi=0;xi<0x10;xi++) { - if(!machine().first_screen()->visible_area().contains(c+xi-(pel_shift), line + yi)) + if(!screen().visible_area().contains(c+xi-(pel_shift), line + yi)) continue; bitmapline[c+xi-pel_shift] = m_palette->pen(vga.memory[(pos+(xi >> 1)) & 0xffff]); } @@ -671,7 +671,7 @@ void vga_device::vga_vh_cga(bitmap_rgb32 &bitmap, const rectangle &cliprect) for(xi=0;xi<4;xi++) { pen = vga.pens[(vga.memory[addr] >> (6-xi*2)) & 3]; - if(!machine().first_screen()->visible_area().contains(x+xi, y * height + yi)) + if(!screen().visible_area().contains(x+xi, y * height + yi)) continue; bitmapline[x+xi] = pen; } @@ -706,7 +706,7 @@ void vga_device::vga_vh_mono(bitmap_rgb32 &bitmap, const rectangle &cliprect) for(xi=0;xi<8;xi++) { pen = vga.pens[(vga.memory[addr] >> (7-xi)) & 1]; - if(!machine().first_screen()->visible_area().contains(x+xi, y * height + yi)) + if(!screen().visible_area().contains(x+xi, y * height + yi)) continue; bitmapline[x+xi] = pen; } @@ -757,7 +757,7 @@ void svga_device::svga_vh_rgb8(bitmap_rgb32 &bitmap, const rectangle &cliprect) for(xi=0;xi<8;xi++) { - if(!machine().first_screen()->visible_area().contains(c+xi, line + yi)) + if(!screen().visible_area().contains(c+xi, line + yi)) continue; bitmapline[c+xi] = m_palette->pen(vga.memory[(pos+(xi))]); } @@ -796,7 +796,7 @@ void svga_device::svga_vh_rgb15(bitmap_rgb32 &bitmap, const rectangle &cliprect) { int r,g,b; - if(!machine().first_screen()->visible_area().contains(c+xi, line + yi)) + if(!screen().visible_area().contains(c+xi, line + yi)) continue; r = (MV(pos+xm)&0x7c00)>>10; @@ -840,7 +840,7 @@ void svga_device::svga_vh_rgb16(bitmap_rgb32 &bitmap, const rectangle &cliprect) { int r,g,b; - if(!machine().first_screen()->visible_area().contains(c+xi, line + yi)) + if(!screen().visible_area().contains(c+xi, line + yi)) continue; r = (MV(pos+xm)&0xf800)>>11; @@ -884,7 +884,7 @@ void svga_device::svga_vh_rgb24(bitmap_rgb32 &bitmap, const rectangle &cliprect) { int r,g,b; - if(!machine().first_screen()->visible_area().contains(c+xi, line + yi)) + if(!screen().visible_area().contains(c+xi, line + yi)) continue; r = (MD(pos+xm)&0xff0000)>>16; @@ -925,7 +925,7 @@ void svga_device::svga_vh_rgb32(bitmap_rgb32 &bitmap, const rectangle &cliprect) { int r,g,b; - if(!machine().first_screen()->visible_area().contains(c+xi, line + yi)) + if(!screen().visible_area().contains(c+xi, line + yi)) continue; r = (MD(pos+xm)&0xff0000)>>16; @@ -1412,9 +1412,9 @@ void vga_device::recompute_params_clock(int divisor, int xtal) pixel_clock = xtal / (((vga.sequencer.data[1]&8) >> 3) + 1); refresh = HZ_TO_ATTOSECONDS(pixel_clock) * (hblank_period) * vblank_period; - machine().first_screen()->configure((hblank_period), (vblank_period), visarea, refresh ); + screen().configure((hblank_period), (vblank_period), visarea, refresh ); //popmessage("%d %d\n",vga.crtc.horz_total * 8,vga.crtc.vert_total); - m_vblank_timer->adjust( machine().first_screen()->time_until_pos(vga.crtc.vert_blank_start + vga.crtc.vert_blank_end) ); + m_vblank_timer->adjust( screen().time_until_pos(vga.crtc.vert_blank_start + vga.crtc.vert_blank_end) ); } void vga_device::recompute_params() @@ -1603,7 +1603,7 @@ uint8_t vga_device::vga_vblank() res = 0; vblank_start = vga.crtc.vert_blank_start; vblank_end = vga.crtc.vert_blank_start + vga.crtc.vert_blank_end; - vpos = machine().first_screen()->vpos(); + vpos = screen().vpos(); /* check if we are under vblank period */ if(vblank_end > vga.crtc.vert_total) @@ -1639,8 +1639,8 @@ READ8_MEMBER(vga_device::vga_crtc_r) vga.attribute.state = 0; data = 0; - hsync = machine().first_screen()->hblank() & 1; - vsync = vga_vblank(); //machine().first_screen()->vblank() & 1; + hsync = screen().hblank() & 1; + vsync = vga_vblank(); //screen().vblank() & 1; data |= (hsync | vsync) & 1; // DD - display disable register data |= (vsync & 1) << 3; // VRetrace register @@ -1691,10 +1691,10 @@ WRITE8_MEMBER(vga_device::vga_crtc_w) } crtc_reg_write(vga.crtc.index,data); - //machine().first_screen()->update_partial(machine().first_screen()->vpos()); + //screen().update_partial(screen().vpos()); #if 0 if((vga.crtc.index & 0xfe) != 0x0e) - printf("%02x %02x %d\n",vga.crtc.index,data,machine().first_screen()->vpos()); + printf("%02x %02x %d\n",vga.crtc.index,data,screen().vpos()); #endif break; @@ -2583,7 +2583,7 @@ WRITE8_MEMBER(tseng_vga_device::port_03d0_w) vga.crtc.data[vga.crtc.index] = data; tseng_crtc_reg_write(vga.crtc.index,data); //if((vga.crtc.index & 0xfe) != 0x0e) - // printf("%02x %02x %d\n",vga.crtc.index,data,machine().first_screen()->vpos()); + // printf("%02x %02x %d\n",vga.crtc.index,data,screen().vpos()); break; case 8: et4k.reg_3d8 = data; @@ -5271,11 +5271,11 @@ READ8_MEMBER(ati_vga_device::ati_port_ext_r) logerror("ATI20 read\n"); break; case 0x28: // Vertical line counter (high) - ret = (machine().first_screen()->vpos() >> 8) & 0x03; + ret = (screen().vpos() >> 8) & 0x03; logerror("ATI28 (vertical line high) read\n"); break; case 0x29: // Vertical line counter (low) - ret = machine().first_screen()->vpos() & 0xff; // correct? + ret = screen().vpos() & 0xff; // correct? logerror("ATI29 (vertical line low) read\n"); break; case 0x2a: diff --git a/src/devices/video/pc_vga.h b/src/devices/video/pc_vga.h index aaaa46ea04a..1325e34f058 100644 --- a/src/devices/video/pc_vga.h +++ b/src/devices/video/pc_vga.h @@ -15,7 +15,7 @@ // ======================> vga_device -class vga_device : public device_t +class vga_device : public device_t, public device_video_interface { friend class ibm8514a_device; @@ -231,7 +231,6 @@ protected: emu_timer *m_vblank_timer; required_device m_palette; - required_device m_screen; }; diff --git a/src/mame/drivers/bebox.cpp b/src/mame/drivers/bebox.cpp index ba7b602b815..f3bf56e8185 100644 --- a/src/mame/drivers/bebox.cpp +++ b/src/mame/drivers/bebox.cpp @@ -193,6 +193,7 @@ MACHINE_CONFIG_START(bebox_state::bebox) MCFG_PALETTE_ADD("palette", 0x100) MCFG_DEVICE_ADD("vga", CIRRUS_GD5428, 0) + MCFG_VIDEO_SET_SCREEN("screen") MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ym3812", YM3812, 3579545) diff --git a/src/mame/drivers/gambl186.cpp b/src/mame/drivers/gambl186.cpp index b495ecdaf7f..42f8cbb7d1b 100644 --- a/src/mame/drivers/gambl186.cpp +++ b/src/mame/drivers/gambl186.cpp @@ -481,6 +481,7 @@ MACHINE_CONFIG_START(gambl186_state::gambl186) MCFG_PALETTE_ADD("palette", 0x100) MCFG_DEVICE_ADD("vga", CIRRUS_GD5428, 0) + MCFG_VIDEO_SET_SCREEN("screen") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/gamtor.cpp b/src/mame/drivers/gamtor.cpp index a565285f18b..e4360d37986 100644 --- a/src/mame/drivers/gamtor.cpp +++ b/src/mame/drivers/gamtor.cpp @@ -91,6 +91,7 @@ MACHINE_CONFIG_START(gaminator_state::gaminator) MCFG_PALETTE_ADD("palette", 0x100) MCFG_DEVICE_ADD("vga", GAMTOR_VGA, 0) + MCFG_VIDEO_SET_SCREEN("screen") MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") /* unknown sound */ diff --git a/src/mame/drivers/photoply.cpp b/src/mame/drivers/photoply.cpp index 604d6e74f5b..10f20ae46a0 100644 --- a/src/mame/drivers/photoply.cpp +++ b/src/mame/drivers/photoply.cpp @@ -322,6 +322,7 @@ MACHINE_CONFIG_START(photoply_state::photoply) MCFG_PALETTE_ADD("palette", 0x100) MCFG_DEVICE_ADD("vga", CIRRUS_GD5446, 0) + MCFG_VIDEO_SET_SCREEN("screen") MCFG_EEPROM_SERIAL_93C46_ADD("eeprom") MCFG_EEPROM_WRITE_TIME(attotime::from_usec(1)) diff --git a/src/mame/drivers/pntnpuzl.cpp b/src/mame/drivers/pntnpuzl.cpp index 6f411608741..2c8ed6c2802 100644 --- a/src/mame/drivers/pntnpuzl.cpp +++ b/src/mame/drivers/pntnpuzl.cpp @@ -371,6 +371,7 @@ MACHINE_CONFIG_START(pntnpuzl_state::pntnpuzl) MCFG_PALETTE_ADD("palette", 0x100) MCFG_DEVICE_ADD("vga", VGA, 0) + MCFG_VIDEO_SET_SCREEN("screen") MACHINE_CONFIG_END ROM_START( pntnpuzl ) diff --git a/src/mame/drivers/vis.cpp b/src/mame/drivers/vis.cpp index 44a05807d3c..41c8228a7a6 100644 --- a/src/mame/drivers/vis.cpp +++ b/src/mame/drivers/vis.cpp @@ -239,6 +239,7 @@ private: rgb_t yuv_to_rgb(int y, int u, int v) const; virtual uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) override; + std::string m_screen_tag; int m_extcnt; uint8_t m_extreg; uint8_t m_interlace; @@ -251,10 +252,11 @@ DEFINE_DEVICE_TYPE(VIS_VGA, vis_vga_device, "vis_vga", "vis_vga") vis_vga_device::vis_vga_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : svga_device(mconfig, VIS_VGA, tag, owner, clock), - device_isa16_card_interface(mconfig, *this) + device_isa16_card_interface(mconfig, *this), + m_screen_tag(subtag("screen")) { m_palette.set_tag("palette"); - m_screen.set_tag("screen"); + set_screen(m_screen_tag.c_str()); } MACHINE_CONFIG_START(vis_vga_device::device_add_mconfig) @@ -287,9 +289,9 @@ void vis_vga_device::recompute_params() pixel_clock = xtal.value() / (((vga.sequencer.data[1]&8) >> 3) + 1); refresh = HZ_TO_ATTOSECONDS(pixel_clock) * (hblank_period) * vblank_period; - machine().first_screen()->configure((hblank_period), (vblank_period), visarea, refresh ); + screen().configure((hblank_period), (vblank_period), visarea, refresh ); //popmessage("%d %d\n",vga.crtc.horz_total * 8,vga.crtc.vert_total); - m_vblank_timer->adjust( machine().first_screen()->time_until_pos((vga.crtc.vert_blank_start + vga.crtc.vert_blank_end)) ); + m_vblank_timer->adjust( screen().time_until_pos((vga.crtc.vert_blank_start + vga.crtc.vert_blank_end)) ); } rgb_t vis_vga_device::yuv_to_rgb(int y, int u, int v) const @@ -327,7 +329,7 @@ void vis_vga_device::vga_vh_yuv8(bitmap_rgb32 &bitmap, const rectangle &cliprect for(int xi=0;xi<8;xi+=4) { - if(!m_screen->visible_area().contains(col+xi, line + yi)) + if(!screen().visible_area().contains(col+xi, line + yi)) continue; uint8_t a = vga.memory[pos + xi], b = vga.memory[pos + xi + 1]; uint8_t c = vga.memory[pos + xi + 2], d = vga.memory[pos + xi + 3]; diff --git a/src/mame/machine/pcshare.cpp b/src/mame/machine/pcshare.cpp index 948d4754e67..52a8e79f9c9 100644 --- a/src/mame/machine/pcshare.cpp +++ b/src/mame/machine/pcshare.cpp @@ -147,6 +147,7 @@ MACHINE_CONFIG_START(pcat_base_state::pcvideo_vga) MCFG_PALETTE_ADD("palette", 0x100) MCFG_DEVICE_ADD("vga", VGA, 0) + MCFG_VIDEO_SET_SCREEN("screen") MACHINE_CONFIG_END MACHINE_CONFIG_START(pcat_base_state::pcvideo_trident_vga) @@ -156,6 +157,7 @@ MACHINE_CONFIG_START(pcat_base_state::pcvideo_trident_vga) MCFG_PALETTE_ADD("palette", 0x100) MCFG_DEVICE_ADD("vga", TRIDENT_VGA, 0) + MCFG_VIDEO_SET_SCREEN("screen") MACHINE_CONFIG_END MACHINE_CONFIG_START(pcat_base_state::pcvideo_s3_vga) @@ -165,6 +167,7 @@ MACHINE_CONFIG_START(pcat_base_state::pcvideo_s3_vga) MCFG_PALETTE_ADD("palette", 0x100) MCFG_DEVICE_ADD("vga", S3_VGA, 0) + MCFG_VIDEO_SET_SCREEN("screen") MACHINE_CONFIG_END @@ -175,6 +178,7 @@ MACHINE_CONFIG_START(pcat_base_state::pcvideo_cirrus_gd5428) MCFG_PALETTE_ADD("palette", 0x100) MCFG_DEVICE_ADD("vga", CIRRUS_GD5428, 0) + MCFG_VIDEO_SET_SCREEN("screen") MACHINE_CONFIG_END MACHINE_CONFIG_START(pcat_base_state::pcvideo_cirrus_gd5430) @@ -184,6 +188,7 @@ MACHINE_CONFIG_START(pcat_base_state::pcvideo_cirrus_gd5430) MCFG_PALETTE_ADD("palette", 0x100) MCFG_DEVICE_ADD("vga", CIRRUS_GD5430, 0) + MCFG_VIDEO_SET_SCREEN("screen") MACHINE_CONFIG_END MACHINE_CONFIG_START(pcat_base_state::pcat_common)