diff options
| author | 2016-04-23 14:23:52 +0200 | |
|---|---|---|
| committer | 2016-04-23 14:24:14 +0200 | |
| commit | 4fe0164ea660a5082cebf333c82d2849b3c1ac07 (patch) | |
| tree | 2688c5374ca480a18c29d0101d7c8b88976aa9cd /src | |
| parent | ff2c95e3bfcc6d249cecba358eb7b416564bae89 (diff) | |
hh_tms1k: copycatm2 is now playable
Diffstat (limited to 'src')
| -rw-r--r-- | src/devices/cpu/tms1000/tms1000.cpp | 6 | ||||
| -rw-r--r-- | src/mame/drivers/hh_tms1k.cpp | 32 | ||||
| -rw-r--r-- | src/mame/layout/copycatm2.lay | 92 |
3 files changed, 113 insertions, 17 deletions
diff --git a/src/devices/cpu/tms1000/tms1000.cpp b/src/devices/cpu/tms1000/tms1000.cpp index 6685105d8f0..33edca13eba 100644 --- a/src/devices/cpu/tms1000/tms1000.cpp +++ b/src/devices/cpu/tms1000/tms1000.cpp @@ -41,10 +41,8 @@ static ADDRESS_MAP_START(data_64x4, AS_DATA, 8, tms1k_base_device) ADDRESS_MAP_END static ADDRESS_MAP_START(data_32x4, AS_DATA, 8, tms1k_base_device) - AM_RANGE(0x00, 0x07) AM_MIRROR(0x08) AM_RAM - AM_RANGE(0x10, 0x17) AM_MIRROR(0x08) AM_RAM - AM_RANGE(0x20, 0x27) AM_MIRROR(0x08) AM_RAM - AM_RANGE(0x30, 0x37) AM_MIRROR(0x08) AM_RAM + AM_RANGE(0x08, 0x0f) AM_MIRROR(0x30) AM_NOP // override + AM_RANGE(0x00, 0x3f) AM_RAM ADDRESS_MAP_END diff --git a/src/mame/drivers/hh_tms1k.cpp b/src/mame/drivers/hh_tms1k.cpp index 21496ce5961..e5c3c22354e 100644 --- a/src/mame/drivers/hh_tms1k.cpp +++ b/src/mame/drivers/hh_tms1k.cpp @@ -128,6 +128,7 @@ #include "cnsector.lh" // clickable #include "comp4.lh" // clickable #include "copycat.lh" // clickable +#include "copycatm2.lh" // clickable #include "cqback.lh" #include "ebball.lh" #include "ebball2.lh" @@ -5011,8 +5012,8 @@ READ8_MEMBER(copycat_state::read_k) static INPUT_PORTS_START( copycat ) PORT_START("IN.0") // R4 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Green Button") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Red Button") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Green Button") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Red Button") PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Orange Button") PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Yellow Button") @@ -5067,6 +5068,14 @@ MACHINE_CONFIG_END * PCB label WS 8107-1 * TMS1730 MCU, label MP3005N (die label 1700 MP3005) * 4 LEDs, 1-bit sound + + This is a simplified rerelease of Copy Cat, 10(!) years later. + + 3 variations exist, each with a different colored case. Let's assume that + they're on the same hardware. + - white case, yellow orange green red buttons and leds (same as model 7-520) + - yellow case, purple orange blue pink buttons, leds are same as older version + - transparent case, transparent purple orange blue red buttons, leds same as before ***************************************************************************/ @@ -5085,17 +5094,14 @@ public: WRITE16_MEMBER(copycatm2_state::write_r) { - // R0-R3: leds - display_matrix(9, 1, data, 1); + // R1-R4: leds + display_matrix(4, 1, data >> 1 & 0xf, 1); } WRITE16_MEMBER(copycatm2_state::write_o) { - // O0,O1: speaker out - // others: N/C - //m_speaker->level_w(data & 3); - - popmessage("O = %02x", data); + // O0,O6: speaker out + m_speaker->level_w((data & 1) | (data >> 5 & 2)); } @@ -5112,13 +5118,13 @@ INPUT_PORTS_END static MACHINE_CONFIG_START( copycatm2, copycatm2_state ) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu", TMS1730, 350000) // approximation - RC osc. R=100K, C=47pf + MCFG_CPU_ADD("maincpu", TMS1730, 275000) // approximation - RC osc. R=100K, C=47pf MCFG_TMS1XXX_READ_K_CB(IOPORT("IN.0")) MCFG_TMS1XXX_WRITE_R_CB(WRITE16(copycatm2_state, write_r)) MCFG_TMS1XXX_WRITE_O_CB(WRITE16(copycatm2_state, write_o)) MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1)) - MCFG_DEFAULT_LAYOUT(layout_hh_tms1k_test) + MCFG_DEFAULT_LAYOUT(layout_copycatm2) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -5899,7 +5905,7 @@ ROM_END ROM_START( copycatm2 ) ROM_REGION( 0x0200, "maincpu", 0 ) - ROM_LOAD( "mp3005n", 0x0000, 0x0200, CRC(0381a2ea) SHA1(2476096b9556eea1a1ad0537dc811b8505d7e05a) ) + ROM_LOAD( "mp3005n", 0x0000, 0x0200, CRC(a87649cb) SHA1(14ef7967a80578885f0b905772c3bb417b5b3255) ) ROM_REGION( 867, "maincpu:mpla", 0 ) ROM_LOAD( "tms1000_copycatm2_micro.pla", 0, 867, CRC(2710d8ef) SHA1(cb7a13bfabedad43790de753844707fe829baed0) ) @@ -5982,7 +5988,7 @@ CONS( 1982, lostreas, 0, 0, lostreas, lostreas, driver_device, 0, "Par CONS( 1981, tandy12, 0, 0, tandy12, tandy12, driver_device, 0, "Tandy Radio Shack", "Tandy-12: Computerized Arcade", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // some of the minigames: *** CONS( 1979, copycat, 0, 0, copycat, copycat, driver_device, 0, "Tiger Electronics", "Copy Cat (model 7-520)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1989, copycatm2, copycat, 0, copycatm2, copycatm2, driver_device, 0, "Tiger Electronics", "Copy Cat (model 7-522)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) +CONS( 1989, copycatm2, copycat, 0, copycatm2, copycatm2, driver_device, 0, "Tiger Electronics", "Copy Cat (model 7-522)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) CONS( 1979, tbreakup, 0, 0, tbreakup, tbreakup, driver_device, 0, "Tomy", "Break Up (Tomy)", MACHINE_SUPPORTS_SAVE ) CONS( 1980, phpball, 0, 0, phpball, phpball, driver_device, 0, "Tomy", "Power House Pinball", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) diff --git a/src/mame/layout/copycatm2.lay b/src/mame/layout/copycatm2.lay new file mode 100644 index 00000000000..832fa9e339c --- /dev/null +++ b/src/mame/layout/copycatm2.lay @@ -0,0 +1,92 @@ +<?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_white"><rect><color red="0.9" green="0.89" blue="0.8" /></rect></element> + <element name="static_red"><rect><color red="0.9" green="0.3" blue="0.3" /></rect></element> + <element name="static_green"><rect><color red="0.3" green="0.9" blue="0.3" /></rect></element> + <element name="static_yellow"><rect><color red="0.9" green="0.9" blue="0.3" /></rect></element> + <element name="static_orange"><rect><color red="0.9" green="0.6" blue="0.3" /></rect></element> + + <element name="text_u"><text string="REPLAY"><color red="0.9" green="0.89" blue="0.8" /></text></element> + <element name="text_d"><text string="Same Game Again"><color red="0.9" green="0.89" blue="0.8" /></text></element> + <element name="text_l"><text string="GAME 2"><color red="0.9" green="0.89" blue="0.8" /></text></element> + <element name="text_r"><text string="GAME 1"><color red="0.9" green="0.89" blue="0.8" /></text></element> + + <element name="hlh" defstate="0"> + <text string=" "> + <bounds x="0.0" y="0.0" width="2.0" height="1.0" /> + <color red="0.0" green="0.0" blue="0.0" /> + </text> + <disk state="1"> + <bounds x="0.57" y="0.07" width="0.86" height="0.86" /> + <color red="0.0" green="0.0" blue="0.0" /> + </disk> + </element> + <element name="hlv" defstate="0"> + <text string=" "> + <bounds x="0.0" y="0.0" width="1.0" height="2.0" /> + <color red="0.0" green="0.0" blue="0.0" /> + </text> + <disk state="1"> + <bounds x="0.07" y="0.57" width="0.86" height="0.86" /> + <color red="0.0" green="0.0" blue="0.0" /> + </disk> + </element> + + <element name="ledr" defstate="0"> + <disk state="0"><color red="0.2" green="0.04" blue="0.04" /></disk> + <disk state="1"><color red="1.0" green="0.2" blue="0.2" /></disk> + </element> + <element name="ledg" defstate="0"> + <disk state="0"><color red="0.04" green="0.2" blue="0.04" /></disk> + <disk state="1"><color red="0.2" green="1.0" blue="0.2" /></disk> + </element> + <element name="ledy" defstate="0"> + <disk state="0"><color red="0.2" green="0.2" blue="0.04" /></disk> + <disk state="1"><color red="1.0" green="1.0" blue="0.2" /></disk> + </element> + <element name="ledo" defstate="0"> + <disk state="0"><color red="0.2" green="0.12" blue="0.04" /></disk> + <disk state="1"><color red="1.0" green="0.6" blue="0.2" /></disk> + </element> + + +<!-- build screen --> + + <view name="Internal Layout"> + <bounds left="0" right="12" top="0" bottom="12" /> + <bezel element="static_white"> + <bounds left="-1" right="13" top="-1" bottom="13" /> + </bezel> + + <!-- middle part --> + + <bezel element="static_black"><bounds x="4" y="4" width="4" height="4" /></bezel> + + <bezel element="text_u"><bounds x="4" y="4.4" width="4" height="0.4" /></bezel> + <bezel element="text_d"><bounds x="4" y="7.2" width="4" height="0.4" /></bezel> + <bezel element="text_l"><bounds x="4.4" y="4" width="0.4" height="4" /><orientation rotate="90" /></bezel> + <bezel element="text_r"><bounds x="7.2" y="4" width="0.4" height="4" /><orientation rotate="270" /></bezel> + + <!-- main buttons and leds --> + + <bezel element="static_red"><bounds x="1" y="4" width="2" height="4" /></bezel> + <bezel element="static_yellow"><bounds x="4" y="1" width="4" height="2" /></bezel> + <bezel element="static_orange"><bounds x="9" y="4" width="2" height="4" /></bezel> + <bezel element="static_green"><bounds x="4" y="9" width="4" height="2" /></bezel> + + <bezel element="hlv" inputtag="IN.0" inputmask="0x02"><bounds x="1" y="4" width="2" height="4" /><color alpha="0.15" /></bezel> + <bezel element="hlh" inputtag="IN.0" inputmask="0x04"><bounds x="4" y="1" width="4" height="2" /><color alpha="0.15" /></bezel> + <bezel element="hlv" inputtag="IN.0" inputmask="0x01"><bounds x="9" y="4" width="2" height="4" /><color alpha="0.15" /></bezel> + <bezel element="hlh" inputtag="IN.0" inputmask="0x08"><bounds x="4" y="9" width="4" height="2" /><color alpha="0.15" /></bezel> + + <bezel name="0.3" element="ledg"><bounds x="5.75" y="8.25" width="0.5" height="0.5" /></bezel> + <bezel name="0.1" element="ledr"><bounds x="3.25" y="5.75" width="0.5" height="0.5" /></bezel> + <bezel name="0.0" element="ledo"><bounds x="8.25" y="5.75" width="0.5" height="0.5" /></bezel> + <bezel name="0.2" element="ledy"><bounds x="5.75" y="3.25" width="0.5" height="0.5" /></bezel> + + </view> +</mamelayout> |
