diff options
| author | 2010-05-24 13:02:46 +0000 | |
|---|---|---|
| committer | 2010-05-24 13:02:46 +0000 | |
| commit | e82a7bf9260cd8b94788ca9da18d0c5f4810f663 (patch) | |
| tree | ef505d548ea2b392f2ceb8be104e25b680cd5d7b /src | |
| parent | 37f35e51c1d9bc9695383c23547d75e42e748959 (diff) | |
Batsugun fix [CCbGpkYG0]
- bullets were drawn on top of frame
- garbage layer in stage 1
- 1 crowd layer was missing in stage 2 and 4
- 1 BG layer was missing in stage 5
- part of stage-end boss was not displayed in stage 5
- crowds and credit roll were not displayed in ending demo
Todo:
timing for fade-in of crowd layer and city layer is swapped
Diffstat (limited to 'src')
| -rw-r--r-- | src/mame/video/toaplan2.c | 60 |
1 files changed, 46 insertions, 14 deletions
diff --git a/src/mame/video/toaplan2.c b/src/mame/video/toaplan2.c index 1479d6bd122..6556d4aece4 100644 --- a/src/mame/video/toaplan2.c +++ b/src/mame/video/toaplan2.c @@ -1561,6 +1561,8 @@ VIDEO_UPDATE( dogyuun_1 ) VIDEO_UPDATE( batsugun_1 ) { int priority; + static int bg1=0,fg1=0,tp1=0; // Fix + UINT32 *vramp; // Fix toaplan2_log_vram(screen->machine); @@ -1571,23 +1573,53 @@ VIDEO_UPDATE( batsugun_1 ) bitmap_fill(bitmap,cliprect,0); - for (priority = 0; priority < 16; priority++) - { - if (bg_tile_priority[1][priority]) tilemap_draw(bitmap,cliprect,bg_tilemap[1],priority,0);/* 2 */ - if (bg_tile_priority[0][priority]) tilemap_draw(bitmap,cliprect,bg_tilemap[0],priority,0); - if (fg_tile_priority[0][priority]) tilemap_draw(bitmap,cliprect,fg_tilemap[0],priority,0); - if (fg_tile_priority[1][priority]) tilemap_draw(bitmap,cliprect,fg_tilemap[1],priority,0); - if (top_tile_priority[0][priority]) tilemap_draw(bitmap,cliprect,top_tilemap[0],priority,0); - if (sprite_priority[0][priority]) - draw_sprites(screen->machine,bitmap,cliprect,0,priority,0); +//Fix + vramp = (UINT32*)bgvideoram16[1]; + if(*(vramp+28)==0x225e027a){ + bg1=0; + fg1=1; + } else if(*(vramp+28)==0x0aa50060){ + bg1=2; + fg1=1; + } else if(*(vramp+28)==0x02040032){ + bg1=1; + fg1=2; + } else { + bg1=1; + fg1=1; } - for (priority = 0; priority < 16; priority++) - { - if (top_tile_priority[1][priority]) tilemap_draw(bitmap,cliprect,top_tilemap[1],priority,0); - if (sprite_priority[1][priority]) - draw_sprites(screen->machine,bitmap,cliprect,1,priority,0); + vramp = (UINT32*)fgvideoram16[1]; + if(*vramp==0x09cb006d||*vramp==0x09ab006d||*vramp==0x01c4006e){ + 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 */ + if (fg_tile_priority[1][priority] && fg1==3) tilemap_draw(bitmap,cliprect,fg_tilemap[1],priority,0); /* 4 */ + if (bg_tile_priority[0][priority]) tilemap_draw(bitmap,cliprect,bg_tilemap[0],priority,0); /* 2 */ + if (fg_tile_priority[0][priority]) tilemap_draw(bitmap,cliprect,fg_tilemap[0],priority,0); /* 1 */ + if (bg_tile_priority[1][priority] && bg1==1) tilemap_draw(bitmap,cliprect,bg_tilemap[1],priority,0); /* 5 */ + if (fg_tile_priority[1][priority] && fg1==1) tilemap_draw(bitmap,cliprect,fg_tilemap[1],priority,0); /* 4 */ + if (top_tile_priority[0][priority]) tilemap_draw(bitmap,cliprect,top_tilemap[0],priority,0); /* 0 */ + if (sprite_priority[0][priority]) draw_sprites(screen->machine,bitmap,cliprect,0,priority,0); + } + for (priority = 0; priority < 16; priority++){ + 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); } +//Fix END return 0; } |
