mirror of
https://github.com/holub/mame
synced 2025-10-06 17:08:28 +03:00
New working machine added
---------- Conic Multisport/Tandy Sports Arena [hap, Sean Riddle]
This commit is contained in:
parent
7907229e28
commit
ac111836fd
@ -21,7 +21,7 @@
|
||||
*MP0057 TMS1000 1978, APH Student Speech+ (same ROM contents as TSI Speech+?)
|
||||
@MP0158 TMS1000 1979, Entex Soccer (6003)
|
||||
@MP0163 TMS1000 1979, A-One LSI Match Number/LJN Electronic Concentration
|
||||
*MP0168 TMS1000 1979, Conic Multisport/Tandy Sports Arena
|
||||
@MP0168 TMS1000 1979, Conic Multisport/Tandy Sports Arena (model 60-2158)
|
||||
@MP0170 TMS1000 1979, Conic Football
|
||||
*MP0230 TMS1000 1980, Entex Blast It (6015)
|
||||
@MP0271 TMS1000 1982, Tandy Radio Shack Monkey See
|
||||
@ -140,6 +140,7 @@
|
||||
#include "bcheetah.lh"
|
||||
#include "bigtrak.lh"
|
||||
#include "bship.lh" // clickable
|
||||
#include "cmsport.lh"
|
||||
#include "cnfball.lh"
|
||||
#include "cnfball2.lh"
|
||||
#include "cnsector.lh" // clickable
|
||||
@ -1757,6 +1758,119 @@ MACHINE_CONFIG_END
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Conic Electronic Multisport
|
||||
* TMS1000 MP0168 (die label same)
|
||||
* PCB label: 101-027(1979), or 101-021 REV A(1980, with DS8871N)
|
||||
* 2 7seg LEDs, 33 other LEDs, 1-bit sound
|
||||
|
||||
This handheld includes 3 games: Basketball, Ice Hockey, Soccer.
|
||||
MAME external artwork is needed for the switchable overlays.
|
||||
|
||||
known releases:
|
||||
- Hong Kong: Electronic Multisport
|
||||
- Hong Kong: Basketball/Ice Hockey/Soccer (3 separate handhelds)
|
||||
- USA(1): Electronic Multisport, distributed by Innocron
|
||||
- USA(2): Sports Arena, distributed by Tandy (model 60-2158)
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
class cmsport_state : public hh_tms1k_state
|
||||
{
|
||||
public:
|
||||
cmsport_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: hh_tms1k_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
void prepare_display();
|
||||
DECLARE_WRITE16_MEMBER(write_r);
|
||||
DECLARE_WRITE16_MEMBER(write_o);
|
||||
DECLARE_READ8_MEMBER(read_k);
|
||||
};
|
||||
|
||||
// handlers
|
||||
|
||||
void cmsport_state::prepare_display()
|
||||
{
|
||||
// R5,R6 are 7segs
|
||||
set_display_segmask(0x60, 0x7f);
|
||||
display_matrix(8, 9, m_o, m_r & ~0x80);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(cmsport_state::write_r)
|
||||
{
|
||||
// R7: speaker out
|
||||
m_speaker->level_w(data >> 7 & 1);
|
||||
|
||||
// R0,R9,R10: input mux
|
||||
m_inp_mux = (data & 1) | (data >> 8 & 6);
|
||||
|
||||
// R0-R6,R8: led select
|
||||
m_r = data;
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(cmsport_state::write_o)
|
||||
{
|
||||
// O0-O7: led data
|
||||
m_o = data;
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
READ8_MEMBER(cmsport_state::read_k)
|
||||
{
|
||||
// K: multiplexed inputs
|
||||
return read_inputs(3);
|
||||
}
|
||||
|
||||
|
||||
// config
|
||||
|
||||
static INPUT_PORTS_START( cmsport )
|
||||
PORT_START("IN.0") // R0
|
||||
PORT_CONFNAME( 0x05, 0x01, "Game Select" )
|
||||
PORT_CONFSETTING( 0x01, "Basketball" )
|
||||
PORT_CONFSETTING( 0x00, "Soccer" )
|
||||
PORT_CONFSETTING( 0x04, "Ice Hockey" )
|
||||
PORT_BIT( 0x0a, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
|
||||
PORT_START("IN.1") // R9
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_16WAY
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_16WAY
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_16WAY
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_16WAY
|
||||
|
||||
PORT_START("IN.2") // R10
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Shoot")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START1 ) PORT_NAME("Score")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_CONFNAME( 0x08, 0x00, "Skill Level" )
|
||||
PORT_CONFSETTING( 0x00, "1" ) // amateur
|
||||
PORT_CONFSETTING( 0x08, "2" ) // professional
|
||||
INPUT_PORTS_END
|
||||
|
||||
static MACHINE_CONFIG_START( cmsport, cmsport_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", TMS1000, 375000) // approximation - RC osc. R=47K, C=47pf
|
||||
MCFG_TMS1XXX_READ_K_CB(READ8(cmsport_state, read_k))
|
||||
MCFG_TMS1XXX_WRITE_R_CB(WRITE16(cmsport_state, write_r))
|
||||
MCFG_TMS1XXX_WRITE_O_CB(WRITE16(cmsport_state, write_o))
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
|
||||
MCFG_DEFAULT_LAYOUT(layout_cmsport)
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Conic Electronic Football
|
||||
@ -7480,6 +7594,17 @@ ROM_START( tc4 )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( cmsport )
|
||||
ROM_REGION( 0x0400, "maincpu", 0 )
|
||||
ROM_LOAD( "mp0168.u1", 0x0000, 0x0400, CRC(0712a268) SHA1(bd4e23e5c17b28c52e7e769e44773cc9c8839bed) )
|
||||
|
||||
ROM_REGION( 867, "maincpu:mpla", 0 )
|
||||
ROM_LOAD( "tms1000_common2_micro.pla", 0, 867, CRC(d33da3cf) SHA1(13c4ebbca227818db75e6db0d45b66ba5e207776) )
|
||||
ROM_REGION( 365, "maincpu:opla", 0 )
|
||||
ROM_LOAD( "tms1000_cmsport_output.pla", 0, 365, CRC(7defa140) SHA1(477e3cb55e79938d6acaa911e410f6dcb974c218) )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( cnfball )
|
||||
ROM_REGION( 0x0400, "maincpu", 0 )
|
||||
ROM_LOAD( "mp0170", 0x0000, 0x0400, CRC(50e8a44f) SHA1(fea6ae03c4ef329d825f8688e6854df15023d47e) )
|
||||
@ -8020,6 +8145,7 @@ CONS( 1980, h2hbaseb, 0, 0, h2hbaseb, h2hbaseb, driver_device, 0, "Col
|
||||
CONS( 1981, h2hboxing, 0, 0, h2hboxing, h2hboxing, driver_device, 0, "Coleco", "Head to Head Boxing", MACHINE_SUPPORTS_SAVE )
|
||||
CONS( 1981, tc4, 0, 0, tc4, tc4, driver_device, 0, "Coleco", "Total Control 4", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
|
||||
|
||||
CONS( 1979, cmsport, 0, 0, cmsport, cmsport, driver_device, 0, "Conic", "Electronic Multisport", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
|
||||
CONS( 1979, cnfball, 0, 0, cnfball, cnfball, driver_device, 0, "Conic", "Electronic Football (Conic, TMS1000 version)", MACHINE_SUPPORTS_SAVE )
|
||||
CONS( 1979, cnfball2, 0, 0, cnfball2, cnfball2, driver_device, 0, "Conic", "Electronic Football II (Conic)", MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
|
65
src/mame/layout/cmsport.lay
Normal file
65
src/mame/layout/cmsport.lay
Normal file
@ -0,0 +1,65 @@
|
||||
<?xml version="1.0"?>
|
||||
<mamelayout version="2">
|
||||
|
||||
<!-- define elements -->
|
||||
|
||||
<element name="digit" defstate="0">
|
||||
<led7seg><color red="1.0" green="0.25" blue="0.28" /></led7seg>
|
||||
</element>
|
||||
|
||||
<element name="led" defstate="0">
|
||||
<disk state="0"><color red="0.1" green="0.025" blue="0.028" /></disk>
|
||||
<disk state="1"><color red="1.0" green="0.25" blue="0.28" /></disk>
|
||||
</element>
|
||||
|
||||
|
||||
<!-- build screen -->
|
||||
|
||||
<view name="Internal Layout">
|
||||
<bounds left="-1" right="14" top="-1" bottom="21.5" />
|
||||
|
||||
<bezel name="5.7" element="led"><bounds x="0" y="0" width="1" height="1" /></bezel>
|
||||
<bezel name="8.a" element="led"><bounds x="6" y="0" width="1" height="1" /></bezel>
|
||||
<bezel name="6.7" element="led"><bounds x="12" y="0" width="1" height="1" /></bezel>
|
||||
|
||||
<bezel name="0.7" element="led"><bounds x="0" y="2.5" width="1" height="1" /></bezel>
|
||||
<bezel name="1.7" element="led"><bounds x="3" y="2.5" width="1" height="1" /></bezel>
|
||||
<bezel name="2.7" element="led"><bounds x="6" y="2.5" width="1" height="1" /></bezel>
|
||||
<bezel name="3.7" element="led"><bounds x="9" y="2.5" width="1" height="1" /></bezel>
|
||||
<bezel name="4.7" element="led"><bounds x="12" y="2.5" width="1" height="1" /></bezel>
|
||||
|
||||
<bezel name="0.6" element="led"><bounds x="0" y="5" width="1" height="1" /></bezel>
|
||||
<bezel name="1.6" element="led"><bounds x="3" y="5" width="1" height="1" /></bezel>
|
||||
<bezel name="2.6" element="led"><bounds x="6" y="5" width="1" height="1" /></bezel>
|
||||
<bezel name="3.6" element="led"><bounds x="9" y="5" width="1" height="1" /></bezel>
|
||||
<bezel name="4.6" element="led"><bounds x="12" y="5" width="1" height="1" /></bezel>
|
||||
|
||||
<bezel name="0.5" element="led"><bounds x="0" y="7.5" width="1" height="1" /></bezel>
|
||||
<bezel name="1.5" element="led"><bounds x="3" y="7.5" width="1" height="1" /></bezel>
|
||||
<bezel name="2.5" element="led"><bounds x="6" y="7.5" width="1" height="1" /></bezel>
|
||||
<bezel name="3.5" element="led"><bounds x="9" y="7.5" width="1" height="1" /></bezel>
|
||||
<bezel name="4.5" element="led"><bounds x="12" y="7.5" width="1" height="1" /></bezel>
|
||||
|
||||
<bezel name="0.4" element="led"><bounds x="0" y="10" width="1" height="1" /></bezel>
|
||||
<bezel name="1.4" element="led"><bounds x="3" y="10" width="1" height="1" /></bezel>
|
||||
<bezel name="2.4" element="led"><bounds x="6" y="10" width="1" height="1" /></bezel>
|
||||
<bezel name="3.4" element="led"><bounds x="9" y="10" width="1" height="1" /></bezel>
|
||||
<bezel name="4.4" element="led"><bounds x="12" y="10" width="1" height="1" /></bezel>
|
||||
|
||||
<bezel name="0.3" element="led"><bounds x="0" y="12.5" width="1" height="1" /></bezel>
|
||||
<bezel name="1.3" element="led"><bounds x="3" y="12.5" width="1" height="1" /></bezel>
|
||||
<bezel name="2.3" element="led"><bounds x="6" y="12.5" width="1" height="1" /></bezel>
|
||||
<bezel name="3.3" element="led"><bounds x="9" y="12.5" width="1" height="1" /></bezel>
|
||||
<bezel name="4.3" element="led"><bounds x="12" y="12.5" width="1" height="1" /></bezel>
|
||||
|
||||
<bezel name="0.0" element="led"><bounds x="0" y="15" width="1" height="1" /></bezel>
|
||||
<bezel name="1.0" element="led"><bounds x="3" y="15" width="1" height="1" /></bezel>
|
||||
<bezel name="2.0" element="led"><bounds x="6" y="15" width="1" height="1" /></bezel>
|
||||
<bezel name="3.0" element="led"><bounds x="9" y="15" width="1" height="1" /></bezel>
|
||||
<bezel name="4.0" element="led"><bounds x="12" y="15" width="1" height="1" /></bezel>
|
||||
|
||||
<bezel name="digit5" element="digit"><bounds x="4.5" y="17.5" width="2" height="3" /></bezel>
|
||||
<bezel name="digit6" element="digit"><bounds x="6.5" y="17.5" width="2" height="3" /></bezel>
|
||||
|
||||
</view>
|
||||
</mamelayout>
|
@ -14271,12 +14271,13 @@ bcheetah // Bandai
|
||||
bigtrak // Milton Bradley
|
||||
bship // Milton Bradley
|
||||
bshipb // Milton Bradley
|
||||
copycat // Tiger Electronics
|
||||
copycatm2 // Tiger Electronics
|
||||
cmsport // Conic
|
||||
cnfball // Conic
|
||||
cnfball2 // Conic
|
||||
cnsector // Parker Bros
|
||||
comp4 // Milton Bradley
|
||||
copycat // Tiger Electronics
|
||||
copycatm2 // Tiger Electronics
|
||||
cqback // Coleco
|
||||
ditto // Tiger Electronics
|
||||
ebaskb2 // Entex
|
||||
|
Loading…
Reference in New Issue
Block a user