New working machine added

-----------
Lakeside Le Boom [hap, Kevin Horton]
This commit is contained in:
hap 2017-02-13 23:35:13 +01:00
parent d090bbedb8
commit aa1427a072
2 changed files with 189 additions and 27 deletions

View File

@ -39,6 +39,7 @@
#include "machine/clock.h"
#include "sound/speaker.h"
#include "leboom.lh" // clickable
#include "maniac.lh" // clickable
#include "touchme.lh" // clickable
@ -487,7 +488,21 @@ MACHINE_CONFIG_END
Lakeside Le Boom
* PIC1655A-061
* 1 led, 1-bit sound with decay
* 1 led, 1-bit sound with volume decay
This is a tabletop timebomb defusion game. It's shaped like an aerial bomb,
and starts 'ticking' when the player opens the keypad door. To begin, select
the game mode, rows(keypad size), and fuse duration.
Game modes as described on the box:
1: Eliminate the buttons one by one in the order set out by the computer. Press
one twice and you'll be sorry!
2: For 2 or more players. Take turns pressing the buttons, remember which ones.
Press a button a second time and watch out, it's all over.
3: The computer picks one secret button that stops the fuse. You must press it
on your 5th turn. Listen to the clues and you'll do fine.
4: The computer picks a secret combination. Find it first by listening to the
clues. Find the right order and you'll get it to fizzle out.
***************************************************************************/
@ -532,40 +547,40 @@ WRITE8_MEMBER(leboom_state::write_c)
static INPUT_PORTS_START( leboom )
PORT_START("IN.0") // B0 port A
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD )
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_1) PORT_NAME("Red Button 1")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Q) PORT_NAME("Red Button 2")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_A) PORT_NAME("Red Button 3")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Z) PORT_NAME("Red Button 4")
PORT_START("IN.1") // B1 port A
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD )
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_2) PORT_NAME("Red-Red Button")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_W) PORT_NAME("Red-Green Button")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_S) PORT_NAME("Red-Yellow Button")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_X) PORT_NAME("Red-Blue Button")
PORT_START("IN.2") // B2 port A
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD )
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_3) PORT_NAME("Shortest")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_E) PORT_NAME("Short")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_D) PORT_NAME("Long")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_C) PORT_NAME("Longest")
PORT_START("IN.3") // B3 port A
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD )
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_4) PORT_NAME("Yellow Button 1")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_R) PORT_NAME("Yellow Button 2")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_F) PORT_NAME("Yellow Button 3")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_V) PORT_NAME("Yellow Button 4")
PORT_START("IN.4") // B4 port A
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD )
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_5) PORT_NAME("Blue Button 1")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_T) PORT_NAME("Blue Button 2")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_G) PORT_NAME("Blue Button 3")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_B) PORT_NAME("Blue Button 4")
PORT_START("IN.5") // B5 port A
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD )
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_6) PORT_NAME("Blue Button 5")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Y) PORT_NAME("Blue Button 6")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_H) PORT_NAME("Blue Button 7")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_N) PORT_NAME("Blue Button 8")
INPUT_PORTS_END
static MACHINE_CONFIG_START( leboom, leboom_state )
@ -574,10 +589,11 @@ static MACHINE_CONFIG_START( leboom, leboom_state )
MCFG_CPU_ADD("maincpu", PIC1655, 1000000) // approximation
MCFG_PIC16C5x_READ_A_CB(READ8(leboom_state, read_a))
MCFG_PIC16C5x_WRITE_B_CB(WRITE8(leboom_state, write_b))
MCFG_PIC16C5x_READ_C_CB(CONSTANT(0xff))
MCFG_PIC16C5x_WRITE_C_CB(WRITE8(leboom_state, write_c))
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_pic16_state, display_decay_tick, attotime::from_msec(1))
//MCFG_DEFAULT_LAYOUT(layout_leboom)
MCFG_DEFAULT_LAYOUT(layout_leboom)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@ -619,4 +635,4 @@ CONS( 1979, touchme, 0, 0, touchme, touchme, driver_device, 0, "Atari",
CONS( 1979, maniac, 0, 0, maniac, maniac, driver_device, 0, "Ideal", "Maniac", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1980, leboom, 0, 0, leboom, leboom, driver_device, 0, "Lakeside", "Le Boom", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
CONS( 1980, leboom, 0, 0, leboom, leboom, driver_device, 0, "Lakeside", "Le Boom", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_CLICKABLE_ARTWORK )

146
src/mame/layout/leboom.lay Normal file
View File

@ -0,0 +1,146 @@
<?xml version="1.0"?>
<mamelayout version="2">
<!-- define elements -->
<element name="disk_black"><disk><color red="0.03" green="0.03" blue="0.03" /></disk></element>
<element name="disk_red"><disk><color red="0.9" green="0.15" blue="0.17" /></disk></element>
<element name="disk_blue"><disk><color red="0.2" green="0.3" blue="0.9" /></disk></element>
<element name="disk_yellow"><disk><color red="0.9" green="0.9" blue="0.25" /></disk></element>
<element name="disk_green"><disk><color red="0.3" green="0.9" blue="0.25" /></disk></element>
<element name="text_l1"><text string="GAME"><color red="0.8" green="0.8" blue="0.8" /></text></element>
<element name="text_l2"><text string="ROWS"><color red="0.8" green="0.8" blue="0.8" /></text></element>
<element name="text_l3"><text string="FUSE"><color red="0.8" green="0.8" blue="0.8" /></text></element>
<element name="text_r1">
<rect><color red="0.9" green="0.15" blue="0.17" /></rect>
<text string="1"><color red="0.03" green="0.03" blue="0.03" /></text>
</element>
<element name="text_r2">
<rect><color red="0.9" green="0.15" blue="0.17" /></rect>
<text string="2"><color red="0.03" green="0.03" blue="0.03" /></text>
</element>
<element name="text_r3">
<rect><color red="0.9" green="0.15" blue="0.17" /></rect>
<text string="3"><color red="0.03" green="0.03" blue="0.03" /></text>
</element>
<element name="text_r4">
<rect><color red="0.9" green="0.15" blue="0.17" /></rect>
<text string="4"><color red="0.03" green="0.03" blue="0.03" /></text>
</element>
<element name="text_g1">
<rect><color red="0.3" green="0.9" blue="0.25" /></rect>
<text string="SHORTEST"><color red="0.03" green="0.03" blue="0.03" /></text>
</element>
<element name="text_g2">
<rect><color red="0.3" green="0.9" blue="0.25" /></rect>
<text string="SHORT"><color red="0.03" green="0.03" blue="0.03" /></text>
</element>
<element name="text_g3">
<rect><color red="0.3" green="0.9" blue="0.25" /></rect>
<text string="LONG"><color red="0.03" green="0.03" blue="0.03" /></text>
</element>
<element name="text_g4">
<rect><color red="0.3" green="0.9" blue="0.25" /></rect>
<text string="LONGEST"><color red="0.03" green="0.03" blue="0.03" /></text>
</element>
<element name="hl" defstate="0">
<text string=" "><color red="0.0" green="0.0" blue="0.0" /></text>
<disk state="1"><color red="0.0" green="0.0" blue="0.0" /></disk>
</element>
<element name="led" defstate="0">
<disk state="0"><color red="0.2" green="0.04" blue="0.05" /></disk>
<disk state="1"><color red="1.0" green="0.2" blue="0.23" /></disk>
</element>
<!-- build screen -->
<view name="Internal Layout">
<bounds left="-0.5" right="33.5" top="-2.1" bottom="18" />
<bezel element="text_l1"><bounds x="0" y="-1.7" width="4" height="1.2" /></bezel>
<bezel element="text_l2"><bounds x="5" y="-1.7" width="4" height="1.2" /></bezel>
<bezel element="text_l3"><bounds x="10" y="-1.7" width="4" height="1.2" /></bezel>
<bezel name="0.0" element="led"><bounds x="31" y="7.75" width="2" height="2" /></bezel>
<!-- button panel -->
<bezel element="disk_red"><bounds x="0" y="0.0" width="4" height="4" /></bezel>
<bezel element="disk_red"><bounds x="0" y="4.5" width="4" height="4" /></bezel>
<bezel element="disk_red"><bounds x="0" y="9.0" width="4" height="4" /></bezel>
<bezel element="disk_red"><bounds x="0" y="13.5" width="4" height="4" /></bezel>
<bezel element="text_r1"><bounds x="1" y="1.25" width="2" height="1.5" /></bezel>
<bezel element="text_r2"><bounds x="1" y="5.75" width="2" height="1.5" /></bezel>
<bezel element="text_r3"><bounds x="1" y="10.25" width="2" height="1.5" /></bezel>
<bezel element="text_r4"><bounds x="1" y="14.75" width="2" height="1.5" /></bezel>
<bezel element="disk_red"><bounds x="5" y="0.0" width="4" height="4" /></bezel>
<bezel element="disk_red"><bounds x="5" y="4.5" width="4" height="4" /></bezel>
<bezel element="disk_red"><bounds x="5" y="9.0" width="4" height="4" /></bezel>
<bezel element="disk_red"><bounds x="5" y="13.5" width="4" height="4" /></bezel>
<bezel element="disk_black"><bounds x="6.25" y="1.25" width="1.5" height="1.5" /></bezel>
<bezel element="disk_black"><bounds x="6.25" y="5.75" width="1.5" height="1.5" /></bezel>
<bezel element="disk_black"><bounds x="6.25" y="10.25" width="1.5" height="1.5" /></bezel>
<bezel element="disk_black"><bounds x="6.25" y="14.75" width="1.5" height="1.5" /></bezel>
<bezel element="disk_red"> <bounds x="6.4" y="1.4" width="1.2" height="1.2" /></bezel>
<bezel element="disk_green"> <bounds x="6.4" y="5.9" width="1.2" height="1.2" /></bezel>
<bezel element="disk_yellow"><bounds x="6.4" y="10.4" width="1.2" height="1.2" /></bezel>
<bezel element="disk_blue"> <bounds x="6.4" y="14.9" width="1.2" height="1.2" /></bezel>
<bezel element="disk_green"><bounds x="10" y="0.0" width="4" height="4" /></bezel>
<bezel element="disk_green"><bounds x="10" y="4.5" width="4" height="4" /></bezel>
<bezel element="disk_green"><bounds x="10" y="9.0" width="4" height="4" /></bezel>
<bezel element="disk_green"><bounds x="10" y="13.5" width="4" height="4" /></bezel>
<bezel element="text_g1"><bounds x="10.2" y="1.6" width="3.6" height="0.8" /></bezel>
<bezel element="text_g2"><bounds x="10.2" y="6.1" width="3.6" height="0.8" /></bezel>
<bezel element="text_g3"><bounds x="10.2" y="10.6" width="3.6" height="0.8" /></bezel>
<bezel element="text_g4"><bounds x="10.2" y="15.1" width="3.6" height="0.8" /></bezel>
<bezel element="disk_yellow"><bounds x="15" y="0.0" width="4" height="4" /></bezel>
<bezel element="disk_yellow"><bounds x="15" y="4.5" width="4" height="4" /></bezel>
<bezel element="disk_yellow"><bounds x="15" y="9.0" width="4" height="4" /></bezel>
<bezel element="disk_yellow"><bounds x="15" y="13.5" width="4" height="4" /></bezel>
<bezel element="disk_blue"><bounds x="20" y="0.0" width="4" height="4" /></bezel>
<bezel element="disk_blue"><bounds x="20" y="4.5" width="4" height="4" /></bezel>
<bezel element="disk_blue"><bounds x="20" y="9.0" width="4" height="4" /></bezel>
<bezel element="disk_blue"><bounds x="20" y="13.5" width="4" height="4" /></bezel>
<bezel element="disk_blue"><bounds x="25" y="0.0" width="4" height="4" /></bezel>
<bezel element="disk_blue"><bounds x="25" y="4.5" width="4" height="4" /></bezel>
<bezel element="disk_blue"><bounds x="25" y="9.0" width="4" height="4" /></bezel>
<bezel element="disk_blue"><bounds x="25" y="13.5" width="4" height="4" /></bezel>
<bezel element="hl" inputtag="IN.0" inputmask="0x01"><bounds x="0" y="0.0" width="4" height="4" /><color alpha="0.3" /></bezel>
<bezel element="hl" inputtag="IN.0" inputmask="0x02"><bounds x="0" y="4.5" width="4" height="4" /><color alpha="0.3" /></bezel>
<bezel element="hl" inputtag="IN.0" inputmask="0x04"><bounds x="0" y="9.0" width="4" height="4" /><color alpha="0.3" /></bezel>
<bezel element="hl" inputtag="IN.0" inputmask="0x08"><bounds x="0" y="13.5" width="4" height="4" /><color alpha="0.3" /></bezel>
<bezel element="hl" inputtag="IN.1" inputmask="0x01"><bounds x="5" y="0.0" width="4" height="4" /><color alpha="0.3" /></bezel>
<bezel element="hl" inputtag="IN.1" inputmask="0x02"><bounds x="5" y="4.5" width="4" height="4" /><color alpha="0.3" /></bezel>
<bezel element="hl" inputtag="IN.1" inputmask="0x04"><bounds x="5" y="9.0" width="4" height="4" /><color alpha="0.3" /></bezel>
<bezel element="hl" inputtag="IN.1" inputmask="0x08"><bounds x="5" y="13.5" width="4" height="4" /><color alpha="0.3" /></bezel>
<bezel element="hl" inputtag="IN.2" inputmask="0x01"><bounds x="10" y="0.0" width="4" height="4" /><color alpha="0.3" /></bezel>
<bezel element="hl" inputtag="IN.2" inputmask="0x02"><bounds x="10" y="4.5" width="4" height="4" /><color alpha="0.3" /></bezel>
<bezel element="hl" inputtag="IN.2" inputmask="0x04"><bounds x="10" y="9.0" width="4" height="4" /><color alpha="0.3" /></bezel>
<bezel element="hl" inputtag="IN.2" inputmask="0x08"><bounds x="10" y="13.5" width="4" height="4" /><color alpha="0.3" /></bezel>
<bezel element="hl" inputtag="IN.3" inputmask="0x01"><bounds x="15" y="0.0" width="4" height="4" /><color alpha="0.3" /></bezel>
<bezel element="hl" inputtag="IN.3" inputmask="0x02"><bounds x="15" y="4.5" width="4" height="4" /><color alpha="0.3" /></bezel>
<bezel element="hl" inputtag="IN.3" inputmask="0x04"><bounds x="15" y="9.0" width="4" height="4" /><color alpha="0.3" /></bezel>
<bezel element="hl" inputtag="IN.3" inputmask="0x08"><bounds x="15" y="13.5" width="4" height="4" /><color alpha="0.3" /></bezel>
<bezel element="hl" inputtag="IN.4" inputmask="0x01"><bounds x="20" y="0.0" width="4" height="4" /><color alpha="0.3" /></bezel>
<bezel element="hl" inputtag="IN.4" inputmask="0x02"><bounds x="20" y="4.5" width="4" height="4" /><color alpha="0.3" /></bezel>
<bezel element="hl" inputtag="IN.4" inputmask="0x04"><bounds x="20" y="9.0" width="4" height="4" /><color alpha="0.3" /></bezel>
<bezel element="hl" inputtag="IN.4" inputmask="0x08"><bounds x="20" y="13.5" width="4" height="4" /><color alpha="0.3" /></bezel>
<bezel element="hl" inputtag="IN.5" inputmask="0x01"><bounds x="25" y="0.0" width="4" height="4" /><color alpha="0.3" /></bezel>
<bezel element="hl" inputtag="IN.5" inputmask="0x02"><bounds x="25" y="4.5" width="4" height="4" /><color alpha="0.3" /></bezel>
<bezel element="hl" inputtag="IN.5" inputmask="0x04"><bounds x="25" y="9.0" width="4" height="4" /><color alpha="0.3" /></bezel>
<bezel element="hl" inputtag="IN.5" inputmask="0x08"><bounds x="25" y="13.5" width="4" height="4" /><color alpha="0.3" /></bezel>
</view>
</mamelayout>