added layer enable to denjinmk

This commit is contained in:
davidhay 2008-05-02 21:04:43 +00:00
parent d65d5e502a
commit f526625d77
2 changed files with 42 additions and 9 deletions

View File

@ -49,7 +49,7 @@
#include "driver.h"
#include "audio/seibu.h"
#define seibu_cop_log printf
#define seibu_cop_log logerror
UINT16 *cop_mcu_ram;
@ -1645,8 +1645,11 @@ WRITE16_HANDLER( denjinmk_mcu_w )
generic_cop_w(machine, offset, data, mem_mask);
break;
//case (0x05a/2): { /* brightness?? */ break; }
case (0x070/2): { denjinmk_setgfxbank(cop_mcu_ram[offset]); break; }
case (0x21c/2): { legionna_layer_disable = cop_mcu_ram[offset]; break; }
case (0x220/2): { legionna_scrollram16[0] = cop_mcu_ram[offset]; break; }
case (0x222/2): { legionna_scrollram16[1] = cop_mcu_ram[offset]; break; }
case (0x224/2): { legionna_scrollram16[2] = cop_mcu_ram[offset]; break; }
@ -1654,6 +1657,9 @@ WRITE16_HANDLER( denjinmk_mcu_w )
case (0x228/2): { legionna_scrollram16[4] = cop_mcu_ram[offset]; break; }
case (0x22a/2): { legionna_scrollram16[5] = cop_mcu_ram[offset]; break; }
//case (0x280/2): { /* trigger.. something */ break; }
case (0x300/2): { seibu_main_word_w(machine,0,cop_mcu_ram[offset],0x00ff); break; }
case (0x304/2): { seibu_main_word_w(machine,1,cop_mcu_ram[offset],0x00ff); break; }
case (0x310/2): { seibu_main_word_w(machine,4,cop_mcu_ram[offset],0x00ff); break; }

View File

@ -255,13 +255,22 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectan
y = spriteram16[offs+3];
x = spriteram16[offs+2];
/* heated barrel hardware seems to need 0x1ff with 0x100 sign bit for sprite warp,
this doesn't work on denjin makai as the visible area is larger */
/*
x&=0x1ff;
y&=0xfff;
if (x&0x100) x-=0x200;
if (y&0x800) y-=0x1000;
*/
x&=0xfff;
y&=0xfff;
if (x&0x800) x-=0x1000;
if (y&0x800) y-=0x1000;
color = (data &0x3f) + 0x40;
fx = (data &0x4000) >> 14;
fy = (data &0x2000) >> 13;
@ -367,16 +376,34 @@ VIDEO_UPDATE( godzilla )
tilemap_set_scrollx( foreground_layer, 0, legionna_scrollram16[4] );
tilemap_set_scrolly( foreground_layer, 0, legionna_scrollram16[5] );
fillbitmap(bitmap,get_black_pen(screen->machine),cliprect);
fillbitmap(bitmap,0x0200,cliprect);
if (!(legionna_layer_disable&0x0001))
{
tilemap_draw(bitmap,cliprect,background_layer,0,0);
}
draw_sprites(screen->machine,bitmap,cliprect,2);
if (!(legionna_layer_disable&0x0002))
{
tilemap_draw(bitmap,cliprect,midground_layer,0,0);
}
draw_sprites(screen->machine,bitmap,cliprect,1);
if (!(legionna_layer_disable&0x0004))
{
tilemap_draw(bitmap,cliprect,foreground_layer,0,0);
}
draw_sprites(screen->machine,bitmap,cliprect,0);
draw_sprites(screen->machine,bitmap,cliprect,3);
if (!(legionna_layer_disable&0x0008))
{
tilemap_draw(bitmap,cliprect,text_layer,0,0);
}
return 0;
}