Fixed Densya de Go 2 / 2 Ex crash when entering into gameplay, game is now playable

This commit is contained in:
Angelo Salese 2011-08-22 19:12:50 +00:00
parent 591159cfd9
commit 1af7f88ba7
2 changed files with 13 additions and 5 deletions

View File

@ -344,8 +344,8 @@ Notes:
- dendeg doesn't show credit display - dendeg doesn't show credit display
- 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?)
- dendeg2/dendeg2x usually crashes when starting the game (lots of read and writes to invalid addresses).
- All dendeg games have random wrong textures/palettes. (can't see any ... -AS) - 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. - 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.
- add idle skips if possible - add idle skips if possible
@ -1902,8 +1902,8 @@ ROM_END
GAME( 1996, dendeg, 0, taitojc, dendeg, taitojc, ROT0, "Taito", "Densya De Go (Japan)", GAME_IMPERFECT_GRAPHICS ) GAME( 1996, dendeg, 0, taitojc, dendeg, taitojc, ROT0, "Taito", "Densya De Go (Japan)", GAME_IMPERFECT_GRAPHICS )
GAME( 1996, dendegx, dendeg, taitojc, dendeg, taitojc, ROT0, "Taito", "Densya De Go Ex (Japan)", GAME_IMPERFECT_GRAPHICS ) GAME( 1996, dendegx, dendeg, taitojc, dendeg, taitojc, ROT0, "Taito", "Densya De Go Ex (Japan)", GAME_IMPERFECT_GRAPHICS )
GAME( 1998, dendeg2, 0, taitojc, dendeg, taitojc, ROT0, "Taito", "Densya De Go 2 (Japan)", GAME_NOT_WORKING ) GAME( 1998, dendeg2, 0, taitojc, dendeg, taitojc, ROT0, "Taito", "Densya De Go 2 (Japan)", GAME_IMPERFECT_GRAPHICS )
GAME( 1998, dendeg2x, dendeg2, taitojc, dendeg, taitojc, ROT0, "Taito", "Densya De Go 2 Ex (Japan)", GAME_NOT_WORKING ) GAME( 1998, dendeg2x, dendeg2, taitojc, dendeg, taitojc, ROT0, "Taito", "Densya De Go 2 Ex (Japan)", GAME_IMPERFECT_GRAPHICS )
GAME( 1996, sidebs, 0, taitojc, sidebs, taitojc, ROT0, "Taito", "Side By Side (Japan)", GAME_IMPERFECT_GRAPHICS ) GAME( 1996, sidebs, 0, taitojc, sidebs, taitojc, ROT0, "Taito", "Side By Side (Japan)", GAME_IMPERFECT_GRAPHICS )
GAME( 1997, sidebs2, 0, taitojc, sidebs, taitojc, ROT0, "Taito", "Side By Side 2 (North/South America)", GAME_IMPERFECT_GRAPHICS ) GAME( 1997, sidebs2, 0, taitojc, sidebs, taitojc, ROT0, "Taito", "Side By Side 2 (North/South America)", GAME_IMPERFECT_GRAPHICS )
GAME( 1997, sidebs2j, sidebs2, taitojc, sidebs, taitojc, ROT0, "Taito", "Side By Side 2 (Japan)", GAME_IMPERFECT_GRAPHICS ) GAME( 1997, sidebs2j, sidebs2, taitojc, sidebs, taitojc, ROT0, "Taito", "Side By Side 2 (Japan)", GAME_IMPERFECT_GRAPHICS )

View File

@ -167,7 +167,7 @@ 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 2X "credit text", 4bpp if(!color_depth) // Densya de Go 2/2X "credit text", 4bpp
{ {
for (j=y1; j < y2; j++) for (j=y1; j < y2; j++)
{ {
@ -355,9 +355,17 @@ static void render_solid_scan(void *dest, INT32 scanline, const poly_extent *ext
int color = extent->param[1].start; int color = extent->param[1].start;
float dz = extent->param[0].dpdx; float dz = extent->param[0].dpdx;
UINT16 *fb = BITMAP_ADDR16(destmap, scanline, 0); UINT16 *fb = BITMAP_ADDR16(destmap, scanline, 0);
UINT16 *zb = BITMAP_ADDR16(extra->zbuffer, scanline, 0); UINT16 *zb;// = BITMAP_ADDR16(extra->zbuffer, scanline, 0);
int x; int x;
// avoid crash in dendeg2
if (!extra->zbuffer)
{
return;
}
zb = BITMAP_ADDR16(extra->zbuffer, scanline, 0);
for (x = extent->startx; x < extent->stopx; x++) for (x = extent->startx; x < extent->stopx; x++)
{ {
int iz = (int)z & 0xffff; int iz = (int)z & 0xffff;