summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author Angelo Salese <angelosa@users.noreply.github.com>2011-08-23 02:37:59 +0000
committer Angelo Salese <angelosa@users.noreply.github.com>2011-08-23 02:37:59 +0000
commitadacaf4eeee85405f89ea45e60bc670fe822e777 (patch)
tree165ef434c571ac7340b7eb3591f5231dc5440cd6 /src
parent479c16a84852bb9be192f9c34794436295c25e16 (diff)
Added another bit to the object RAM, used for screen masking on the sides
Diffstat (limited to 'src')
-rw-r--r--src/mame/drivers/taitojc.c3
-rw-r--r--src/mame/video/taitojc.c29
2 files changed, 27 insertions, 5 deletions
diff --git a/src/mame/drivers/taitojc.c b/src/mame/drivers/taitojc.c
index f21f68810d9..268e7f6e153 100644
--- a/src/mame/drivers/taitojc.c
+++ b/src/mame/drivers/taitojc.c
@@ -341,10 +341,9 @@ Notes:
TODO:
- dendeg intro object RAM usage has various gfx bugs (check video file)
- 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 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?
- Train board (external sound board with OKI6295) is not emulated.
- dangcurv DSP program crashes very soon, so no 3d is currently shown.
diff --git a/src/mame/video/taitojc.c b/src/mame/video/taitojc.c
index 7739e1b6f94..5a0c8952bf0 100644
--- a/src/mame/video/taitojc.c
+++ b/src/mame/video/taitojc.c
@@ -107,8 +107,10 @@ static void draw_object(running_machine &machine, bitmap_t *bitmap, const rectan
UINT32 address;
UINT8 *v;
UINT8 color_depth;
+ UINT8 mask_screen;
color_depth = (w2 & 0x10000) >> 16;
+ mask_screen = (w2 & 0x20000) >> 17;
address = (w2 & 0x7fff) * 0x20;
if (w2 & 0x4000)
@@ -127,6 +129,8 @@ static void draw_object(running_machine &machine, bitmap_t *bitmap, const rectan
palette = ((w2 >> 22) & 0x7f) << 8;
/* TODO: untangle this! */
+ if(address >= 0xff000)
+ v = (UINT8*)&state->m_objlist[(address-0xff000)/4];
if(address >= 0xfc000)
v = (UINT8*)&state->m_char_ram[(address-0xfc000)/4];
else if(address >= 0xf8000)
@@ -177,7 +181,25 @@ static void draw_object(running_machine &machine, bitmap_t *bitmap, const rectan
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++)
{
@@ -216,6 +238,7 @@ static void draw_object(running_machine &machine, bitmap_t *bitmap, const rectan
{
d[i] = palette + pen;
}
+
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 w2 = state->m_objlist[i + 1];
- if(i < 6) // don't try to draw non-video stuff
- return;
+ //if(i < 6) // don't try to draw non-video stuff
+ // return;
if (((w2 & 0x200000) >> 21) == pri)
{