violent storm: fix fading, fireworks @ end of st.2

This commit is contained in:
dinkc64 2024-02-10 09:14:36 -05:00
parent 887a17d207
commit 7b99e99bc0
3 changed files with 11 additions and 5 deletions

View File

@ -2272,12 +2272,13 @@ static INT32 ViostormInit()
K056832SetLayerOffsets(2, 2+1, 0);
K056832SetLayerOffsets(3, 3+1, 0);
K053247Init(DrvGfxROM1, DrvGfxROMExp1, 0x7fffff, metamrph_sprite_callback, 3);
K053247Init(DrvGfxROM1, DrvGfxROMExp1, 0x7fffff, metamrph_sprite_callback, 1);
K053247SetSpriteOffset(-62-40, -23-16);
K053250Init(0, DrvGfxROM2, DrvGfxROMExp2, 1); // doesn't exist on this hardware
konamigx_mixer_init(0);
konamigx_mixer_primode(0xf);
SekInit(0, 0x68000);
SekOpen(0);
@ -2863,7 +2864,7 @@ static INT32 DrvDraw()
sprite_colorbase = K055555GetPaletteIndex(4)<<5;
}
if (nGame == 2 || nGame == 3) { // viostorm / metamrph
if (nGame == 2 || nGame == 3) { // metamrph / viostorm
sub_flags = GXSUB_K053250 | GXSUB_4BPP;
sprite_colorbase = K055555GetPaletteIndex(4)<<4;
}

View File

@ -1028,7 +1028,7 @@ void zdrawgfxzoom32GP(UINT32 code, UINT32 color, INT32 flipx, INT32 flipy, INT32
if (highlight_enable) {
dst_ptr[ecx] = highlight_blend(dst_ptr[ecx]);
} else {
dst_ptr[ecx] = shadow_blend(dst_ptr[ecx], highlight_enable); //shd_base[pix.as_rgb15()];
dst_ptr[ecx] = shadow_blend(dst_ptr[ecx], shadow_bank); //shd_base[pix.as_rgb15()];
}
}
while (++ecx);

View File

@ -121,8 +121,8 @@ void konamigx_mixer_exit()
void konamigx_scan(INT32 nAction)
{
if (nAction & ACB_MEMORY_RAM) {
ScanVar(gx_shdzbuf, 512 * 256 * 2, "gx shd z buf");
ScanVar(gx_objzbuf, 512 * 256 * 2, "gx obj z buf");
// ScanVar(gx_shdzbuf, 512 * 256 * 2, "gx shd z buf"); UNNECESSARY
// ScanVar(gx_objzbuf, 512 * 256 * 2, "gx obj z buf"); "" -dink
if (m_gx_objdma && gx_spriteram) {
ScanVar(gx_spriteram, 0x1000, "gx spriteram");
}
@ -651,6 +651,11 @@ void konamigx_mixer(INT32 sub1 /*extra tilemap 1*/, INT32 sub1flags, INT32 sub2
switch (m_gx_primode & 0xf)
{
case 0xf:
// viostorm bad shadow grid st.2 fireworks (right side of screen)
if (code == 0xe140 && shdpri[0x02] == 0x28) continue;
break;
// Dadandarn zcode suppression
case 1:
zcode = 0;