New working machines

--------------------
Look Alive! Football [hap, Sean Riddle, Rik]
This commit is contained in:
hap 2022-01-21 16:41:15 +01:00
parent 7c1ec79705
commit 3e3a081b92
4 changed files with 222 additions and 3 deletions

View File

@ -40,6 +40,7 @@ TODO:
#include "h2hbaskbc.lh"
#include "h2hhockeyc.lh"
#include "h2hsoccerc.lh"
#include "lafootb.lh"
#include "lchicken.lh" // clickable
#include "lightfgt.lh" // clickable
#include "mdallas.lh"
@ -1168,6 +1169,119 @@ ROM_END
/***************************************************************************
Mattel Look Alive! Football (model 1998)
* COP421L MCU bonded directly to PCB (rom serial HCJ)
* 2 7seg LEDs, LED matrix and overlay mask, 1-bit sound
1st-person view versions for Baseball and Basketball were also announced,
but not released.
***************************************************************************/
class lafootb_state : public hh_cop400_state
{
public:
lafootb_state(const machine_config &mconfig, device_type type, const char *tag) :
hh_cop400_state(mconfig, type, tag)
{ }
void update_display();
void write_l(u8 data);
void write_d(u8 data);
u8 read_g();
void lafootb(machine_config &config);
};
// handlers
void lafootb_state::update_display()
{
m_display->matrix(~m_d, m_l);
}
void lafootb_state::write_l(u8 data)
{
// L: led data
m_l = data;
update_display();
}
void lafootb_state::write_d(u8 data)
{
// D: led select, D2,D3: input mux
m_d = data & 0xf;
m_inp_mux = data >> 2 & 3;
update_display();
}
u8 lafootb_state::read_g()
{
// G: multiplexed inputs
return read_inputs(2, 7) | (m_inputs[2]->read() & 8);
}
// config
static INPUT_PORTS_START( lafootb )
PORT_START("IN.0") // D2 port G
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_16WAY PORT_NAME("Right / Home")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Kick / Yards to go")
PORT_START("IN.1") // D3 port G
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_16WAY PORT_NAME("Left / Visitors")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_16WAY PORT_NAME("Up / Time")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Pass / Status")
PORT_START("IN.2") // G3
PORT_CONFNAME( 0x08, 0x08, DEF_STR( Difficulty ) )
PORT_CONFSETTING( 0x08, "1" )
PORT_CONFSETTING( 0x00, "2" )
INPUT_PORTS_END
void lafootb_state::lafootb(machine_config &config)
{
/* basic machine hardware */
COP421(config, m_maincpu, 900000); // approximation - RC osc. R=51K, C=100pF
m_maincpu->set_config(COP400_CKI_DIVISOR_16, COP400_CKO_OSCILLATOR_OUTPUT, false); // guessed
m_maincpu->write_l().set(FUNC(lafootb_state::write_l));
m_maincpu->write_d().set(FUNC(lafootb_state::write_d));
m_maincpu->read_g().set(FUNC(lafootb_state::read_g));
m_maincpu->write_sk().set(m_speaker, FUNC(speaker_sound_device::level_w));
/* video hardware */
screen_device &mask(SCREEN(config, "mask", SCREEN_TYPE_SVG));
mask.set_refresh_hz(60);
mask.set_size(1920, 864);
mask.set_visarea_full();
PWM_DISPLAY(config, m_display).set_size(4, 8);
m_display->set_segmask(0x4, 0x7f);
m_display->set_segmask(0x8, 0xff); // right digit has dp
m_display->set_bri_levels(0.005);
config.set_default_layout(layout_lafootb);
/* sound hardware */
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25);
}
// roms
ROM_START( lafootb )
ROM_REGION( 0x0800, "maincpu", 0 )
ROM_LOAD( "cop421l-hcj", 0x0000, 0x0400, CRC(a9cc1e94) SHA1(7a39f5a5f10b8a2bd72da3ff3f3fcfaad35ead5f) )
ROM_REGION( 38608, "mask", 0)
ROM_LOAD( "lafootb.svg", 0, 38608, CRC(35387445) SHA1(7cd9db170820fc84d47545c3db8d991b2c5f4f7f) )
ROM_END
/***************************************************************************
Mattel Dalla$ (J.R. handheld)
@ -1304,7 +1418,7 @@ void mdallas_state::mdallas(machine_config &config)
ROM_START( mdallas )
ROM_REGION( 0x0800, "maincpu", 0 )
ROM_LOAD( "copl444l-hyn_n", 0x0000, 0x0800, CRC(7848b78c) SHA1(778d24512180892f58c49df3c72ca77b2618d63b) )
ROM_LOAD( "cop444l-hyn_n", 0x0000, 0x0800, CRC(7848b78c) SHA1(778d24512180892f58c49df3c72ca77b2618d63b) )
ROM_END
@ -2095,6 +2209,7 @@ CONS( 1980, lchicken, 0, 0, lchicken, lchicken, lchicken_state, e
CONS( 1979, funjacks, 0, 0, funjacks, funjacks, funjacks_state, empty_init, "Mattel", "Funtronics: Jacks", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1979, funrlgl, 0, 0, funrlgl, funrlgl, funrlgl_state, empty_init, "Mattel", "Funtronics: Red Light Green Light", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1980, funtag, 0, 0, funtag, funtag, funtag_state, empty_init, "Mattel", "Funtronics: Tag", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1980, lafootb, 0, 0, lafootb, lafootb, lafootb_state, empty_init, "Mattel", "Look Alive! Football", MACHINE_SUPPORTS_SAVE )
CONS( 1981, mdallas, 0, 0, mdallas, mdallas, mdallas_state, empty_init, "Mattel", "Dalla$ (J.R. handheld)", MACHINE_SUPPORTS_SAVE ) // ***
CONS( 1980, plus1, 0, 0, plus1, plus1, plus1_state, empty_init, "Milton Bradley", "Plus One", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_CONTROLS ) // ***

103
src/mame/layout/lafootb.lay Normal file
View File

@ -0,0 +1,103 @@
<?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="white"><rect><color red="0.8" green="0.8" blue="0.8" /></rect></element>
<element name="yellow"><rect><color red="0.6" green="0.5" blue="0.1" /></rect></element>
<element name="yellowd"><disk><color red="0.6" green="0.5" blue="0.1" /></disk></element>
<element name="text_r"><text string="R"><color red="0.6" green="0.5" blue="0.1" /></text></element>
<element name="digit" defstate="0">
<led7seg><color red="1.0" green="0.1" blue="0.15" /></led7seg>
</element>
<element name="led" 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>
<!-- led mask -->
<group name="leds">
<element ref="led" name="0.5"><bounds x="21" y="0" width="6" height="9" /></element>
<element ref="led" name="0.6"><bounds x="34" y="0" width="6" height="9" /></element>
<element ref="led" name="1.7"><bounds x="47" y="0" width="6" height="9" /></element>
<element ref="led" name="1.6"><bounds x="60" y="0" width="6" height="9" /></element>
<element ref="led" name="1.5"><bounds x="74" y="0" width="6" height="9" /></element>
<element ref="led" name="1.4"><bounds x="10" y="17" width="6.5" height="10" /></element>
<element ref="led" name="1.3"><bounds x="28" y="17" width="6.5" height="10" /></element>
<element ref="led" name="1.2"><bounds x="47" y="17" width="6.5" height="10" /></element>
<element ref="led" name="1.1"><bounds x="65" y="17" width="6.5" height="10" /></element>
<element ref="led" name="1.0"><bounds x="83" y="17" width="6.5" height="10" /></element>
<element ref="led" name="0.4"><bounds x="0" y="34" width="7" height="11" /></element>
<element ref="led" name="0.3"><bounds x="23" y="34" width="7" height="11" /></element>
<element ref="led" name="0.2"><bounds x="46" y="34" width="7" height="11" /></element>
<element ref="led" name="0.1"><bounds x="70" y="34" width="7" height="11" /></element>
<element ref="led" name="0.0"><bounds x="93" y="34" width="7" height="11" /></element>
<screen index="0" blend="multiply"><bounds x="0" y="0" width="100" height="45" /></screen>
</group>
<!-- build screen -->
<view name="Internal Layout">
<bounds left="25" right="175" top="34" bottom="132" />
<group ref="leds"><bounds x="50" y="50" width="100" height="45" /></group>
<repeat count="250">
<param name="x" start="74" increment="-0.2" />
<param name="y" start="48" increment="0.2" />
<element ref="white"><bounds x="~x~" y="~y~" width="0.5" height="0.5" /></element>
</repeat>
<repeat count="250">
<param name="x" start="126" increment="0.2" />
<param name="y" start="48" increment="0.2" />
<element ref="white"><bounds x="~x~" y="~y~" width="0.5" height="0.5" /></element>
</repeat>
<repeat count="24">
<param name="x" start="80" increment="-1.5" />
<param name="y" start="51" increment="3.4" />
<element ref="white"><bounds x="~x~" y="~y~" width="2" height="0.3" /></element>
</repeat>
<repeat count="24">
<param name="x" start="118" increment="1.5" />
<param name="y" start="51" increment="3.4" />
<element ref="white"><bounds x="~x~" y="~y~" width="2" height="0.3" /></element>
</repeat>
<element ref="white"><bounds x="99.5" y="40" width="1" height="9.5" /></element>
<element ref="white"><bounds x="92.5" y="34" width="15" height="11" /></element>
<element ref="black"><bounds x="93.5" y="33" width="13" height="11" /></element>
<element ref="white"><bounds x="74" y="48" width="52.5" height="0.2" /></element>
<element ref="white"><bounds x="63.3" y="58.8" width="74.1" height="0.3" /></element>
<element ref="white"><bounds x="55.4" y="66.7" width="89.8" height="0.45" /></element>
<element ref="white"><bounds x="42.6" y="79.5" width="115.3" height="0.6" /></element>
<element ref="white"><bounds x="20.0" y="102" width="160.4" height="0.9" /></element>
<element ref="black"><bounds x="0" y="70" width="25" height="50" /></element>
<element ref="black"><bounds x="175" y="70" width="25" height="50" /></element>
<element ref="text_r"><bounds x="100" y="60" width="10" height="10" /></element>
<element ref="yellowd"><bounds x="95" y="107" width="9" height="9" /></element>
<element ref="yellow"><bounds x="88.5" y="114.5" width="22" height="17.5" /></element>
<element ref="black"><bounds x="89.3" y="115.3" width="20.4" height="17.5" /></element>
<element name="digit2" ref="digit"><bounds x="91.5" y="117.5" width="8" height="12" /></element>
<element name="digit3" ref="digit"><bounds x="99.5" y="117.5" width="8" height="12" /></element>
</view>
</mamelayout>

View File

@ -4,12 +4,12 @@ license:CC0
-->
<mamelayout version="2">
<!-- define elements -->
<!-- define elements -->
<element name="gray"><disk><color red="0.45" green="0.45" blue="0.45" /></disk></element>
<!-- build screen -->
<!-- build screen -->
<view name="Internal Layout">
<screen index="0"><bounds x="0" y="0" width="96" height="23.9" /></screen>

View File

@ -16397,6 +16397,7 @@ funtag // Mattel
h2hbaskbc // Coleco
h2hhockeyc // Coleco
h2hsoccerc // Coleco
lafootb // Mattel
lchicken // LJN
lightfgt // Milton Bradley
mdallas // Mattel