summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/video/dassault.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/video/dassault.cpp')
-rw-r--r--src/mame/video/dassault.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/mame/video/dassault.cpp b/src/mame/video/dassault.cpp
index 79be65a70ed..208a87870ab 100644
--- a/src/mame/video/dassault.cpp
+++ b/src/mame/video/dassault.cpp
@@ -23,8 +23,10 @@
void dassault_state::video_start()
{
+ m_priority = 0;
m_sprgen1->alloc_sprite_bitmap();
m_sprgen2->alloc_sprite_bitmap();
+ save_item(NAME(m_priority));
}
void dassault_state::mixdassaultlayer(bitmap_rgb32 &bitmap, bitmap_ind16* sprite_bitmap, const rectangle &cliprect, uint16_t pri, uint16_t primask, uint16_t penbase, uint8_t alpha)
@@ -54,7 +56,12 @@ void dassault_state::mixdassaultlayer(bitmap_rgb32 &bitmap, bitmap_ind16* sprite
if (alpha!=0xff)
{
- if (pix&0x600)
+ if (pix&0x400) // TODO, Additive/Subtractive Blending?
+ {
+ uint32_t base = dstline[x];
+ dstline[x] = alpha_blend_r32(base, paldata[pen+penbase], alpha);
+ }
+ else if (pix&0x200)
{
uint32_t base = dstline[x];
dstline[x] = alpha_blend_r32(base, paldata[pen+penbase], alpha);
@@ -78,7 +85,7 @@ uint32_t dassault_state::screen_update_dassault(screen_device &screen, bitmap_rg
{
address_space &space = machine().dummy_space();
uint16_t flip = m_deco_tilegen1->pf_control_r(space, 0, 0xffff);
- uint16_t priority = m_decocomn->priority_r();
+ uint16_t priority = m_priority;
m_sprgen2->draw_sprites(bitmap, cliprect, m_spriteram2->buffer(), 0x400, false);
m_sprgen1->draw_sprites(bitmap, cliprect, m_spriteram->buffer(), 0x400, false);