summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Yasuhiro Ogawa <wd40yasu@users.noreply.github.com>2010-05-24 15:27:13 +0000
committer Yasuhiro Ogawa <wd40yasu@users.noreply.github.com>2010-05-24 15:27:13 +0000
commite76e60b582606e0b265bfa61a35b7a1ff5f2e0d5 (patch)
treedbdbe277ee793892eb02e895261ff6baef9ef2da
parente82a7bf9260cd8b94788ca9da18d0c5f4810f663 (diff)
further Batsugun fix [CCbGpkYG0]
- text layer priority was wrong for 2-players ending - start of credit roll was wrong
-rw-r--r--src/mame/video/toaplan2.c37
1 files changed, 25 insertions, 12 deletions
diff --git a/src/mame/video/toaplan2.c b/src/mame/video/toaplan2.c
index 6556d4aece4..0cb3b40ec50 100644
--- a/src/mame/video/toaplan2.c
+++ b/src/mame/video/toaplan2.c
@@ -1561,8 +1561,9 @@ VIDEO_UPDATE( dogyuun_1 )
VIDEO_UPDATE( batsugun_1 )
{
int priority;
- static int bg1=0,fg1=0,tp1=0; // Fix
- UINT32 *vramp; // Fix
+ static int bg1=0,fg1=0,tp1=0; // Fix
+ UINT32 *vramp; // Fix
+ static int bg[2]={0,0},fg[2]={0,0},top[2]={0,0}; // Fix
toaplan2_log_vram(screen->machine);
@@ -1574,6 +1575,27 @@ VIDEO_UPDATE( batsugun_1 )
bitmap_fill(bitmap,cliprect,0);
//Fix
+ bg[0]=0;fg[0]=0;top[0]=0;
+ bg[1]=0;fg[1]=0;top[1]=0;
+
+ for (priority = 0; priority < 16; priority++)
+ {
+ if (bg_tile_priority[0][priority]) bg[0]++;
+ if (fg_tile_priority[0][priority]) fg[0]++;
+ if (top_tile_priority[0][priority]) top[0]++;
+ if (bg_tile_priority[1][priority]) bg[1]++;
+ if (fg_tile_priority[1][priority]) fg[1]++;
+ if (top_tile_priority[1][priority]) top[1]++;
+ }
+
+ if( (bg[0]==1 && bg[1]==1 && fg[0]==1 && fg[1]==1 && top[0]==1 && top[1]==1)||
+ (bg[0]==1 && bg[1]==2 && fg[0]==1 && fg[1]==1 && top[0]==1 && top[1]==1)||
+ (bg[0]==1 && bg[1]==2 && fg[0]==1 && fg[1]==2 && top[0]==1 && top[1]==1)){
+ tp1=1;
+ } else {
+ tp1=0;
+ }
+
vramp = (UINT32*)bgvideoram16[1];
if(*(vramp+28)==0x225e027a){
bg1=0;
@@ -1594,15 +1616,6 @@ VIDEO_UPDATE( batsugun_1 )
fg1=3;
}
- vramp = (UINT32*)topvideoram16[1];
- if(*(vramp+28)==0x0000007f){
- tp1=0;
- } else {
- tp1=1;
- }
-
-// popmessage("bg1=%d fg1=%d tp1=%d",bg1,fg1,tp1);
-
for (priority = 0; priority < 16; priority++){
if (top_tile_priority[1][priority] && tp1==1) tilemap_draw(bitmap,cliprect,top_tilemap[1],priority,0); /* 3 */
if (bg_tile_priority[1][priority] && bg1==2) tilemap_draw(bitmap,cliprect,bg_tilemap[1],priority,0); /* 5 */
@@ -1618,9 +1631,9 @@ VIDEO_UPDATE( batsugun_1 )
if (fg_tile_priority[1][priority] && fg1==2) tilemap_draw(bitmap,cliprect,fg_tilemap[1],priority,0); /* 4 */
if (top_tile_priority[1][priority] && tp1==0) tilemap_draw(bitmap,cliprect,top_tilemap[1],priority,0); /* 3 */
if (sprite_priority[1][priority]) draw_sprites(screen->machine,bitmap,cliprect,1,priority,0);
+ if (bg_tile_priority[1][priority] && tp1==1) tilemap_draw(bitmap,cliprect,bg_tilemap[1],priority,0); /* 5 */
}
//Fix END
-
return 0;
}