summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author davidhay <davidhay@localhost>2008-05-02 21:04:43 +0000
committer davidhay <davidhay@localhost>2008-05-02 21:04:43 +0000
commitf526625d7752c3b24e79aa416267f14cf8f32250 (patch)
tree07da1c6bc4d4e6403a54e282a405a64f5081f1bd /src
parentd65d5e502a1d3407d5db993f7a64c9c328fb426f (diff)
added layer enable to denjinmk
Diffstat (limited to 'src')
-rw-r--r--src/mame/machine/seicop.c8
-rw-r--r--src/mame/video/legionna.c43
2 files changed, 42 insertions, 9 deletions
diff --git a/src/mame/machine/seicop.c b/src/mame/machine/seicop.c
index 1aaa382d032..066d23e174d 100644
--- a/src/mame/machine/seicop.c
+++ b/src/mame/machine/seicop.c
@@ -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,7 +1645,10 @@ 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; }
@@ -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; }
diff --git a/src/mame/video/legionna.c b/src/mame/video/legionna.c
index bd786bee1ac..ee23cb19347 100644
--- a/src/mame/video/legionna.c
+++ b/src/mame/video/legionna.c
@@ -255,12 +255,21 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectan
y = spriteram16[offs+3];
x = spriteram16[offs+2];
- x&=0xfff;
+ /* 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&0x800) x-=0x1000;
+ 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;
@@ -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);
-
- tilemap_draw(bitmap,cliprect,background_layer,0,0);
+ fillbitmap(bitmap,0x0200,cliprect);
+
+ if (!(legionna_layer_disable&0x0001))
+ {
+ tilemap_draw(bitmap,cliprect,background_layer,0,0);
+ }
+
draw_sprites(screen->machine,bitmap,cliprect,2);
- tilemap_draw(bitmap,cliprect,midground_layer,0,0);
+
+ if (!(legionna_layer_disable&0x0002))
+ {
+ tilemap_draw(bitmap,cliprect,midground_layer,0,0);
+ }
+
draw_sprites(screen->machine,bitmap,cliprect,1);
- tilemap_draw(bitmap,cliprect,foreground_layer,0,0);
+
+ 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);
- tilemap_draw(bitmap,cliprect,text_layer,0,0);
+
+ if (!(legionna_layer_disable&0x0008))
+ {
+ tilemap_draw(bitmap,cliprect,text_layer,0,0);
+ }
return 0;
}