New working machine added

-----------
Atari Touch Me [hap, Sean Riddle]
This commit is contained in:
hap 2017-02-13 02:22:35 +01:00
parent 380114787e
commit 440e660181
4 changed files with 179 additions and 18 deletions

View File

@ -869,7 +869,6 @@ public:
DECLARE_WRITE8_MEMBER(write_d);
DECLARE_WRITE8_MEMBER(write_l);
DECLARE_WRITE8_MEMBER(write_g);
DECLARE_READ8_MEMBER(read_l_tristate) { return 0xff; }
DECLARE_INPUT_CHANGED_MEMBER(reset_button);
};
@ -926,7 +925,7 @@ static MACHINE_CONFIG_START( funrlgl, funrlgl_state )
MCFG_COP400_CONFIG(COP400_CKI_DIVISOR_8, COP400_CKO_OSCILLATOR_OUTPUT, false) // guessed
MCFG_COP400_WRITE_D_CB(WRITE8(funrlgl_state, write_d))
MCFG_COP400_WRITE_L_CB(WRITE8(funrlgl_state, write_l))
MCFG_COP400_READ_L_TRISTATE_CB(READ8(funrlgl_state, read_l_tristate))
MCFG_COP400_READ_L_TRISTATE_CB(CONSTANT(0xff))
MCFG_COP400_WRITE_G_CB(WRITE8(funrlgl_state, write_g))
MCFG_COP400_READ_G_CB(IOPORT("IN.0"))

View File

@ -28,7 +28,8 @@
#include "machine/clock.h"
#include "sound/speaker.h"
#include "maniac.lh"
#include "maniac.lh" // clickable
#include "touchme.lh" // clickable
//#include "hh_pic16_test.lh" // common test-layout - use external artwork
@ -254,6 +255,12 @@ u16 hh_pic16_state::read_inputs(int columns)
* PIC1655A-053
* 2 7seg LEDs + 4 other LEDs, 1-bit sound
This is the handheld version of the 1974 arcade game.
Known revisions:
- Model BH-100 GI C013233 Rev 2 Atari W 1979: PIC1655A-053
- Model BH-100 C013150 Rev 6 Atari 1979: AMI C10745 (custom ASIC)
***************************************************************************/
class touchme_state : public hh_pic16_state
@ -267,7 +274,6 @@ public:
void update_speaker();
DECLARE_READ8_MEMBER(read_a);
DECLARE_WRITE8_MEMBER(write_b);
DECLARE_READ8_MEMBER(read_c) { return 0xff; }
DECLARE_WRITE8_MEMBER(write_c);
};
@ -275,6 +281,8 @@ public:
void touchme_state::prepare_display()
{
set_display_segmask(3, 0x7f);
display_matrix(7, 7, m_c, ~m_b & 0x7b);
}
void touchme_state::update_speaker()
@ -318,15 +326,15 @@ WRITE8_MEMBER(touchme_state::write_c)
static INPUT_PORTS_START( touchme )
PORT_START("IN.0") // B0 port A
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON5 )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON6 )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON7 )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("Last")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("High")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_NAME("Skill")
PORT_START("IN.1") // B1 port A
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 )
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Blue Button")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Yellow Button")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Red Button")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Green Button")
PORT_START("IN.2") // B2 port A
PORT_CONFNAME( 0x07, 0x01^0x07, "Game Select")
@ -341,17 +349,17 @@ static const s16 touchme_speaker_levels[] = { 0, 0x7fff, -0x8000, 0 };
static MACHINE_CONFIG_START( touchme, touchme_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", PIC1655, 1000000) // approximation - RC osc. R=100K, C=47pF
MCFG_CPU_ADD("maincpu", PIC1655, 300000) // approximation - RC osc. R=100K, C=47pF
MCFG_PIC16C5x_READ_A_CB(READ8(touchme_state, read_a))
MCFG_PIC16C5x_WRITE_B_CB(WRITE8(touchme_state, write_b))
MCFG_PIC16C5x_READ_C_CB(READ8(touchme_state, read_c))
MCFG_PIC16C5x_READ_C_CB(CONSTANT(0xff))
MCFG_PIC16C5x_WRITE_C_CB(WRITE8(touchme_state, write_c))
MCFG_DEVICE_ADD("clock", CLOCK, 1000000/4) // PIC CLKOUT, tied to RTCC
MCFG_DEVICE_ADD("clock", CLOCK, 300000/4) // PIC CLKOUT, tied to RTCC
MCFG_CLOCK_SIGNAL_HANDLER(DEVWRITELINE("maincpu", pic1655_device, write_rtcc))
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_pic16_state, display_decay_tick, attotime::from_msec(1))
//MCFG_DEFAULT_LAYOUT(layout_touchme)
MCFG_DEFAULT_LAYOUT(layout_touchme)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@ -596,7 +604,7 @@ ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */
CONS( 1978, touchme, 0, 0, touchme, touchme, driver_device, 0, "Atari", "Touch Me (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
CONS( 1978, touchme, 0, 0, touchme, touchme, driver_device, 0, "Atari", "Touch Me (handheld, PIC1655A version)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1979, maniac, 0, 0, maniac, maniac, driver_device, 0, "Ideal", "Maniac", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )

View File

@ -20,11 +20,10 @@
</element>
<element name="digit" defstate="0">
<led7seg><color red="1.0" green="0.2" blue="0.2" /></led7seg>
<led7seg><color red="1.0" green="0.2" blue="0.23" /></led7seg>
</element>
<!-- build screen -->
<view name="Internal Layout">

155
src/mame/layout/touchme.lay Normal file
View File

@ -0,0 +1,155 @@
<?xml version="1.0"?>
<mamelayout version="2">
<!-- define elements -->
<element name="static_black"><rect><color red="0" green="0" blue="0" /></rect></element>
<element name="static_blue"><rect><color red="0.2" green="0.25" blue="0.9" /></rect></element>
<element name="static_yellow"><rect><color red="0.9" green="0.9" blue="0.2" /></rect></element>
<element name="static_red"><rect><color red="0.9" green="0.1" blue="0.15" /></rect></element>
<element name="static_green"><rect><color red="0.2" green="0.9" blue="0.3" /></rect></element>
<element name="static_orange1"><rect><color red="0.9" green="0.4" blue="0.15" /></rect></element>
<element name="static_orange2"><rect><color red="0.9" green="0.6" blue="0.2" /></rect></element>
<element name="static_gray"><rect><color red="0.7" green="0.72" blue="0.75" /></rect></element>
<element name="disk_black"><disk><color red="0" green="0" blue="0" /></disk></element>
<element name="disk_blue"><disk><color red="0.2" green="0.25" blue="0.9" /></disk></element>
<element name="disk_yellow"><disk><color red="0.9" green="0.9" blue="0.2" /></disk></element>
<element name="disk_red"><disk><color red="0.9" green="0.1" blue="0.15" /></disk></element>
<element name="disk_green"><disk><color red="0.2" green="0.9" blue="0.3" /></disk></element>
<element name="text_b1">
<rect><color red="0.7" green="0.72" blue="0.75" /></rect>
<text string="START"><color red="0.02" green="0.02" blue="0.02" /></text>
</element>
<element name="text_b2">
<rect><color red="0.7" green="0.72" blue="0.75" /></rect>
<text string="LAST"><color red="0.02" green="0.02" blue="0.02" /></text>
</element>
<element name="text_b3">
<rect><color red="0.7" green="0.72" blue="0.75" /></rect>
<text string="HIGH"><color red="0.02" green="0.02" blue="0.02" /></text>
</element>
<element name="text_b4">
<rect><color red="0.7" green="0.72" blue="0.75" /></rect>
<text string="SKILL"><color red="0.02" green="0.02" blue="0.02" /></text>
</element>
<element name="hl" defstate="0">
<text string=" "><color red="0.0" green="0.0" blue="0.0" /></text>
<rect state="1"><color red="0.0" green="0.0" blue="0.0" /></rect>
</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>
<element name="digit" defstate="0">
<led7seg><color red="1.0" green="0.2" blue="0.23" /></led7seg>
</element>
<!-- build screen -->
<view name="Internal Layout">
<bounds left="1.41" right="10.89" top="5" bottom="19.3" />
<bezel name="digit0" element="digit"><bounds x="5.15" y="5.6" width="1" height="1.5" /></bezel>
<bezel name="digit1" element="digit"><bounds x="6.15" y="5.6" width="1" height="1.5" /></bezel>
<!-- bezel (also allow clicking it) -->
<bezel element="static_gray"><bounds x="1.4" y="7.7" width="9.5" height="12" /></bezel>
<bezel element="static_black"><bounds x="1.7" y="9.7" width="8.9" height="8.9" /></bezel>
<bezel element="static_blue"><bounds x="2" y="10" width="4" height="4" /></bezel>
<bezel element="static_yellow"><bounds x="6.3" y="10" width="4" height="4" /></bezel>
<bezel element="static_red"><bounds x="2" y="14.3" width="4" height="4" /></bezel>
<bezel element="static_green"><bounds x="6.3" y="14.3" width="4" height="4" /></bezel>
<bezel element="hl" inputtag="IN.1" inputmask="0x01"><bounds x="2" y="10" width="4" height="4" /><color alpha="0" /></bezel>
<bezel element="hl" inputtag="IN.1" inputmask="0x02"><bounds x="6.3" y="10" width="4" height="4" /><color alpha="0" /></bezel>
<bezel element="hl" inputtag="IN.1" inputmask="0x04"><bounds x="2" y="14.3" width="4" height="4" /><color alpha="0" /></bezel>
<bezel element="hl" inputtag="IN.1" inputmask="0x08"><bounds x="6.3" y="14.3" width="4" height="4" /><color alpha="0" /></bezel>
<!-- smooth edges -->
<bezel element="static_gray"><bounds x="1.5" y="9.5" width="1.3" height="1.3" /></bezel>
<bezel element="disk_black"><bounds x="1.7" y="9.7" width="2" height="2" /></bezel>
<bezel element="disk_blue"><bounds x="2" y="10" width="2" height="2" /></bezel>
<bezel element="disk_blue"><bounds x="2.15" y="10" width="2" height="2" /></bezel>
<bezel element="disk_blue"><bounds x="2.3" y="10" width="2" height="2" /></bezel>
<bezel element="disk_blue"><bounds x="2" y="10.15" width="2" height="2" /></bezel>
<bezel element="disk_blue"><bounds x="2" y="10.3" width="2" height="2" /></bezel>
<bezel element="static_gray"><bounds x="9.5" y="9.5" width="1.3" height="1.3" /></bezel>
<bezel element="disk_black"><bounds x="8.6" y="9.7" width="2" height="2" /></bezel>
<bezel element="disk_yellow"><bounds x="8.3" y="10" width="2" height="2" /></bezel>
<bezel element="disk_yellow"><bounds x="8.15" y="10" width="2" height="2" /></bezel>
<bezel element="disk_yellow"><bounds x="8.0" y="10" width="2" height="2" /></bezel>
<bezel element="disk_yellow"><bounds x="8.3" y="10.15" width="2" height="2" /></bezel>
<bezel element="disk_yellow"><bounds x="8.3" y="10.3" width="2" height="2" /></bezel>
<bezel element="static_gray"><bounds x="1.5" y="17.5" width="1.3" height="1.3" /></bezel>
<bezel element="disk_black"><bounds x="1.7" y="16.6" width="2" height="2" /></bezel>
<bezel element="disk_red"><bounds x="2" y="16.3" width="2" height="2" /></bezel>
<bezel element="disk_red"><bounds x="2.15" y="16.3" width="2" height="2" /></bezel>
<bezel element="disk_red"><bounds x="2.3" y="16.3" width="2" height="2" /></bezel>
<bezel element="disk_red"><bounds x="2" y="16.15" width="2" height="2" /></bezel>
<bezel element="disk_red"><bounds x="2" y="16.0" width="2" height="2" /></bezel>
<bezel element="static_gray"><bounds x="9.5" y="17.5" width="1.3" height="1.3" /></bezel>
<bezel element="disk_black"><bounds x="8.6" y="16.6" width="2" height="2" /></bezel>
<bezel element="disk_green"><bounds x="8.3" y="16.3" width="2" height="2" /></bezel>
<bezel element="disk_green"><bounds x="8.15" y="16.3" width="2" height="2" /></bezel>
<bezel element="disk_green"><bounds x="8.0" y="16.3" width="2" height="2" /></bezel>
<bezel element="disk_green"><bounds x="8.3" y="16.15" width="2" height="2" /></bezel>
<bezel element="disk_green"><bounds x="8.3" y="16.0" width="2" height="2" /></bezel>
<!-- middle buttons, leds -->
<bezel element="static_black"><bounds x="4.15" y="12.65" width="1.6" height="1.1" /></bezel>
<bezel element="static_black"><bounds x="6.55" y="12.65" width="1.6" height="1.1" /></bezel>
<bezel element="static_black"><bounds x="4.15" y="14.55" width="1.6" height="1.1" /></bezel>
<bezel element="static_black"><bounds x="6.55" y="14.55" width="1.6" height="1.1" /></bezel>
<bezel element="static_blue"><bounds x="4.2" y="12.7" width="1.5" height="1" /></bezel>
<bezel element="static_yellow"><bounds x="6.6" y="12.7" width="1.5" height="1" /></bezel>
<bezel element="static_red"><bounds x="4.2" y="14.6" width="1.5" height="1" /></bezel>
<bezel element="static_green"><bounds x="6.6" y="14.6" width="1.5" height="1" /></bezel>
<bezel element="hl" inputtag="IN.1" inputmask="0x01"><bounds x="4.2" y="12.7" width="1.5" height="1" /><color alpha="0.25" /></bezel>
<bezel element="hl" inputtag="IN.1" inputmask="0x02"><bounds x="6.6" y="12.7" width="1.5" height="1" /><color alpha="0.25" /></bezel>
<bezel element="hl" inputtag="IN.1" inputmask="0x04"><bounds x="4.2" y="14.6" width="1.5" height="1" /><color alpha="0.25" /></bezel>
<bezel element="hl" inputtag="IN.1" inputmask="0x08"><bounds x="6.6" y="14.6" width="1.5" height="1" /><color alpha="0.25" /></bezel>
<bezel name="3.a" element="led"><bounds x="2.5" y="10.5" width="0.8" height="0.8" /></bezel>
<bezel name="4.a" element="led"><bounds x="9.0" y="10.5" width="0.8" height="0.8" /></bezel>
<bezel name="5.a" element="led"><bounds x="2.5" y="17.0" width="0.8" height="0.8" /></bezel>
<bezel name="6.a" element="led"><bounds x="9.0" y="17.0" width="0.8" height="0.8" /></bezel>
<!-- upper buttons -->
<bezel element="text_b1"><bounds x="1.8" y="7.8" width="1.5" height="0.5" /></bezel>
<bezel element="text_b2"><bounds x="4.2" y="7.8" width="1.5" height="0.5" /></bezel>
<bezel element="text_b3"><bounds x="6.6" y="7.8" width="1.5" height="0.5" /></bezel>
<bezel element="text_b4"><bounds x="9.0" y="7.8" width="1.5" height="0.5" /></bezel>
<bezel element="static_black"><bounds x="1.75" y="8.35" width="1.6" height="1.1" /></bezel>
<bezel element="static_black"><bounds x="4.15" y="8.35" width="1.6" height="1.1" /></bezel>
<bezel element="static_black"><bounds x="6.55" y="8.35" width="1.6" height="1.1" /></bezel>
<bezel element="static_black"><bounds x="8.95" y="8.35" width="1.6" height="1.1" /></bezel>
<bezel element="static_red"><bounds x="1.8" y="8.4" width="1.5" height="1" /></bezel>
<bezel element="static_orange1"><bounds x="4.2" y="8.4" width="1.5" height="1" /></bezel>
<bezel element="static_orange2"><bounds x="6.6" y="8.4" width="1.5" height="1" /></bezel>
<bezel element="static_yellow"><bounds x="9.0" y="8.4" width="1.5" height="1" /></bezel>
<bezel element="hl" inputtag="IN.0" inputmask="0x01"><bounds x="1.8" y="8.4" width="1.5" height="1" /><color alpha="0.25" /></bezel>
<bezel element="hl" inputtag="IN.0" inputmask="0x02"><bounds x="4.2" y="8.4" width="1.5" height="1" /><color alpha="0.25" /></bezel>
<bezel element="hl" inputtag="IN.0" inputmask="0x04"><bounds x="6.6" y="8.4" width="1.5" height="1" /><color alpha="0.25" /></bezel>
<bezel element="hl" inputtag="IN.0" inputmask="0x08"><bounds x="9.0" y="8.4" width="1.5" height="1" /><color alpha="0.25" /></bezel>
</view>
</mamelayout>