From d6e96cae172eb0354bfdea2fe9899e5ca8aa7f1c Mon Sep 17 00:00:00 2001 From: arcadez2003 <51386955+arcadez2003@users.noreply.github.com> Date: Tue, 14 Jul 2020 21:11:32 +0100 Subject: [PATCH] Fix the lights dont go out when shot in Elevator Action II / Returns (#25) with thanks to shmupMAME --- src/vidhrdw/taito_f3.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/vidhrdw/taito_f3.c b/src/vidhrdw/taito_f3.c index 0653ea72b..86ee6e7b5 100644 --- a/src/vidhrdw/taito_f3.c +++ b/src/vidhrdw/taito_f3.c @@ -2007,6 +2007,12 @@ static void get_line_ram_info(tilemap *tmap, int sx, int sy, int pos, UINT32 *f3 line_enable=2; else if(pri&0x8000) //alpha2 line_enable=3; + /* special case when the blend mode is "normal" but the 6200 area is used. Might be missing a flag */ + else if((pri&0x3000) && (f3_line_ram[0x6230/4]!= 0) && (pos == 2) && + (((f3_line_ram[(0x6200/4) + (y>>1)] >> 4) &0xf) != 0xb) && (f3_game == EACTION2)) + { + line_enable=0x22; + } else line_enable=1; @@ -2072,6 +2078,8 @@ static void get_line_ram_info(tilemap *tmap, int sx, int sy, int pos, UINT32 *f3 /* If clipping enabled for this line have to disable 'all opaque' optimisation */ if (line_t->clip0[y]!=0x7fff0000 || line_t->clip1[y]!=0) line_t->alpha_mode[y]&=~0x80; + + if ((pos ==1) && ((((f3_line_ram[(0x6200/4) + (y>>1)]) >> 4) &0xf) > 0xb) && (f3_game == EACTION2)) line_t->alpha_mode[y] = 0x22; /*hack*/ /* set pixmap index */ line_t->x_count[y]=x_index_fx & 0xffff; // Fractional part