tvi990: WIP (nw)

This commit is contained in:
cracyc 2016-07-24 19:43:11 -05:00
parent aaa98beff2
commit f0dad1a258

View File

@ -173,23 +173,27 @@ UINT32 tv990_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, c
UINT8 *fontptr; UINT8 *fontptr;
int miny = cliprect.min_y / 16; int miny = cliprect.min_y / 16;
int maxy = cliprect.max_y / 16; int maxy = cliprect.max_y / 16;
int minx = cliprect.min_x / 16;
int maxx = cliprect.max_x / 16;
for (y = miny; y <= maxy; y++) for (y = miny; y <= maxy; y++)
{ {
// this isn't exactly right. // this isn't exactly right.
int i; int i, minx, maxx;
for(i = 0x50; i < 0x68; i++) for(i = 0; i < 8; i++)
{ {
if(tvi1111_regs[i] != 0x1ad5) if(tvi1111_regs[i + 0x50] == 0x1ad5)
break; continue;
}
curchar = &vram[tvi1111_regs[i]];
curchar = &vram[tvi1111_regs[i + 0x50]];
minx = tvi1111_regs[i + 0x30] >> 8;
maxx = tvi1111_regs[i + 0x30] & 0xff;
if(maxx > 79)
maxx = 79;
for (x = minx; x <= maxx; x++) for (x = minx; x <= maxx; x++)
{ {
fontptr = (UINT8 *)&fontram[(((curchar[x]>>8) & 0xff) + (curchar[x] & 0x40 ? 256 : 0)) * 64]; UINT8 chr = curchar[x - minx] >> 8;
UINT8 attr = curchar[x - minx] & 0xff;
fontptr = (UINT8 *)&fontram[(chr + (attr & 0x40 ? 256 : 0)) * 64];
for (int chary = 0; chary < 16; chary++) for (int chary = 0; chary < 16; chary++)
{ {
@ -197,13 +201,13 @@ UINT32 tv990_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, c
pixels = *fontptr++; pixels = *fontptr++;
pixels2 = *fontptr++; pixels2 = *fontptr++;
if((curchar[x] & 0x8) && (chary == 15)) if((attr & 0x8) && (chary == 15))
{ {
pixels = 0xff; pixels = 0xff;
pixels2 = 0xff; pixels2 = 0xff;
} }
if (curchar[x] & 0x4) // inverse video? if (attr & 0x4) // inverse video?
{ {
*scanline++ = invpalette[(pixels>>7)&1]; *scanline++ = invpalette[(pixels>>7)&1];
*scanline++ = invpalette[(pixels2>>7)&1]; *scanline++ = invpalette[(pixels2>>7)&1];
@ -244,6 +248,7 @@ UINT32 tv990_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, c
} }
} }
} }
}
return 0; return 0;
} }