mirror of
https://github.com/holub/mame
synced 2025-04-25 01:40:16 +03:00
pc_vga: Use device_video_interface and configured screens instead of first_screen (nw)
This commit is contained in:
parent
128343eb7c
commit
17fff85189
@ -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
|
||||
|
||||
//-------------------------------------------------
|
||||
|
@ -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
|
||||
|
||||
//-------------------------------------------------
|
||||
|
@ -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
|
||||
|
||||
//-------------------------------------------------
|
||||
|
@ -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
|
||||
|
||||
//-------------------------------------------------
|
||||
|
@ -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
|
||||
|
||||
//-------------------------------------------------
|
||||
|
@ -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
|
||||
|
||||
//-------------------------------------------------
|
||||
|
@ -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
|
||||
|
||||
|
@ -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)&&(h<height)&&(line+h<TEXT_LINES);
|
||||
h++)
|
||||
{
|
||||
if(!machine().first_screen()->visible_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:
|
||||
|
@ -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<palette_device> m_palette;
|
||||
required_device<screen_device> m_screen;
|
||||
};
|
||||
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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")
|
||||
|
@ -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 */
|
||||
|
@ -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))
|
||||
|
@ -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 )
|
||||
|
@ -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];
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user