mirror of
https://github.com/holub/mame
synced 2025-07-05 18:08:04 +03:00
New working machine added
-------- Tandy Electronic Basketball [hap, Sean Riddle]
This commit is contained in:
parent
182fc20c15
commit
a032716dc9
@ -13,7 +13,7 @@
|
|||||||
@033 1655A 1979, Toytronic Football (newer)
|
@033 1655A 1979, Toytronic Football (newer)
|
||||||
@036 1655A 1979, Ideal Maniac
|
@036 1655A 1979, Ideal Maniac
|
||||||
*043 1655A 1979, Caprice Pro-Action Baseball (have dump)
|
*043 1655A 1979, Caprice Pro-Action Baseball (have dump)
|
||||||
*051 1655A 1979, U.S. Games Basketball/Tandy Electronic Basketball (have dump)
|
@051 1655A 1979, Tandy Electronic Basketball
|
||||||
@053 1655A 1979, Atari Touch Me
|
@053 1655A 1979, Atari Touch Me
|
||||||
@0?? 1655A 1979, Tiger Half Court Computer Basketball/Sears Electronic Basketball (custom label)
|
@0?? 1655A 1979, Tiger Half Court Computer Basketball/Sears Electronic Basketball (custom label)
|
||||||
@061 1655A 1980, Lakeside Le Boom
|
@061 1655A 1980, Lakeside Le Boom
|
||||||
@ -36,6 +36,8 @@
|
|||||||
TODO:
|
TODO:
|
||||||
- leboom discrete sound for volume decay (simulated for now)
|
- leboom discrete sound for volume decay (simulated for now)
|
||||||
- ttfball/ttfballa: discrete sound part, for volume gating?
|
- ttfball/ttfballa: discrete sound part, for volume gating?
|
||||||
|
- what's the relation between hccbaskb and tbaskb? Is one the bootleg
|
||||||
|
of the other? Or are they both made by the same subcontractor?
|
||||||
|
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
@ -49,6 +51,7 @@
|
|||||||
#include "maniac.lh" // clickable
|
#include "maniac.lh" // clickable
|
||||||
#include "melodym.lh" // clickable
|
#include "melodym.lh" // clickable
|
||||||
#include "rockpin.lh"
|
#include "rockpin.lh"
|
||||||
|
#include "tbaskb.lh"
|
||||||
#include "touchme.lh" // clickable
|
#include "touchme.lh" // clickable
|
||||||
#include "ttfball.lh"
|
#include "ttfball.lh"
|
||||||
|
|
||||||
@ -765,6 +768,115 @@ MACHINE_CONFIG_END
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/***************************************************************************
|
||||||
|
|
||||||
|
Tandy Electronic Basketball (model 60-2146)
|
||||||
|
* PIC1655A-51
|
||||||
|
* 2 7seg LEDs + 21 other LEDs, 1-bit sound
|
||||||
|
|
||||||
|
The ROM is nearly identical to hccbaskb, the shell/overlay is the same as
|
||||||
|
U.S. Games/Tandy Trick Shot Basketball.
|
||||||
|
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
class tbaskb_state : public hh_pic16_state
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
tbaskb_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||||
|
: hh_pic16_state(mconfig, type, tag)
|
||||||
|
{ }
|
||||||
|
|
||||||
|
void prepare_display();
|
||||||
|
DECLARE_READ8_MEMBER(read_a);
|
||||||
|
DECLARE_WRITE8_MEMBER(write_b);
|
||||||
|
DECLARE_WRITE8_MEMBER(write_c);
|
||||||
|
};
|
||||||
|
|
||||||
|
// handlers
|
||||||
|
|
||||||
|
void tbaskb_state::prepare_display()
|
||||||
|
{
|
||||||
|
// B4,B5 are 7segs
|
||||||
|
set_display_segmask(0x30, 0x7f);
|
||||||
|
display_matrix(7, 6, m_c, m_b);
|
||||||
|
}
|
||||||
|
|
||||||
|
READ8_MEMBER(tbaskb_state::read_a)
|
||||||
|
{
|
||||||
|
// A2: skill switch, A3: multiplexed inputs
|
||||||
|
return m_inp_matrix[5]->read() | read_inputs(5) | 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
WRITE8_MEMBER(tbaskb_state::write_b)
|
||||||
|
{
|
||||||
|
// B0: RTCC pin
|
||||||
|
m_maincpu->set_input_line(PIC16C5x_RTCC, data & 1);
|
||||||
|
|
||||||
|
// B0-B4: input mux
|
||||||
|
m_inp_mux = ~data & 0x1f;
|
||||||
|
|
||||||
|
// B0-B5: led select
|
||||||
|
m_b = data;
|
||||||
|
prepare_display();
|
||||||
|
}
|
||||||
|
|
||||||
|
WRITE8_MEMBER(tbaskb_state::write_c)
|
||||||
|
{
|
||||||
|
// C7: speaker out
|
||||||
|
m_speaker->level_w(data >> 7 & 1);
|
||||||
|
|
||||||
|
// C0-C6: led data
|
||||||
|
m_c = ~data;
|
||||||
|
prepare_display();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// config
|
||||||
|
|
||||||
|
static INPUT_PORTS_START( tbaskb )
|
||||||
|
PORT_START("IN.0") // B0 port A3
|
||||||
|
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_16WAY
|
||||||
|
|
||||||
|
PORT_START("IN.1") // B1 port A3
|
||||||
|
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_16WAY
|
||||||
|
|
||||||
|
PORT_START("IN.2") // B2 port A3
|
||||||
|
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_16WAY
|
||||||
|
|
||||||
|
PORT_START("IN.3") // B3 port A3
|
||||||
|
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_16WAY
|
||||||
|
|
||||||
|
PORT_START("IN.4") // B4 port A3
|
||||||
|
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 )
|
||||||
|
|
||||||
|
PORT_START("IN.5") // port A2
|
||||||
|
PORT_CONFNAME( 0x04, 0x04, "Skill Level" )
|
||||||
|
PORT_CONFSETTING( 0x04, "1" )
|
||||||
|
PORT_CONFSETTING( 0x00, "2" )
|
||||||
|
INPUT_PORTS_END
|
||||||
|
|
||||||
|
static MACHINE_CONFIG_START( tbaskb, tbaskb_state )
|
||||||
|
|
||||||
|
/* basic machine hardware */
|
||||||
|
MCFG_CPU_ADD("maincpu", PIC1655, 1000000) // approximation - RC osc. R=18K, C=47pF
|
||||||
|
MCFG_PIC16C5x_READ_A_CB(READ8(tbaskb_state, read_a))
|
||||||
|
MCFG_PIC16C5x_WRITE_B_CB(WRITE8(tbaskb_state, write_b))
|
||||||
|
MCFG_PIC16C5x_READ_C_CB(CONSTANT(0xff))
|
||||||
|
MCFG_PIC16C5x_WRITE_C_CB(WRITE8(tbaskb_state, write_c))
|
||||||
|
|
||||||
|
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_pic16_state, display_decay_tick, attotime::from_msec(1))
|
||||||
|
MCFG_DEFAULT_LAYOUT(layout_tbaskb)
|
||||||
|
|
||||||
|
/* 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
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
|
|
||||||
Tiger Electronics Rocket Pinball (model 7-460)
|
Tiger Electronics Rocket Pinball (model 7-460)
|
||||||
@ -976,6 +1088,7 @@ static MACHINE_CONFIG_START( hccbaskb, hccbaskb_state )
|
|||||||
MCFG_CPU_ADD("maincpu", PIC1655, 1000000) // approximation - RC osc. R=15K, C=47pF
|
MCFG_CPU_ADD("maincpu", PIC1655, 1000000) // approximation - RC osc. R=15K, C=47pF
|
||||||
MCFG_PIC16C5x_READ_A_CB(READ8(hccbaskb_state, read_a))
|
MCFG_PIC16C5x_READ_A_CB(READ8(hccbaskb_state, read_a))
|
||||||
MCFG_PIC16C5x_WRITE_B_CB(WRITE8(hccbaskb_state, write_b))
|
MCFG_PIC16C5x_WRITE_B_CB(WRITE8(hccbaskb_state, write_b))
|
||||||
|
MCFG_PIC16C5x_READ_C_CB(CONSTANT(0xff))
|
||||||
MCFG_PIC16C5x_WRITE_C_CB(WRITE8(hccbaskb_state, write_c))
|
MCFG_PIC16C5x_WRITE_C_CB(WRITE8(hccbaskb_state, write_c))
|
||||||
|
|
||||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_pic16_state, display_decay_tick, attotime::from_msec(1))
|
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_pic16_state, display_decay_tick, attotime::from_msec(1))
|
||||||
@ -993,9 +1106,13 @@ MACHINE_CONFIG_END
|
|||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
|
|
||||||
Toytronic Football
|
Toytronic Football (set 1)
|
||||||
* PIC1655-024 or PIC1655A-033
|
* PIC1655A-033
|
||||||
* 4511 7seg BCD decoder, 7 7seg LEDs + 27 other LEDs, 1-bit sound
|
* 4511 7seg BCD decoder, 7 7seg LEDs + 27 other LEDs, 1-bit sound
|
||||||
|
|
||||||
|
(no brand) Football (set 2)
|
||||||
|
* PIC1655-024
|
||||||
|
* rest same as above, 1 less button
|
||||||
|
|
||||||
Hello and welcome to another Mattel Football clone, there are so many of these.
|
Hello and welcome to another Mattel Football clone, there are so many of these.
|
||||||
The PIC1655-024 one came from an unbranded handheld, but comparison suggests
|
The PIC1655-024 one came from an unbranded handheld, but comparison suggests
|
||||||
@ -1120,7 +1237,7 @@ INPUT_PORTS_END
|
|||||||
static MACHINE_CONFIG_START( ttfball, ttfball_state )
|
static MACHINE_CONFIG_START( ttfball, ttfball_state )
|
||||||
|
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
MCFG_CPU_ADD("maincpu", PIC1655, 1000000) // approximation - RC osc. R=27K or 33K, C=68pF
|
MCFG_CPU_ADD("maincpu", PIC1655, 1000000) // approximation - RC osc. R=27K(set 1) or 33K(set 2), C=68pF
|
||||||
MCFG_PIC16C5x_READ_A_CB(READ8(ttfball_state, read_a))
|
MCFG_PIC16C5x_READ_A_CB(READ8(ttfball_state, read_a))
|
||||||
MCFG_PIC16C5x_WRITE_B_CB(WRITE8(ttfball_state, write_b))
|
MCFG_PIC16C5x_WRITE_B_CB(WRITE8(ttfball_state, write_b))
|
||||||
MCFG_PIC16C5x_READ_C_CB(CONSTANT(0xff))
|
MCFG_PIC16C5x_READ_C_CB(CONSTANT(0xff))
|
||||||
@ -1169,6 +1286,12 @@ ROM_START( leboom )
|
|||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
|
|
||||||
|
ROM_START( tbaskb )
|
||||||
|
ROM_REGION( 0x0400, "maincpu", 0 )
|
||||||
|
ROM_LOAD( "pic1655a-051", 0x0000, 0x0400, CRC(92534b40) SHA1(7055e32846c913e68f7d35f279cd537f6325f4f2) )
|
||||||
|
ROM_END
|
||||||
|
|
||||||
|
|
||||||
ROM_START( rockpin )
|
ROM_START( rockpin )
|
||||||
ROM_REGION( 0x0400, "maincpu", 0 )
|
ROM_REGION( 0x0400, "maincpu", 0 )
|
||||||
ROM_LOAD( "pic1650a-110_69-11397", 0x0000, 0x0400, CRC(d5396e77) SHA1(952feaff70fde53a9eda84c54704520d50749e78) )
|
ROM_LOAD( "pic1650a-110_69-11397", 0x0000, 0x0400, CRC(d5396e77) SHA1(952feaff70fde53a9eda84c54704520d50749e78) )
|
||||||
@ -1202,6 +1325,8 @@ CONS( 1979, maniac, 0, 0, maniac, maniac, driver_device, 0, "Ideal
|
|||||||
|
|
||||||
CONS( 1980, leboom, 0, 0, leboom, leboom, driver_device, 0, "Lakeside", "Le Boom", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_CLICKABLE_ARTWORK )
|
CONS( 1980, leboom, 0, 0, leboom, leboom, driver_device, 0, "Lakeside", "Le Boom", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_CLICKABLE_ARTWORK )
|
||||||
|
|
||||||
|
CONS( 1979, tbaskb, 0, 0, tbaskb, tbaskb, driver_device, 0, "Tandy Radio Shack", "Electronic Basketball (Tandy)", MACHINE_SUPPORTS_SAVE )
|
||||||
|
|
||||||
CONS( 1979, rockpin, 0, 0, rockpin, rockpin, driver_device, 0, "Tiger Electronics", "Rocket Pinball", MACHINE_SUPPORTS_SAVE )
|
CONS( 1979, rockpin, 0, 0, rockpin, rockpin, driver_device, 0, "Tiger Electronics", "Rocket Pinball", MACHINE_SUPPORTS_SAVE )
|
||||||
CONS( 1979, hccbaskb, 0, 0, hccbaskb, hccbaskb, driver_device, 0, "Tiger Electronics", "Half Court Computer Basketball", MACHINE_SUPPORTS_SAVE )
|
CONS( 1979, hccbaskb, 0, 0, hccbaskb, hccbaskb, driver_device, 0, "Tiger Electronics", "Half Court Computer Basketball", MACHINE_SUPPORTS_SAVE )
|
||||||
|
|
||||||
|
92
src/mame/layout/tbaskb.lay
Normal file
92
src/mame/layout/tbaskb.lay
Normal 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="disk_black"><disk><color red="0" green="0" blue="0" /></disk></element>
|
||||||
|
<element name="static_white"><rect><color red="0.8" green="0.8" blue="0.8" /></rect></element>
|
||||||
|
<element name="disk_white"><disk><color red="0.8" green="0.8" blue="0.8" /></disk></element>
|
||||||
|
|
||||||
|
<element name="text_l1"><text string="HOME" align="1"><color red="0.9" green="0.9" blue="0.9" /></text></element>
|
||||||
|
<element name="text_l2"><text string="VISITOR" align="2"><color red="0.9" green="0.9" blue="0.9" /></text></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="3.26" right="21.74" top="-2.75" bottom="23.25" />
|
||||||
|
|
||||||
|
<!-- bezel -->
|
||||||
|
|
||||||
|
<bezel element="static_white"><bounds x="3.25" y="5" width="18.5" height="23" /></bezel>
|
||||||
|
<bezel element="static_black"><bounds x="3.5" y="5.5" width="18" height="23" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="static_white"><bounds x="10" y="5.25" width="5" height="7.25" /></bezel>
|
||||||
|
<bezel element="static_white"><bounds x="9" y="7.5" width="7" height="0.25" /></bezel>
|
||||||
|
<bezel element="static_white"><bounds x="9" y="8.75" width="7" height="0.25" /></bezel>
|
||||||
|
<bezel element="static_white"><bounds x="9" y="10" width="7" height="0.25" /></bezel>
|
||||||
|
<bezel element="static_black"><bounds x="10.25" y="5.5" width="4.5" height="7.25" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="disk_white"><bounds x="10" y="10" width="5" height="5" /></bezel>
|
||||||
|
<bezel element="disk_black"><bounds x="10.25" y="10.25" width="4.5" height="4.5" /></bezel>
|
||||||
|
<bezel element="static_black"><bounds x="10.85" y="9.5" width="0.35" height="3" /></bezel>
|
||||||
|
<bezel element="static_black"><bounds x="12.25" y="9.5" width="0.5" height="3" /></bezel>
|
||||||
|
<bezel element="static_black"><bounds x="13.8" y="9.5" width="0.35" height="3" /></bezel>
|
||||||
|
<bezel element="static_white"><bounds x="10.1" y="12.25" width="4.8" height="0.25" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="disk_white"><bounds x="10" y="19.25" width="5" height="5" /></bezel>
|
||||||
|
<bezel element="disk_black"><bounds x="10.25" y="19.5" width="4.5" height="4.5" /></bezel>
|
||||||
|
<bezel element="static_white"><bounds x="3.3" y="21.65" width="18.4" height="5" /></bezel>
|
||||||
|
<bezel element="static_black"><bounds x="0" y="21.9" width="25" height="5" /></bezel>
|
||||||
|
<bezel element="static_black"><bounds x="0" y="0" width="25" height="5.25" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="static_white"><bounds x="9" y="1" width="7" height="0.25" /></bezel>
|
||||||
|
<bezel element="disk_white"><bounds x="10.75" y="2" width="3.5" height="2" /></bezel>
|
||||||
|
<bezel element="disk_black"><bounds x="11" y="2.25" width="3" height="1.5" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="text_l1"><bounds x="4" y="22" width="10" height="1" /></bezel>
|
||||||
|
<bezel element="text_l2"><bounds x="11" y="22" width="10" height="1" /></bezel>
|
||||||
|
|
||||||
|
<!-- leds -->
|
||||||
|
|
||||||
|
<bezel name="digit5" element="digit"><bounds x="11" y="-2" width="1.5" height="2.25" /></bezel>
|
||||||
|
<bezel name="digit4" element="digit"><bounds x="12.5" y="-2" width="1.5" height="2.25" /></bezel>
|
||||||
|
|
||||||
|
<bezel name="0.5" element="led"><bounds x="12" y="2.5" width="1" height="1" /></bezel>
|
||||||
|
|
||||||
|
<bezel name="3.0" element="led"><bounds x="4" y="6" width="1" height="1" /></bezel>
|
||||||
|
<bezel name="3.1" element="led"><bounds x="8" y="6" width="1" height="1" /></bezel>
|
||||||
|
<bezel name="3.2" element="led"><bounds x="12" y="6" width="1" height="1" /></bezel>
|
||||||
|
<bezel name="3.3" element="led"><bounds x="16" y="6" width="1" height="1" /></bezel>
|
||||||
|
<bezel name="3.4" element="led"><bounds x="20" y="6" width="1" height="1" /></bezel>
|
||||||
|
|
||||||
|
<bezel name="2.0" element="led"><bounds x="4" y="10.75" width="1" height="1" /></bezel>
|
||||||
|
<bezel name="2.1" element="led"><bounds x="8" y="10.75" width="1" height="1" /></bezel>
|
||||||
|
<bezel name="2.2" element="led"><bounds x="12" y="10.75" width="1" height="1" /></bezel>
|
||||||
|
<bezel name="2.3" element="led"><bounds x="16" y="10.75" width="1" height="1" /></bezel>
|
||||||
|
<bezel name="2.4" element="led"><bounds x="20" y="10.75" width="1" height="1" /></bezel>
|
||||||
|
|
||||||
|
<bezel name="1.0" element="led"><bounds x="4" y="15.5" width="1" height="1" /></bezel>
|
||||||
|
<bezel name="1.1" element="led"><bounds x="8" y="15.5" width="1" height="1" /></bezel>
|
||||||
|
<bezel name="1.2" element="led"><bounds x="12" y="15.5" width="1" height="1" /></bezel>
|
||||||
|
<bezel name="1.3" element="led"><bounds x="16" y="15.5" width="1" height="1" /></bezel>
|
||||||
|
<bezel name="1.4" element="led"><bounds x="20" y="15.5" width="1" height="1" /></bezel>
|
||||||
|
|
||||||
|
<bezel name="0.0" element="led"><bounds x="4" y="20.25" width="1" height="1" /></bezel>
|
||||||
|
<bezel name="0.1" element="led"><bounds x="8" y="20.25" width="1" height="1" /></bezel>
|
||||||
|
<bezel name="0.2" element="led"><bounds x="12" y="20.25" width="1" height="1" /></bezel>
|
||||||
|
<bezel name="0.3" element="led"><bounds x="16" y="20.25" width="1" height="1" /></bezel>
|
||||||
|
<bezel name="0.4" element="led"><bounds x="20" y="20.25" width="1" height="1" /></bezel>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
</mamelayout>
|
@ -14322,6 +14322,7 @@ leboom // Lakeside
|
|||||||
maniac // Ideal
|
maniac // Ideal
|
||||||
melodym // GAF
|
melodym // GAF
|
||||||
rockpin // Tiger Electronics
|
rockpin // Tiger Electronics
|
||||||
|
tbaskb // Tandy Radio Shack
|
||||||
touchme // Atari
|
touchme // Atari
|
||||||
ttfball // Toytronic
|
ttfball // Toytronic
|
||||||
ttfballa // Toytronic
|
ttfballa // Toytronic
|
||||||
|
Loading…
Reference in New Issue
Block a user