mirror of
https://github.com/holub/mame
synced 2025-04-22 08:22:15 +03:00
New working systems
------------------- Star Wars: Electronic Laser Battle Game [hap, Sean Riddle]
This commit is contained in:
parent
d8f4411f39
commit
97ebbf91c9
@ -134,7 +134,7 @@ on Joerg Woerner's datamath.org: http://www.datamath.org/IC_List.htm
|
||||
@MP3206 TMS1000 1978, Concept 2000 Mr. Mus-I-Cal (model 560)
|
||||
@MP3207 TMS1000 1978, Concept 2000 Lite 'n Learn: Electronic Organ (model 554)
|
||||
@MP3208 TMS1000 1978, Milton Bradley Electronic Battleship (1977, model 4750B)
|
||||
*MP3209 TMS1000 1978, Kenner Star Wars: Electronic Laser Battle Game
|
||||
@MP3209 TMS1000 1978, Kenner Star Wars: Electronic Laser Battle Game
|
||||
@MP3226 TMS1000 1978, Milton Bradley Simon (Rev A)
|
||||
*MP3228 TMS1000 1979, Texas Instruments OEM melody chip
|
||||
*MP3232 TMS1000 1979, Fonas 2 Player Baseball (no "MP" on chip label)
|
||||
@ -323,6 +323,7 @@ on Joerg Woerner's datamath.org: http://www.datamath.org/IC_List.htm
|
||||
#include "ssimon.lh" // clickable
|
||||
#include "ssports4.lh"
|
||||
#include "starwbc.lh" // clickable
|
||||
#include "starwlb.lh" // clickable
|
||||
#include "stopthief.lh" // clickable
|
||||
#include "subwars.lh"
|
||||
#include "t3in1sa.lh"
|
||||
@ -2151,7 +2152,7 @@ ROM_END
|
||||
/*******************************************************************************
|
||||
|
||||
Coleco Electronic Quarterback (model 2120)
|
||||
* TMS1100NLL MP3415 (die label same)
|
||||
* TMS1100NLL MP3415 (die label: 1100B, MP3415)
|
||||
* 9-digit LED grid, 1-bit sound
|
||||
|
||||
known releases:
|
||||
@ -2280,7 +2281,7 @@ ROM_END
|
||||
/*******************************************************************************
|
||||
|
||||
Coleco Head to Head: Electronic Football (model 2140)
|
||||
* TMS1100NLLE (rev. E!) MP3460 (die label same)
|
||||
* TMS1100NLLE (rev. E!) MP3460 (die label: 1100E, MP3460)
|
||||
* 2*SN75492N LED display drivers, 9-digit LED grid, 1-bit sound
|
||||
|
||||
LED electronic football game. To distinguish between offense and defense,
|
||||
@ -3692,7 +3693,7 @@ ROM_END
|
||||
|
||||
Conic Electronic Multisport
|
||||
* PCB label: CONIC 101-027(1979), or CONIC 101-021 REV A(1980, with DS8871N)
|
||||
* TMS1000 MP0168 (die label same)
|
||||
* TMS1000 MP0168 (die label: 1000B, MP0168)
|
||||
* 2 7seg LEDs, 33 other LEDs, 1-bit sound
|
||||
|
||||
This handheld includes 3 games: Basketball, Ice Hockey, Soccer.
|
||||
@ -3822,7 +3823,7 @@ ROM_END
|
||||
/*******************************************************************************
|
||||
|
||||
Conic Electronic Football
|
||||
* TMS1000 MP0170 (die label same)
|
||||
* TMS1000 MP0170 (die label: 1000B, MP0170)
|
||||
* DS8874N, 3*9 LED array, 7 7seg LEDs, 1-bit sound
|
||||
|
||||
This is a clone of Mattel Football. Apparently Mattel tried to keep imports
|
||||
@ -4253,8 +4254,9 @@ ROM_END
|
||||
/*******************************************************************************
|
||||
|
||||
Electroplay Quickfire
|
||||
* TMS1000NLL MP3260 (die label same)
|
||||
* 2 7seg LEDs, 5 lamps, 3 lightsensors, lightgun
|
||||
* TMS1000NLL MP3260 (die label: 1000C, MP3260)
|
||||
* 2 7seg LEDs, 5 lamps, 1-bit sound
|
||||
* 3 lightsensors, lightgun
|
||||
|
||||
To play it in MAME, either use the clickable artwork with -mouse, or set
|
||||
button 1 to "Z or X or C" and each lightsensor to one of those keys.
|
||||
@ -4288,7 +4290,7 @@ void qfire_state::write_r(u32 data)
|
||||
m_display->write_row(2, (data >> 3 & 3) | (data >> 4 & 0x1c));
|
||||
|
||||
// R9: speaker out
|
||||
m_speaker->level_w(data >> 9 & 1);
|
||||
m_speaker->level_w(BIT(data, 9));
|
||||
}
|
||||
|
||||
void qfire_state::write_o(u16 data)
|
||||
@ -7252,6 +7254,120 @@ ROM_END
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
|
||||
Star Wars: Electronic Laser Battle Game (model 40090)
|
||||
* TMS1000NLL MP3209 (die label: 1000C, MP3209)
|
||||
* 12 LEDs, 1 lamp, 1-bit sound
|
||||
|
||||
known releases:
|
||||
- USA: Star Wars: Electronic Laser Battle Game, published by Kenner
|
||||
- France: La Guerre des Etoiles: Bataille Spatiale Électronique, published by Meccano
|
||||
|
||||
*******************************************************************************/
|
||||
|
||||
class starwlb_state : public hh_tms1k_state
|
||||
{
|
||||
public:
|
||||
starwlb_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
hh_tms1k_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
void starwlb(machine_config &config);
|
||||
|
||||
private:
|
||||
void update_display();
|
||||
void write_r(u32 data);
|
||||
void write_o(u16 data);
|
||||
u8 read_k();
|
||||
};
|
||||
|
||||
// handlers
|
||||
|
||||
void starwlb_state::update_display()
|
||||
{
|
||||
m_display->matrix(1, (m_r & 0x7ff) | (m_o << 4 & 0x800) | (m_o << 10 & 0x1000));
|
||||
}
|
||||
|
||||
void starwlb_state::write_r(u32 data)
|
||||
{
|
||||
// R0-R10: leds
|
||||
m_r = data;
|
||||
update_display();
|
||||
}
|
||||
|
||||
void starwlb_state::write_o(u16 data)
|
||||
{
|
||||
// O0,O1: input mux
|
||||
m_inp_mux = data & 3;
|
||||
|
||||
// O3-O6(tied together): speaker out (actually only writes 0x0 or 0xf)
|
||||
m_speaker->level_w(population_count_32(data >> 3 & 0xf));
|
||||
|
||||
// O2: lamp
|
||||
// O7: one more led
|
||||
m_o = data;
|
||||
update_display();
|
||||
}
|
||||
|
||||
u8 starwlb_state::read_k()
|
||||
{
|
||||
// K: multiplexed inputs
|
||||
return read_inputs(2);
|
||||
}
|
||||
|
||||
// inputs
|
||||
|
||||
static INPUT_PORTS_START( starwlb )
|
||||
PORT_START("IN.0") // O0
|
||||
PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("P1 Button B")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("P1 Button F")
|
||||
|
||||
PORT_START("IN.1") // O1
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL PORT_NAME("P2 Button B")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL PORT_NAME("P2 Button F")
|
||||
PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
INPUT_PORTS_END
|
||||
|
||||
// config
|
||||
|
||||
void starwlb_state::starwlb(machine_config &config)
|
||||
{
|
||||
// basic machine hardware
|
||||
TMS1000(config, m_maincpu, 350000); // approximation - RC osc. R=33K, C=100pF
|
||||
m_maincpu->read_k().set(FUNC(starwlb_state::read_k));
|
||||
m_maincpu->write_r().set(FUNC(starwlb_state::write_r));
|
||||
m_maincpu->write_o().set(FUNC(starwlb_state::write_o));
|
||||
|
||||
// video hardware
|
||||
PWM_DISPLAY(config, m_display).set_size(1, 13);
|
||||
config.set_default_layout(layout_starwlb);
|
||||
|
||||
// sound hardware
|
||||
SPEAKER(config, "mono").front_center();
|
||||
SPEAKER_SOUND(config, m_speaker);
|
||||
static const double speaker_levels[5] = { 0.0, 1.0/4.0, 2.0/4.0, 3.0/4.0, 1.0 };
|
||||
m_speaker->set_levels(5, speaker_levels);
|
||||
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
|
||||
}
|
||||
|
||||
// roms
|
||||
|
||||
ROM_START( starwlb )
|
||||
ROM_REGION( 0x0400, "maincpu", 0 )
|
||||
ROM_LOAD( "mp3209", 0x0000, 0x0400, CRC(99628f9c) SHA1(5db191462521c4ae0b6955b31d5e8c6de65dd6a0) )
|
||||
|
||||
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_starwlb_output.pla", 0, 365, CRC(80a2d158) SHA1(8c74ca6af5d76425ff451bb5140a8dd2cfde850a) )
|
||||
ROM_END
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
|
||||
Kenner Star Wars: Electronic Battle Command Game (model 40370)
|
||||
@ -16417,6 +16533,7 @@ SYST( 1981, fxmcr165, 0, 0, fxmcr165, fxmcr165, fxmcr165_state,
|
||||
|
||||
SYST( 1979, elecdet, 0, 0, elecdet, elecdet, elecdet_state, empty_init, "Ideal Toy Corporation", "Electronic Detective", MACHINE_SUPPORTS_SAVE ) // ***
|
||||
|
||||
SYST( 1978, starwlb, 0, 0, starwlb, starwlb, starwlb_state, empty_init, "Kenner", "Star Wars: Electronic Laser Battle Game", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
SYST( 1979, starwbc, 0, 0, starwbc, starwbc, starwbc_state, empty_init, "Kenner", "Star Wars: Electronic Battle Command Game", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
SYST( 1979, starwbcp, starwbc, 0, starwbc, starwbc, starwbc_state, empty_init, "Kenner", "Star Wars: Electronic Battle Command Game (patent)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
SYST( 1980, liveafb, 0, 0, liveafb, liveafb, liveafb_state, empty_init, "Kenner", "Live Action Football", MACHINE_SUPPORTS_SAVE )
|
||||
|
@ -35,14 +35,14 @@ license:CC0-1.0
|
||||
<bounds x="0.4" y="0.4" width="0.2" height="0.2" />
|
||||
</disk>
|
||||
<disk state="0">
|
||||
<color red="0.2" green="0.02" blue="0.03" />
|
||||
<color red="0.15" green="0.015" blue="0.0225" />
|
||||
<bounds x="0.4" y="0.4" width="0.2" height="0.2" />
|
||||
</disk>
|
||||
</element>
|
||||
|
||||
<element name="nlamp" defstate="0">
|
||||
<disk state="1"><color red="1.0" green="0.1" blue="0.15" /></disk>
|
||||
<disk state="0"><color red="0.2" green="0.02" blue="0.03" /></disk>
|
||||
<disk state="0"><color red="0.15" green="0.015" blue="0.0225" /></disk>
|
||||
</element>
|
||||
|
||||
<element name="text_a"><text string="A"><color red="0.7" green="0.7" blue="0.7" /></text></element>
|
||||
|
124
src/mame/layout/starwlb.lay
Normal file
124
src/mame/layout/starwlb.lay
Normal file
@ -0,0 +1,124 @@
|
||||
<?xml version="1.0"?>
|
||||
<!--
|
||||
license:CC0-1.0
|
||||
-->
|
||||
<mamelayout version="2">
|
||||
|
||||
<!-- define elements -->
|
||||
|
||||
<element name="blackb"><rect><color red="0" green="0" blue="0" /></rect></element>
|
||||
<element name="black"><rect><color red="0.13" green="0.13" blue="0.13" /></rect></element>
|
||||
<element name="blackd"><disk><color red="0.13" green="0.13" blue="0.13" /></disk></element>
|
||||
|
||||
<element name="led" defstate="0">
|
||||
<disk>
|
||||
<bounds xc="0" yc="0" width="10" height="10" />
|
||||
<color red="0.0" green="0.0" blue="0.0" />
|
||||
</disk>
|
||||
<disk state="1">
|
||||
<bounds xc="0" yc="0" width="6" height="6" />
|
||||
<color red="1.0" green="0.1" blue="0.15" />
|
||||
</disk>
|
||||
<disk state="0">
|
||||
<bounds xc="0" yc="0" width="6" height="6" />
|
||||
<color red="0.15" green="0.015" blue="0.0225" />
|
||||
</disk>
|
||||
</element>
|
||||
|
||||
<element name="lamp" defstate="0">
|
||||
<disk state="1"><color red="1.0" green="1.0" blue="1.0" /></disk>
|
||||
<disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
|
||||
</element>
|
||||
|
||||
<element name="hl" defstate="0">
|
||||
<rect state="1"><color red="0" green="0" blue="0" /></rect>
|
||||
</element>
|
||||
|
||||
<element name="butf">
|
||||
<rect>
|
||||
<bounds xc="0" yc="0" width="10" height="10" />
|
||||
<color red="0" green="0" blue="0" />
|
||||
</rect>
|
||||
<rect>
|
||||
<bounds xc="0" yc="0" width="8.5" height="8.5" />
|
||||
<color red="0.8" green="0.3" blue="0.1" />
|
||||
</rect>
|
||||
<text string="F">
|
||||
<bounds xc="0" yc="0" width="9.5" height="9.5" />
|
||||
<color red="0.6" green="0.225" blue="0.075" />
|
||||
</text>
|
||||
</element>
|
||||
|
||||
<element name="butb">
|
||||
<rect>
|
||||
<bounds xc="0" yc="0" width="10" height="10" />
|
||||
<color red="0" green="0" blue="0" />
|
||||
</rect>
|
||||
<rect>
|
||||
<bounds xc="0" yc="0" width="8.5" height="8.5" />
|
||||
<color red="0.8" green="0.8" blue="0.1" />
|
||||
</rect>
|
||||
<text string="B">
|
||||
<bounds xc="0" yc="0" width="9.5" height="9.5" />
|
||||
<color red="0.6" green="0.6" blue="0.075" />
|
||||
</text>
|
||||
</element>
|
||||
|
||||
<element name="text_1">
|
||||
<rect><color red="0.13" green="0.13" blue="0.13" /></rect>
|
||||
<text string="1"><color red="0" green="0" blue="0" /></text>
|
||||
</element>
|
||||
|
||||
<element name="text_2">
|
||||
<rect><color red="0.13" green="0.13" blue="0.13" /></rect>
|
||||
<text string="2"><color red="0" green="0" blue="0" /></text>
|
||||
</element>
|
||||
|
||||
|
||||
<!-- build screen -->
|
||||
|
||||
<view name="Internal Layout">
|
||||
<bounds left="-7" right="27" top="-9.75" bottom="64.75" />
|
||||
|
||||
<element ref="black"><bounds xc="10" y="-2" width="5" height="60" /></element>
|
||||
<element ref="blackd"><bounds xc="10" yc="27.5" width="27" height="27" /></element>
|
||||
|
||||
<element ref="blackd"><bounds xc="10" yc="-8.75" width="20" height="20" /></element>
|
||||
<element ref="blackd"><bounds xc="10" yc="63.75" width="20" height="20" /></element>
|
||||
|
||||
<element ref="text_2"><bounds xc="10" yc="-7" width="2" height="2" /><orientation rotate="180" /></element>
|
||||
<element ref="text_1"><bounds xc="10" yc="62" width="2" height="2" /></element>
|
||||
|
||||
<element ref="blackb"><bounds xc="10" y="-29.75" width="30" height="20" /></element>
|
||||
<element ref="blackb"><bounds xc="10" y="64.75" width="30" height="20" /></element>
|
||||
|
||||
<element name="0.0" ref="led"><bounds xc="10" yc="55" width="1.5" height="1.5" /></element>
|
||||
<element name="0.1" ref="led"><bounds xc="10" yc="52" width="1.5" height="1.5" /></element>
|
||||
<element name="0.2" ref="led"><bounds xc="10" yc="49" width="1.5" height="1.5" /></element>
|
||||
<element name="0.3" ref="led"><bounds xc="10" yc="46" width="1.5" height="1.5" /></element>
|
||||
<element name="0.4" ref="led"><bounds xc="10" yc="43" width="1.5" height="1.5" /></element>
|
||||
<element name="0.5" ref="led"><bounds xc="10" yc="40" width="1.5" height="1.5" /></element>
|
||||
|
||||
<element name="0.11" ref="led"><bounds xc="10" yc="15" width="1.5" height="1.5" /></element>
|
||||
<element name="0.10" ref="led"><bounds xc="10" yc="12" width="1.5" height="1.5" /></element>
|
||||
<element name="0.9" ref="led"><bounds xc="10" yc="9" width="1.5" height="1.5" /></element>
|
||||
<element name="0.8" ref="led"><bounds xc="10" yc="6" width="1.5" height="1.5" /></element>
|
||||
<element name="0.7" ref="led"><bounds xc="10" yc="3" width="1.5" height="1.5" /></element>
|
||||
<element name="0.6" ref="led"><bounds xc="10" yc="0" width="1.5" height="1.5" /></element>
|
||||
|
||||
<element name="0.12" ref="lamp"><bounds xc="10" yc="27.5" width="20" height="20" /></element>
|
||||
|
||||
<element ref="butb"><bounds x="4" y="-7.75" width="5" height="5" /><orientation rotate="180" /></element>
|
||||
<element ref="butf"><bounds x="11" y="-7.75" width="5" height="5" /><orientation rotate="180" /></element>
|
||||
|
||||
<element ref="hl" inputtag="IN.1" inputmask="0x01"><bounds x="4" y="-7.75" width="5" height="5" /><color alpha="0.25" /></element>
|
||||
<element ref="hl" inputtag="IN.1" inputmask="0x02"><bounds x="11" y="-7.75" width="5" height="5" /><color alpha="0.25" /></element>
|
||||
|
||||
<element ref="butf"><bounds x="4" y="57.75" width="5" height="5" /></element>
|
||||
<element ref="butb"><bounds x="11" y="57.75" width="5" height="5" /></element>
|
||||
|
||||
<element ref="hl" inputtag="IN.0" inputmask="0x08"><bounds x="4" y="57.75" width="5" height="5" /><color alpha="0.25" /></element>
|
||||
<element ref="hl" inputtag="IN.0" inputmask="0x04"><bounds x="11" y="57.75" width="5" height="5" /><color alpha="0.25" /></element>
|
||||
|
||||
</view>
|
||||
</mamelayout>
|
@ -18991,6 +18991,7 @@ ssimon // Milton Bradley
|
||||
ssports4 // US Games
|
||||
starwbc // Kenner
|
||||
starwbcp // Kenner (patent)
|
||||
starwlb // Kenner
|
||||
stopthief // Parker Bros
|
||||
stopthiefp // Parker Bros (patent)
|
||||
subwars // Tiger Electronics
|
||||
|
Loading…
Reference in New Issue
Block a user