hh_tms1k: copycatm2 is now playable

This commit is contained in:
hap 2016-04-23 14:23:52 +02:00
parent ff2c95e3bf
commit 4fe0164ea6
3 changed files with 113 additions and 17 deletions

View File

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

View File

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

View File

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