From 64e10c17a7bbc4eb728b80b2f5df4693d528f679 Mon Sep 17 00:00:00 2001 From: hap Date: Thu, 16 Apr 2020 11:44:28 +0200 Subject: [PATCH] New working machines -------------------- [hap, Kevin Horton] --- src/mame/drivers/hh_hmcs40.cpp | 10 +++ src/mame/drivers/hh_pic16.cpp | 160 ++++++++++++++++++++++++++++++++- src/mame/drivers/hh_tms1k.cpp | 30 +++---- src/mame/layout/sfxchas.lay | 50 +++++++++++ src/mame/mame.lst | 1 + 5 files changed, 235 insertions(+), 16 deletions(-) create mode 100644 src/mame/layout/sfxchas.lay diff --git a/src/mame/drivers/hh_hmcs40.cpp b/src/mame/drivers/hh_hmcs40.cpp index b0ac521b661..bfe5bacc175 100644 --- a/src/mame/drivers/hh_hmcs40.cpp +++ b/src/mame/drivers/hh_hmcs40.cpp @@ -60,16 +60,26 @@ @A88 HD38820 1984, Bandai Pair Match (PT-460) (1/2) @A89 HD38820 1984, Bandai Pair Match (PT-460) (2/2) + *A34 HD44801 1981, Scisys Graduate Chess / Chesspartner 3000/4000 *A50 HD44801 1981, CXG Sensor Computachess A75 HD44801 1982, Alpha 8201 protection MCU -> machine/alpha8201.* + *A85 HD44801 1982, Scisys Travel Sensor / Travel Mate / Chesspartner 5000/6000 B35 HD44801 1983, Alpha 8302 protection MCU (see 8201) B42 HD44801 1983, Alpha 8303 protection MCU (see 8201) *B43 HD44801 1983, Alpha 8304 protection MCU (see 8201) C57 HD44801 1985, Alpha 8505 protection MCU (see 8201) *C89 HD44801 1985, CXG Portachess II / Computachess IV + *A86 HD44820 1983, Chess King Pocket Micro + + *A13 HD44840 1982, CXG Computachess II *A14 HD44840 1982, CXG Advanced Portachess + *A04 HD44868 1984, SciSys Rapier + *A07 HD44868 1984, Chess King Pocket Micro Deluxe + *A12 HD44868 1985, SciSys MK 10 / Pocket Chess + *A14 HD44868 1985, SciSys Kasparov Plus + (* means undumped unless noted, @ denotes it's in this driver) diff --git a/src/mame/drivers/hh_pic16.cpp b/src/mame/drivers/hh_pic16.cpp index 8ae80c8ba9f..91b300bd35e 100644 --- a/src/mame/drivers/hh_pic16.cpp +++ b/src/mame/drivers/hh_pic16.cpp @@ -20,6 +20,7 @@ @053 1655A 1979, Atari Touch Me @0?? 1655A 1979, Tiger Half Court Computer Basketball/Sears Electronic Basketball (custom label) @061 1655A 1980, Lakeside Le Boom + @078 1655A 1980, Radio Shack Sound Effects Chassis *081 1655A 1981, Ramtex Space Invaders/Block Buster @094 1655A 1980, GAF Melody Madness @110 1650A 1979, Tiger/Tandy Rocket Pinball @@ -43,6 +44,7 @@ - ttfball: 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? I presume Toytronic. + - is sfxchas an import of an existing toy meant for US-market? if so, which? - uspbball and pabball internal artwork ***************************************************************************/ @@ -61,6 +63,7 @@ #include "melodym.lh" // clickable #include "matchme.lh" // clickable #include "rockpin.lh" +#include "sfxchas.lh" // clickable #include "tbaskb.lh" #include "touchme.lh" // clickable #include "ttfball.lh" @@ -1075,6 +1078,160 @@ ROM_END +/*************************************************************************** + + Tandy(Radio Shack division) Sound Effects Chassis + * PCB label 25-600321, REV C, TCI-A3H / 94HB + * PIC 1655A-078 + * 2 7seg LEDs + 8 other LEDs, 1-bit sound with volume decay + + This could be purchased as a bare PCB from Radio Shack under the Archer + brand, catalog number 277-1013. It was named "Sound Effects Chassis" but + clearly it's nothing like that. More likely, it's a canceled tabletop game, + either custom made for Tandy, or an (as of yet) unknown import. + + The bottom-left button selects game type and the bottom-right button selects + number of players. Press the bottom button(IPT_BUTTON5) to start. In games + 4 and 5 it's easy to lock up the program by pressing the buttons repeatedly + and causing a score overflow. + + The instruction leaflet says to attach a speaker and a 9V power source. + It actually takes 5V, 9V would break it. The only thing it has to say about + the game itself is "Your module will produce blinking lights and several + different sounds." + +***************************************************************************/ + +class sfxchas_state : public hh_pic16_state +{ +public: + sfxchas_state(const machine_config &mconfig, device_type type, const char *tag) : + hh_pic16_state(mconfig, type, tag) + { } + + void update_display(); + DECLARE_WRITE8_MEMBER(write_b); + DECLARE_READ8_MEMBER(read_c); + DECLARE_WRITE8_MEMBER(write_c); + + void speaker_decay_reset(); + TIMER_DEVICE_CALLBACK_MEMBER(speaker_decay_sim); + double m_speaker_volume; + void sfxchas(machine_config &config); + +protected: + virtual void machine_start() override; +}; + +void sfxchas_state::machine_start() +{ + hh_pic16_state::machine_start(); + + // zerofill/init + m_speaker_volume = 0; + save_item(NAME(m_speaker_volume)); +} + +// handlers + +void sfxchas_state::speaker_decay_reset() +{ + if (~m_b & 0x40) + m_speaker_volume = 20.0; + + // it takes a bit before it actually starts fading + double vol = (m_speaker_volume > 1.0) ? 1.0 : m_speaker_volume; + m_speaker->set_output_gain(0, vol); +} + +TIMER_DEVICE_CALLBACK_MEMBER(sfxchas_state::speaker_decay_sim) +{ + // volume decays when speaker is off (divisor and timer period determine duration) + speaker_decay_reset(); + m_speaker_volume /= 1.15; +} + +void sfxchas_state::update_display() +{ + m_display->matrix(~m_b >> 4 & 3, (~m_c >> 1 & 0x7f) | (~m_b << 7 & 0x780)); +} + +WRITE8_MEMBER(sfxchas_state::write_b) +{ + // B0-B3: led data + // B4,B5: led select + m_b = data; + update_display(); + + // B6: speaker on + // B7: speaker out + speaker_decay_reset(); + m_speaker->level_w(data >> 7 & 1); +} + +READ8_MEMBER(sfxchas_state::read_c) +{ + // C1-C7: buttons + return (m_c & 1) ? 0xff : m_inputs[1]->read(); +} + +WRITE8_MEMBER(sfxchas_state::write_c) +{ + // C0: enable buttons + // C1-C7: digit segments + m_c = data; + update_display(); +} + +// config + +static INPUT_PORTS_START( sfxchas ) + PORT_START("IN.0") // port A + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) // top button, increment clockwise + PORT_BIT( 0x0e, IP_ACTIVE_LOW, IPT_UNUSED ) + + PORT_START("IN.1") // port C + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON6 ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON7 ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON8 ) +INPUT_PORTS_END + +void sfxchas_state::sfxchas(machine_config &config) +{ + /* basic machine hardware */ + PIC1655(config, m_maincpu, 1050000); // approximation + m_maincpu->read_a().set_ioport("IN.0"); + m_maincpu->write_b().set(FUNC(sfxchas_state::write_b)); + m_maincpu->read_c().set(FUNC(sfxchas_state::read_c)); + m_maincpu->write_c().set(FUNC(sfxchas_state::write_c)); + + /* video hardware */ + PWM_DISPLAY(config, m_display).set_size(2, 7+4); + m_display->set_segmask(3, 0x7f); + config.set_default_layout(layout_sfxchas); + + /* sound hardware */ + SPEAKER(config, "mono").front_center(); + SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); + TIMER(config, "speaker_decay").configure_periodic(FUNC(sfxchas_state::speaker_decay_sim), attotime::from_msec(25)); +} + +// roms + +ROM_START( sfxchas ) + ROM_REGION( 0x0400, "maincpu", 0 ) + ROM_LOAD( "pic_1655a-078", 0x0000, 0x0400, CRC(bf780733) SHA1(57ac4620d87492280ab8cf69c148f98e38ecedc4) ) +ROM_END + + + + + /*************************************************************************** Tiger Electronics Rocket Pinball (model 7-460) @@ -1760,7 +1917,8 @@ CONS( 1980, matchme, 0, 0, matchme, matchme, matchme_state, empty_ CONS( 1980, leboom, 0, 0, leboom, leboom, leboom_state, empty_init, "Lakeside", "Le Boom", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1979, tbaskb, 0, 0, tbaskb, tbaskb, tbaskb_state, empty_init, "Tandy Radio Shack", "Electronic Basketball (Tandy)", MACHINE_SUPPORTS_SAVE ) +CONS( 1979, tbaskb, 0, 0, tbaskb, tbaskb, tbaskb_state, empty_init, "Tandy Corporation", "Electronic Basketball (Tandy)", MACHINE_SUPPORTS_SAVE ) +CONS( 1980, sfxchas, 0, 0, sfxchas, sfxchas, sfxchas_state, empty_init, "Tandy Corporation", "Sound Effects Chassis", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) CONS( 1979, rockpin, 0, 0, rockpin, rockpin, rockpin_state, empty_init, "Tiger Electronics", "Rocket Pinball", MACHINE_SUPPORTS_SAVE ) CONS( 1979, hccbaskb, 0, 0, hccbaskb, hccbaskb, hccbaskb_state, empty_init, "Tiger Electronics", "Half Court Computer Basketball", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/hh_tms1k.cpp b/src/mame/drivers/hh_tms1k.cpp index 15611e39783..4063addd3dd 100644 --- a/src/mame/drivers/hh_tms1k.cpp +++ b/src/mame/drivers/hh_tms1k.cpp @@ -31,7 +31,7 @@ @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 + @MP0271 TMS1000 1982, Radio Shack Monkey See @MP0907 TMS1000 1979, Conic Basketball (101-006) @MP0908 TMS1000 1979, Conic Electronic I.Q. *MP0910 TMS1000 1979, Conic Basketball (101-003) @@ -57,7 +57,7 @@ @MP1221 TMS1100 1980, Entex Raise The Devil (6011) *MP1231 TMS1100 1983, Tandy 3-in-1 Sports Arena (model 60-2178) *MP1296 TMS1100? 1982, Entex Black Knight - @MP1312 TMS1100 1983, Gakken FX-Micom R-165/Tandy Radio Shack Science Fair Microcomputer Trainer + @MP1312 TMS1100 1983, Gakken FX-Micom R-165/Radio Shack Science Fair Microcomputer Trainer *MP1359 TMS1100? 1985, Capsela CRC2000 @MP1525 TMS1170 1980, Coleco Head to Head: Electronic Baseball @MP1604 TMS1370 1982, Gakken Invader 2000/Tandy Cosmic Fire Away 3000 @@ -131,7 +131,7 @@ inconsistent: @TMS1007 TMS1000 1976, TSI Speech+ (S14002-A) - @CD7282SL TMS1100 1981, Tandy Radio Shack Tandy-12 (serial is similar to TI Speak & Spell series?) + @CD7282SL TMS1100 1981, Tandy-12 (serial is similar to TI Speak & Spell series?) (* means undumped unless noted, @ denotes it's in this driver) @@ -2882,7 +2882,7 @@ ROM_END known releases: - Hong Kong: Electronic Football II, Conic - - USA: Electronic Football II, Tandy Radio Shack + - USA: Electronic Football II, Tandy ***************************************************************************/ @@ -5497,14 +5497,14 @@ ROM_END * 1 7seg led, 6 other leds, 1-bit sound This is a simple educational home computer. Refer to the extensive manual - for more information. It was published later in the USA by Tandy Radio Shack, + for more information. It was published later in the USA by Tandy(Radio Shack), under their Science Fair series. Another 25 years later, Gakken re-released the R-165 as GMC-4, obviously on modern hardware, but fully compatible. known releases: - Japan: FX-Micom R-165 - - USA: Science Fair Microcomputer Trainer, published by Tandy Radio Shack. - Of note is the complete redesign of the case, adding more adjustable wiring + - USA: Science Fair Microcomputer Trainer, published by Tandy. Of note is + the complete redesign of the case, adding more adjustable wiring ***************************************************************************/ @@ -8875,7 +8875,7 @@ ROM_END /*************************************************************************** - Tandy Radio Shack Championship Football (model 60-2150) + Tandy Championship Football (model 60-2150) * PCB label CYG-316 * TMS1100NLL MP1193 (die label 1100B, MP1193) * 7-digit 7seg LED display + LED grid, 1-bit sound @@ -8998,7 +8998,7 @@ ROM_END /*************************************************************************** - Tandy Radio Shack Championship Football (model 60-2151) + Tandy Championship Football (model 60-2151) * TMS1100NLL MP1183 (no decap) * 7-digit 7seg LED display + LED grid, 1-bit sound @@ -9064,7 +9064,7 @@ ROM_END /*************************************************************************** - Tandy Radio Shack Computerized Arcade (1981, 1982, 1995) + Tandy Computerized Arcade (1981, 1982, 1995) * TMS1100 MCU, label CD7282SL * 12 lamps behind buttons, 1-bit sound @@ -9241,7 +9241,7 @@ ROM_END /*************************************************************************** - (Tandy) Radio Shack Monkey See (1982 version) + Tandy(Radio Shack division) Monkey See (1982 version) * TMS1000 MP0271 (die label 1000E, MP0271), only half of ROM space used * 2 LEDs(one red, one green), 1-bit sound @@ -12479,10 +12479,10 @@ CONS( 1982, lostreas, 0, 0, lostreas, lostreas, lostreas_state, emp CONS( 1978, alphie, 0, 0, alphie, alphie, alphie_state, empty_init, "Playskool", "Alphie - The Electronic Robot (patent)", MACHINE_SUPPORTS_SAVE ) // *** -CONS( 1980, tcfball, 0, 0, tcfball, tcfball, tcfball_state, empty_init, "Tandy Radio Shack", "Championship Football (model 60-2150)", MACHINE_SUPPORTS_SAVE ) -CONS( 1980, tcfballa, tcfball, 0, tcfballa, tcfballa, tcfballa_state, empty_init, "Tandy Radio Shack", "Championship Football (model 60-2151)", MACHINE_SUPPORTS_SAVE ) -CONS( 1981, tandy12, 0, 0, tandy12, tandy12, tandy12_state, empty_init, "Tandy Radio Shack", "Tandy-12: Computerized Arcade", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // some of the minigames: *** -CONS( 1982, monkeysee, 0, 0, monkeysee, monkeysee, monkeysee_state, empty_init, "Tandy Radio Shack", "Monkey See (1982 version)", MACHINE_SUPPORTS_SAVE ) +CONS( 1980, tcfball, 0, 0, tcfball, tcfball, tcfball_state, empty_init, "Tandy Corporation", "Championship Football (model 60-2150)", MACHINE_SUPPORTS_SAVE ) +CONS( 1980, tcfballa, tcfball, 0, tcfballa, tcfballa, tcfballa_state, empty_init, "Tandy Corporation", "Championship Football (model 60-2151)", MACHINE_SUPPORTS_SAVE ) +CONS( 1981, tandy12, 0, 0, tandy12, tandy12, tandy12_state, empty_init, "Tandy Corporation", "Tandy-12: Computerized Arcade", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // some of the minigames: *** +CONS( 1982, monkeysee, 0, 0, monkeysee, monkeysee, monkeysee_state, empty_init, "Tandy Corporation", "Monkey See (1982 version)", MACHINE_SUPPORTS_SAVE ) COMP( 1976, speechp, 0, 0, speechp, speechp, speechp_state, empty_init, "Telesensory Systems, Inc.", "Speech+", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/layout/sfxchas.lay b/src/mame/layout/sfxchas.lay new file mode 100644 index 00000000000..b3ef4355e0e --- /dev/null +++ b/src/mame/layout/sfxchas.lay @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 00845d34bec..46499219a95 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -15759,6 +15759,7 @@ melodym // GAF matchme // Kingsford pabball // Caprice rockpin // Tiger Electronics +sfxchas // Tandy Radio Shack tbaskb // Tandy Radio Shack touchme // Atari ttfball // Toytronic