legionna.cpp: fixed Denjin Makai background pen colors [Angelo Salese]

This commit is contained in:
angelosa 2017-09-24 16:10:09 +02:00
parent 6a55bf8d6c
commit d448c9b049
3 changed files with 17 additions and 15 deletions

View File

@ -2535,7 +2535,7 @@ GAME( 1992, heatbrle, heatbrl, heatbrl, heatbrl, legionna_state, 0, R
GAME( 1993, godzilla, 0, godzilla, godzilla, legionna_state, 0, ROT0, "Banpresto", "Godzilla (Japan)", 0 )
GAME( 1993, grainbow, 0, grainbow, grainbow, legionna_state, 0, ROT0, "Banpresto", "SD Gundam Sangokushi Rainbow Tairiku Senki", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING )
GAME( 1993, denjinmk, 0, denjinmk, denjinmk, legionna_state, 0, ROT0, "Winkysoft (Banpresto license)", "Denjin Makai", MACHINE_IMPERFECT_COLORS )
GAME( 1993, denjinmk, 0, denjinmk, denjinmk, legionna_state, 0, ROT0, "Winkysoft (Banpresto license)", "Denjin Makai", 0 )
GAME( 1992, cupsoc, 0, cupsoc, cupsoc, legionna_state, cupsoc, ROT0, "Seibu Kaihatsu", "Seibu Cup Soccer (set 1)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING )
GAME( 1992, cupsoca, cupsoc, cupsoc, cupsoc, legionna_state, cupsoc, ROT0, "Seibu Kaihatsu", "Seibu Cup Soccer (set 2)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING )

View File

@ -49,7 +49,7 @@ void raiden2cop_device::dma_palette_brightness()
src = (cop_dma_src[cop_dma_mode] << 6);
dst = (cop_dma_dst[cop_dma_mode] << 6);
size = ((cop_dma_size[cop_dma_mode] << 5) - (cop_dma_dst[cop_dma_mode] << 6) + 0x20) / 2;
for (i = 0; i < size; i++)
{
uint16_t pal_val;
@ -94,11 +94,12 @@ void raiden2cop_device::dma_palette_brightness()
g = (paldata & 0x03e0) >> 5;
rt = (targetpaldata & 0x001f) >> 0;
r = (paldata & 0x001f) >> 0;
// TODO: presumably any brightness value that isn't 0x0000-0x000f has no effect here
if (pal_brightness_val == 0x10)
pal_val = bt << 10 | gt << 5 | rt << 0;
else if (pal_brightness_val == 0xff) // TODO: might be the back plane or it still doesn't do any mod, needs PCB tests
pal_val = 0;
else if (pal_brightness_val == 0xffff) // level transitions
pal_val = bt << 10 | gt << 5 | rt << 0;
else
{
bt = fade_table(bt << 5 | ((pal_brightness_val * 2) ^ 0));

View File

@ -308,7 +308,7 @@ VIDEO_START_MEMBER(legionna_state,denjinmk)
m_sprite_pri_mask[2] = 0xfffe; // door at the end of sewers part in level 1
m_sprite_pri_mask[3] = 0x0000; // briefing guy in pre-stage and portraits before a boss fight
// m_background_layer->set_transparent_pen(15);
m_background_layer->set_transparent_pen(15);
m_midground_layer->set_transparent_pen(15);
m_foreground_layer->set_transparent_pen(15);
m_text_layer->set_transparent_pen(7);//?
@ -582,8 +582,8 @@ uint32_t legionna_state::screen_update_legionna(screen_device &screen, bitmap_in
if (!(m_layer_disable&0x0010))
draw_sprites(screen,bitmap,cliprect);
if (machine().input().code_pressed_once(KEYCODE_Z))
if (m_raiden2cop) m_raiden2cop->dump_table();
//if (machine().input().code_pressed_once(KEYCODE_Z))
// if (m_raiden2cop) m_raiden2cop->dump_table();
return 0;
}
@ -603,8 +603,8 @@ uint32_t legionna_state::screen_update_heatbrl(screen_device &screen, bitmap_ind
if (!(m_layer_disable&0x0010))
draw_sprites(screen,bitmap,cliprect);
if (machine().input().code_pressed_once(KEYCODE_Z))
if (m_raiden2cop) m_raiden2cop->dump_table();
//if (machine().input().code_pressed_once(KEYCODE_Z))
// if (m_raiden2cop) m_raiden2cop->dump_table();
return 0;
}
@ -612,8 +612,9 @@ uint32_t legionna_state::screen_update_heatbrl(screen_device &screen, bitmap_ind
uint32_t legionna_state::screen_update_godzilla(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
bitmap.fill(0x0200, cliprect);
screen.priority().fill(0, cliprect);
// matches PCB recording for Denjin Makai, settable thru CRTC?
bitmap.fill(0xff, cliprect);
if (!(m_layer_disable&0x0001)) m_background_layer->draw(screen, bitmap, cliprect, 0, 0);
if (!(m_layer_disable&0x0002)) m_midground_layer->draw(screen, bitmap, cliprect, 0, 1);
@ -623,8 +624,8 @@ uint32_t legionna_state::screen_update_godzilla(screen_device &screen, bitmap_in
if (!(m_layer_disable&0x0010))
draw_sprites(screen,bitmap,cliprect);
if (machine().input().code_pressed_once(KEYCODE_Z))
if (m_raiden2cop) m_raiden2cop->dump_table();
//if (machine().input().code_pressed_once(KEYCODE_Z))
// if (m_raiden2cop) m_raiden2cop->dump_table();
return 0;
@ -650,8 +651,8 @@ uint32_t legionna_state::screen_update_grainbow(screen_device &screen, bitmap_in
if (!(m_layer_disable&0x0010))
draw_sprites(screen,bitmap,cliprect);
if (machine().input().code_pressed_once(KEYCODE_Z))
if (m_raiden2cop) m_raiden2cop->dump_table();
//if (machine().input().code_pressed_once(KEYCODE_Z))
// if (m_raiden2cop) m_raiden2cop->dump_table();
return 0;
}