diff options
Diffstat (limited to 'src/mame/drivers/hh_ucom4.cpp')
-rw-r--r-- | src/mame/drivers/hh_ucom4.cpp | 638 |
1 files changed, 339 insertions, 299 deletions
diff --git a/src/mame/drivers/hh_ucom4.cpp b/src/mame/drivers/hh_ucom4.cpp index cff4c17c542..448090a126c 100644 --- a/src/mame/drivers/hh_ucom4.cpp +++ b/src/mame/drivers/hh_ucom4.cpp @@ -35,17 +35,19 @@ @054 uPD552C 1980, Epoch Invader From Space @031 uPD553C 1979, Bambino Superstar Football (ET-03) - @049 uPD553C 1979, Mego Mini-Vid Break Free + @049 uPD553C 1979, Mego Mini-Vid: Break Free @055 uPD553C 1980, Bambino Space Laser Fight (ET-12) *073 uPD553C 1980, Sony ST-J75 FM Stereo Tuner @080 uPD553C 1980, Epoch Electronic Football *102 uPD553C 1981, Bandai Block Out @153 uPD553C 1981, Epoch Galaxy II @160 uPD553C 1982, Tomy Pac Man (TN-08) + *167 uPD553C 1982, Sony SL models (betamax) (have dump) @170 uPD553C 1982, Bandai Crazy Climber @192 uPD553C 1982, Tomy Scramble (TN-10) @202 uPD553C 1982, Epoch Astro Command @206 uPD553C 1982, Epoch Dracula + *207 uPD553C 1982, Sony SL-J30 (tape/cd deck) @209 uPD553C 1982, Tomy Caveman (TN-12) @258 uPD553C 1984, Tomy Alien Chase (TN-16) *296 uPD553C 1984, Epoch Computer Beam Gun Professional @@ -76,13 +78,16 @@ TODO: #include "screen.h" #include "speaker.h" -// internal artwork +// internal artwork (complete) #include "efball.lh" #include "grobot9.lh" // clickable #include "mcompgin.lh" #include "mvbfree.lh" #include "tactix.lh" // clickable +// internal artwork (bezel overlay) +#include "tmtennis.lh" + //#include "hh_ucom4_test.lh" // common test-layout - no svg artwork(yet), use external artwork @@ -241,10 +246,12 @@ INPUT_CHANGED_MEMBER(hh_ucom4_state::single_interrupt_line) /*************************************************************************** - Minidrivers (subclass, I/O, Inputs, Machine Config) + Minidrivers (subclass, I/O, Inputs, Machine Config, ROM Defs) ***************************************************************************/ +namespace { + /*************************************************************************** Bambino UFO Master-Blaster Station (manufactured in Japan) @@ -267,8 +274,8 @@ INPUT_CHANGED_MEMBER(hh_ucom4_state::single_interrupt_line) class ufombs_state : public hh_ucom4_state { public: - ufombs_state(const machine_config &mconfig, device_type type, const char *tag) - : hh_ucom4_state(mconfig, type, tag) + ufombs_state(const machine_config &mconfig, device_type type, const char *tag) : + hh_ucom4_state(mconfig, type, tag) { } void prepare_display(); @@ -347,7 +354,8 @@ void ufombs_state::ufombs(machine_config &config) screen.set_svg_region("svg"); screen.set_refresh_hz(50); screen.set_size(243, 1080); - screen.set_visarea(0, 243-1, 0, 1080-1); + screen.set_visarea_full(); + TIMER(config, "display_decay").configure_periodic(FUNC(hh_ucom4_state::display_decay_tick), attotime::from_msec(1)); /* sound hardware */ @@ -357,6 +365,16 @@ void ufombs_state::ufombs(machine_config &config) m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } +// roms + +ROM_START( ufombs ) + ROM_REGION( 0x0400, "maincpu", 0 ) + ROM_LOAD( "d552c-017", 0x0000, 0x0400, CRC(0e208cb3) SHA1(57db6566916c94325e2b67ccb94b4ea3b233487d) ) + + ROM_REGION( 222395, "svg", 0) + ROM_LOAD( "ufombs.svg", 0, 222395, CRC(ae9fb93f) SHA1(165ea78eee93c503dbd277a56c41e3c63c534e38) ) +ROM_END + @@ -380,8 +398,8 @@ void ufombs_state::ufombs(machine_config &config) class ssfball_state : public hh_ucom4_state { public: - ssfball_state(const machine_config &mconfig, device_type type, const char *tag) - : hh_ucom4_state(mconfig, type, tag) + ssfball_state(const machine_config &mconfig, device_type type, const char *tag) : + hh_ucom4_state(mconfig, type, tag) { } void prepare_display(); @@ -494,7 +512,8 @@ void ssfball_state::ssfball(machine_config &config) screen.set_svg_region("svg"); screen.set_refresh_hz(50); screen.set_size(1920, 482); - screen.set_visarea(0, 1920-1, 0, 482-1); + screen.set_visarea_full(); + TIMER(config, "display_decay").configure_periodic(FUNC(hh_ucom4_state::display_decay_tick), attotime::from_msec(1)); /* sound hardware */ @@ -504,6 +523,24 @@ void ssfball_state::ssfball(machine_config &config) m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } +// roms + +ROM_START( ssfball ) + ROM_REGION( 0x0800, "maincpu", 0 ) + ROM_LOAD( "d553c-031", 0x0000, 0x0800, CRC(ff5d91d0) SHA1(9b2c0ae45f1e3535108ee5fef8a9010e00c8d5c3) ) + + ROM_REGION( 331352, "svg", 0) + ROM_LOAD( "ssfball.svg", 0, 331352, CRC(10cffb85) SHA1(c875f73a323d976088ffa1bc19f7bc865d4aac62) ) +ROM_END + +ROM_START( bmcfball ) + ROM_REGION( 0x0800, "maincpu", 0 ) + ROM_LOAD( "d553c-031", 0x0000, 0x0800, CRC(ff5d91d0) SHA1(9b2c0ae45f1e3535108ee5fef8a9010e00c8d5c3) ) + + ROM_REGION( 331352, "svg", 0) + ROM_LOAD( "bmcfball.svg", 0, 331352, CRC(43fbed1e) SHA1(28160e14b0879cd4dd9dab770c52c98f316ab653) ) +ROM_END + @@ -524,8 +561,8 @@ void ssfball_state::ssfball(machine_config &config) class bmsoccer_state : public hh_ucom4_state { public: - bmsoccer_state(const machine_config &mconfig, device_type type, const char *tag) - : hh_ucom4_state(mconfig, type, tag) + bmsoccer_state(const machine_config &mconfig, device_type type, const char *tag) : + hh_ucom4_state(mconfig, type, tag) { } void prepare_display(); @@ -622,7 +659,8 @@ void bmsoccer_state::bmsoccer(machine_config &config) screen.set_svg_region("svg"); screen.set_refresh_hz(50); screen.set_size(271, 1080); - screen.set_visarea(0, 271-1, 0, 1080-1); + screen.set_visarea_full(); + TIMER(config, "display_decay").configure_periodic(FUNC(hh_ucom4_state::display_decay_tick), attotime::from_msec(1)); /* sound hardware */ @@ -631,6 +669,16 @@ void bmsoccer_state::bmsoccer(machine_config &config) m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } +// roms + +ROM_START( bmsoccer ) + ROM_REGION( 0x0400, "maincpu", 0 ) + ROM_LOAD( "d552c-043", 0x0000, 0x0400, CRC(10c2a4ea) SHA1(6ebca7d406e22ff7a8cd529579b55a700da487b4) ) + + ROM_REGION( 273796, "svg", 0) + ROM_LOAD( "bmsoccer.svg", 0, 273796, CRC(4c88d9f8) SHA1(b4b82f26a09f54cd0b6a9d1c1a46796fbfcb578a) ) +ROM_END + @@ -647,8 +695,8 @@ void bmsoccer_state::bmsoccer(machine_config &config) class bmsafari_state : public hh_ucom4_state { public: - bmsafari_state(const machine_config &mconfig, device_type type, const char *tag) - : hh_ucom4_state(mconfig, type, tag) + bmsafari_state(const machine_config &mconfig, device_type type, const char *tag) : + hh_ucom4_state(mconfig, type, tag) { } void prepare_display(); @@ -729,7 +777,8 @@ void bmsafari_state::bmsafari(machine_config &config) screen.set_svg_region("svg"); screen.set_refresh_hz(50); screen.set_size(248, 1080); - screen.set_visarea(0, 248-1, 0, 1080-1); + screen.set_visarea_full(); + TIMER(config, "display_decay").configure_periodic(FUNC(hh_ucom4_state::display_decay_tick), attotime::from_msec(1)); /* sound hardware */ @@ -738,6 +787,16 @@ void bmsafari_state::bmsafari(machine_config &config) m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } +// roms + +ROM_START( bmsafari ) + ROM_REGION( 0x0400, "maincpu", 0 ) + ROM_LOAD( "d552c-049", 0x0000, 0x0400, CRC(82fa3cbe) SHA1(019e7ec784e977eba09997fc46af253054fb222c) ) + + ROM_REGION( 275386, "svg", 0) + ROM_LOAD( "bmsafari.svg", 0, 275386, CRC(c24badbc) SHA1(b191f34155d6d4e834e7c6fe715d4bb76198ad72) ) +ROM_END + @@ -757,8 +816,8 @@ void bmsafari_state::bmsafari(machine_config &config) class splasfgt_state : public hh_ucom4_state { public: - splasfgt_state(const machine_config &mconfig, device_type type, const char *tag) - : hh_ucom4_state(mconfig, type, tag) + splasfgt_state(const machine_config &mconfig, device_type type, const char *tag) : + hh_ucom4_state(mconfig, type, tag) { } void prepare_display(); @@ -880,7 +939,8 @@ void splasfgt_state::splasfgt(machine_config &config) screen.set_svg_region("svg"); screen.set_refresh_hz(50); screen.set_size(1920, 476); - screen.set_visarea(0, 1920-1, 0, 476-1); + screen.set_visarea_full(); + TIMER(config, "display_decay").configure_periodic(FUNC(hh_ucom4_state::display_decay_tick), attotime::from_msec(1)); /* sound hardware */ @@ -890,6 +950,16 @@ void splasfgt_state::splasfgt(machine_config &config) m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } +// roms + +ROM_START( splasfgt ) + ROM_REGION( 0x0800, "maincpu", 0 ) + ROM_LOAD( "d553c-055", 0x0000, 0x0800, CRC(eb471fbd) SHA1(f06cfe567bf6f9ed4dcdc88acdcfad50cd370a02) ) + + ROM_REGION( 246609, "svg", 0) + ROM_LOAD( "splasfgt.svg", 0, 246609, CRC(365fae43) SHA1(344c120c2efa92ada9171047affac801a06cf303) ) +ROM_END + @@ -910,8 +980,8 @@ void splasfgt_state::splasfgt(machine_config &config) class bcclimbr_state : public hh_ucom4_state { public: - bcclimbr_state(const machine_config &mconfig, device_type type, const char *tag) - : hh_ucom4_state(mconfig, type, tag) + bcclimbr_state(const machine_config &mconfig, device_type type, const char *tag) : + hh_ucom4_state(mconfig, type, tag) { } void prepare_display(); @@ -984,7 +1054,8 @@ void bcclimbr_state::bcclimbr(machine_config &config) screen.set_svg_region("svg"); screen.set_refresh_hz(50); screen.set_size(310, 1080); - screen.set_visarea(0, 310-1, 0, 1080-1); + screen.set_visarea_full(); + TIMER(config, "display_decay").configure_periodic(FUNC(hh_ucom4_state::display_decay_tick), attotime::from_msec(1)); /* sound hardware */ @@ -993,6 +1064,16 @@ void bcclimbr_state::bcclimbr(machine_config &config) m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } +// roms + +ROM_START( bcclimbr ) + ROM_REGION( 0x0800, "maincpu", 0 ) + ROM_LOAD( "d553c-170", 0x0000, 0x0800, CRC(fc2eabdb) SHA1(0f5cc854be7fdf105d9bd2114659d40c65f9d782) ) + + ROM_REGION( 219971, "svg", 0) + ROM_LOAD( "bcclimbr.svg", 0, 219971, CRC(9c9102f4) SHA1(6a7e02fd1467a26c734b01724e23cef9e4917805) ) +ROM_END + @@ -1015,8 +1096,8 @@ void bcclimbr_state::bcclimbr(machine_config &config) class tactix_state : public hh_ucom4_state { public: - tactix_state(const machine_config &mconfig, device_type type, const char *tag) - : hh_ucom4_state(mconfig, type, tag) + tactix_state(const machine_config &mconfig, device_type type, const char *tag) : + hh_ucom4_state(mconfig, type, tag) { } DECLARE_WRITE8_MEMBER(leds_w); @@ -1108,6 +1189,13 @@ void tactix_state::tactix(machine_config &config) m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } +// roms + +ROM_START( tactix ) + ROM_REGION( 0x0800, "maincpu", 0 ) + ROM_LOAD( "d557lc-512", 0x0000, 0x0800, CRC(1df738cb) SHA1(15a5de28a3c03e6894d29c56b5b424983569ccf2) ) +ROM_END + @@ -1128,8 +1216,8 @@ void tactix_state::tactix(machine_config &config) class invspace_state : public hh_ucom4_state { public: - invspace_state(const machine_config &mconfig, device_type type, const char *tag) - : hh_ucom4_state(mconfig, type, tag) + invspace_state(const machine_config &mconfig, device_type type, const char *tag) : + hh_ucom4_state(mconfig, type, tag) { } void prepare_display(); @@ -1201,7 +1289,8 @@ void invspace_state::invspace(machine_config &config) screen.set_svg_region("svg"); screen.set_refresh_hz(50); screen.set_size(289, 1080); - screen.set_visarea(0, 289-1, 0, 1080-1); + screen.set_visarea_full(); + TIMER(config, "display_decay").configure_periodic(FUNC(hh_ucom4_state::display_decay_tick), attotime::from_msec(1)); /* sound hardware */ @@ -1210,6 +1299,16 @@ void invspace_state::invspace(machine_config &config) m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } +// roms + +ROM_START( invspace ) + ROM_REGION( 0x0400, "maincpu", 0 ) + ROM_LOAD( "d552c-054", 0x0000, 0x0400, CRC(913d9c13) SHA1(f20edb5458e54d2f6d4e45e5d59efd87e05a6f3f) ) + + ROM_REGION( 110899, "svg", 0) + ROM_LOAD( "invspace.svg", 0, 110899, CRC(ae794333) SHA1(3552215389f02e4ef1d608f7dfc84f0499a78ee2) ) +ROM_END + @@ -1230,8 +1329,8 @@ void invspace_state::invspace(machine_config &config) class efball_state : public hh_ucom4_state { public: - efball_state(const machine_config &mconfig, device_type type, const char *tag) - : hh_ucom4_state(mconfig, type, tag) + efball_state(const machine_config &mconfig, device_type type, const char *tag) : + hh_ucom4_state(mconfig, type, tag) { } void prepare_display(); @@ -1321,6 +1420,13 @@ void efball_state::efball(machine_config &config) m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } +// roms + +ROM_START( efball ) + ROM_REGION( 0x0800, "maincpu", 0 ) + ROM_LOAD( "d553c-080", 0x0000, 0x0800, CRC(54c1027f) SHA1(6cc98074dae9361fa8c0ed6501b6a57ad325ccbd) ) +ROM_END + @@ -1343,8 +1449,8 @@ void efball_state::efball(machine_config &config) class galaxy2_state : public hh_ucom4_state { public: - galaxy2_state(const machine_config &mconfig, device_type type, const char *tag) - : hh_ucom4_state(mconfig, type, tag) + galaxy2_state(const machine_config &mconfig, device_type type, const char *tag) : + hh_ucom4_state(mconfig, type, tag) { } void prepare_display(); @@ -1417,7 +1523,8 @@ void galaxy2_state::galaxy2(machine_config &config) screen.set_svg_region("svg"); screen.set_refresh_hz(50); screen.set_size(304, 1080); - screen.set_visarea(0, 304-1, 0, 1080-1); + screen.set_visarea_full(); + TIMER(config, "display_decay").configure_periodic(FUNC(hh_ucom4_state::display_decay_tick), attotime::from_msec(1)); /* sound hardware */ @@ -1431,10 +1538,29 @@ void galaxy2_state::galaxy2b(machine_config &config) galaxy2(config); /* video hardware */ - subdevice<screen_device>("screen")->set_size(306, 1080); - subdevice<screen_device>("screen")->set_visarea(0, 306-1, 0, 1080-1); + screen_device *screen = subdevice<screen_device>("screen"); + screen->set_size(306, 1080); + screen->set_visarea_full(); } +// roms + +ROM_START( galaxy2 ) + ROM_REGION( 0x0800, "maincpu", 0 ) + ROM_LOAD( "d553c-153.s01", 0x0000, 0x0800, CRC(70d552b3) SHA1(72d50647701cb4bf85ea947a149a317aaec0f52c) ) + + ROM_REGION( 325057, "svg", 0) + ROM_LOAD( "galaxy2d.svg", 0, 325057, CRC(b2d27a0e) SHA1(502ec22c324903ffe8ff235b9a3b8898dce17a64) ) +ROM_END + +ROM_START( galaxy2b ) + ROM_REGION( 0x0800, "maincpu", 0 ) + ROM_LOAD( "d553c-153.s01", 0x0000, 0x0800, CRC(70d552b3) SHA1(72d50647701cb4bf85ea947a149a317aaec0f52c) ) + + ROM_REGION( 266377, "svg", 0) + ROM_LOAD( "galaxy2b.svg", 0, 266377, CRC(8633cebb) SHA1(6c41f5e918e1522eb55ef24270900a1b2477722b) ) +ROM_END + @@ -1456,8 +1582,8 @@ void galaxy2_state::galaxy2b(machine_config &config) class astrocmd_state : public hh_ucom4_state { public: - astrocmd_state(const machine_config &mconfig, device_type type, const char *tag) - : hh_ucom4_state(mconfig, type, tag) + astrocmd_state(const machine_config &mconfig, device_type type, const char *tag) : + hh_ucom4_state(mconfig, type, tag) { } void prepare_display(); @@ -1536,7 +1662,8 @@ void astrocmd_state::astrocmd(machine_config &config) screen.set_svg_region("svg"); screen.set_refresh_hz(50); screen.set_size(1920, 525); - screen.set_visarea(0, 1920-1, 0, 525-1); + screen.set_visarea_full(); + TIMER(config, "display_decay").configure_periodic(FUNC(hh_ucom4_state::display_decay_tick), attotime::from_msec(1)); /* sound hardware */ @@ -1545,6 +1672,16 @@ void astrocmd_state::astrocmd(machine_config &config) m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } +// roms + +ROM_START( astrocmd ) + ROM_REGION( 0x0800, "maincpu", 0 ) + ROM_LOAD( "d553c-202.s01", 0x0000, 0x0800, CRC(b4b34883) SHA1(6246d561c2df1f2124575d2ca671ef85b1819edd) ) + + ROM_REGION( 335362, "svg", 0) + ROM_LOAD( "astrocmd.svg", 0, 335362, CRC(fe2cd30f) SHA1(898a3d9afc5dca6c63ae28aed2c8530716ad1c45) ) +ROM_END + @@ -1566,8 +1703,8 @@ void astrocmd_state::astrocmd(machine_config &config) class edracula_state : public hh_ucom4_state { public: - edracula_state(const machine_config &mconfig, device_type type, const char *tag) - : hh_ucom4_state(mconfig, type, tag) + edracula_state(const machine_config &mconfig, device_type type, const char *tag) : + hh_ucom4_state(mconfig, type, tag) { } DECLARE_WRITE8_MEMBER(grid_w); @@ -1632,7 +1769,8 @@ void edracula_state::edracula(machine_config &config) screen.set_svg_region("svg"); screen.set_refresh_hz(50); screen.set_size(1920, 526); - screen.set_visarea(0, 1920-1, 0, 526-1); + screen.set_visarea_full(); + TIMER(config, "display_decay").configure_periodic(FUNC(hh_ucom4_state::display_decay_tick), attotime::from_msec(1)); /* sound hardware */ @@ -1641,6 +1779,16 @@ void edracula_state::edracula(machine_config &config) m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } +// roms + +ROM_START( edracula ) + ROM_REGION( 0x0800, "maincpu", 0 ) + ROM_LOAD( "d553c-206.s01", 0x0000, 0x0800, CRC(b524857b) SHA1(c1c89ed5dd4bb1e6e98462dc8fa5af2aa48d8ede) ) + + ROM_REGION( 794532, "svg", 0) + ROM_LOAD( "edracula.svg", 0, 794532, CRC(d20e018c) SHA1(7f70f1d373c034ec8c93e27b7e3371578ddaf61b) ) +ROM_END + @@ -1656,8 +1804,8 @@ void edracula_state::edracula(machine_config &config) class mcompgin_state : public hh_ucom4_state { public: - mcompgin_state(const machine_config &mconfig, device_type type, const char *tag) - : hh_ucom4_state(mconfig, type, tag), + mcompgin_state(const machine_config &mconfig, device_type type, const char *tag) : + hh_ucom4_state(mconfig, type, tag), m_lcd(*this, "lcd") { } @@ -1681,9 +1829,9 @@ WRITE8_MEMBER(mcompgin_state::lcd_w) // E0: HLCD0530 _CS // E1: HLCD0530 clock // E2: HLCD0530 data in - m_lcd->write_cs(data & 1); - m_lcd->write_data(data >> 2 & 1); - m_lcd->write_clock(data >> 1 & 1); + m_lcd->cs_w(data & 1); + m_lcd->data_w(data >> 2 & 1); + m_lcd->clock_w(data >> 1 & 1); } // config @@ -1718,13 +1866,20 @@ void mcompgin_state::mcompgin(machine_config &config) /* no sound! */ } +// roms + +ROM_START( mcompgin ) + ROM_REGION( 0x0800, "maincpu", 0 ) + ROM_LOAD( "d650c-060", 0x0000, 0x0800, CRC(985e6da6) SHA1(ea4102a10a5741f06297c5426156e4b2f0d85a68) ) +ROM_END + /*************************************************************************** - Mego Mini-Vid Break Free (manufactured in Japan) + Mego Mini-Vid: Break Free (manufactured in Japan) * PCB label Mego 79 rev F * NEC uCOM-43 MCU, label D553C 049 * cyan VFD display Futaba DM-4.5 91 @@ -1734,8 +1889,8 @@ void mcompgin_state::mcompgin(machine_config &config) class mvbfree_state : public hh_ucom4_state { public: - mvbfree_state(const machine_config &mconfig, device_type type, const char *tag) - : hh_ucom4_state(mconfig, type, tag) + mvbfree_state(const machine_config &mconfig, device_type type, const char *tag) : + hh_ucom4_state(mconfig, type, tag) { } void prepare_display(); @@ -1821,6 +1976,13 @@ void mvbfree_state::mvbfree(machine_config &config) m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } +// roms + +ROM_START( mvbfree ) + ROM_REGION( 0x0800, "maincpu", 0 ) + ROM_LOAD( "d553c-049", 0x0000, 0x0800, CRC(d64a8399) SHA1(97887e486fa29b1fc4a5a40cacf3c960f67aacbf) ) +ROM_END + @@ -1845,8 +2007,8 @@ void mvbfree_state::mvbfree(machine_config &config) class grobot9_state : public hh_ucom4_state { public: - grobot9_state(const machine_config &mconfig, device_type type, const char *tag) - : hh_ucom4_state(mconfig, type, tag) + grobot9_state(const machine_config &mconfig, device_type type, const char *tag) : + hh_ucom4_state(mconfig, type, tag) { } DECLARE_WRITE8_MEMBER(lamps_w); @@ -1936,6 +2098,13 @@ void grobot9_state::grobot9(machine_config &config) m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } +// roms + +ROM_START( grobot9 ) + ROM_REGION( 0x0800, "maincpu", 0 ) + ROM_LOAD( "ttgr-511", 0x0000, 0x0800, CRC(1f25b2bb) SHA1(55ae7e23f6dd46cc6e1a65839327726678410c3a) ) +ROM_END + @@ -1956,8 +2125,8 @@ void grobot9_state::grobot9(machine_config &config) class tccombat_state : public hh_ucom4_state { public: - tccombat_state(const machine_config &mconfig, device_type type, const char *tag) - : hh_ucom4_state(mconfig, type, tag) + tccombat_state(const machine_config &mconfig, device_type type, const char *tag) : + hh_ucom4_state(mconfig, type, tag) { } void prepare_display(); @@ -2025,7 +2194,8 @@ void tccombat_state::tccombat(machine_config &config) screen.set_svg_region("svg"); screen.set_refresh_hz(50); screen.set_size(300, 1080); - screen.set_visarea(0, 300-1, 0, 1080-1); + screen.set_visarea_full(); + TIMER(config, "display_decay").configure_periodic(FUNC(hh_ucom4_state::display_decay_tick), attotime::from_msec(1)); /* sound hardware */ @@ -2034,6 +2204,16 @@ void tccombat_state::tccombat(machine_config &config) m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } +// roms + +ROM_START( tccombat ) + ROM_REGION( 0x0400, "maincpu", 0 ) + ROM_LOAD( "d552c-042", 0x0000, 0x0400, CRC(d7b5cfeb) SHA1(a267be8e43b7740758eb0881b655b1cc8aec43da) ) + + ROM_REGION( 210960, "svg", 0) + ROM_LOAD( "tccombat.svg", 0, 210960, CRC(03e9eba6) SHA1(d558d3063da42dc7cc02b769bca06a3732418837) ) +ROM_END + @@ -2056,8 +2236,8 @@ void tccombat_state::tccombat(machine_config &config) class tmtennis_state : public hh_ucom4_state { public: - tmtennis_state(const machine_config &mconfig, device_type type, const char *tag) - : hh_ucom4_state(mconfig, type, tag) + tmtennis_state(const machine_config &mconfig, device_type type, const char *tag) : + hh_ucom4_state(mconfig, type, tag) { } DECLARE_WRITE8_MEMBER(grid_w); @@ -2066,15 +2246,29 @@ public: DECLARE_READ8_MEMBER(input_r); void set_clock(); - DECLARE_INPUT_CHANGED_MEMBER(difficulty_switch); + DECLARE_INPUT_CHANGED_MEMBER(difficulty_switch) { set_clock(); } void tmtennis(machine_config &config); protected: virtual void machine_reset() override; }; +void tmtennis_state::machine_reset() +{ + hh_ucom4_state::machine_reset(); + set_clock(); +} + // handlers +void tmtennis_state::set_clock() +{ + // MCU clock is from an LC circuit oscillating by default at ~360kHz, + // but on PRO1, the difficulty switch puts a capacitor across the LC circuit + // to slow it down to ~260kHz. + m_maincpu->set_unscaled_clock((m_inp_matrix[1]->read() & 0x100) ? 260000 : 360000); +} + WRITE8_MEMBER(tmtennis_state::grid_w) { // G,H,I: vfd grid @@ -2145,25 +2339,6 @@ static INPUT_PORTS_START( tmtennis ) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_D) PORT_NAME("P2 Button 6") INPUT_PORTS_END -INPUT_CHANGED_MEMBER(tmtennis_state::difficulty_switch) -{ - set_clock(); -} - -void tmtennis_state::set_clock() -{ - // MCU clock is from an LC circuit oscillating by default at ~360kHz, - // but on PRO1, the difficulty switch puts a capacitor across the LC circuit - // to slow it down to ~260kHz. - m_maincpu->set_unscaled_clock((m_inp_matrix[1]->read() & 0x100) ? 260000 : 360000); -} - -void tmtennis_state::machine_reset() -{ - hh_ucom4_state::machine_reset(); - set_clock(); -} - void tmtennis_state::tmtennis(machine_config &config) { /* basic machine hardware */ @@ -2183,8 +2358,10 @@ void tmtennis_state::tmtennis(machine_config &config) screen.set_svg_region("svg"); screen.set_refresh_hz(50); screen.set_size(1920, 417); - screen.set_visarea(0, 1920-1, 0, 417-1); + screen.set_visarea_full(); + TIMER(config, "display_decay").configure_periodic(FUNC(hh_ucom4_state::display_decay_tick), attotime::from_msec(1)); + config.set_default_layout(layout_tmtennis); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -2192,6 +2369,16 @@ void tmtennis_state::tmtennis(machine_config &config) m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } +// roms + +ROM_START( tmtennis ) + ROM_REGION( 0x0400, "maincpu", 0 ) + ROM_LOAD( "d552c-048", 0x0000, 0x0400, CRC(78702003) SHA1(4d427d4dbeed901770c682338867f58c7b54eee3) ) + + ROM_REGION( 204490, "svg", 0) + ROM_LOAD( "tmtennis.svg", 0, 204490, CRC(ed0086e9) SHA1(26a5b2f0a9cd70401187146e1495aee80020658b) ) +ROM_END + @@ -2218,8 +2405,8 @@ void tmtennis_state::tmtennis(machine_config &config) class tmpacman_state : public hh_ucom4_state { public: - tmpacman_state(const machine_config &mconfig, device_type type, const char *tag) - : hh_ucom4_state(mconfig, type, tag) + tmpacman_state(const machine_config &mconfig, device_type type, const char *tag) : + hh_ucom4_state(mconfig, type, tag) { } void prepare_display(); @@ -2292,7 +2479,8 @@ void tmpacman_state::tmpacman(machine_config &config) screen.set_svg_region("svg"); screen.set_refresh_hz(50); screen.set_size(1920, 508); - screen.set_visarea(0, 1920-1, 0, 508-1); + screen.set_visarea_full(); + TIMER(config, "display_decay").configure_periodic(FUNC(hh_ucom4_state::display_decay_tick), attotime::from_msec(1)); /* sound hardware */ @@ -2301,6 +2489,16 @@ void tmpacman_state::tmpacman(machine_config &config) m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } +// roms + +ROM_START( tmpacman ) + ROM_REGION( 0x0800, "maincpu", 0 ) + ROM_LOAD( "d553c-160", 0x0000, 0x0800, CRC(b21a8af7) SHA1(e3122be1873ce76a4067386bf250802776f0c2f9) ) + + ROM_REGION( 230216, "svg", 0) + ROM_LOAD( "tmpacman.svg", 0, 230216, CRC(2ab5c0f1) SHA1(b2b6482b03c28515dc76fd3d6034c8b7e6bf6efc) ) +ROM_END + @@ -2323,8 +2521,8 @@ void tmpacman_state::tmpacman(machine_config &config) class tmscramb_state : public hh_ucom4_state { public: - tmscramb_state(const machine_config &mconfig, device_type type, const char *tag) - : hh_ucom4_state(mconfig, type, tag) + tmscramb_state(const machine_config &mconfig, device_type type, const char *tag) : + hh_ucom4_state(mconfig, type, tag) { } void prepare_display(); @@ -2395,7 +2593,8 @@ void tmscramb_state::tmscramb(machine_config &config) screen.set_svg_region("svg"); screen.set_refresh_hz(50); screen.set_size(1920, 556); - screen.set_visarea(0, 1920-1, 0, 556-1); + screen.set_visarea_full(); + TIMER(config, "display_decay").configure_periodic(FUNC(hh_ucom4_state::display_decay_tick), attotime::from_msec(1)); /* sound hardware */ @@ -2404,6 +2603,16 @@ void tmscramb_state::tmscramb(machine_config &config) m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } +// roms + +ROM_START( tmscramb ) + ROM_REGION( 0x0800, "maincpu", 0 ) + ROM_LOAD( "d553c-192", 0x0000, 0x0800, CRC(00fcc501) SHA1(a7771e934bf8268c83f38c7ec0acc668836e0939) ) + + ROM_REGION( 235601, "svg", 0) + ROM_LOAD( "tmscramb.svg", 0, 235601, CRC(9e76219a) SHA1(275273b98d378c9313dd73a3b86cc661a824b7af) ) +ROM_END + @@ -2425,8 +2634,8 @@ void tmscramb_state::tmscramb(machine_config &config) class tcaveman_state : public hh_ucom4_state { public: - tcaveman_state(const machine_config &mconfig, device_type type, const char *tag) - : hh_ucom4_state(mconfig, type, tag) + tcaveman_state(const machine_config &mconfig, device_type type, const char *tag) : + hh_ucom4_state(mconfig, type, tag) { } void prepare_display(); @@ -2494,7 +2703,8 @@ void tcaveman_state::tcaveman(machine_config &config) screen.set_svg_region("svg"); screen.set_refresh_hz(50); screen.set_size(1920, 559); - screen.set_visarea(0, 1920-1, 0, 559-1); + screen.set_visarea_full(); + TIMER(config, "display_decay").configure_periodic(FUNC(hh_ucom4_state::display_decay_tick), attotime::from_msec(1)); /* sound hardware */ @@ -2503,6 +2713,16 @@ void tcaveman_state::tcaveman(machine_config &config) m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } +// roms + +ROM_START( tcaveman ) + ROM_REGION( 0x0800, "maincpu", 0 ) + ROM_LOAD( "d553c-209", 0x0000, 0x0800, CRC(d230d4b7) SHA1(2fb12b60410f5567c5e3afab7b8f5aa855d283be) ) + + ROM_REGION( 306952, "svg", 0) + ROM_LOAD( "tcaveman.svg", 0, 306952, CRC(a0588b14) SHA1(f67edf579963fc19bc7f9d268329cbc0230712d8) ) +ROM_END + @@ -2525,8 +2745,8 @@ void tcaveman_state::tcaveman(machine_config &config) class alnchase_state : public hh_ucom4_state { public: - alnchase_state(const machine_config &mconfig, device_type type, const char *tag) - : hh_ucom4_state(mconfig, type, tag) + alnchase_state(const machine_config &mconfig, device_type type, const char *tag) : + hh_ucom4_state(mconfig, type, tag) { } DECLARE_WRITE8_MEMBER(output_w); @@ -2627,7 +2847,8 @@ void alnchase_state::alnchase(machine_config &config) screen.set_svg_region("svg"); screen.set_refresh_hz(50); screen.set_size(365, 1080); - screen.set_visarea(0, 365-1, 0, 1080-1); + screen.set_visarea_full(); + TIMER(config, "display_decay").configure_periodic(FUNC(hh_ucom4_state::display_decay_tick), attotime::from_msec(1)); /* sound hardware */ @@ -2636,196 +2857,7 @@ void alnchase_state::alnchase(machine_config &config) m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); } - - - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( ufombs ) - ROM_REGION( 0x0400, "maincpu", 0 ) - ROM_LOAD( "d552c-017", 0x0000, 0x0400, CRC(0e208cb3) SHA1(57db6566916c94325e2b67ccb94b4ea3b233487d) ) - - ROM_REGION( 222395, "svg", 0) - ROM_LOAD( "ufombs.svg", 0, 222395, CRC(ae9fb93f) SHA1(165ea78eee93c503dbd277a56c41e3c63c534e38) ) -ROM_END - - -ROM_START( ssfball ) - ROM_REGION( 0x0800, "maincpu", 0 ) - ROM_LOAD( "d553c-031", 0x0000, 0x0800, CRC(ff5d91d0) SHA1(9b2c0ae45f1e3535108ee5fef8a9010e00c8d5c3) ) - - ROM_REGION( 331352, "svg", 0) - ROM_LOAD( "ssfball.svg", 0, 331352, CRC(10cffb85) SHA1(c875f73a323d976088ffa1bc19f7bc865d4aac62) ) -ROM_END - -ROM_START( bmcfball ) - ROM_REGION( 0x0800, "maincpu", 0 ) - ROM_LOAD( "d553c-031", 0x0000, 0x0800, CRC(ff5d91d0) SHA1(9b2c0ae45f1e3535108ee5fef8a9010e00c8d5c3) ) - - ROM_REGION( 331352, "svg", 0) - ROM_LOAD( "bmcfball.svg", 0, 331352, CRC(43fbed1e) SHA1(28160e14b0879cd4dd9dab770c52c98f316ab653) ) -ROM_END - - -ROM_START( bmsoccer ) - ROM_REGION( 0x0400, "maincpu", 0 ) - ROM_LOAD( "d552c-043", 0x0000, 0x0400, CRC(10c2a4ea) SHA1(6ebca7d406e22ff7a8cd529579b55a700da487b4) ) - - ROM_REGION( 273796, "svg", 0) - ROM_LOAD( "bmsoccer.svg", 0, 273796, CRC(4c88d9f8) SHA1(b4b82f26a09f54cd0b6a9d1c1a46796fbfcb578a) ) -ROM_END - - -ROM_START( bmsafari ) - ROM_REGION( 0x0400, "maincpu", 0 ) - ROM_LOAD( "d552c-049", 0x0000, 0x0400, CRC(82fa3cbe) SHA1(019e7ec784e977eba09997fc46af253054fb222c) ) - - ROM_REGION( 275386, "svg", 0) - ROM_LOAD( "bmsafari.svg", 0, 275386, CRC(c24badbc) SHA1(b191f34155d6d4e834e7c6fe715d4bb76198ad72) ) -ROM_END - - -ROM_START( splasfgt ) - ROM_REGION( 0x0800, "maincpu", 0 ) - ROM_LOAD( "d553c-055", 0x0000, 0x0800, CRC(eb471fbd) SHA1(f06cfe567bf6f9ed4dcdc88acdcfad50cd370a02) ) - - ROM_REGION( 246609, "svg", 0) - ROM_LOAD( "splasfgt.svg", 0, 246609, CRC(365fae43) SHA1(344c120c2efa92ada9171047affac801a06cf303) ) -ROM_END - - -ROM_START( bcclimbr ) - ROM_REGION( 0x0800, "maincpu", 0 ) - ROM_LOAD( "d553c-170", 0x0000, 0x0800, CRC(fc2eabdb) SHA1(0f5cc854be7fdf105d9bd2114659d40c65f9d782) ) - - ROM_REGION( 219971, "svg", 0) - ROM_LOAD( "bcclimbr.svg", 0, 219971, CRC(9c9102f4) SHA1(6a7e02fd1467a26c734b01724e23cef9e4917805) ) -ROM_END - - -ROM_START( tactix ) - ROM_REGION( 0x0800, "maincpu", 0 ) - ROM_LOAD( "d557lc-512", 0x0000, 0x0800, CRC(1df738cb) SHA1(15a5de28a3c03e6894d29c56b5b424983569ccf2) ) -ROM_END - - -ROM_START( invspace ) - ROM_REGION( 0x0400, "maincpu", 0 ) - ROM_LOAD( "d552c-054", 0x0000, 0x0400, CRC(913d9c13) SHA1(f20edb5458e54d2f6d4e45e5d59efd87e05a6f3f) ) - - ROM_REGION( 110899, "svg", 0) - ROM_LOAD( "invspace.svg", 0, 110899, CRC(ae794333) SHA1(3552215389f02e4ef1d608f7dfc84f0499a78ee2) ) -ROM_END - - -ROM_START( efball ) - ROM_REGION( 0x0800, "maincpu", 0 ) - ROM_LOAD( "d553c-080", 0x0000, 0x0800, CRC(54c1027f) SHA1(6cc98074dae9361fa8c0ed6501b6a57ad325ccbd) ) -ROM_END - - -ROM_START( galaxy2 ) - ROM_REGION( 0x0800, "maincpu", 0 ) - ROM_LOAD( "d553c-153.s01", 0x0000, 0x0800, CRC(70d552b3) SHA1(72d50647701cb4bf85ea947a149a317aaec0f52c) ) - - ROM_REGION( 325057, "svg", 0) - ROM_LOAD( "galaxy2d.svg", 0, 325057, CRC(b2d27a0e) SHA1(502ec22c324903ffe8ff235b9a3b8898dce17a64) ) -ROM_END - -ROM_START( galaxy2b ) - ROM_REGION( 0x0800, "maincpu", 0 ) - ROM_LOAD( "d553c-153.s01", 0x0000, 0x0800, CRC(70d552b3) SHA1(72d50647701cb4bf85ea947a149a317aaec0f52c) ) - - ROM_REGION( 266377, "svg", 0) - ROM_LOAD( "galaxy2b.svg", 0, 266377, CRC(8633cebb) SHA1(6c41f5e918e1522eb55ef24270900a1b2477722b) ) -ROM_END - - -ROM_START( astrocmd ) - ROM_REGION( 0x0800, "maincpu", 0 ) - ROM_LOAD( "d553c-202.s01", 0x0000, 0x0800, CRC(b4b34883) SHA1(6246d561c2df1f2124575d2ca671ef85b1819edd) ) - - ROM_REGION( 335362, "svg", 0) - ROM_LOAD( "astrocmd.svg", 0, 335362, CRC(fe2cd30f) SHA1(898a3d9afc5dca6c63ae28aed2c8530716ad1c45) ) -ROM_END - - -ROM_START( edracula ) - ROM_REGION( 0x0800, "maincpu", 0 ) - ROM_LOAD( "d553c-206.s01", 0x0000, 0x0800, CRC(b524857b) SHA1(c1c89ed5dd4bb1e6e98462dc8fa5af2aa48d8ede) ) - - ROM_REGION( 794532, "svg", 0) - ROM_LOAD( "edracula.svg", 0, 794532, CRC(d20e018c) SHA1(7f70f1d373c034ec8c93e27b7e3371578ddaf61b) ) -ROM_END - - -ROM_START( mcompgin ) - ROM_REGION( 0x0800, "maincpu", 0 ) - ROM_LOAD( "d650c-060", 0x0000, 0x0800, CRC(985e6da6) SHA1(ea4102a10a5741f06297c5426156e4b2f0d85a68) ) -ROM_END - - -ROM_START( mvbfree ) - ROM_REGION( 0x0800, "maincpu", 0 ) - ROM_LOAD( "d553c-049", 0x0000, 0x0800, CRC(d64a8399) SHA1(97887e486fa29b1fc4a5a40cacf3c960f67aacbf) ) -ROM_END - - -ROM_START( grobot9 ) - ROM_REGION( 0x0800, "maincpu", 0 ) - ROM_LOAD( "ttgr-511", 0x0000, 0x0800, CRC(1f25b2bb) SHA1(55ae7e23f6dd46cc6e1a65839327726678410c3a) ) -ROM_END - - -ROM_START( tccombat ) - ROM_REGION( 0x0400, "maincpu", 0 ) - ROM_LOAD( "d552c-042", 0x0000, 0x0400, CRC(d7b5cfeb) SHA1(a267be8e43b7740758eb0881b655b1cc8aec43da) ) - - ROM_REGION( 210960, "svg", 0) - ROM_LOAD( "tccombat.svg", 0, 210960, CRC(03e9eba6) SHA1(d558d3063da42dc7cc02b769bca06a3732418837) ) -ROM_END - - -ROM_START( tmtennis ) - ROM_REGION( 0x0400, "maincpu", 0 ) - ROM_LOAD( "d552c-048", 0x0000, 0x0400, CRC(78702003) SHA1(4d427d4dbeed901770c682338867f58c7b54eee3) ) - - ROM_REGION( 204490, "svg", 0) - ROM_LOAD( "tmtennis.svg", 0, 204490, CRC(ed0086e9) SHA1(26a5b2f0a9cd70401187146e1495aee80020658b) ) -ROM_END - - -ROM_START( tmpacman ) - ROM_REGION( 0x0800, "maincpu", 0 ) - ROM_LOAD( "d553c-160", 0x0000, 0x0800, CRC(b21a8af7) SHA1(e3122be1873ce76a4067386bf250802776f0c2f9) ) - - ROM_REGION( 230216, "svg", 0) - ROM_LOAD( "tmpacman.svg", 0, 230216, CRC(2ab5c0f1) SHA1(b2b6482b03c28515dc76fd3d6034c8b7e6bf6efc) ) -ROM_END - - -ROM_START( tmscramb ) - ROM_REGION( 0x0800, "maincpu", 0 ) - ROM_LOAD( "d553c-192", 0x0000, 0x0800, CRC(00fcc501) SHA1(a7771e934bf8268c83f38c7ec0acc668836e0939) ) - - ROM_REGION( 235601, "svg", 0) - ROM_LOAD( "tmscramb.svg", 0, 235601, CRC(9e76219a) SHA1(275273b98d378c9313dd73a3b86cc661a824b7af) ) -ROM_END - - -ROM_START( tcaveman ) - ROM_REGION( 0x0800, "maincpu", 0 ) - ROM_LOAD( "d553c-209", 0x0000, 0x0800, CRC(d230d4b7) SHA1(2fb12b60410f5567c5e3afab7b8f5aa855d283be) ) - - ROM_REGION( 306952, "svg", 0) - ROM_LOAD( "tcaveman.svg", 0, 306952, CRC(a0588b14) SHA1(f67edf579963fc19bc7f9d268329cbc0230712d8) ) -ROM_END - +// roms ROM_START( alnchase ) ROM_REGION( 0x0800, "maincpu", 0 ) @@ -2837,37 +2869,45 @@ ROM_END -// YEAR NAME PARENT CMP MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS -CONS( 1979, ufombs, 0, 0, ufombs, ufombs, ufombs_state, empty_init, "Bambino", "UFO Master-Blaster Station", MACHINE_SUPPORTS_SAVE ) -CONS( 1979, ssfball, 0, 0, ssfball, ssfball, ssfball_state, empty_init, "Bambino", "Superstar Football (Bambino)", MACHINE_SUPPORTS_SAVE ) -CONS( 1982, bmcfball, ssfball, 0, ssfball, ssfball, ssfball_state, empty_init, "Bambino", "Classic Football (Bambino)", MACHINE_SUPPORTS_SAVE ) -CONS( 1979, bmsoccer, 0, 0, bmsoccer, bmsoccer, bmsoccer_state, empty_init, "Bambino", "Kick The Goal Soccer", MACHINE_SUPPORTS_SAVE ) -CONS( 1981, bmsafari, 0, 0, bmsafari, bmsafari, bmsafari_state, empty_init, "Bambino", "Safari (Bambino)", MACHINE_SUPPORTS_SAVE ) -CONS( 1980, splasfgt, 0, 0, splasfgt, splasfgt, splasfgt_state, empty_init, "Bambino", "Space Laser Fight", MACHINE_SUPPORTS_SAVE ) +} // anonymous namespace + +/*************************************************************************** + + Game driver(s) + +***************************************************************************/ + +// YEAR NAME PARENT CMP MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS +CONS( 1979, ufombs, 0, 0, ufombs, ufombs, ufombs_state, empty_init, "Bambino", "UFO Master-Blaster Station", MACHINE_SUPPORTS_SAVE ) +CONS( 1979, ssfball, 0, 0, ssfball, ssfball, ssfball_state, empty_init, "Bambino", "Superstar Football (Bambino)", MACHINE_SUPPORTS_SAVE ) +CONS( 1982, bmcfball, ssfball, 0, ssfball, ssfball, ssfball_state, empty_init, "Bambino", "Classic Football (Bambino)", MACHINE_SUPPORTS_SAVE ) +CONS( 1979, bmsoccer, 0, 0, bmsoccer, bmsoccer, bmsoccer_state, empty_init, "Bambino", "Kick The Goal Soccer", MACHINE_SUPPORTS_SAVE ) +CONS( 1981, bmsafari, 0, 0, bmsafari, bmsafari, bmsafari_state, empty_init, "Bambino", "Safari (Bambino)", MACHINE_SUPPORTS_SAVE ) +CONS( 1980, splasfgt, 0, 0, splasfgt, splasfgt, splasfgt_state, empty_init, "Bambino", "Space Laser Fight", MACHINE_SUPPORTS_SAVE ) -CONS( 1982, bcclimbr, 0, 0, bcclimbr, bcclimbr, bcclimbr_state, empty_init, "Bandai", "Crazy Climber (Bandai)", MACHINE_SUPPORTS_SAVE ) +CONS( 1982, bcclimbr, 0, 0, bcclimbr, bcclimbr, bcclimbr_state, empty_init, "Bandai", "Crazy Climber (Bandai)", MACHINE_SUPPORTS_SAVE ) CONS( 1980, tactix, 0, 0, tactix, tactix, tactix_state, empty_init, "Castle Toy", "Tactix (Castle Toy)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1980, invspace, 0, 0, invspace, invspace, invspace_state, empty_init, "Epoch", "Invader From Space", MACHINE_SUPPORTS_SAVE ) -CONS( 1980, efball, 0, 0, efball, efball, efball_state, empty_init, "Epoch", "Electronic Football (Epoch)", MACHINE_SUPPORTS_SAVE ) -CONS( 1981, galaxy2, 0, 0, galaxy2, galaxy2, galaxy2_state, empty_init, "Epoch", "Galaxy II (VFD Rev. D)", MACHINE_SUPPORTS_SAVE ) -CONS( 1981, galaxy2b, galaxy2, 0, galaxy2b, galaxy2, galaxy2_state, empty_init, "Epoch", "Galaxy II (VFD Rev. B)", MACHINE_SUPPORTS_SAVE ) -CONS( 1982, astrocmd, 0, 0, astrocmd, astrocmd, astrocmd_state, empty_init, "Epoch", "Astro Command", MACHINE_SUPPORTS_SAVE ) -CONS( 1982, edracula, 0, 0, edracula, edracula, edracula_state, empty_init, "Epoch", "Dracula (Epoch)", MACHINE_SUPPORTS_SAVE ) +CONS( 1980, invspace, 0, 0, invspace, invspace, invspace_state, empty_init, "Epoch", "Invader From Space", MACHINE_SUPPORTS_SAVE ) +CONS( 1980, efball, 0, 0, efball, efball, efball_state, empty_init, "Epoch", "Electronic Football (Epoch)", MACHINE_SUPPORTS_SAVE ) +CONS( 1981, galaxy2, 0, 0, galaxy2, galaxy2, galaxy2_state, empty_init, "Epoch", "Galaxy II (VFD Rev. D)", MACHINE_SUPPORTS_SAVE ) +CONS( 1981, galaxy2b, galaxy2, 0, galaxy2b, galaxy2, galaxy2_state, empty_init, "Epoch", "Galaxy II (VFD Rev. B)", MACHINE_SUPPORTS_SAVE ) +CONS( 1982, astrocmd, 0, 0, astrocmd, astrocmd, astrocmd_state, empty_init, "Epoch", "Astro Command", MACHINE_SUPPORTS_SAVE ) +CONS( 1982, edracula, 0, 0, edracula, edracula, edracula_state, empty_init, "Epoch", "Dracula (Epoch)", MACHINE_SUPPORTS_SAVE ) -CONS( 1979, mcompgin, 0, 0, mcompgin, mcompgin, mcompgin_state, empty_init, "Mattel", "Computer Gin", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +CONS( 1979, mcompgin, 0, 0, mcompgin, mcompgin, mcompgin_state, empty_init, "Mattel", "Computer Gin", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -CONS( 1979, mvbfree, 0, 0, mvbfree, mvbfree, mvbfree_state, empty_init, "Mego", "Mini-Vid Break Free", MACHINE_SUPPORTS_SAVE ) +CONS( 1979, mvbfree, 0, 0, mvbfree, mvbfree, mvbfree_state, empty_init, "Mego", "Mini-Vid: Break Free", MACHINE_SUPPORTS_SAVE ) CONS( 1980, grobot9, 0, 0, grobot9, grobot9, grobot9_state, empty_init, "Takatoku Toys", "Game Robot 9", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // some of the minigames: *** -CONS( 1980, tccombat, 0, 0, tccombat, tccombat, tccombat_state, empty_init, "Tomy", "Cosmic Combat", MACHINE_SUPPORTS_SAVE ) -CONS( 1980, tmtennis, 0, 0, tmtennis, tmtennis, tmtennis_state, empty_init, "Tomy", "Tennis (Tomy)", MACHINE_SUPPORTS_SAVE ) -CONS( 1982, tmpacman, 0, 0, tmpacman, tmpacman, tmpacman_state, empty_init, "Tomy", "Pac Man (Tomy)", MACHINE_SUPPORTS_SAVE ) -CONS( 1982, tmscramb, 0, 0, tmscramb, tmscramb, tmscramb_state, empty_init, "Tomy", "Scramble (Tomy)", MACHINE_SUPPORTS_SAVE ) -CONS( 1982, tcaveman, 0, 0, tcaveman, tcaveman, tcaveman_state, empty_init, "Tomy", "Caveman (Tomy)", MACHINE_SUPPORTS_SAVE ) -CONS( 1984, alnchase, 0, 0, alnchase, alnchase, alnchase_state, empty_init, "Tomy", "Alien Chase", MACHINE_SUPPORTS_SAVE ) +CONS( 1980, tccombat, 0, 0, tccombat, tccombat, tccombat_state, empty_init, "Tomy", "Cosmic Combat", MACHINE_SUPPORTS_SAVE ) +CONS( 1980, tmtennis, 0, 0, tmtennis, tmtennis, tmtennis_state, empty_init, "Tomy", "Tennis (Tomy)", MACHINE_SUPPORTS_SAVE ) +CONS( 1982, tmpacman, 0, 0, tmpacman, tmpacman, tmpacman_state, empty_init, "Tomy", "Pac Man (Tomy)", MACHINE_SUPPORTS_SAVE ) +CONS( 1982, tmscramb, 0, 0, tmscramb, tmscramb, tmscramb_state, empty_init, "Tomy", "Scramble (Tomy)", MACHINE_SUPPORTS_SAVE ) +CONS( 1982, tcaveman, 0, 0, tcaveman, tcaveman, tcaveman_state, empty_init, "Tomy", "Caveman (Tomy)", MACHINE_SUPPORTS_SAVE ) +CONS( 1984, alnchase, 0, 0, alnchase, alnchase, alnchase_state, empty_init, "Tomy", "Alien Chase", MACHINE_SUPPORTS_SAVE ) // ***: As far as MAME 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. |