And another one, which makes more sense like this (nw)

This commit is contained in:
angelosa 2016-07-01 22:31:10 +02:00
parent 7b345599de
commit 094894d9ad

View File

@ -13,8 +13,8 @@
- MBK - MBK
- OBJ 3 - OBJ 3
- LBK - LBK
Anything else doesn't seem to match this scheme, guess it's selectable by TODO: Anything else doesn't match this scheme (most notably Denjin Makai),
PROM, CRTC or COP ... guess it's selectable by PROM, CRTC or COP ...
***************************************************************************/ ***************************************************************************/
@ -294,12 +294,10 @@ VIDEO_START_MEMBER(legionna_state,denjinmk)
m_has_extended_banking = 1; m_has_extended_banking = 1;
m_has_extended_priority = 0; m_has_extended_priority = 0;
m_sprite_pri_mask[0] = 0xfff0; m_sprite_pri_mask[0] = 0xfff0; // normal sprites
m_sprite_pri_mask[1] = 0xfff8; m_sprite_pri_mask[1] = 0xfffc; // luna park horse rides
// TODO: 2 is used by the door at the end of sewers part in level 1, 3 are briefing guy in pre-stage and portraits before a boss fight m_sprite_pri_mask[2] = 0xfffe; // door at the end of sewers part in level 1
// I assume that 3 goes above everything else, and assume that this thing is programmable somehow ... m_sprite_pri_mask[3] = 0x0000; // briefing guy in pre-stage and portraits before a boss fight
m_sprite_pri_mask[2] = 0xfffe;
m_sprite_pri_mask[3] = 0x0000;
// m_background_layer->set_transparent_pen(15); // m_background_layer->set_transparent_pen(15);
m_midground_layer->set_transparent_pen(15); m_midground_layer->set_transparent_pen(15);
@ -420,8 +418,19 @@ void legionna_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap,co
cur_pri = (spriteram16[offs+1] & 0xc000) >> 14; cur_pri = (spriteram16[offs+1] & 0xc000) >> 14;
pri_mask = m_sprite_pri_mask[cur_pri]; pri_mask = m_sprite_pri_mask[cur_pri];
#if 0 #if 0
static UINT8 pri_test;
if(machine().input().code_pressed_once(KEYCODE_A))
pri_test++;
if(machine().input().code_pressed_once(KEYCODE_A))
pri_test--;
pri_test&=3;
popmessage("%02x",pri_test);
// quick and dirty priority tester // quick and dirty priority tester
if(cur_pri == 3) if(cur_pri == pri_test)
{ {
static UINT16 test = 0xffff; static UINT16 test = 0xffff;
@ -451,7 +460,7 @@ void legionna_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap,co
pri_mask = 0xffff & test; pri_mask = 0xffff & test;
data = (data & 0xffc0) | (machine().rand() & 0x3f); data = (data & 0xffc0) | (machine().rand() & 0x3f);
popmessage("%04x %04x %d",pri_mask,test,cur_pri); popmessage("%04x %04x %d",pri_mask,test,pri_test);
//pri_mask = test; //pri_mask = test;
} }
#endif #endif