From d0ea06a5c127d02139cc370a50496dcd346251fc Mon Sep 17 00:00:00 2001 From: hap Date: Sun, 23 Jul 2017 22:08:14 +0200 Subject: New working machine added --------- Garfield (Konami handheld) [hap, Sean Riddle] --- src/mame/drivers/hh_sm510.cpp | 81 +++++++++++++++++++++++++++++++++++++++++++ src/mame/mame.lst | 1 + 2 files changed, 82 insertions(+) diff --git a/src/mame/drivers/hh_sm510.cpp b/src/mame/drivers/hh_sm510.cpp index 1cec0eb3055..986d5365085 100644 --- a/src/mame/drivers/hh_sm510.cpp +++ b/src/mame/drivers/hh_sm510.cpp @@ -743,6 +743,74 @@ MACHINE_CONFIG_END +/*************************************************************************** + + Konami Garfield + * Sharp SM511 under epoxy (die label KMS73B, N62) + * lcd screen with custom segments, 1-bit sound + +***************************************************************************/ + +class kgarfld_state : public hh_sm510_state +{ +public: + kgarfld_state(const machine_config &mconfig, device_type type, const char *tag) + : hh_sm510_state(mconfig, type, tag) + { + m_inp_lines = 3; + } +}; + +// config + +static INPUT_PORTS_START( kgarfld ) + PORT_START("IN.0") // S1 + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_POWER_OFF ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_VOLUME_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Sound") + + PORT_START("IN.1") // S2 + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Pause") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Power On/Start") + + PORT_START("IN.2") // S3 + PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) + + PORT_START("ACL") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, acl_button, nullptr) PORT_NAME("All Clear") +INPUT_PORTS_END + +static MACHINE_CONFIG_START( kgarfld ) + + /* basic machine hardware */ + MCFG_CPU_ADD("maincpu", SM511, XTAL_32_768kHz) + MCFG_SM510_WRITE_SEGS_CB(WRITE16(hh_sm510_state, sm510_lcd_segment_w)) + MCFG_SM510_READ_K_CB(READ8(hh_sm510_state, input_r)) + MCFG_SM510_WRITE_S_CB(WRITE8(hh_sm510_state, input_w)) + MCFG_SM510_WRITE_R_CB(WRITE8(hh_sm510_state, piezo_r1_w)) + + /* video hardware */ + MCFG_SCREEN_SVG_ADD("screen", "svg") + MCFG_SCREEN_REFRESH_RATE(50) + MCFG_SCREEN_SIZE(1501, 1080) + MCFG_SCREEN_VISIBLE_AREA(0, 1501-1, 0, 1080-1) + MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_sm510_state, display_decay_tick, attotime::from_msec(1)) + MCFG_DEFAULT_LAYOUT(layout_svg) + + /* 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 + + + + + /*************************************************************************** Nintendo Game & Watch: Mickey Mouse (model MC-25), Egg (model EG-26) @@ -1874,6 +1942,18 @@ ROM_START( kbucky ) ROM_END +ROM_START( kgarfld ) + ROM_REGION( 0x1000, "maincpu", 0 ) + ROM_LOAD( "n62.program", 0x0000, 0x1000, CRC(5a762049) SHA1(26d4d891160d254dfd752734e1047126243f88dd) ) + + ROM_REGION( 0x100, "maincpu:melody", 0 ) + ROM_LOAD( "n62.melody", 0x000, 0x100, CRC(232b7d55) SHA1(76f6a19e8182ee3f00c9f4ef007b5dde75a9c00d) ) + + ROM_REGION( 580911, "svg", 0) + ROM_LOAD( "kgarfld.svg", 0, 580911, CRC(dff81825) SHA1(01a1596b832752ff86ac2dbad09119cbb114737b) ) +ROM_END + + ROM_START( gnw_mc25 ) ROM_REGION( 0x1000, "maincpu", 0 ) ROM_LOAD( "mc-25", 0x0000, 0x0740, BAD_DUMP CRC(cb820c32) SHA1(7e94fc255f32db725d5aa9e196088e490c1a1443) ) // dumped from Soviet clone @@ -2021,6 +2101,7 @@ CONS( 1989, kgradius, 0, 0, kgradius, kgradius, kgradius_state, 0, "Ko CONS( 1989, kloneran, 0, 0, kloneran, kloneran, kloneran_state, 0, "Konami", "Lone Ranger (handheld)", MACHINE_SUPPORTS_SAVE ) CONS( 1989, kblades, 0, 0, kblades, kblades, kblades_state, 0, "Konami", "Blades of Steel (handheld)", MACHINE_SUPPORTS_SAVE ) CONS( 1991, kbucky, 0, 0, kbucky, kbucky, kbucky_state, 0, "Konami", "Bucky O'Hare (handheld)", MACHINE_SUPPORTS_SAVE ) +CONS( 1991, kgarfld, 0, 0, kgarfld, kgarfld, kgarfld_state, 0, "Konami", "Garfield (handheld)", MACHINE_SUPPORTS_SAVE ) CONS( 1981, gnw_mc25, 0, 0, mc25, mc25, mc25_state, 0, "Nintendo", "Game & Watch: Mickey Mouse", MACHINE_SUPPORTS_SAVE ) CONS( 1981, gnw_eg26, gnw_mc25, 0, eg26, mc25, mc25_state, 0, "Nintendo", "Game & Watch: Egg", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index b5baf664bb1..5998c0881bd 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -14570,6 +14570,7 @@ gnw_mw56 // Nintendo kblades // Konami kbucky // Konami kcontra // Konami +kgarfld // Konami kgradius // Konami kloneran // Konami ktmnt // Konami -- cgit v1.2.3