mirror of
https://github.com/holub/mame
synced 2025-04-21 16:01:56 +03:00
New working machines
-------------------- Look Alive! Football [hap, Sean Riddle, Rik]
This commit is contained in:
parent
7c1ec79705
commit
3e3a081b92
@ -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
103
src/mame/layout/lafootb.lay
Normal 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>
|
@ -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>
|
||||
|
@ -16397,6 +16397,7 @@ funtag // Mattel
|
||||
h2hbaskbc // Coleco
|
||||
h2hhockeyc // Coleco
|
||||
h2hsoccerc // Coleco
|
||||
lafootb // Mattel
|
||||
lchicken // LJN
|
||||
lightfgt // Milton Bradley
|
||||
mdallas // Mattel
|
||||
|
Loading…
Reference in New Issue
Block a user