Added some better command handling to stop SC4 games from overwriting their attract mode messages with garbage. [James Wallace]

Comment:  Unfortunately MAME's artwork system can't cope with the changes in brightness and flashing, so we just ignore them entirely.
This commit is contained in:
Scott Stone 2012-04-17 23:57:56 +00:00
parent fee0f44df1
commit bcbfc417de

View File

@ -26,8 +26,10 @@ static struct
UINT8 scroll_active, // flag <>0, scrolling active
display_mode, // display scroll mode, 0/1/2/3
display_blanking, // display blanking mode, 0/1/2/3
blank_flag,
flash_rate, // flash rate 0-F
flash_control; // flash control 0/1/2/3
flash_control, // flash control 0/1/2/3
flash_flag;
UINT8 string[18]; // text buffer
UINT32 segments[16], // segments
@ -278,8 +280,25 @@ int BFM_BD1_newdata(int id, int data)
{
case 0x80: // 0x80 - 0x8F Set display blanking
bd1[id].display_blanking = data & 0x0F;
change = 1;
//TODO: Implement this, MAME artwork not mature enough
switch ( data & 0x04 )
{
case 0x00: // blank all
break;
case 0x01: // blank inside window
break;
case 0x02: // blank outside window
break;
case 0x03: // blank entire display
break;
case 0x04: // futaba setup
bd1[id].blank_flag = 1;
break;
}
break;
case 0x90: // 0x90 - 0x9F Set cursor pos
@ -382,7 +401,29 @@ int BFM_BD1_newdata(int id, int data)
default:
change = BD1_setdata(id, BD1charset[data & 0x3F], data);
if (bd1[id].blank_flag || bd1[id].flash_flag)
{
if (bd1[id].blank_flag)
{
bd1[id].display_blanking = data & 0x0F;
change = 1;
bd1[id].blank_flag = 0;
}
if (bd1[id].flash_flag)
{
//not setting yet
bd1[id].blank_flag = 0;
}
}
else
{
if (data > 0x3F)
{
// logerror("Undefined character %x \n", data);
}
change = BD1_setdata(id, BD1charset[data & 0x3F], data);
}
break;
}
return change;
@ -409,6 +450,7 @@ static void ScrollLeft(int id)
static int BD1_setdata(int id, int segdata, int data)
{
int change = 0, move = 0;
switch ( data )