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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +