summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author hap <happppp@users.noreply.github.com>2015-05-26 11:20:03 +0200
committer hap <happppp@users.noreply.github.com>2015-05-26 11:20:03 +0200
commitb77088811de8e92d6fb68f1cca9ac6ae3fbfdae4 (patch)
treed3bba55e092c38447b34bde0d72294919f164a59
parentbc402c79b25e49af5d14770329c1aca984164bd7 (diff)
added tomy breakup skeleton
-rw-r--r--src/emu/cpu/tms0980/tms0980.h1
-rw-r--r--src/mame/mess.lst1
-rw-r--r--src/mess/drivers/hh_tms1k.c124
3 files changed, 124 insertions, 2 deletions
diff --git a/src/emu/cpu/tms0980/tms0980.h b/src/emu/cpu/tms0980/tms0980.h
index 7ea8a4afd96..b3d8b2163e0 100644
--- a/src/emu/cpu/tms0980/tms0980.h
+++ b/src/emu/cpu/tms0980/tms0980.h
@@ -412,6 +412,7 @@ private:
extern const device_type TMS1000;
extern const device_type TMS1070;
+extern const device_type TMS1040;
extern const device_type TMS1200;
extern const device_type TMS1100;
extern const device_type TMS1170;
diff --git a/src/mame/mess.lst b/src/mame/mess.lst
index 772d99d920e..ccee3ef7c00 100644
--- a/src/mame/mess.lst
+++ b/src/mame/mess.lst
@@ -2210,6 +2210,7 @@ bankshot // Parker Bros
splitsec // Parker Bros
mmerlin // Parker Bros
tandy12 // Tandy Radio Shack
+tbreakup // Tomy
// hh_tms1k derivatives
elecbowl // Marx
diff --git a/src/mess/drivers/hh_tms1k.c b/src/mess/drivers/hh_tms1k.c
index 20c3ce7f42b..d36f6b43753 100644
--- a/src/mess/drivers/hh_tms1k.c
+++ b/src/mess/drivers/hh_tms1k.c
@@ -28,7 +28,7 @@
*MP1604 ? 1981, Hanzawa Twinvader III/Tandy Cosmic Fire Away 3000 (? note: VFD-capable)
@MP2105 TMS1370 1979, Gakken Poker
*MP2139 TMS1370? 1982, Gakken Galaxy Invader 1000
- *MP2726 TMS1040 1979, Tomy Break Up
+ @MP2726 TMS1040 1979, Tomy Break Up
*MP2788 TMS1040? 1980, Bandai Flight Time (? note: VFD-capable)
*MP3208 TMS1000 1977, Milton Bradley Electronic Battleship (1977, model 4750A or B)
@MP3226 TMS1000 1978, Milton Bradley Simon (model 4850)
@@ -103,7 +103,6 @@
#include "ebball.lh"
#include "ebball2.lh"
#include "ebball3.lh"
-#include "einvader.lh" // test-layout(but still playable)
#include "elecdet.lh"
#include "gjackpot.lh"
#include "gpoker.lh"
@@ -120,6 +119,8 @@
#include "tandy12.lh" // clickable
#include "tc4.lh"
+#include "einvader.lh" // test-layout(but still playable)
+
#include "hh_tms1k_test.lh" // common test-layout - use external artwork
@@ -3990,6 +3991,112 @@ MACHINE_CONFIG_END
/***************************************************************************
+ Tomy(tronics) Break Up
+ * TMS1040 MP2726 TOMY WIPE (die labeled MP2726A)
+ * TMS1025N2LL I/O expander
+ * 2-digit 7seg display, 46 other leds, 1bit sound
+
+ known releases:
+ - USA: Break Up
+ - Japan: Block Attack
+ - UK: Break-In
+
+***************************************************************************/
+
+class tbreakup_state : public hh_tms1k_state
+{
+public:
+ tbreakup_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);
+
+ void set_clock();
+ DECLARE_INPUT_CHANGED_MEMBER(skill_switch);
+
+protected:
+ virtual void machine_reset();
+};
+
+// handlers
+
+void tbreakup_state::prepare_display()
+{
+}
+
+WRITE16_MEMBER(tbreakup_state::write_r)
+{
+ prepare_display();
+}
+
+WRITE16_MEMBER(tbreakup_state::write_o)
+{
+ prepare_display();
+}
+
+READ8_MEMBER(tbreakup_state::read_k)
+{
+ return 0;
+}
+
+
+// config
+
+static INPUT_PORTS_START( tbreakup )
+ PORT_START("IN.3") // fake
+ PORT_CONFNAME( 0x01, 0x00, "Skill Level" ) PORT_CHANGED_MEMBER(DEVICE_SELF, tbreakup_state, skill_switch, NULL)
+ PORT_CONFSETTING( 0x00, "Pro 1" )
+ PORT_CONFSETTING( 0x01, "Pro 2" )
+INPUT_PORTS_END
+
+INPUT_CHANGED_MEMBER(tbreakup_state::skill_switch)
+{
+ set_clock();
+}
+
+
+void tbreakup_state::set_clock()
+{
+ // MCU clock is from an analog circuit with resistor of 73K, PRO2 adds 100K
+ m_maincpu->set_unscaled_clock((m_inp_matrix[3]->read() & 1) ? 400000 : 350000);
+}
+
+void tbreakup_state::machine_reset()
+{
+ hh_tms1k_state::machine_reset();
+ set_clock();
+}
+
+static MACHINE_CONFIG_START( tbreakup, tbreakup_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", TMS1040, 400000) // see set_clock
+ MCFG_TMS1XXX_READ_K_CB(READ8(tbreakup_state, read_k))
+ MCFG_TMS1XXX_WRITE_R_CB(WRITE16(tbreakup_state, write_r))
+ MCFG_TMS1XXX_WRITE_O_CB(WRITE16(tbreakup_state, write_o))
+
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
+// MCFG_DEFAULT_LAYOUT(layout_tbreakup)
+ MCFG_DEFAULT_LAYOUT(layout_hh_tms1k_test)
+
+ /* no video! */
+
+ /* 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
+
+
+
+
+
+/***************************************************************************
+
Game driver(s)
***************************************************************************/
@@ -4342,6 +4449,17 @@ ROM_START( tandy12 )
ROM_END
+ROM_START( tbreakup )
+ ROM_REGION( 0x0400, "maincpu", 0 )
+ ROM_LOAD( "mp2726a", 0x0000, 0x0400, CRC(1f7c28e2) SHA1(164cda4eb3f0b1d20955212a197c9aadf8d18a06) )
+
+ ROM_REGION( 867, "maincpu:mpla", 0 )
+ ROM_LOAD( "tms1000_tbreakup_mpla.pla", 0, 867, CRC(d33da3cf) SHA1(13c4ebbca227818db75e6db0d45b66ba5e207776) )
+ ROM_REGION( 365, "maincpu:opla", 0 )
+ ROM_LOAD( "tms1000_tbreakup_opla.pla", 0, 365, CRC(a1ea035e) SHA1(fcf0b57ed90b41441a8974223a697f530daac0ab) )
+ROM_END
+
+
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */
COMP( 1980, mathmagi, 0, 0, mathmagi, mathmagi, driver_device, 0, "APF Electronics Inc.", "Mathemagician", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
@@ -4384,5 +4502,7 @@ CONS( 1982, mmerlin, 0, 0, mmerlin, mmerlin, driver_device, 0, "Par
CONS( 1981, tandy12, 0, 0, tandy12, tandy12, driver_device, 0, "Tandy Radio Shack", "Tandy-12: Computerized Arcade", GAME_SUPPORTS_SAVE ) // some of the minigames: ***
+CONS( 1979, tbreakup, 0, 0, tbreakup, tbreakup, driver_device, 0, "Tomy", "Break Up (Tomy)", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
+
// ***: As far as MESS is concerned, the game is emulated fine. But for it to be playable, it requires interaction
// with other, unemulatable, things eg. game board/pieces, playing cards, pen & paper, etc.