mirror of
https://github.com/holub/mame
synced 2025-05-18 19:49:35 +03:00
Added another bit to the object RAM, used for screen masking on the sides
This commit is contained in:
parent
479c16a848
commit
adacaf4eee
@ -341,10 +341,9 @@ Notes:
|
|||||||
TODO:
|
TODO:
|
||||||
- dendeg intro object RAM usage has various gfx bugs (check video file)
|
- dendeg intro object RAM usage has various gfx bugs (check video file)
|
||||||
- dendeg title screen builds up and it shouldn't
|
- dendeg title screen builds up and it shouldn't
|
||||||
- dendeg/dendeg2 doesn't show the odometer;
|
- dendeg/dendeg2 doesn't show the odometer (btanb, thanks ANY);
|
||||||
- landgear has some weird crashes (after playing one round, after a couple of loops in attract mode) (needs testing -AS)
|
- landgear has some weird crashes (after playing one round, after a couple of loops in attract mode) (needs testing -AS)
|
||||||
- landgear has huge 3d problems on gameplay (CPU comms?)
|
- landgear has huge 3d problems on gameplay (CPU comms?)
|
||||||
- All dendeg games have random wrong textures/palettes. (can't see any ... -AS)
|
|
||||||
- dendeg2 shows a debug string during gameplay?
|
- dendeg2 shows a debug string during gameplay?
|
||||||
- Train board (external sound board with OKI6295) is not emulated.
|
- Train board (external sound board with OKI6295) is not emulated.
|
||||||
- dangcurv DSP program crashes very soon, so no 3d is currently shown.
|
- dangcurv DSP program crashes very soon, so no 3d is currently shown.
|
||||||
|
@ -107,8 +107,10 @@ static void draw_object(running_machine &machine, bitmap_t *bitmap, const rectan
|
|||||||
UINT32 address;
|
UINT32 address;
|
||||||
UINT8 *v;
|
UINT8 *v;
|
||||||
UINT8 color_depth;
|
UINT8 color_depth;
|
||||||
|
UINT8 mask_screen;
|
||||||
|
|
||||||
color_depth = (w2 & 0x10000) >> 16;
|
color_depth = (w2 & 0x10000) >> 16;
|
||||||
|
mask_screen = (w2 & 0x20000) >> 17;
|
||||||
|
|
||||||
address = (w2 & 0x7fff) * 0x20;
|
address = (w2 & 0x7fff) * 0x20;
|
||||||
if (w2 & 0x4000)
|
if (w2 & 0x4000)
|
||||||
@ -127,6 +129,8 @@ static void draw_object(running_machine &machine, bitmap_t *bitmap, const rectan
|
|||||||
palette = ((w2 >> 22) & 0x7f) << 8;
|
palette = ((w2 >> 22) & 0x7f) << 8;
|
||||||
|
|
||||||
/* TODO: untangle this! */
|
/* TODO: untangle this! */
|
||||||
|
if(address >= 0xff000)
|
||||||
|
v = (UINT8*)&state->m_objlist[(address-0xff000)/4];
|
||||||
if(address >= 0xfc000)
|
if(address >= 0xfc000)
|
||||||
v = (UINT8*)&state->m_char_ram[(address-0xfc000)/4];
|
v = (UINT8*)&state->m_char_ram[(address-0xfc000)/4];
|
||||||
else if(address >= 0xf8000)
|
else if(address >= 0xf8000)
|
||||||
@ -177,7 +181,25 @@ static void draw_object(running_machine &machine, bitmap_t *bitmap, const rectan
|
|||||||
y2 = cliprect->max_y;
|
y2 = cliprect->max_y;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!color_depth) // Densya de Go 2/2X "credit text", 4bpp
|
/* this bit seems to set up border at left/right of screen (reads at 0xffc00) */
|
||||||
|
if(mask_screen)
|
||||||
|
{
|
||||||
|
for (j=y1; j < y2; j++)
|
||||||
|
{
|
||||||
|
UINT16 *d = BITMAP_ADDR16(bitmap, j, 0);
|
||||||
|
//int index = (iy * (width / 8)) + ix;
|
||||||
|
|
||||||
|
for (i=x1; i < x2; i++)
|
||||||
|
{
|
||||||
|
d[i] = v[0];
|
||||||
|
|
||||||
|
//index++;
|
||||||
|
}
|
||||||
|
|
||||||
|
//iy++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(!color_depth) // Densya de Go 2/2X "credit text", 4bpp
|
||||||
{
|
{
|
||||||
for (j=y1; j < y2; j++)
|
for (j=y1; j < y2; j++)
|
||||||
{
|
{
|
||||||
@ -216,6 +238,7 @@ static void draw_object(running_machine &machine, bitmap_t *bitmap, const rectan
|
|||||||
{
|
{
|
||||||
d[i] = palette + pen;
|
d[i] = palette + pen;
|
||||||
}
|
}
|
||||||
|
|
||||||
index++;
|
index++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -277,8 +300,8 @@ static void draw_object_bank(running_machine &machine, bitmap_t *bitmap, const r
|
|||||||
UINT32 w1 = state->m_objlist[i + 0];
|
UINT32 w1 = state->m_objlist[i + 0];
|
||||||
UINT32 w2 = state->m_objlist[i + 1];
|
UINT32 w2 = state->m_objlist[i + 1];
|
||||||
|
|
||||||
if(i < 6) // don't try to draw non-video stuff
|
//if(i < 6) // don't try to draw non-video stuff
|
||||||
return;
|
// return;
|
||||||
|
|
||||||
if (((w2 & 0x200000) >> 21) == pri)
|
if (((w2 & 0x200000) >> 21) == pri)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user