summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author hap <happppp@users.noreply.github.com>2022-10-23 21:34:32 +0200
committer hap <happppp@users.noreply.github.com>2022-10-23 21:34:51 +0200
commit84395f11085373b474a8b8a5caafc3f1e38ceb5b (patch)
tree08feeba0ec286282c807a48ffac5be0063505293
parent9079b3326ef2515c2ebf0289dede1ff622389354 (diff)
New working machines
-------------------- Space Cruiser [hap, Sean Riddle]
-rw-r--r--src/mame/handheld/hh_tms1k.cpp245
-rw-r--r--src/mame/layout/scruiser.lay101
-rw-r--r--src/mame/layout/ssports4.lay26
-rw-r--r--src/mame/layout/t3in1sa.lay16
-rw-r--r--src/mame/mame.lst1
5 files changed, 334 insertions, 55 deletions
diff --git a/src/mame/handheld/hh_tms1k.cpp b/src/mame/handheld/hh_tms1k.cpp
index 3317b9f4ae5..eb354c75370 100644
--- a/src/mame/handheld/hh_tms1k.cpp
+++ b/src/mame/handheld/hh_tms1k.cpp
@@ -99,7 +99,7 @@ on Joerg Woerner's datamath.org: http://www.datamath.org/IC_List.htm
@MP1185 TMS1100 1979, Fonas 3 in 1: Football, Basketball, Soccer
@MP1193 TMS1100 1980, Tandy Championship Football (model 60-2150)
@MP1204 TMS1100 1980, Entex Baseball 3 (6007)
- *MP1209 TMS1100 1980, U.S. Games Space Cruiser/Strategy Football
+ @MP1209 TMS1100 1980, U.S. Games Space Cruiser
@MP1211 TMS1100 1980, Entex Space Invader (6012)
@MP1215 TMS1100 1980, Tiger Playmaker
@MP1218 TMS1100 1980, Entex Basketball 2 (6010)
@@ -291,6 +291,7 @@ on Joerg Woerner's datamath.org: http://www.datamath.org/IC_List.htm
#include "qfire.lh" // clickable
#include "quizwizc.lh"
#include "raisedvl.lh"
+#include "scruiser.lh"
#include "simon.lh" // clickable
#include "speechp.lh"
#include "splitsec.lh"
@@ -10737,7 +10738,7 @@ ROM_END
Tandy 3 in 1 Sports Arena (model 60-2178)
* PCB label: HP-804
* TMS1100 (just a datestamp label (8331), die label: 1100B, MP1231)
- * 2x2-digit 7seg LED display + 47 other LEDs, 1-bit sound
+ * 2x2-digit 7seg LED display + 45+2 other LEDs, 1-bit sound
For Tandy Sports Arena (model 60-2158), see cmsport, this is a different game.
This version is very similar to ssports4 released a few years earlier.
@@ -10775,17 +10776,17 @@ void t3in1sa_state::update_display()
void t3in1sa_state::write_r(u32 data)
{
- // R10: speaker out
- m_speaker->level_w(data >> 10 & 1);
-
- // R0,R1,R5,R7-R9: input mux
- m_inp_mux = (data & 3) | (data >> 3 & 4) | (data >> 4 & 0x38);
-
// R2: led data high
// R3-R7: led select
// R0,R1,R8,R9: digit select
m_r = data;
update_display();
+
+ // R0,R1,R5,R7-R9: input mux
+ m_inp_mux = (data & 3) | (data >> 3 & 4) | (data >> 4 & 0x38);
+
+ // R10: speaker out
+ m_speaker->level_w(BIT(data, 10));
}
void t3in1sa_state::write_o(u16 data)
@@ -14587,9 +14588,164 @@ ROM_END
/***************************************************************************
- U.S. Games Super Sports-4
+ U.S. Games Space Cruiser (model TF2)
+ * PCB label: TF2
+ * TMS1100 MP1209 (no decap)
+ * 4 7seg LEDs, 40+2 other LEDs, 1-bit sound
+
+ It's a 2-in-1 handheld, Strategy Football and Space Game. MAME external
+ artwork is recommended for the switchable overlays.
+
+***************************************************************************/
+
+class scruiser_state : public hh_tms1k_state
+{
+public:
+ scruiser_state(const machine_config &mconfig, device_type type, const char *tag) :
+ hh_tms1k_state(mconfig, type, tag)
+ { }
+
+ void scruiser(machine_config &config);
+
+private:
+ void update_display();
+ void update_input();
+ void write_r(u32 data);
+ void write_o(u16 data);
+ u8 read_k();
+};
+
+// handlers
+
+void scruiser_state::update_display()
+{
+ m_display->matrix(m_r, m_o | (m_r & 0x300));
+}
+
+void scruiser_state::update_input()
+{
+ // switches from O7+R7
+ m_inp_mux = (m_r & 0xf) | (BIT(m_o, 7) << ((BIT(m_r, 7)) + 4));
+}
+
+void scruiser_state::write_r(u32 data)
+{
+ // R0-R3: 7seg select
+ // R4-R7: led select
+ // R8,R9: led data
+ m_r = data;
+ update_display();
+
+ // R0-R3,R7: input mux
+ update_input();
+
+ // R10: speaker out
+ m_speaker->level_w(BIT(data, 10));
+}
+
+void scruiser_state::write_o(u16 data)
+{
+ // O0-O7: led data
+ m_o = data;
+ update_display();
+
+ // O7: select switches
+ update_input();
+}
+
+u8 scruiser_state::read_k()
+{
+ // K: multiplexed inputs
+ return read_inputs(6);
+}
+
+// config
+
+static INPUT_PORTS_START( scruiser )
+ PORT_START("IN.0") // R0
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_COCKTAIL PORT_16WAY
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_COCKTAIL PORT_16WAY
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_COCKTAIL PORT_16WAY
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_COCKTAIL PORT_16WAY
+
+ PORT_START("IN.1") // R1
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_16WAY
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_16WAY
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_16WAY
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_16WAY
+
+ PORT_START("IN.2") // R2
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL PORT_NAME("P2 Info")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_COCKTAIL PORT_NAME("P2 Kick")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_COCKTAIL PORT_NAME("P2 QB / WB")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL PORT_NAME("P2 Pass")
+
+ PORT_START("IN.3") // R3
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("P1 Info")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("P1 Kick")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("P1 QB / WB")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("P1 Pass")
+
+ PORT_START("IN.4") // O7+!R7
+ PORT_CONFNAME( 0x02, 0x02, "Game Select" )
+ PORT_CONFSETTING( 0x02, "Space" )
+ PORT_CONFSETTING( 0x00, "Football" )
+ PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.5") // O7+R7
+ PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_CONFNAME( 0x04, 0x04, DEF_STR( Players ) )
+ PORT_CONFSETTING( 0x04, "1" )
+ PORT_CONFSETTING( 0x00, "2" )
+ PORT_CONFNAME( 0x08, 0x00, "Speed" )
+ PORT_CONFSETTING( 0x08, "Fast" ) // F
+ PORT_CONFSETTING( 0x00, "Slow" ) // S
+INPUT_PORTS_END
+
+void scruiser_state::scruiser(machine_config &config)
+{
+ // basic machine hardware
+ TMS1100(config, m_maincpu, 350000); // approximation - RC osc. R=47K, C=47pF
+ m_maincpu->read_k().set(FUNC(scruiser_state::read_k));
+ m_maincpu->write_r().set(FUNC(scruiser_state::write_r));
+ m_maincpu->write_o().set(FUNC(scruiser_state::write_o));
+
+ // video hardware
+ PWM_DISPLAY(config, m_display).set_size(8, 10);
+ m_display->set_segmask(0xf, 0x7f);
+ m_display->set_bri_levels(0.0075, 0.075); // offense leds are brighter
+ config.set_default_layout(layout_scruiser);
+
+ // sound hardware
+ SPEAKER(config, "mono").front_center();
+ SPEAKER_SOUND(config, m_speaker);
+ m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
+}
+
+// roms
+
+ROM_START( scruiser )
+ ROM_REGION( 0x0800, "maincpu", 0 )
+ ROM_LOAD( "mp1209", 0x0000, 0x0800, CRC(a0280de4) SHA1(52beb30d8a5e4c85433db5722024f4011a07345b) )
+
+ ROM_REGION( 867, "maincpu:mpla", 0 )
+ ROM_LOAD( "tms1100_common2_micro.pla", 0, 867, BAD_DUMP CRC(7cc90264) SHA1(c6e1cf1ffb178061da9e31858514f7cd94e86990) ) // not verified
+ ROM_REGION( 365, "maincpu:opla", ROMREGION_ERASE00 )
+ ROM_LOAD( "tms1100_scruiser_output.pla", 0, 365, NO_DUMP )
+
+ ROM_REGION16_LE( 0x40, "maincpu:opla_b", ROMREGION_ERASE00 ) // verified, electronic dump
+ ROM_LOAD16_BYTE( "tms1100_scruiser_output.bin", 0, 0x20, CRC(cd6f162f) SHA1(3348edb697e996b5ab82be54076b9cd444e0f2b1) )
+ROM_END
+
+
+
+
+
+/***************************************************************************
+
+ U.S. Games Super Sports-4 (model TH42)
* TMS1100 MP1219 (no decap)
- * 4 7seg LEDs, 49 other LEDs, 1-bit sound
+ * 4 7seg LEDs, 47+2 other LEDs, 1-bit sound
The game is very similar to t3in1sa, even parts of the ROM match. But by
the time that one was released (in 1983 or 1984), U.S. Games did not exist
@@ -14611,6 +14767,7 @@ public:
private:
void update_display();
+ void update_input();
void write_r(u32 data);
void write_o(u16 data);
u8 read_k();
@@ -14620,19 +14777,28 @@ private:
void ssports4_state::update_display()
{
- // note: R2 is an extra column
m_display->matrix(m_r, m_o | (m_r << 6 & 0x100));
}
-void ssports4_state::write_r(u32 data)
+void ssports4_state::update_input()
{
- // R10: speaker out
- m_speaker->level_w(data >> 10 & 1);
+ // switches from O7+R5
+ m_inp_mux = (m_r & 3) | (m_r >> 6 & 0xc) | (BIT(m_o, 7) << ((BIT(m_r, 5)) + 4));
+}
- // R0-R9: led select/data
- // R0,R1 and R8,R9 are 7segs
+void ssports4_state::write_r(u32 data)
+{
+ // R0,R1,R8,R9: 7seg select
+ // R3-R7: led select
+ // R2: led data
m_r = data;
update_display();
+
+ // R0,R1,R5,R8,R9: input mux
+ update_input();
+
+ // R10: speaker out
+ m_speaker->level_w(BIT(data, 10));
}
void ssports4_state::write_o(u16 data)
@@ -14640,12 +14806,14 @@ void ssports4_state::write_o(u16 data)
// O0-O7: led data
m_o = data;
update_display();
+
+ // O7: select switches
+ update_input();
}
u8 ssports4_state::read_k()
{
- // input mux is from R0,1,5,8,9 and O7
- m_inp_mux = (m_r & 3) | (m_r >> 3 & 4) | (m_r >> 5 & 0x18) | (m_o >> 2 & 0x20);
+ // K: multiplexed inputs
return read_inputs(6);
}
@@ -14664,34 +14832,34 @@ static INPUT_PORTS_START( ssports4 )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_COCKTAIL PORT_16WAY
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_COCKTAIL PORT_16WAY
- PORT_START("IN.2") // R5
- PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_UNUSED )
- PORT_CONFNAME( 0x04, 0x00, DEF_STR( Difficulty ) )
- PORT_CONFSETTING( 0x00, "1" )
- PORT_CONFSETTING( 0x04, "2" )
- PORT_CONFNAME( 0x08, 0x08, DEF_STR( Players ) )
- PORT_CONFSETTING( 0x08, "1" )
- PORT_CONFSETTING( 0x00, "2" )
-
- PORT_START("IN.3") // R8
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_16WAY PORT_NAME("P1 Up-Left / Kick")
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_16WAY PORT_NAME("P1 Up-Right / Info")
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_16WAY PORT_NAME("P1 Pass")
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_16WAY PORT_NAME("P1 O.P.") // offensive player (modifier button)
+ PORT_START("IN.2") // R8
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("P1 Up-Left / Kick")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("P1 Up-Right / Info")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("P1 Pass")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("P1 O.P.") // offensive player (modifier button)
- PORT_START("IN.4") // R9
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL PORT_16WAY PORT_NAME("P2 Up-Left / Kick")
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL PORT_16WAY PORT_NAME("P2 Up-Right / Info")
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_COCKTAIL PORT_16WAY PORT_NAME("P2 Pass")
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_COCKTAIL PORT_16WAY PORT_NAME("P2 O.P.")
+ PORT_START("IN.3") // R9
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL PORT_NAME("P2 Up-Left / Kick")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL PORT_NAME("P2 Up-Right / Info")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_COCKTAIL PORT_NAME("P2 Pass")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_COCKTAIL PORT_NAME("P2 O.P.")
- PORT_START("IN.5") // O7
+ PORT_START("IN.4") // O7+!R5
PORT_CONFNAME( 0x03, 0x00, "Game Select" )
PORT_CONFSETTING( 0x02, "Basketball" )
PORT_CONFSETTING( 0x00, "Football" )
PORT_CONFSETTING( 0x01, "Soccer" )
PORT_CONFSETTING( 0x03, "Hockey" )
PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.5") // O7+R5
+ PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_CONFNAME( 0x04, 0x00, "Speed" )
+ PORT_CONFSETTING( 0x04, "High" ) // HI
+ PORT_CONFSETTING( 0x00, "Low" ) // LO
+ PORT_CONFNAME( 0x08, 0x08, DEF_STR( Players ) )
+ PORT_CONFSETTING( 0x08, "1" )
+ PORT_CONFSETTING( 0x00, "2" )
INPUT_PORTS_END
void ssports4_state::ssports4(machine_config &config)
@@ -15053,6 +15221,7 @@ CONS( 1980, phpball, 0, 0, phpball, phpball, phpball_state, emp
CONS( 1982, tdracula, 0, 0, tdracula, tdracula, tdracula_state, empty_init, "Tsukuda", "The Dracula (Tsukuda)", MACHINE_SUPPORTS_SAVE )
CONS( 1983, slepachi, 0, 0, slepachi, slepachi, slepachi_state, empty_init, "Tsukuda", "Slot Elepachi", MACHINE_SUPPORTS_SAVE )
+CONS( 1980, scruiser, 0, 0, scruiser, scruiser, scruiser_state, empty_init, "U.S. Games", "Space Cruiser", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
CONS( 1980, ssports4, 0, 0, ssports4, ssports4, ssports4_state, empty_init, "U.S. Games", "Super Sports-4", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
CONS( 1983, xl25, 0, 0, xl25, xl25, xl25_state, empty_init, "Vulcan Electronics", "XL 25", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
diff --git a/src/mame/layout/scruiser.lay b/src/mame/layout/scruiser.lay
new file mode 100644
index 00000000000..11a4a9fdc18
--- /dev/null
+++ b/src/mame/layout/scruiser.lay
@@ -0,0 +1,101 @@
+<?xml version="1.0"?>
+<!--
+license:CC0
+-->
+<mamelayout version="2">
+
+<!-- define elements -->
+
+ <element name="digit" defstate="0">
+ <led7seg><color red="1.0" green="0.1" blue="0.15" /></led7seg>
+ </element>
+
+ <element name="led" defstate="0">
+ <rect>
+ <bounds x="-2" y="-2" width="5" height="5" />
+ <color alpha="0" />
+ </rect>
+ <disk state="0">
+ <color red="0.1" green="0.01" blue="0.015" />
+ <bounds x="0" y="0" width="1" height="1" />
+ </disk>
+ <disk state="1">
+ <color red="0.5" green="0.05" blue="0.075" />
+ <bounds x="0" y="0" width="1" height="1" />
+ </disk>
+ <disk state="2">
+ <color red="1.0" green="0.1" blue="0.15" />
+ <bounds x="0" y="0" width="1" height="1" />
+ </disk>
+ </element>
+
+
+<!-- digits -->
+
+ <group name="digits">
+ <bounds x="0" y="0" width="9" height="1" />
+
+ <element name="digit0" ref="digit"><bounds x="0" y="0" width="1" height="1" /></element>
+ <element name="digit1" ref="digit"><bounds x="2" y="0" width="1" height="1" /></element>
+ <element name="digit2" ref="digit"><bounds x="6" y="0" width="1" height="1" /></element>
+ <element name="digit3" ref="digit"><bounds x="8" y="0" width="1" height="1" /></element>
+ </group>
+
+
+<!-- build screen -->
+
+ <view name="Internal Layout">
+ <bounds left="2.5" right="9.5" top="-0.25" bottom="10.25" />
+
+ <!-- score panel leds -->
+ <group ref="digits"><bounds x="3.25" y="3.5" width="0.45" height="3" /><orientation rotate="270" /></group>
+ <element name="0.8" ref="led"><bounds x="2.975" y="7" width="1" height="1" /></element>
+ <element name="3.9" ref="led"><bounds x="2.975" y="2" width="1" height="1" /></element>
+
+ <!-- playfield leds -->
+ <element name="7.0" ref="led"><bounds x="5" y="9" width="1" height="1" /></element>
+ <element name="7.1" ref="led"><bounds x="5" y="8" width="1" height="1" /></element>
+ <element name="7.2" ref="led"><bounds x="5" y="7" width="1" height="1" /></element>
+ <element name="7.3" ref="led"><bounds x="5" y="6" width="1" height="1" /></element>
+ <element name="7.4" ref="led"><bounds x="5" y="5" width="1" height="1" /></element>
+ <element name="7.5" ref="led"><bounds x="5" y="4" width="1" height="1" /></element>
+ <element name="7.6" ref="led"><bounds x="5" y="3" width="1" height="1" /></element>
+ <element name="7.7" ref="led"><bounds x="5" y="2" width="1" height="1" /></element>
+ <element name="7.8" ref="led"><bounds x="5" y="1" width="1" height="1" /></element>
+ <element name="7.9" ref="led"><bounds x="5" y="0" width="1" height="1" /></element>
+
+ <element name="6.0" ref="led"><bounds x="6" y="9" width="1" height="1" /></element>
+ <element name="6.1" ref="led"><bounds x="6" y="8" width="1" height="1" /></element>
+ <element name="6.2" ref="led"><bounds x="6" y="7" width="1" height="1" /></element>
+ <element name="6.3" ref="led"><bounds x="6" y="6" width="1" height="1" /></element>
+ <element name="6.4" ref="led"><bounds x="6" y="5" width="1" height="1" /></element>
+ <element name="6.5" ref="led"><bounds x="6" y="4" width="1" height="1" /></element>
+ <element name="6.6" ref="led"><bounds x="6" y="3" width="1" height="1" /></element>
+ <element name="6.7" ref="led"><bounds x="6" y="2" width="1" height="1" /></element>
+ <element name="6.8" ref="led"><bounds x="6" y="1" width="1" height="1" /></element>
+ <element name="6.9" ref="led"><bounds x="6" y="0" width="1" height="1" /></element>
+
+ <element name="5.0" ref="led"><bounds x="7" y="9" width="1" height="1" /></element>
+ <element name="5.1" ref="led"><bounds x="7" y="8" width="1" height="1" /></element>
+ <element name="5.2" ref="led"><bounds x="7" y="7" width="1" height="1" /></element>
+ <element name="5.3" ref="led"><bounds x="7" y="6" width="1" height="1" /></element>
+ <element name="5.4" ref="led"><bounds x="7" y="5" width="1" height="1" /></element>
+ <element name="5.5" ref="led"><bounds x="7" y="4" width="1" height="1" /></element>
+ <element name="5.6" ref="led"><bounds x="7" y="3" width="1" height="1" /></element>
+ <element name="5.7" ref="led"><bounds x="7" y="2" width="1" height="1" /></element>
+ <element name="5.8" ref="led"><bounds x="7" y="1" width="1" height="1" /></element>
+ <element name="5.9" ref="led"><bounds x="7" y="0" width="1" height="1" /></element>
+
+ <element name="4.0" ref="led"><bounds x="8" y="9" width="1" height="1" /></element>
+ <element name="4.1" ref="led"><bounds x="8" y="8" width="1" height="1" /></element>
+ <element name="4.2" ref="led"><bounds x="8" y="7" width="1" height="1" /></element>
+ <element name="4.3" ref="led"><bounds x="8" y="6" width="1" height="1" /></element>
+ <element name="4.4" ref="led"><bounds x="8" y="5" width="1" height="1" /></element>
+ <element name="4.5" ref="led"><bounds x="8" y="4" width="1" height="1" /></element>
+ <element name="4.6" ref="led"><bounds x="8" y="3" width="1" height="1" /></element>
+ <element name="4.7" ref="led"><bounds x="8" y="2" width="1" height="1" /></element>
+ <element name="4.8" ref="led"><bounds x="8" y="1" width="1" height="1" /></element>
+ <element name="4.9" ref="led"><bounds x="8" y="0" width="1" height="1" /></element>
+
+ </view>
+</mamelayout>
diff --git a/src/mame/layout/ssports4.lay b/src/mame/layout/ssports4.lay
index cd2eb5121e4..fa6193af1ce 100644
--- a/src/mame/layout/ssports4.lay
+++ b/src/mame/layout/ssports4.lay
@@ -12,7 +12,7 @@ license:CC0
<element name="led" defstate="0">
<rect>
- <bounds x="-1.5" y="-1.5" width="4" height="4" />
+ <bounds x="-2" y="-2" width="5" height="5" />
<color alpha="0" />
</rect>
<disk state="0">
@@ -30,19 +30,27 @@ license:CC0
</element>
+<!-- digits -->
+
+ <group name="digits">
+ <bounds x="0" y="0" width="9" height="1" />
+
+ <element name="digit9" ref="digit"><bounds x="0" y="0" width="1" height="1" /></element>
+ <element name="digit8" ref="digit"><bounds x="2" y="0" width="1" height="1" /></element>
+ <element name="digit1" ref="digit"><bounds x="6" y="0" width="1" height="1" /></element>
+ <element name="digit0" ref="digit"><bounds x="8" y="0" width="1" height="1" /></element>
+ </group>
+
+
<!-- build screen -->
<view name="Internal Layout">
- <bounds left="1.5" right="10.5" top="0" bottom="11" />
+ <bounds left="2.5" right="10.5" top="0" bottom="11" />
<!-- score panel leds -->
- <element name="0.8" ref="led"><bounds x="2.25" y="8" width="1" height="1" /></element>
- <element name="1.8" ref="led"><bounds x="2.25" y="2" width="1" height="1" /></element>
-
- <element name="digit9" ref="digit"><bounds x="2.25" y="7.125" width="1" height="0.75" /><orientation rotate="270" /></element>
- <element name="digit8" ref="digit"><bounds x="2.25" y="6.125" width="1" height="0.75" /><orientation rotate="270" /></element>
- <element name="digit1" ref="digit"><bounds x="2.25" y="4.125" width="1" height="0.75" /><orientation rotate="270" /></element>
- <element name="digit0" ref="digit"><bounds x="2.25" y="3.125" width="1" height="0.75" /><orientation rotate="270" /></element>
+ <group ref="digits"><bounds x="3.25" y="3.5" width="0.45" height="3" /><orientation rotate="270" /></group>
+ <element name="0.8" ref="led"><bounds x="2.975" y="7" width="1" height="1" /></element>
+ <element name="1.8" ref="led"><bounds x="2.975" y="2" width="1" height="1" /></element>
<!-- playfield leds -->
<element name="7.0" ref="led"><bounds x="5" y="9" width="1" height="1" /></element>
diff --git a/src/mame/layout/t3in1sa.lay b/src/mame/layout/t3in1sa.lay
index b188837d81a..84eb8246c65 100644
--- a/src/mame/layout/t3in1sa.lay
+++ b/src/mame/layout/t3in1sa.lay
@@ -38,12 +38,12 @@ license:CC0
<!-- 7seg leds -->
<group name="display2">
- <bounds x="0" y="0" width="10" height="3" />
+ <bounds x="0" y="0" width="9" height="1" />
- <element name="digit9" ref="digit"><bounds x="0" y="0" width="2" height="3" /></element>
- <element name="digit8" ref="digit"><bounds x="2" y="0" width="2" height="3" /></element>
- <element name="digit1" ref="digit"><bounds x="6" y="0" width="2" height="3" /></element>
- <element name="digit0" ref="digit"><bounds x="8" y="0" width="2" height="3" /></element>
+ <element name="digit9" ref="digit"><bounds x="0" y="0" width="1" height="1" /></element>
+ <element name="digit8" ref="digit"><bounds x="2" y="0" width="1" height="1" /></element>
+ <element name="digit1" ref="digit"><bounds x="6" y="0" width="1" height="1" /></element>
+ <element name="digit0" ref="digit"><bounds x="8" y="0" width="1" height="1" /></element>
</group>
@@ -53,9 +53,9 @@ license:CC0
<bounds left="4" right="25" top="-2" bottom="27" />
<group ref="display1"><bounds x="10" y="0" width="13" height="25" /><orientation rotate="270" /></group>
- <group ref="display2"><bounds x="6" y="9" width="2" height="7" /><orientation rotate="270" /></group>
+ <group ref="display2"><bounds x="6" y="9" width="1.05" height="7" /><orientation rotate="270" /></group>
- <element name="0.8" ref="led"><bounds x="6.8" y="18.33" width="0.33" height="0.33" /></element>
- <element name="1.8" ref="led"><bounds x="6.8" y="6.33" width="0.33" height="0.33" /></element>
+ <element name="0.8" ref="led"><bounds x="6.36" y="18.33" width="0.33" height="0.33" /></element>
+ <element name="1.8" ref="led"><bounds x="6.36" y="6.33" width="0.33" height="0.33" /></element>
</view>
</mamelayout>
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 073425875d1..7239d4b3325 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -16887,6 +16887,7 @@ playmaker // Tiger Electronics
qfire // Electroplay
quizwizc // Coleco
raisedvl // Entex
+scruiser // US Games
simon // Milton Bradley
simonf // Milton Bradley
slepachi // Tsukuda