New working machines

--------------------
Sub Wars (LED version) [hap, Sean Riddle, Rik]
This commit is contained in:
hap 2021-03-04 21:57:26 +01:00
parent f0443b5e50
commit b5d04b866c
4 changed files with 282 additions and 3 deletions

View File

@ -6956,7 +6956,7 @@ ROM_END
/***************************************************************************
Tiger Home Alone (model 78-???)
Tiger Home Alone (model 78-502)
* Sharp SM510 under epoxy (die label MC7)
* lcd screen with custom segments, 1-bit sound

View File

@ -79,7 +79,7 @@
@MP3301A TMS1000 1979, Milton Bradley Big Trak
@MP3320A TMS1000 1979, Coleco Head to Head: Electronic Basketball
@MP3321A TMS1000 1979, Coleco Head to Head: Electronic Hockey
*MP3352 TMS1200 1979, Tiger Sub Wars (model 7-490)
@MP3352 TMS1200 1979, Tiger Sub Wars (model 7-490)
@M32001 TMS1000 1981, Coleco Quiz Wiz Challenger (note: MP3398, MP3399, M3200x?)
*M32018 TMS1000 1990, unknown device (have decap/dump)
M32045B TMS1000 1983, Chrysler Electronic Voice Alert (11-function) -> eva.cpp
@ -240,6 +240,7 @@
#include "ssports4.lh"
#include "starwbc.lh" // clickable
#include "stopthief.lh" // clickable
#include "subwars.lh"
#include "tandy12.lh" // clickable
#include "tbreakup.lh"
#include "tc4.lh"
@ -11504,6 +11505,100 @@ ROM_END
/***************************************************************************
Tiger Sub Wars (model 7-490)
* PCB label CSG201A(main), CSG201B(leds)
* TMS1200N2LL MP3352 (die label 1000C, MP3352)
* 4-digit 7seg LED display + 55 other LEDs, 1-bit sound
Tiger/Yeno also published an LCD handheld called Sub Wars, it's not related.
***************************************************************************/
class subwars_state : public hh_tms1k_state
{
public:
subwars_state(const machine_config &mconfig, device_type type, const char *tag) :
hh_tms1k_state(mconfig, type, tag)
{ }
void update_display();
void write_r(u16 data);
void write_o(u16 data);
void subwars(machine_config &config);
};
// handlers
void subwars_state::update_display()
{
m_display->matrix(m_r, m_o);
}
void subwars_state::write_r(u16 data)
{
// R0-R3: digit select
// R4-R12: led select
m_r = data;
update_display();
}
void subwars_state::write_o(u16 data)
{
// O0-O6: led data
m_o = data;
update_display();
// O7: speaker out
m_speaker->level_w(BIT(data, 7));
}
// config
static INPUT_PORTS_START( subwars )
PORT_START("IN.0")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_16WAY
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_16WAY
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
INPUT_PORTS_END
void subwars_state::subwars(machine_config &config)
{
/* basic machine hardware */
TMS1200(config, m_maincpu, 550000); // approximation - RC osc. R=24K, C=47pF
m_maincpu->k().set_ioport("IN.0");
m_maincpu->r().set(FUNC(subwars_state::write_r));
m_maincpu->o().set(FUNC(subwars_state::write_o));
/* video hardware */
PWM_DISPLAY(config, m_display).set_size(13, 7);
m_display->set_segmask(0xf, 0x7f);
config.set_default_layout(layout_subwars);
/* sound hardware */
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
}
// roms
ROM_START( subwars )
ROM_REGION( 0x0400, "maincpu", 0 )
ROM_LOAD( "mp3352", 0x0000, 0x0400, CRC(5dece1e4) SHA1(65ef77b063c94ff4b6c83dace54ea2f75bd3d6a9) )
ROM_REGION( 867, "maincpu:mpla", 0 )
ROM_LOAD( "tms1000_common1_micro.pla", 0, 867, CRC(4becec19) SHA1(3c8a9be0f00c88c81f378b76886c39b10304f330) )
ROM_REGION( 365, "maincpu:opla", 0 )
ROM_LOAD( "tms1000_subwars_output.pla", 0, 365, CRC(372b9bbc) SHA1(06a875e114b7757c6f4f1727416d1739ebe60931) )
ROM_END
/***************************************************************************
Tiger Electronics Copy Cat (model 7-520)
@ -11799,7 +11894,7 @@ ROM_END
/***************************************************************************
Tiger 7 in 1 Sports Stadium
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
@ -12697,6 +12792,7 @@ COMP( 1980, mathmarv, 0, 0, mathmarv, mathmarv, mathmarv_state, emp
CONS( 1979, timaze, 0, 0, timaze, timaze, timaze_state, empty_init, "Texas Instruments", "unknown electronic maze game (patent)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW )
CONS( 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( 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 )

182
src/mame/layout/subwars.lay Normal file
View File

@ -0,0 +1,182 @@
<?xml version="1.0"?>
<!--
license:CC0
-->
<mamelayout version="2">
<!-- define elements -->
<element name="gray"><rect><color red="0.3" green="0.3" blue="0.31" /></rect></element>
<element name="white"><rect><color red="0.78" green="0.78" blue="0.8" /></rect></element>
<element name="black"><rect><color red="0" green="0" blue="0" /></rect></element>
<element name="blackd"><disk><color red="0" green="0" blue="0" /></disk></element>
<element name="text_l1">
<rect><color red="0.3" green="0.3" blue="0.31" /></rect>
<text string="RELOAD"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_l2">
<rect><color red="0.3" green="0.3" blue="0.31" /></rect>
<text string="TIME"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_l3">
<rect><color red="0.3" green="0.3" blue="0.31" /></rect>
<text string="SCORE"><color red="0.01" green="0.01" blue="0.01" /></text>
</element>
<element name="text_w0"><text string="3000"><color red="0.78" green="0.78" blue="0.8" /></text></element>
<element name="text_w1"><text string="2000"><color red="0.78" green="0.78" blue="0.8" /></text></element>
<element name="text_w2"><text string="1000"><color red="0.78" green="0.78" blue="0.8" /></text></element>
<element name="ledd" 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="ledr" defstate="0">
<rect state="0"><color red="0.1" green="0.01" blue="0.015" /></rect>
<rect state="1"><color red="1.0" green="0.1" blue="0.15" /></rect>
</element>
<element name="digit" defstate="0">
<led7seg><color red="1.0" green="0.1" blue="0.15" /></led7seg>
</element>
<!-- build screen -->
<view name="Internal Layout">
<bounds left="23.5" right="139.9" top="18.5" bottom="133.3" />
<!-- bezel -->
<element ref="gray"><bounds x="23.4" y="46.4" width="116.6" height="0.6" /></element>
<element ref="gray"><bounds x="23.4" y="62.4" width="116.6" height="0.6" /></element>
<element ref="gray"><bounds x="23.4" y="78.4" width="116.6" height="0.6" /></element>
<element ref="gray"><bounds x="23.4" y="94.4" width="116.6" height="0.6" /></element>
<element ref="gray"><bounds x="23.4" y="105.4" width="116.6" height="0.6" /></element>
<element ref="gray"><bounds x="23.4" y="116.4" width="116.6" height="0.6" /></element>
<repeat count="7">
<param name="x" start="27.4" increment="18" />
<element ref="gray"><bounds x="~x~" y="30" width="0.6" height="100" /></element>
</repeat>
<repeat count="10">
<param name="x" start="27.4" increment="12" />
<element ref="white"><bounds x="~x~" y="76.7" width="0.6" height="4" /></element>
</repeat>
<repeat count="4">
<param name="x" start="33.4" increment="12" />
<element ref="white"><bounds x="~x~" y="77.7" width="0.6" height="2" /></element>
</repeat>
<repeat count="4">
<param name="x" start="93.4" increment="12" />
<element ref="white"><bounds x="~x~" y="77.7" width="0.6" height="2" /></element>
</repeat>
<repeat count="8">
<param name="y" start="36.4" increment="12" />
<element ref="white"><bounds x="79.7" y="~y~" width="4" height="0.6" /></element>
</repeat>
<repeat count="3">
<param name="y" start="42.4" increment="12" />
<element ref="white"><bounds x="80.7" y="~y~" width="2" height="0.6" /></element>
</repeat>
<repeat count="3">
<param name="y" start="90.4" increment="12" />
<element ref="white"><bounds x="80.7" y="~y~" width="2" height="0.6" /></element>
</repeat>
<repeat count="3">
<param name="y" start="44" increment="12" />
<param name="t" start="0" increment="1" />
<element ref="text_w~t~"><bounds x="75.7" y="~y~" width="12" height="3.4" /></element>
</repeat>
<element ref="gray"><bounds x="23.4" y="120" width="116.6" height="13.4" /></element>
<repeat count="6">
<param name="x" start="32.2" increment="18" />
<element ref="blackd"><bounds x="~x~" y="122.2" width="9" height="9" /></element>
</repeat>
<element ref="gray"><bounds x="23.4" y="18.4" width="116.6" height="25" /></element>
<element ref="text_l1"><bounds x="35.4" y="37.8" width="20" height="5" /></element>
<element ref="text_l2"><bounds x="57" y="37.8" width="17" height="5" /></element>
<element ref="text_l3"><bounds x="90" y="37.8" width="20" height="5" /></element>
<element ref="blackd"><bounds x="37.2" y="25.2" width="9" height="9" /></element>
<element ref="black"><bounds x="50" y="22.7" width="70" height="14" /></element>
<!-- leds -->
<element name="digit3" ref="digit"><bounds x="62" y="25.7" width="6" height="8" /></element>
<element name="digit2" ref="digit"><bounds x="80" y="25.7" width="6" height="8" /></element>
<element name="digit1" ref="digit"><bounds x="90" y="25.7" width="6" height="8" /></element>
<element name="digit0" ref="digit"><bounds x="100" y="25.7" width="6" height="8" /></element>
<element name="4.6" ref="ledd"><bounds x="41" y="29" width="1.4" height="1.4" /></element>
<element name="10.0" ref="ledr"><bounds x="35.3" y="48.2" width="2.8" height="1" /></element>
<element name="10.1" ref="ledr"><bounds x="53.3" y="48.2" width="2.8" height="1" /></element>
<element name="10.2" ref="ledr"><bounds x="71.3" y="48.2" width="2.8" height="1" /></element>
<element name="10.3" ref="ledr"><bounds x="89.3" y="48.2" width="2.8" height="1" /></element>
<element name="10.4" ref="ledr"><bounds x="107.3" y="48.2" width="2.8" height="1" /></element>
<element name="10.5" ref="ledr"><bounds x="125.3" y="48.2" width="2.8" height="1" /></element>
<element name="9.0" ref="ledd"><bounds x="36" y="56" width="1.4" height="1.4" /></element>
<element name="9.1" ref="ledd"><bounds x="54" y="56" width="1.4" height="1.4" /></element>
<element name="9.2" ref="ledd"><bounds x="72" y="56" width="1.4" height="1.4" /></element>
<element name="9.3" ref="ledd"><bounds x="90" y="56" width="1.4" height="1.4" /></element>
<element name="9.4" ref="ledd"><bounds x="108" y="56" width="1.4" height="1.4" /></element>
<element name="9.5" ref="ledd"><bounds x="126" y="56" width="1.4" height="1.4" /></element>
<element name="11.0" ref="ledr"><bounds x="35.3" y="64.2" width="2.8" height="1" /></element>
<element name="11.1" ref="ledr"><bounds x="53.3" y="64.2" width="2.8" height="1" /></element>
<element name="11.2" ref="ledr"><bounds x="71.3" y="64.2" width="2.8" height="1" /></element>
<element name="11.3" ref="ledr"><bounds x="89.3" y="64.2" width="2.8" height="1" /></element>
<element name="11.4" ref="ledr"><bounds x="107.3" y="64.2" width="2.8" height="1" /></element>
<element name="11.5" ref="ledr"><bounds x="125.3" y="64.2" width="2.8" height="1" /></element>
<element name="8.0" ref="ledd"><bounds x="36" y="72" width="1.4" height="1.4" /></element>
<element name="8.1" ref="ledd"><bounds x="54" y="72" width="1.4" height="1.4" /></element>
<element name="8.2" ref="ledd"><bounds x="72" y="72" width="1.4" height="1.4" /></element>
<element name="8.3" ref="ledd"><bounds x="90" y="72" width="1.4" height="1.4" /></element>
<element name="8.4" ref="ledd"><bounds x="108" y="72" width="1.4" height="1.4" /></element>
<element name="8.5" ref="ledd"><bounds x="126" y="72" width="1.4" height="1.4" /></element>
<element name="12.0" ref="ledr"><bounds x="35.3" y="80.2" width="2.8" height="1" /></element>
<element name="12.1" ref="ledr"><bounds x="53.3" y="80.2" width="2.8" height="1" /></element>
<element name="12.2" ref="ledr"><bounds x="71.3" y="80.2" width="2.8" height="1" /></element>
<element name="12.3" ref="ledr"><bounds x="89.3" y="80.2" width="2.8" height="1" /></element>
<element name="12.4" ref="ledr"><bounds x="107.3" y="80.2" width="2.8" height="1" /></element>
<element name="12.5" ref="ledr"><bounds x="125.3" y="80.2" width="2.8" height="1" /></element>
<element name="7.0" ref="ledd"><bounds x="36" y="88" width="1.4" height="1.4" /></element>
<element name="7.1" ref="ledd"><bounds x="54" y="88" width="1.4" height="1.4" /></element>
<element name="7.2" ref="ledd"><bounds x="72" y="88" width="1.4" height="1.4" /></element>
<element name="7.3" ref="ledd"><bounds x="90" y="88" width="1.4" height="1.4" /></element>
<element name="7.4" ref="ledd"><bounds x="108" y="88" width="1.4" height="1.4" /></element>
<element name="7.5" ref="ledd"><bounds x="126" y="88" width="1.4" height="1.4" /></element>
<element name="6.0" ref="ledd"><bounds x="36" y="99" width="1.4" height="1.4" /></element>
<element name="6.1" ref="ledd"><bounds x="54" y="99" width="1.4" height="1.4" /></element>
<element name="6.2" ref="ledd"><bounds x="72" y="99" width="1.4" height="1.4" /></element>
<element name="6.3" ref="ledd"><bounds x="90" y="99" width="1.4" height="1.4" /></element>
<element name="6.4" ref="ledd"><bounds x="108" y="99" width="1.4" height="1.4" /></element>
<element name="6.5" ref="ledd"><bounds x="126" y="99" width="1.4" height="1.4" /></element>
<element name="5.0" ref="ledd"><bounds x="36" y="110" width="1.4" height="1.4" /></element>
<element name="5.1" ref="ledd"><bounds x="54" y="110" width="1.4" height="1.4" /></element>
<element name="5.2" ref="ledd"><bounds x="72" y="110" width="1.4" height="1.4" /></element>
<element name="5.3" ref="ledd"><bounds x="90" y="110" width="1.4" height="1.4" /></element>
<element name="5.4" ref="ledd"><bounds x="108" y="110" width="1.4" height="1.4" /></element>
<element name="5.5" ref="ledd"><bounds x="126" y="110" width="1.4" height="1.4" /></element>
<element name="4.0" ref="ledd"><bounds x="36" y="126" width="1.4" height="1.4" /></element>
<element name="4.1" ref="ledd"><bounds x="54" y="126" width="1.4" height="1.4" /></element>
<element name="4.2" ref="ledd"><bounds x="72" y="126" width="1.4" height="1.4" /></element>
<element name="4.3" ref="ledd"><bounds x="90" y="126" width="1.4" height="1.4" /></element>
<element name="4.4" ref="ledd"><bounds x="108" y="126" width="1.4" height="1.4" /></element>
<element name="4.5" ref="ledd"><bounds x="126" y="126" width="1.4" height="1.4" /></element>
</view>
</mamelayout>

View File

@ -16376,6 +16376,7 @@ starwbc // Kenner
starwbcp // Kenner (patent)
stopthief // Parker Bros
stopthiefp // Parker Bros (patent)
subwars // Tiger Electronics
tandy12 // Tandy Corporation
tbreakup // Tomy
tc4 // Coleco