mirror of
https://github.com/holub/mame
synced 2025-06-20 03:06:39 +03:00
FIREBIRD - fixed display
This commit is contained in:
parent
e2ed049052
commit
ecbcb5faf3
@ -6,8 +6,12 @@
|
|||||||
Schematic and PinMAME used as references
|
Schematic and PinMAME used as references
|
||||||
|
|
||||||
Everything in this machine is controlled by a serial bus based on the
|
Everything in this machine is controlled by a serial bus based on the
|
||||||
processor's CRU pins (serial i/o). It needs a T.I. specialist to get this
|
processor's CRU pins (serial i/o).
|
||||||
working.
|
|
||||||
|
ToDo:
|
||||||
|
- Inputs (i have no idea how CRU inputs work)
|
||||||
|
- Mechanical sounds
|
||||||
|
- Further testing, etc
|
||||||
|
|
||||||
*********************************************************************************/
|
*********************************************************************************/
|
||||||
|
|
||||||
@ -39,8 +43,6 @@ protected:
|
|||||||
private:
|
private:
|
||||||
UINT8 m_cru_data[9];
|
UINT8 m_cru_data[9];
|
||||||
UINT8 m_cru_count;
|
UINT8 m_cru_count;
|
||||||
public:
|
|
||||||
DECLARE_DRIVER_INIT(nsm);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -62,7 +64,7 @@ static ADDRESS_MAP_START( nsm_io_map, AS_IO, 8, nsm_state )
|
|||||||
AM_RANGE(0x0040, 0x0041) AM_READ(ff_r) // service plug
|
AM_RANGE(0x0040, 0x0041) AM_READ(ff_r) // service plug
|
||||||
AM_RANGE(0x0050, 0x0051) AM_READ(ff_r) // test of internal battery
|
AM_RANGE(0x0050, 0x0051) AM_READ(ff_r) // test of internal battery
|
||||||
AM_RANGE(0x0060, 0x0061) AM_READ(ff_r) // sum of analog outputs of ay2
|
AM_RANGE(0x0060, 0x0061) AM_READ(ff_r) // sum of analog outputs of ay2
|
||||||
AM_RANGE(0x0070, 0x0071) AM_READNOP // serial data in
|
//AM_RANGE(0x0070, 0x0071) AM_READNOP // serial data in
|
||||||
AM_RANGE(0x0f70, 0x0f7d) AM_WRITENOP
|
AM_RANGE(0x0f70, 0x0f7d) AM_WRITENOP
|
||||||
AM_RANGE(0x0fe4, 0x0fff) AM_READNOP
|
AM_RANGE(0x0fe4, 0x0fff) AM_READNOP
|
||||||
AM_RANGE(0x7fb0, 0x7fbf) AM_WRITE(cru_w)
|
AM_RANGE(0x7fb0, 0x7fbf) AM_WRITE(cru_w)
|
||||||
@ -76,24 +78,25 @@ READ8_MEMBER( nsm_state::ff_r ) { return 1; }
|
|||||||
|
|
||||||
WRITE8_MEMBER( nsm_state::oe_w )
|
WRITE8_MEMBER( nsm_state::oe_w )
|
||||||
{
|
{
|
||||||
m_cru_count = 0;
|
m_cru_count = 9;
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE8_MEMBER( nsm_state::cru_w )
|
WRITE8_MEMBER( nsm_state::cru_w )
|
||||||
{
|
{
|
||||||
|
offset &= 7;
|
||||||
|
if (!offset)
|
||||||
|
{
|
||||||
|
m_cru_count--;
|
||||||
|
m_cru_data[m_cru_count] = 0;
|
||||||
|
}
|
||||||
|
m_cru_data[m_cru_count] |= (data << offset);
|
||||||
|
|
||||||
UINT8 i,j;
|
UINT8 i,j;
|
||||||
int segments;
|
int segments;
|
||||||
for (i = 1; i < 9;i++)
|
if (!m_cru_count && (offset == 7))
|
||||||
m_cru_data[i] = (m_cru_data[i] >> 1) | (BIT(m_cru_data[i-1], 0) ? 0x80 : 0);
|
|
||||||
|
|
||||||
m_cru_data[0] = (m_cru_data[0] >> 1) | (BIT(data, 0) ? 0x80 : 0);
|
|
||||||
|
|
||||||
m_cru_count++;
|
|
||||||
|
|
||||||
if (m_cru_count == 72)
|
|
||||||
{
|
{
|
||||||
m_cru_count = 0;
|
m_cru_count = 9;
|
||||||
//for (i = 0; i < 8; i++) printf("%02X ",m_cru_data[i]);printf("\n");
|
//for (i = 0; i < 9; i++) printf("%02X ",m_cru_data[i]);printf("\n");
|
||||||
for (i = 0; i < 8; i++)
|
for (i = 0; i < 8; i++)
|
||||||
{
|
{
|
||||||
if (BIT(m_cru_data[0], i))
|
if (BIT(m_cru_data[0], i))
|
||||||
@ -101,7 +104,7 @@ WRITE8_MEMBER( nsm_state::cru_w )
|
|||||||
for (j = 0; j < 5; j++)
|
for (j = 0; j < 5; j++)
|
||||||
{
|
{
|
||||||
segments = m_cru_data[8-j]^0xff;
|
segments = m_cru_data[8-j]^0xff;
|
||||||
output_set_digit_value(j * 10 + i, BITSWAP16(segments, 8, 8, 8, 8, 8, 8, 7, 7, 6, 6, 5, 4, 3, 2, 1, 0));
|
output_set_digit_value(j * 10 + i, BITSWAP16(segments, 8, 8, 8, 8, 8, 8, 0, 0, 1, 1, 2, 3, 4, 5, 6, 7));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -109,16 +112,10 @@ WRITE8_MEMBER( nsm_state::cru_w )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void nsm_state::machine_reset()
|
void nsm_state::machine_reset()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
DRIVER_INIT_MEMBER(nsm_state,nsm)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
static MACHINE_CONFIG_START( nsm, nsm_state )
|
static MACHINE_CONFIG_START( nsm, nsm_state )
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
MCFG_CPU_ADD("maincpu", TMS9995L, 11052000)
|
MCFG_CPU_ADD("maincpu", TMS9995L, 11052000)
|
||||||
@ -158,4 +155,4 @@ ROM_END
|
|||||||
/ The Games (1985)
|
/ The Games (1985)
|
||||||
/-------------------------------------------------------------------*/
|
/-------------------------------------------------------------------*/
|
||||||
|
|
||||||
GAME(1985, firebird, 0, nsm, nsm, nsm_state, nsm, ROT0, "NSM", "Hot Fire Birds", GAME_NOT_WORKING | GAME_MECHANICAL)
|
GAME(1985, firebird, 0, nsm, nsm, driver_device, 0, ROT0, "NSM", "Hot Fire Birds", GAME_NOT_WORKING | GAME_MECHANICAL)
|
||||||
|
@ -27,144 +27,144 @@
|
|||||||
|
|
||||||
<!-- Background -->
|
<!-- Background -->
|
||||||
<backdrop element="background">
|
<backdrop element="background">
|
||||||
<bounds left="0" top="20" right="318" bottom="394" />
|
<bounds left="0" top="20" right="362" bottom="394" />
|
||||||
</backdrop>
|
</backdrop>
|
||||||
|
|
||||||
<!-- Flourescent Displays -->
|
<!-- Flourescent Displays -->
|
||||||
|
|
||||||
<!-- Player 1 Score -->
|
<!-- Player 1 Score -->
|
||||||
|
|
||||||
<bezel name="digit10" element="digit">
|
<bezel name="digit47" element="digit">
|
||||||
<bounds left="10" top="45" right="44" bottom="84" />
|
<bounds left="10" top="45" right="44" bottom="84" />
|
||||||
</bezel>
|
</bezel>
|
||||||
<bezel name="digit11" element="digit">
|
<bezel name="digit46" element="digit">
|
||||||
<bounds left="54" top="45" right="88" bottom="84" />
|
<bounds left="54" top="45" right="88" bottom="84" />
|
||||||
</bezel>
|
</bezel>
|
||||||
<bezel name="digit12" element="digit">
|
<bezel name="digit45" element="digit">
|
||||||
<bounds left="98" top="45" right="132" bottom="84" />
|
<bounds left="98" top="45" right="132" bottom="84" />
|
||||||
</bezel>
|
</bezel>
|
||||||
<bezel name="digit13" element="digit">
|
<bezel name="digit44" element="digit">
|
||||||
<bounds left="142" top="45" right="176" bottom="84" />
|
<bounds left="142" top="45" right="176" bottom="84" />
|
||||||
</bezel>
|
</bezel>
|
||||||
<bezel name="digit14" element="digit">
|
<bezel name="digit43" element="digit">
|
||||||
<bounds left="186" top="45" right="220" bottom="84" />
|
<bounds left="186" top="45" right="220" bottom="84" />
|
||||||
</bezel>
|
</bezel>
|
||||||
<bezel name="digit15" element="digit">
|
<bezel name="digit42" element="digit">
|
||||||
<bounds left="230" top="45" right="264" bottom="84" />
|
<bounds left="230" top="45" right="264" bottom="84" />
|
||||||
</bezel>
|
</bezel>
|
||||||
<bezel name="digit16" element="digit">
|
<bezel name="digit41" element="digit">
|
||||||
<bounds left="274" top="45" right="308" bottom="84" />
|
<bounds left="274" top="45" right="308" bottom="84" />
|
||||||
</bezel>
|
</bezel>
|
||||||
<bezel name="digit17" element="digit">
|
<bezel name="digit40" element="digit">
|
||||||
<bounds left="318" top="45" right="352" bottom="84" />
|
<bounds left="318" top="45" right="352" bottom="84" />
|
||||||
</bezel>
|
</bezel>
|
||||||
|
|
||||||
<!-- Player 2 Score -->
|
<!-- Player 2 Score -->
|
||||||
<bezel name="digit30" element="digit">
|
<bezel name="digit37" element="digit">
|
||||||
<bounds left="10" top="105" right="44" bottom="144" />
|
<bounds left="10" top="105" right="44" bottom="144" />
|
||||||
</bezel>
|
</bezel>
|
||||||
<bezel name="digit31" element="digit">
|
<bezel name="digit36" element="digit">
|
||||||
<bounds left="54" top="105" right="88" bottom="144" />
|
<bounds left="54" top="105" right="88" bottom="144" />
|
||||||
</bezel>
|
</bezel>
|
||||||
<bezel name="digit32" element="digit">
|
<bezel name="digit35" element="digit">
|
||||||
<bounds left="98" top="105" right="132" bottom="144" />
|
<bounds left="98" top="105" right="132" bottom="144" />
|
||||||
</bezel>
|
</bezel>
|
||||||
<bezel name="digit33" element="digit">
|
<bezel name="digit34" element="digit">
|
||||||
<bounds left="142" top="105" right="176" bottom="144" />
|
<bounds left="142" top="105" right="176" bottom="144" />
|
||||||
</bezel>
|
</bezel>
|
||||||
<bezel name="digit34" element="digit">
|
<bezel name="digit33" element="digit">
|
||||||
<bounds left="186" top="105" right="220" bottom="144" />
|
<bounds left="186" top="105" right="220" bottom="144" />
|
||||||
</bezel>
|
</bezel>
|
||||||
<bezel name="digit35" element="digit">
|
<bezel name="digit32" element="digit">
|
||||||
<bounds left="230" top="105" right="264" bottom="144" />
|
<bounds left="230" top="105" right="264" bottom="144" />
|
||||||
</bezel>
|
</bezel>
|
||||||
<bezel name="digit36" element="digit">
|
<bezel name="digit31" element="digit">
|
||||||
<bounds left="274" top="105" right="308" bottom="144" />
|
<bounds left="274" top="105" right="308" bottom="144" />
|
||||||
</bezel>
|
</bezel>
|
||||||
<bezel name="digit37" element="digit">
|
<bezel name="digit30" element="digit">
|
||||||
<bounds left="318" top="105" right="352" bottom="144" />
|
<bounds left="318" top="105" right="352" bottom="144" />
|
||||||
</bezel>
|
</bezel>
|
||||||
|
|
||||||
<!-- Player 3 Score -->
|
<!-- Player 3 Score -->
|
||||||
<bezel name="digit20" element="digit">
|
<bezel name="digit27" element="digit">
|
||||||
<bounds left="10" top="165" right="44" bottom="204" />
|
<bounds left="10" top="165" right="44" bottom="204" />
|
||||||
</bezel>
|
</bezel>
|
||||||
<bezel name="digit21" element="digit">
|
<bezel name="digit26" element="digit">
|
||||||
<bounds left="54" top="165" right="88" bottom="204" />
|
<bounds left="54" top="165" right="88" bottom="204" />
|
||||||
</bezel>
|
</bezel>
|
||||||
<bezel name="digit22" element="digit">
|
<bezel name="digit25" element="digit">
|
||||||
<bounds left="98" top="165" right="132" bottom="204" />
|
<bounds left="98" top="165" right="132" bottom="204" />
|
||||||
</bezel>
|
</bezel>
|
||||||
<bezel name="digit23" element="digit">
|
<bezel name="digit24" element="digit">
|
||||||
<bounds left="142" top="165" right="176" bottom="204" />
|
<bounds left="142" top="165" right="176" bottom="204" />
|
||||||
</bezel>
|
</bezel>
|
||||||
<bezel name="digit24" element="digit">
|
<bezel name="digit23" element="digit">
|
||||||
<bounds left="186" top="165" right="220" bottom="204" />
|
<bounds left="186" top="165" right="220" bottom="204" />
|
||||||
</bezel>
|
</bezel>
|
||||||
<bezel name="digit25" element="digit">
|
<bezel name="digit22" element="digit">
|
||||||
<bounds left="230" top="165" right="264" bottom="204" />
|
<bounds left="230" top="165" right="264" bottom="204" />
|
||||||
</bezel>
|
</bezel>
|
||||||
<bezel name="digit26" element="digit">
|
<bezel name="digit21" element="digit">
|
||||||
<bounds left="274" top="165" right="308" bottom="204" />
|
<bounds left="274" top="165" right="308" bottom="204" />
|
||||||
</bezel>
|
</bezel>
|
||||||
<bezel name="digit27" element="digit">
|
<bezel name="digit20" element="digit">
|
||||||
<bounds left="318" top="165" right="352" bottom="204" />
|
<bounds left="318" top="165" right="352" bottom="204" />
|
||||||
</bezel>
|
</bezel>
|
||||||
|
|
||||||
<!-- Player 4 Score -->
|
<!-- Player 4 Score -->
|
||||||
<bezel name="digit40" element="digit">
|
<bezel name="digit17" element="digit">
|
||||||
<bounds left="10" top="225" right="44" bottom="264" />
|
<bounds left="10" top="225" right="44" bottom="264" />
|
||||||
</bezel>
|
</bezel>
|
||||||
<bezel name="digit41" element="digit">
|
<bezel name="digit16" element="digit">
|
||||||
<bounds left="54" top="225" right="88" bottom="264" />
|
<bounds left="54" top="225" right="88" bottom="264" />
|
||||||
</bezel>
|
</bezel>
|
||||||
<bezel name="digit42" element="digit">
|
<bezel name="digit15" element="digit">
|
||||||
<bounds left="98" top="225" right="132" bottom="264" />
|
<bounds left="98" top="225" right="132" bottom="264" />
|
||||||
</bezel>
|
</bezel>
|
||||||
<bezel name="digit43" element="digit">
|
<bezel name="digit14" element="digit">
|
||||||
<bounds left="142" top="225" right="176" bottom="264" />
|
<bounds left="142" top="225" right="176" bottom="264" />
|
||||||
</bezel>
|
</bezel>
|
||||||
<bezel name="digit44" element="digit">
|
<bezel name="digit13" element="digit">
|
||||||
<bounds left="186" top="225" right="220" bottom="264" />
|
<bounds left="186" top="225" right="220" bottom="264" />
|
||||||
</bezel>
|
</bezel>
|
||||||
<bezel name="digit45" element="digit">
|
<bezel name="digit12" element="digit">
|
||||||
<bounds left="230" top="225" right="264" bottom="264" />
|
<bounds left="230" top="225" right="264" bottom="264" />
|
||||||
</bezel>
|
</bezel>
|
||||||
<bezel name="digit46" element="digit">
|
<bezel name="digit11" element="digit">
|
||||||
<bounds left="274" top="225" right="308" bottom="264" />
|
<bounds left="274" top="225" right="308" bottom="264" />
|
||||||
</bezel>
|
</bezel>
|
||||||
<bezel name="digit47" element="digit">
|
<bezel name="digit10" element="digit">
|
||||||
<bounds left="318" top="225" right="352" bottom="264" />
|
<bounds left="318" top="225" right="352" bottom="264" />
|
||||||
</bezel>
|
</bezel>
|
||||||
|
|
||||||
<!-- Credits and Balls -->
|
<!-- Credits and Balls -->
|
||||||
<bezel name="digit0" element="digit">
|
<bezel name="digit7" element="digit">
|
||||||
<bounds left="10" top="345" right="44" bottom="384" />
|
<bounds left="10" top="345" right="44" bottom="384" />
|
||||||
</bezel>
|
</bezel>
|
||||||
<bezel name="digit1" element="digit">
|
<bezel name="digit6" element="digit">
|
||||||
<bounds left="54" top="345" right="88" bottom="384" />
|
<bounds left="54" top="345" right="88" bottom="384" />
|
||||||
</bezel>
|
</bezel>
|
||||||
<bezel name="digit2" element="digit">
|
<bezel name="digit5" element="digit">
|
||||||
<bounds left="98" top="345" right="132" bottom="384" />
|
<bounds left="98" top="345" right="132" bottom="384" />
|
||||||
</bezel>
|
</bezel>
|
||||||
<bezel name="digit3" element="digit">
|
<bezel name="digit4" element="digit">
|
||||||
<bounds left="142" top="345" right="176" bottom="384" />
|
<bounds left="142" top="345" right="176" bottom="384" />
|
||||||
</bezel>
|
</bezel>
|
||||||
<bezel name="digit4" element="digit">
|
<bezel name="digit3" element="digit">
|
||||||
<bounds left="186" top="345" right="220" bottom="384" />
|
<bounds left="186" top="345" right="220" bottom="384" />
|
||||||
</bezel>
|
</bezel>
|
||||||
<bezel name="digit5" element="digit">
|
<bezel name="digit2" element="digit">
|
||||||
<bounds left="230" top="345" right="264" bottom="384" />
|
<bounds left="230" top="345" right="264" bottom="384" />
|
||||||
</bezel>
|
</bezel>
|
||||||
<bezel name="digit6" element="digit">
|
<bezel name="digit1" element="digit">
|
||||||
<bounds left="274" top="345" right="308" bottom="384" />
|
<bounds left="274" top="345" right="308" bottom="384" />
|
||||||
</bezel>
|
</bezel>
|
||||||
<bezel name="digit7" element="digit">
|
<bezel name="digit0" element="digit">
|
||||||
<bounds left="318" top="345" right="352" bottom="384" />
|
<bounds left="318" top="345" right="352" bottom="384" />
|
||||||
</bezel>
|
</bezel>
|
||||||
|
|
||||||
<bezel element="P0"><bounds left="100" right="180" top="330" bottom="342" /></bezel>
|
<bezel element="P0"><bounds left="200" right="280" top="330" bottom="342" /></bezel>
|
||||||
<bezel element="P1"><bounds left="30" right="88" top="330" bottom="342" /></bezel>
|
<bezel element="P1"><bounds left="90" right="148" top="330" bottom="342" /></bezel>
|
||||||
<bezel element="P3"><bounds left="120" right="200" top="30" bottom="42" /></bezel>
|
<bezel element="P3"><bounds left="120" right="200" top="30" bottom="42" /></bezel>
|
||||||
<bezel element="P4"><bounds left="120" right="200" top="90" bottom="102" /></bezel>
|
<bezel element="P4"><bounds left="120" right="200" top="90" bottom="102" /></bezel>
|
||||||
<bezel element="P5"><bounds left="120" right="200" top="150" bottom="162" /></bezel>
|
<bezel element="P5"><bounds left="120" right="200" top="150" bottom="162" /></bezel>
|
||||||
|
Loading…
Reference in New Issue
Block a user