New working machines

--------------------
Deluxe Football with Instant Replay [hap, Sean Riddle]
This commit is contained in:
hap 2022-02-20 21:04:15 +01:00
parent 85a0574628
commit 5dfb196870
6 changed files with 425 additions and 196 deletions

View File

@ -244,11 +244,11 @@ void chessmstdm_state::chessmstdm_io(address_map &map)
INPUT_CHANGED_MEMBER(chessmstdm_state::monitor_button)
{
view_button(field, param, oldval, newval);
// releasing monitor button clears reset
if (!newval && oldval)
m_maincpu->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
view_button(field, param, oldval, newval);
}
INPUT_CHANGED_MEMBER(chessmstdm_state::view_button)

View File

@ -202,8 +202,8 @@ TIMER_DEVICE_CALLBACK_MEMBER(chessterp_state::nmi_timer)
void phantom_state::init_motors()
{
m_motors_ctrl = 0;
m_hmotor_pos = 0x80;
m_vmotor_pos = 0x80;
m_hmotor_pos = 0x23;
m_vmotor_pos = 0x0e;
m_vmotor_sensor0_ff = false;
m_vmotor_sensor1_ff = false;
m_hmotor_sensor0_ff = false;
@ -215,12 +215,12 @@ void phantom_state::init_motors()
void phantom_state::check_rotation()
{
if (m_vmotor_pos != 0 && m_vmotor_pos != 0xff)
if (m_vmotor_pos != 0 && m_vmotor_pos != 0x88)
{
if (m_motors_ctrl & 0x03) m_vmotor_sensor0_ff = true;
if (m_motors_ctrl & 0x02) m_vmotor_sensor1_ff = true;
}
if (m_hmotor_pos != 0 && m_hmotor_pos != 0xff)
if (m_hmotor_pos != 0 && m_hmotor_pos != 0xc0)
{
if (m_motors_ctrl & 0x0c) m_hmotor_sensor0_ff = true;
if (m_motors_ctrl & 0x04) m_hmotor_sensor1_ff = true;
@ -231,11 +231,11 @@ TIMER_DEVICE_CALLBACK_MEMBER(phantom_state::motors_timer)
{
check_rotation();
// simulate 1 rotation per each tick
// simulate 1 rotation gap per each tick
if ((m_motors_ctrl & 0x01) && m_vmotor_pos > 0x00) m_vmotor_pos--;
if ((m_motors_ctrl & 0x02) && m_vmotor_pos < 0xff) m_vmotor_pos++;
if ((m_motors_ctrl & 0x02) && m_vmotor_pos < 0x88) m_vmotor_pos++;
if ((m_motors_ctrl & 0x04) && m_hmotor_pos > 0x00) m_hmotor_pos--;
if ((m_motors_ctrl & 0x08) && m_hmotor_pos < 0xff) m_hmotor_pos++;
if ((m_motors_ctrl & 0x08) && m_hmotor_pos < 0xc0) m_hmotor_pos++;
check_rotation();
}

View File

@ -124,8 +124,8 @@ on Joerg Woerner's datamath.org: http://www.datamath.org/IC_List.htm
@MP6101B TMS0980 1979, Parker Brothers Stop Thief
*MP6354 ? 1982, Tsukuda The Dracula (? note: 40-pin, VFD-capable)
*MP6361 ? 1983, Defender Strikes (? note: VFD-capable)
*MP7302 TMS1400 1980, Tiger Deluxe Football with Instant Replay
@MP7304 TMS1400 1982, Tiger 7 in 1 Sports Stadium (model 7-555)
@MP7302 TMS1400 1980, Tiger Deluxe Football with Instant Replay
@MP7304 TMS1400 1980, Tiger 7 in 1 Sports Stadium (model 7-555)
@MP7313 TMS1400 1980, Parker Brothers Bank Shot
@MP7314 TMS1400 1980, Parker Brothers Split Second
MP7324 TMS1400 1985, Tiger K28/Coleco Talking Teacher -> tispeak.cpp
@ -223,6 +223,7 @@ TODO:
#include "copycatm2.lh" // clickable
#include "dataman.lh"
#include "ditto.lh" // clickable
#include "dxfootb.lh"
#include "cqback.lh"
#include "ebball.lh"
#include "ebball2.lh"
@ -12313,6 +12314,266 @@ ROM_END
/***************************************************************************
Tiger Deluxe Football (model 7-550)
* TMS1400NLL MP7302 (die label TMS1400 MP7302)
* 4-digit 7seg LED display, 80 red/green LEDs, 1-bit sound
According to the manual, player 1 is green, player 2 is red. But when
playing a 1-player game, the CPU controls green, so on MAME, player 1
is the red side.
***************************************************************************/
class dxfootb_state : public hh_tms1k_state
{
public:
dxfootb_state(const machine_config &mconfig, device_type type, const char *tag) :
hh_tms1k_state(mconfig, type, tag)
{ }
void dxfootb(machine_config &config);
private:
void update_display();
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
};
// handlers
void dxfootb_state::update_display()
{
// 2 led groups (double multiplexed)
u16 g1 = (m_r & 0x100) ? 0x7f : 0;
u16 g2 = (m_r & 0x80) ? 0x7f << 7 : 0;
m_display->matrix((m_r & g1) | (m_r << 7 & g2), m_o);
}
void dxfootb_state::write_r(u16 data)
{
// R9,R10: speaker out
m_speaker->level_w(data >> 9 & 3);
// R3-R6: input mux
m_inp_mux = data >> 3 & 0xf;
// R0-R6: led select
// R7,R8: group select
m_r = data;
update_display();
}
void dxfootb_state::write_o(u16 data)
{
// O0-O7: led data
m_o = data;
update_display();
}
u8 dxfootb_state::read_k()
{
// K: multiplexed inputs
return read_inputs(4);
}
// config
static INPUT_PORTS_START( dxfootb )
PORT_START("IN.0") // R3
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START2 ) PORT_NAME("Replay / Skill (Green)")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START1 ) PORT_NAME("Score / Skill (Red)")
PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("IN.1") // R4
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 )
PORT_START("IN.2") // R5
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_COCKTAIL
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_COCKTAIL
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_COCKTAIL
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_COCKTAIL
PORT_START("IN.3") // R6
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP )
INPUT_PORTS_END
void dxfootb_state::dxfootb(machine_config &config)
{
// basic machine hardware
TMS1400(config, m_maincpu, 425000); // approximation - RC osc. R=47K, C=47pF
m_maincpu->k().set(FUNC(dxfootb_state::read_k));
m_maincpu->r().set(FUNC(dxfootb_state::write_r));
m_maincpu->o().set(FUNC(dxfootb_state::write_o));
// video hardware
PWM_DISPLAY(config, m_display).set_size(7+7, 8);
m_display->set_segmask(0x3c00, 0x7f);
config.set_default_layout(layout_dxfootb);
// sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
static const double speaker_levels[4] = { 0.0, 1.0, -1.0, 0 };
m_speaker->set_levels(4, speaker_levels);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
}
// roms
ROM_START( dxfootb )
ROM_REGION( 0x1000, "maincpu", 0 )
ROM_LOAD( "mp7302", 0x0000, 0x1000, CRC(a8077062) SHA1(c1318fe5c8f2db021d7d1264fc70158944045fa3) )
ROM_REGION( 867, "maincpu:mpla", 0 )
ROM_LOAD( "tms1100_common2_micro.pla", 0, 867, CRC(7cc90264) SHA1(c6e1cf1ffb178061da9e31858514f7cd94e86990) )
ROM_REGION( 557, "maincpu:opla", 0 )
ROM_LOAD( "tms1400_dxfootb_output.pla", 0, 557, CRC(a1b3d2c0) SHA1(8030e6dcd3878b58668c98cff36d93b764e1d67f) )
ROM_END
/***************************************************************************
Tiger 7 in 1 Sports Stadium (model 7-555)
* TMS1400 MP7304 (die label TMS1400 MP7304A)
* 2x2-digit 7seg LED display + 39 other LEDs, 1-bit sound
This handheld includes 7 games: 1: Basketball, 2: Hockey, 3: Soccer,
4: Maze, 5: Baseball, 6: Football, 7: Raquetball.
MAME external artwork is needed for the switchable overlays.
known releases:
- World: 7 in 1 Sports Stadium, published by Tiger
- USA: 7 in 1 Sports, published by Sears
***************************************************************************/
class ss7in1_state : public hh_tms1k_state
{
public:
ss7in1_state(const machine_config &mconfig, device_type type, const char *tag) :
hh_tms1k_state(mconfig, type, tag)
{ }
void ss7in1(machine_config &config);
private:
void update_display();
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
};
// handlers
void ss7in1_state::update_display()
{
m_display->matrix(m_r, m_o);
}
void ss7in1_state::write_r(u16 data)
{
// R9: speaker out
m_speaker->level_w(data >> 9 & 1);
// R0-R2,R10: input mux
m_inp_mux = (data & 7) | (data >> 7 & 8);
// R0-R3: digit select
// R4-R8: led select
m_r = data;
update_display();
}
void ss7in1_state::write_o(u16 data)
{
// O0-O7: led data
m_o = data;
update_display();
}
u8 ss7in1_state::read_k()
{
// K: multiplexed inputs
return read_inputs(4);
}
// config
static INPUT_PORTS_START( ss7in1 )
PORT_START("IN.0") // R0
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_COCKTAIL
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_COCKTAIL
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_COCKTAIL
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_COCKTAIL
PORT_START("IN.1") // R1
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2 )
PORT_START("IN.2") // R2
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT )
PORT_START("IN.3") // R10
PORT_CONFNAME( 0x01, 0x00, DEF_STR( Players ) )
PORT_CONFSETTING( 0x00, "1" )
PORT_CONFSETTING( 0x01, "2" )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x0c, IP_ACTIVE_LOW, IPT_UNUSED )
INPUT_PORTS_END
void ss7in1_state::ss7in1(machine_config &config)
{
// basic machine hardware
TMS1400(config, m_maincpu, 425000); // approximation - RC osc. R=47K, C=47pF
m_maincpu->k().set(FUNC(ss7in1_state::read_k));
m_maincpu->r().set(FUNC(ss7in1_state::write_r));
m_maincpu->o().set(FUNC(ss7in1_state::write_o));
// video hardware
PWM_DISPLAY(config, m_display).set_size(9, 8);
m_display->set_segmask(0xf, 0x7f);
m_display->set_bri_levels(0.01, 0.04); // player led is brighter
config.set_default_layout(layout_7in1ss);
// sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
}
// roms
ROM_START( 7in1ss )
ROM_REGION( 0x1000, "maincpu", 0 )
ROM_LOAD( "mp7304", 0x0000, 0x1000, CRC(2a1c8390) SHA1(fa10e60686af6828a61f05046abc3854ab49af95) )
ROM_REGION( 867, "maincpu:mpla", 0 )
ROM_LOAD( "tms1100_common2_micro.pla", 0, 867, CRC(7cc90264) SHA1(c6e1cf1ffb178061da9e31858514f7cd94e86990) )
ROM_REGION( 557, "maincpu:opla", 0 )
ROM_LOAD( "tms1400_7in1ss_output.pla", 0, 557, CRC(6b7660f7) SHA1(bb7d58fa04e7606ccdf5b209e1b089948bdd1e7c) )
ROM_END
/***************************************************************************
Tiger Electronics Copy Cat (model 7-520)
@ -12612,137 +12873,6 @@ ROM_END
/***************************************************************************
Tiger 7 in 1 Sports Stadium (model 7-555)
* TMS1400 MP7304 (die label TMS1400 MP7304A)
* 2x2-digit 7seg LED display + 39 other LEDs, 1-bit sound
This handheld includes 7 games: 1: Basketball, 2: Hockey, 3: Soccer,
4: Maze, 5: Baseball, 6: Football, 7: Raquetball.
MAME external artwork is needed for the switchable overlays.
known releases:
- World: 7 in 1 Sports Stadium, published by Tiger
- USA: 7 in 1 Sports, published by Sears
***************************************************************************/
class ss7in1_state : public hh_tms1k_state
{
public:
ss7in1_state(const machine_config &mconfig, device_type type, const char *tag) :
hh_tms1k_state(mconfig, type, tag)
{ }
void ss7in1(machine_config &config);
private:
void update_display();
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
};
// handlers
void ss7in1_state::update_display()
{
m_display->matrix(m_r, m_o);
}
void ss7in1_state::write_r(u16 data)
{
// R9: speaker out
m_speaker->level_w(data >> 9 & 1);
// R0-R2,R10: input mux
m_inp_mux = (data & 7) | (data >> 7 & 8);
// R0-R3: digit select
// R4-R9: led select
m_r = data;
update_display();
}
void ss7in1_state::write_o(u16 data)
{
// O0-O7: led data
m_o = data;
update_display();
}
u8 ss7in1_state::read_k()
{
// K: multiplexed inputs
return read_inputs(4);
}
// config
static INPUT_PORTS_START( ss7in1 )
PORT_START("IN.0") // R0
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_COCKTAIL
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_COCKTAIL
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_COCKTAIL
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_COCKTAIL
PORT_START("IN.1") // R1
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2 )
PORT_START("IN.2") // R2
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT )
PORT_START("IN.3") // R10
PORT_CONFNAME( 0x01, 0x00, DEF_STR( Players ) )
PORT_CONFSETTING( 0x00, "1" )
PORT_CONFSETTING( 0x01, "2" )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x0c, IP_ACTIVE_LOW, IPT_UNUSED )
INPUT_PORTS_END
void ss7in1_state::ss7in1(machine_config &config)
{
// basic machine hardware
TMS1400(config, m_maincpu, 450000); // approximation - RC osc. R=47K, C=47pF
m_maincpu->k().set(FUNC(ss7in1_state::read_k));
m_maincpu->r().set(FUNC(ss7in1_state::write_r));
m_maincpu->o().set(FUNC(ss7in1_state::write_o));
// video hardware
PWM_DISPLAY(config, m_display).set_size(9, 8);
m_display->set_segmask(0xf, 0x7f);
m_display->set_bri_levels(0.005, 0.05); // player led is brighter
config.set_default_layout(layout_7in1ss);
// sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
}
// roms
ROM_START( 7in1ss )
ROM_REGION( 0x1000, "maincpu", 0 )
ROM_LOAD( "mp7304", 0x0000, 0x1000, CRC(2a1c8390) SHA1(fa10e60686af6828a61f05046abc3854ab49af95) )
ROM_REGION( 867, "maincpu:mpla", 0 )
ROM_LOAD( "tms1100_common2_micro.pla", 0, 867, CRC(7cc90264) SHA1(c6e1cf1ffb178061da9e31858514f7cd94e86990) )
ROM_REGION( 557, "maincpu:opla", 0 )
ROM_LOAD( "tms1400_7in1ss_output.pla", 0, 557, CRC(6b7660f7) SHA1(bb7d58fa04e7606ccdf5b209e1b089948bdd1e7c) )
ROM_END
/***************************************************************************
Tomy(tronics) Break Up (manufactured in Japan)
@ -13522,10 +13652,11 @@ CONS( 1979, timaze, 0, 0, timaze, timaze, timaze_state, emp
SYST( 1979, tithermos, 0, 0, tithermos, tithermos, tithermos_state, empty_init, "Texas Instruments", "Electronic Digital Thermostat", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW | MACHINE_NOT_WORKING )
CONS( 1979, subwars, 0, 0, subwars, subwars, subwars_state, empty_init, "Tiger Electronics", "Sub Wars (LED version)", MACHINE_SUPPORTS_SAVE )
CONS( 1980, dxfootb, 0, 0, dxfootb, dxfootb, dxfootb_state, empty_init, "Tiger Electronics", "Deluxe Football with Instant Replay", MACHINE_SUPPORTS_SAVE )
CONS( 1980, 7in1ss, 0, 0, ss7in1, ss7in1, ss7in1_state, empty_init, "Tiger Electronics", "7 in 1 Sports Stadium", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
CONS( 1979, copycat, 0, 0, copycat, copycat, copycat_state, empty_init, "Tiger Electronics", "Copy Cat (model 7-520)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1989, copycatm2, copycat, 0, copycatm2, copycatm2, copycatm2_state, empty_init, "Tiger Electronics", "Copy Cat (model 7-522)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1981, ditto, 0, 0, ditto, ditto, ditto_state, empty_init, "Tiger Electronics", "Ditto", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1982, 7in1ss, 0, 0, ss7in1, ss7in1, ss7in1_state, empty_init, "Tiger Electronics", "7 in 1 Sports Stadium", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
CONS( 1979, tbreakup, 0, 0, tbreakup, tbreakup, tbreakup_state, empty_init, "Tomy", "Break Up (Tomy)", MACHINE_SUPPORTS_SAVE )
CONS( 1980, phpball, 0, 0, phpball, phpball, phpball_state, empty_init, "Tomy", "Power House Pinball", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )

View File

@ -17,62 +17,78 @@ license:CC0
</element>
<!-- led matrix -->
<group name="display1">
<bounds x="0" y="0" width="12.75" height="18.75" />
<element name="4.0" ref="led"><bounds x="0" y="0" width="0.75" height="0.75" /></element>
<element name="5.0" ref="led"><bounds x="3" y="0" width="0.75" height="0.75" /></element>
<element name="6.0" ref="led"><bounds x="6" y="0" width="0.75" height="0.75" /></element>
<element name="7.0" ref="led"><bounds x="9" y="0" width="0.75" height="0.75" /></element>
<element name="8.0" ref="led"><bounds x="12" y="0" width="0.75" height="0.75" /></element>
<element name="4.1" ref="led"><bounds x="0" y="3" width="0.75" height="0.75" /></element>
<element name="5.1" ref="led"><bounds x="3" y="3" width="0.75" height="0.75" /></element>
<element name="6.1" ref="led"><bounds x="6" y="3" width="0.75" height="0.75" /></element>
<element name="7.1" ref="led"><bounds x="9" y="3" width="0.75" height="0.75" /></element>
<element name="8.1" ref="led"><bounds x="12" y="3" width="0.75" height="0.75" /></element>
<element name="4.2" ref="led"><bounds x="0" y="6" width="0.75" height="0.75" /></element>
<element name="5.2" ref="led"><bounds x="3" y="6" width="0.75" height="0.75" /></element>
<element name="6.2" ref="led"><bounds x="6" y="6" width="0.75" height="0.75" /></element>
<element name="7.2" ref="led"><bounds x="9" y="6" width="0.75" height="0.75" /></element>
<element name="8.2" ref="led"><bounds x="12" y="6" width="0.75" height="0.75" /></element>
<element name="4.3" ref="led"><bounds x="0" y="9" width="0.75" height="0.75" /></element>
<element name="5.3" ref="led"><bounds x="3" y="9" width="0.75" height="0.75" /></element>
<element name="6.3" ref="led"><bounds x="6" y="9" width="0.75" height="0.75" /></element>
<element name="7.3" ref="led"><bounds x="9" y="9" width="0.75" height="0.75" /></element>
<element name="8.3" ref="led"><bounds x="12" y="9" width="0.75" height="0.75" /></element>
<element name="4.4" ref="led"><bounds x="0" y="12" width="0.75" height="0.75" /></element>
<element name="5.4" ref="led"><bounds x="3" y="12" width="0.75" height="0.75" /></element>
<element name="6.4" ref="led"><bounds x="6" y="12" width="0.75" height="0.75" /></element>
<element name="7.4" ref="led"><bounds x="9" y="12" width="0.75" height="0.75" /></element>
<element name="8.4" ref="led"><bounds x="12" y="12" width="0.75" height="0.75" /></element>
<element name="4.5" ref="led"><bounds x="0" y="15" width="0.75" height="0.75" /></element>
<element name="5.5" ref="led"><bounds x="3" y="15" width="0.75" height="0.75" /></element>
<element name="6.5" ref="led"><bounds x="6" y="15" width="0.75" height="0.75" /></element>
<element name="7.5" ref="led"><bounds x="9" y="15" width="0.75" height="0.75" /></element>
<element name="8.5" ref="led"><bounds x="12" y="15" width="0.75" height="0.75" /></element>
<element name="4.6" ref="led"><bounds x="0" y="18" width="0.75" height="0.75" /></element>
<element name="5.6" ref="led"><bounds x="3" y="18" width="0.75" height="0.75" /></element>
<element name="6.6" ref="led"><bounds x="6" y="18" width="0.75" height="0.75" /></element>
<element name="7.6" ref="led"><bounds x="9" y="18" width="0.75" height="0.75" /></element>
<element name="8.6" ref="led"><bounds x="12" y="18" width="0.75" height="0.75" /></element>
<element name="7.7" ref="led"><bounds x="6" y="13.5" width="0.75" height="0.75" /></element>
<element name="6.7" ref="led"><bounds x="6" y="16.5" width="0.75" height="0.75" /></element>
<element name="5.7" ref="led"><bounds x="4.5" y="17.25" width="0.75" height="0.75" /></element>
<element name="4.7" ref="led"><bounds x="7.5" y="17.25" width="0.75" height="0.75" /></element>
</group>
<!-- 7seg leds -->
<group name="display2">
<bounds x="0" y="0" width="12" height="3" />
<element name="digit3" ref="digit"><bounds x="0" y="0" width="2" height="3" /></element>
<element name="digit2" ref="digit"><bounds x="2" y="0" width="2" height="3" /></element>
<element name="digit1" ref="digit"><bounds x="8" y="0" width="2" height="3" /></element>
<element name="digit0" ref="digit"><bounds x="10" y="0" width="2" height="3" /></element>
</group>
<!-- build screen -->
<view name="Internal Layout">
<bounds left="-1" right="21" top="-1" bottom="20" />
<element name="digit3" ref="digit"><bounds x="17" y="3" width="3" height="2" /><orientation rotate="90" /></element>
<element name="digit2" ref="digit"><bounds x="17" y="5" width="3" height="2" /><orientation rotate="90" /></element>
<element name="digit1" ref="digit"><bounds x="17" y="12" width="3" height="2" /><orientation rotate="90" /></element>
<element name="digit0" ref="digit"><bounds x="17" y="14" width="3" height="2" /><orientation rotate="90" /></element>
<element name="4.0" ref="led"><bounds x="0" y="0" width="1" height="1" /></element>
<element name="5.0" ref="led"><bounds x="3" y="0" width="1" height="1" /></element>
<element name="6.0" ref="led"><bounds x="6" y="0" width="1" height="1" /></element>
<element name="7.0" ref="led"><bounds x="9" y="0" width="1" height="1" /></element>
<element name="8.0" ref="led"><bounds x="12" y="0" width="1" height="1" /></element>
<element name="4.1" ref="led"><bounds x="0" y="3" width="1" height="1" /></element>
<element name="5.1" ref="led"><bounds x="3" y="3" width="1" height="1" /></element>
<element name="6.1" ref="led"><bounds x="6" y="3" width="1" height="1" /></element>
<element name="7.1" ref="led"><bounds x="9" y="3" width="1" height="1" /></element>
<element name="8.1" ref="led"><bounds x="12" y="3" width="1" height="1" /></element>
<element name="4.2" ref="led"><bounds x="0" y="6" width="1" height="1" /></element>
<element name="5.2" ref="led"><bounds x="3" y="6" width="1" height="1" /></element>
<element name="6.2" ref="led"><bounds x="6" y="6" width="1" height="1" /></element>
<element name="7.2" ref="led"><bounds x="9" y="6" width="1" height="1" /></element>
<element name="8.2" ref="led"><bounds x="12" y="6" width="1" height="1" /></element>
<element name="4.3" ref="led"><bounds x="0" y="9" width="1" height="1" /></element>
<element name="5.3" ref="led"><bounds x="3" y="9" width="1" height="1" /></element>
<element name="6.3" ref="led"><bounds x="6" y="9" width="1" height="1" /></element>
<element name="7.3" ref="led"><bounds x="9" y="9" width="1" height="1" /></element>
<element name="8.3" ref="led"><bounds x="12" y="9" width="1" height="1" /></element>
<element name="4.4" ref="led"><bounds x="0" y="12" width="1" height="1" /></element>
<element name="5.4" ref="led"><bounds x="3" y="12" width="1" height="1" /></element>
<element name="6.4" ref="led"><bounds x="6" y="12" width="1" height="1" /></element>
<element name="7.4" ref="led"><bounds x="9" y="12" width="1" height="1" /></element>
<element name="8.4" ref="led"><bounds x="12" y="12" width="1" height="1" /></element>
<element name="4.5" ref="led"><bounds x="0" y="15" width="1" height="1" /></element>
<element name="5.5" ref="led"><bounds x="3" y="15" width="1" height="1" /></element>
<element name="6.5" ref="led"><bounds x="6" y="15" width="1" height="1" /></element>
<element name="7.5" ref="led"><bounds x="9" y="15" width="1" height="1" /></element>
<element name="8.5" ref="led"><bounds x="12" y="15" width="1" height="1" /></element>
<element name="4.6" ref="led"><bounds x="0" y="18" width="1" height="1" /></element>
<element name="5.6" ref="led"><bounds x="3" y="18" width="1" height="1" /></element>
<element name="6.6" ref="led"><bounds x="6" y="18" width="1" height="1" /></element>
<element name="7.6" ref="led"><bounds x="9" y="18" width="1" height="1" /></element>
<element name="8.6" ref="led"><bounds x="12" y="18" width="1" height="1" /></element>
<element name="7.7" ref="led"><bounds x="6" y="13.5" width="1" height="1" /></element>
<element name="6.7" ref="led"><bounds x="6" y="16.5" width="1" height="1" /></element>
<element name="5.7" ref="led"><bounds x="4.5" y="17.25" width="1" height="1" /></element>
<element name="4.7" ref="led"><bounds x="7.5" y="17.25" width="1" height="1" /></element>
<bounds left="-1.5" right="20.75" top="0" bottom="21.75" />
<group ref="display1"><bounds x="0" y="1.5" width="12.75" height="18.75" /></group>
<group ref="display2"><bounds x="17" y="6.375" width="2.25" height="9" /><orientation rotate="90" /></group>
</view>
</mamelayout>

View File

@ -0,0 +1,81 @@
<?xml version="1.0"?>
<!--
license:CC0
-->
<mamelayout version="2">
<!-- define elements -->
<element name="black"><rect><color red="0" green="0" blue="0" /></rect></element>
<element name="dark"><rect><color red="0.14" green="0.14" blue="0.14" /></rect></element>
<element name="digit" defstate="0">
<led7seg><color red="1.0" green="0.1" blue="0.15" /></led7seg>
</element>
<element name="ledr" defstate="0">
<disk state="0"><color red="0.1" green="0.01" blue="0.015" /></disk>
<disk state="1"><color red="1.0" green="0.1" blue="0.15" /></disk>
</element>
<element name="ledg" defstate="0">
<disk state="0"><color red="0.011" green="0.08" blue="0.008" /></disk>
<disk state="1"><color red="0.15" green="1.0" blue="0.1" /></disk>
</element>
<!-- main display -->
<group name="display1">
<bounds x="0" y="0" width="30.3" height="15.4" />
<!-- bezel (etched, not white) -->
<element ref="dark"><bounds x="0" y="0" width="30.3" height="15.4" /></element>
<element ref="black"><bounds x="0.2" y="0.2" width="29.9" height="15" /></element>
<repeat count="9">
<param name="x" start="3" increment="3" />
<element ref="dark"><bounds x="~x~" y="0" width="0.2" height="15.4" /></element>
</repeat>
<element ref="black"><bounds x="1" y="2.2" width="13" height="11" /></element>
<element ref="black"><bounds x="16" y="2.2" width="13" height="11" /></element>
<!-- led matrix -->
<repeat count="4">
<param name="y" start="1.2" increment="4" />
<param name="i2r" start="0" increment="2" />
<param name="i2g" start="1" increment="2" />
<repeat count="10">
<param name="xr" start="1.6" increment="3" />
<param name="xg" start="0.6" increment="3" />
<param name="i1" start="0" increment="1" />
<element name="~i1~.~i2r~" ref="ledr"><bounds x="~xr~" y="~y~" width="1" height="1" /></element>
<element name="~i1~.~i2g~" ref="ledg"><bounds x="~xg~" y="~y~" width="1" height="1" /></element>
</repeat>
</repeat>
</group>
<!-- 7seg leds -->
<group name="display2">
<bounds x="0" y="0" width="9.8" height="3" />
<element name="digit10" ref="digit"><bounds x="0" y="0" width="2" height="3" /></element>
<element name="digit11" ref="digit"><bounds x="2.6" y="0" width="2" height="3" /></element>
<element name="digit12" ref="digit"><bounds x="5.2" y="0" width="2" height="3" /></element>
<element name="digit13" ref="digit"><bounds x="7.8" y="0" width="2" height="3" /></element>
<element ref="dark"><bounds x="4.8" y="0" width="0.2" height="3" /></element>
</group>
<!-- build screen -->
<view name="Internal Layout">
<bounds left="-1" right="21.2" top="-1" bottom="31.3" />
<group ref="display1"><bounds x="0" y="0" width="15.4" height="30.3" /><orientation rotate="90" /></group>
<group ref="display2"><bounds x="17.2" y="10.2" width="3" height="9.8" /><orientation rotate="90" /></group>
</view>
</mamelayout>

View File

@ -16691,6 +16691,7 @@ copycatm2 // Tiger Electronics
cqback // Coleco
dataman // Texas Instruments
ditto // Tiger Electronics
dxfootb // Tiger Electronics
ebaskb2 // Entex
ebball // Entex
ebball2 // Entex