00421: fghthist, fghthsta, fghthstj, fghthstu: Some priority problems in Ryoko's stage. Namely, the old man, the cat and the kid. [Pierpaolo Prazzoli]

This commit is contained in:
Pierpaolo Prazzoli 2009-03-08 22:16:30 +00:00
parent b3e201ba26
commit 3395fccf11
2 changed files with 18 additions and 8 deletions

View File

@ -362,6 +362,8 @@ static WRITE32_HANDLER( fghthist_eeprom_w )
eeprom_set_clock_line((data & 0x20) ? ASSERT_LINE : CLEAR_LINE);
eeprom_write_bit(data & 0x10);
eeprom_set_cs_line((data & 0x40) ? CLEAR_LINE : ASSERT_LINE);
deco32_pri_w(space,0,data&0x1,0xffffffff); /* Bit 0 - layer priority toggle */
}
else if (!ACCESSING_BITS_8_15)
{

View File

@ -296,9 +296,9 @@ static void fghthist_draw_sprites(running_machine* machine, bitmap_t *bitmap, co
colour = (x >>9) & colourmask;
if ((y&0x8000))
pri=8;
pri=1;
else
pri=128;
pri=4;
fx = y & 0x2000;
fy = y & 0x4000;
@ -969,9 +969,9 @@ VIDEO_START( captaven )
VIDEO_START( fghthist )
{
pf1_tilemap = tilemap_create(machine, get_pf1_tile_info, tilemap_scan_rows, 8, 8,64,32);
pf2_tilemap = tilemap_create(machine, get_pf2_tile_info, deco16_scan_rows,16,16,64,32);
pf3_tilemap = tilemap_create(machine, get_pf3_tile_info, deco16_scan_rows,16,16,64,32);
pf4_tilemap = tilemap_create(machine, get_pf4_tile_info, deco16_scan_rows, 16,16,64,32);
pf2_tilemap = tilemap_create(machine, get_pf2_tile_info, deco16_scan_rows, 16,16,64,32);
pf3_tilemap = tilemap_create(machine, get_pf3_tile_info, deco16_scan_rows, 16,16,64,32);
pf4_tilemap = tilemap_create(machine, get_pf4_tile_info, deco16_scan_rows, 16,16,64,32);
pf1a_tilemap =0;
dirty_palette = auto_malloc(4096);
@ -1398,9 +1398,17 @@ VIDEO_UPDATE( fghthist )
deco16_clear_sprite_priority_bitmap();
bitmap_fill(priority_bitmap,cliprect,0);
bitmap_fill(bitmap,cliprect,screen->machine->pens[0x000]); // Palette index not confirmed
tilemap_draw(bitmap,cliprect,pf4_tilemap,0,1);
tilemap_draw(bitmap,cliprect,pf3_tilemap,0,4);
tilemap_draw(bitmap,cliprect,pf2_tilemap,0,16);
tilemap_draw(bitmap,cliprect,pf4_tilemap,0,0);
if(deco32_pri&1)
{
tilemap_draw(bitmap,cliprect,pf2_tilemap,0,0);
tilemap_draw(bitmap,cliprect,pf3_tilemap,0,2);
}
else
{
tilemap_draw(bitmap,cliprect,pf3_tilemap,0,0);
tilemap_draw(bitmap,cliprect,pf2_tilemap,0,2);
}
fghthist_draw_sprites(screen->machine, bitmap, cliprect, buffered_spriteram32,3,0, 0xf);
tilemap_draw(bitmap,cliprect,pf1_tilemap,0,0);
return 0;