mirror of
https://github.com/holub/mame
synced 2025-06-23 12:58:37 +03:00
added layer enable to denjinmk
This commit is contained in:
parent
d65d5e502a
commit
f526625d77
@ -49,7 +49,7 @@
|
|||||||
#include "driver.h"
|
#include "driver.h"
|
||||||
#include "audio/seibu.h"
|
#include "audio/seibu.h"
|
||||||
|
|
||||||
#define seibu_cop_log printf
|
#define seibu_cop_log logerror
|
||||||
|
|
||||||
UINT16 *cop_mcu_ram;
|
UINT16 *cop_mcu_ram;
|
||||||
|
|
||||||
@ -1645,8 +1645,11 @@ WRITE16_HANDLER( denjinmk_mcu_w )
|
|||||||
generic_cop_w(machine, offset, data, mem_mask);
|
generic_cop_w(machine, offset, data, mem_mask);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
//case (0x05a/2): { /* brightness?? */ break; }
|
||||||
case (0x070/2): { denjinmk_setgfxbank(cop_mcu_ram[offset]); 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 (0x220/2): { legionna_scrollram16[0] = cop_mcu_ram[offset]; break; }
|
||||||
case (0x222/2): { legionna_scrollram16[1] = 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; }
|
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 (0x228/2): { legionna_scrollram16[4] = cop_mcu_ram[offset]; break; }
|
||||||
case (0x22a/2): { legionna_scrollram16[5] = 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 (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 (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; }
|
case (0x310/2): { seibu_main_word_w(machine,4,cop_mcu_ram[offset],0x00ff); break; }
|
||||||
|
@ -255,13 +255,22 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectan
|
|||||||
y = spriteram16[offs+3];
|
y = spriteram16[offs+3];
|
||||||
x = spriteram16[offs+2];
|
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;
|
x&=0xfff;
|
||||||
y&=0xfff;
|
y&=0xfff;
|
||||||
|
|
||||||
if (x&0x800) x-=0x1000;
|
if (x&0x800) x-=0x1000;
|
||||||
if (y&0x800) y-=0x1000;
|
if (y&0x800) y-=0x1000;
|
||||||
|
|
||||||
|
|
||||||
color = (data &0x3f) + 0x40;
|
color = (data &0x3f) + 0x40;
|
||||||
fx = (data &0x4000) >> 14;
|
fx = (data &0x4000) >> 14;
|
||||||
fy = (data &0x2000) >> 13;
|
fy = (data &0x2000) >> 13;
|
||||||
@ -367,16 +376,34 @@ VIDEO_UPDATE( godzilla )
|
|||||||
tilemap_set_scrollx( foreground_layer, 0, legionna_scrollram16[4] );
|
tilemap_set_scrollx( foreground_layer, 0, legionna_scrollram16[4] );
|
||||||
tilemap_set_scrolly( foreground_layer, 0, legionna_scrollram16[5] );
|
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);
|
tilemap_draw(bitmap,cliprect,background_layer,0,0);
|
||||||
|
}
|
||||||
|
|
||||||
draw_sprites(screen->machine,bitmap,cliprect,2);
|
draw_sprites(screen->machine,bitmap,cliprect,2);
|
||||||
|
|
||||||
|
if (!(legionna_layer_disable&0x0002))
|
||||||
|
{
|
||||||
tilemap_draw(bitmap,cliprect,midground_layer,0,0);
|
tilemap_draw(bitmap,cliprect,midground_layer,0,0);
|
||||||
|
}
|
||||||
|
|
||||||
draw_sprites(screen->machine,bitmap,cliprect,1);
|
draw_sprites(screen->machine,bitmap,cliprect,1);
|
||||||
|
|
||||||
|
if (!(legionna_layer_disable&0x0004))
|
||||||
|
{
|
||||||
tilemap_draw(bitmap,cliprect,foreground_layer,0,0);
|
tilemap_draw(bitmap,cliprect,foreground_layer,0,0);
|
||||||
|
}
|
||||||
|
|
||||||
draw_sprites(screen->machine,bitmap,cliprect,0);
|
draw_sprites(screen->machine,bitmap,cliprect,0);
|
||||||
draw_sprites(screen->machine,bitmap,cliprect,3);
|
draw_sprites(screen->machine,bitmap,cliprect,3);
|
||||||
|
|
||||||
|
if (!(legionna_layer_disable&0x0008))
|
||||||
|
{
|
||||||
tilemap_draw(bitmap,cliprect,text_layer,0,0);
|
tilemap_draw(bitmap,cliprect,text_layer,0,0);
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user