mirror of
https://github.com/holub/mame
synced 2025-04-22 16:31:49 +03:00
(MESS) gfxultra: Very basic implementation of the linedraw register, enough to pass the BIOS' test. (no whatsnew)
This commit is contained in:
parent
2193801ec2
commit
4599f17a75
@ -5252,6 +5252,39 @@ WRITE16_HANDLER(mach8_bresenham_count_w)
|
||||
logerror("Mach8: Bresenham count write %04x\n",data);
|
||||
}
|
||||
|
||||
WRITE16_HANDLER(mach8_linedraw_w)
|
||||
{
|
||||
// TODO: actually draw the lines
|
||||
switch(ati.linedraw)
|
||||
{
|
||||
case 0: // Set current X
|
||||
s3.curr_x = data;
|
||||
ati.linedraw++;
|
||||
break;
|
||||
case 1: // Set current Y
|
||||
s3.curr_y = data;
|
||||
ati.linedraw++;
|
||||
break;
|
||||
case 2: // Line end X
|
||||
s3.curr_x = data;
|
||||
ati.linedraw++;
|
||||
break;
|
||||
case 3: // Line end Y
|
||||
s3.curr_y = data;
|
||||
ati.linedraw = 2;
|
||||
break;
|
||||
case 4: // Set current X
|
||||
s3.curr_x = data;
|
||||
ati.linedraw++;
|
||||
break;
|
||||
case 5: // Set current Y
|
||||
s3.curr_y = data;
|
||||
ati.linedraw = 4;
|
||||
break;
|
||||
}
|
||||
logerror("ATI: Linedraw register write %04x, mode %i\n",data,ati.linedraw);
|
||||
}
|
||||
|
||||
READ16_HANDLER(mach8_scratch0_r)
|
||||
{
|
||||
return ati.scratch0;
|
||||
|
@ -125,6 +125,7 @@ READ16_HANDLER(mach8_vdisp_r);
|
||||
WRITE16_HANDLER(mach8_vdisp_w);
|
||||
READ16_HANDLER(mach8_vsync_r);
|
||||
WRITE16_HANDLER(mach8_vsync_w);
|
||||
WRITE16_HANDLER(mach8_linedraw_w);
|
||||
READ16_HANDLER(mach8_ec0_r);
|
||||
WRITE16_HANDLER(mach8_ec0_w);
|
||||
READ16_HANDLER(mach8_ec1_r);
|
||||
|
@ -113,6 +113,7 @@ void isa16_vga_gfxultra_device::device_start()
|
||||
m_isa->install16_device(0xbae8, 0xbaeb, 0, 0, FUNC(s3_foremix_r), FUNC(s3_foremix_w));
|
||||
m_isa->install16_device(0xbee8, 0xbeeb, 0, 0, FUNC(s3_multifunc_r), FUNC(s3_multifunc_w));
|
||||
m_isa->install16_device(0xe2e8, 0xe2eb, 0, 0, FUNC(s3_pixel_xfer_r), FUNC(s3_pixel_xfer_w));
|
||||
m_isa->install16_device(0xfeec, 0xfeef, 0, 0, NULL, NULL, FUNC(mach8_linedraw_w));
|
||||
|
||||
m_isa->install_memory(0xa0000, 0xbffff, 0, 0, FUNC(ati_mem_r), FUNC(ati_mem_w));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user