From 166c4089eb293efab51762c0996628754c2f9142 Mon Sep 17 00:00:00 2001 From: hap Date: Fri, 5 Jan 2018 00:47:09 +0100 Subject: [PATCH] New working machines ----------- unknown electronic Space Invaders game (patent) [hap] --- src/mame/drivers/fidelz80.cpp | 4 +- src/mame/drivers/hh_cop400.cpp | 143 ++++++++++++++++++++++-- src/mame/drivers/hh_hmcs40.cpp | 30 ----- src/mame/drivers/hh_melps4.cpp | 2 - src/mame/drivers/hh_pic16.cpp | 11 -- src/mame/drivers/hh_tms1k.cpp | 77 +------------ src/mame/drivers/hh_ucom4.cpp | 21 ---- src/mame/drivers/novagf8.cpp | 2 +- src/mame/layout/unkeinv.lay | 195 +++++++++++++++++++++++++++++++++ src/mame/mame.lst | 1 + 10 files changed, 336 insertions(+), 150 deletions(-) create mode 100644 src/mame/layout/unkeinv.lay diff --git a/src/mame/drivers/fidelz80.cpp b/src/mame/drivers/fidelz80.cpp index 2ba6ac7200f..b85022c7c0f 100644 --- a/src/mame/drivers/fidelz80.cpp +++ b/src/mame/drivers/fidelz80.cpp @@ -1250,7 +1250,7 @@ static INPUT_PORTS_START( vcc_base ) PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("H8") PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_CODE(KEYCODE_H) PORT_START("RESET") // is not on matrix IN.0 d0 - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RE") PORT_CODE(KEYCODE_R) PORT_CHANGED_MEMBER(DEVICE_SELF, fidelz80_state, reset_button, 0) + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RE") PORT_CODE(KEYCODE_R) PORT_CHANGED_MEMBER(DEVICE_SELF, fidelz80_state, reset_button, nullptr) INPUT_PORTS_END static INPUT_PORTS_START( cc10 ) @@ -1388,7 +1388,7 @@ static INPUT_PORTS_START( vbrc ) PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("Clubs") PORT_START("RESET") // is not on matrix IN.7 d0 - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_R) PORT_CHANGED_MEMBER(DEVICE_SELF, fidelz80_state, reset_button, 0) PORT_NAME("RE") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_R) PORT_CHANGED_MEMBER(DEVICE_SELF, fidelz80_state, reset_button, nullptr) PORT_NAME("RE") INPUT_PORTS_END diff --git a/src/mame/drivers/hh_cop400.cpp b/src/mame/drivers/hh_cop400.cpp index 06b2149be0b..c350cef5f82 100644 --- a/src/mame/drivers/hh_cop400.cpp +++ b/src/mame/drivers/hh_cop400.cpp @@ -35,6 +35,7 @@ #include "lightfgt.lh" // clickable #include "mdallas.lh" #include "qkracer.lh" +#include "unkeinv.lh" //#include "hh_cop400_test.lh" // common test-layout - use external artwork @@ -284,7 +285,6 @@ READ8_MEMBER(ctstein_state::read_l) return read_inputs(3) << 4 | 0xf; } - // config static INPUT_PORTS_START( ctstein ) @@ -396,7 +396,6 @@ READ8_MEMBER(h2hbaskb_state::read_in) return (read_inputs(4) & 7) | (m_inp_matrix[4]->read() & 8); } - // config static INPUT_PORTS_START( h2hbaskb ) @@ -559,7 +558,6 @@ WRITE8_MEMBER(einvaderc_state::write_l) prepare_display(); } - // config static INPUT_PORTS_START( einvaderc ) @@ -602,6 +600,129 @@ MACHINE_CONFIG_END +/*************************************************************************** + + Gordon Barlow Design electronic Space Invaders game (unreleased, from patent US4345764) + * COP421 (likely a development chip) + * 36+9 LEDs, 1-bit sound + + This game is presumedly unreleased. The title is unknown, the patent simply names + it "Hand-held electronic game". There is no mass-manufacture company assigned + to it either. The game seems unfinished(no scorekeeping, some bugs), and the design + is very complex. Player ship and bullets are on a moving "wand", a 2-way mirror + makes it appear on the same plane as the enemies and barriers. + +***************************************************************************/ + +class unkeinv_state : public hh_cop400_state +{ +public: + unkeinv_state(const machine_config &mconfig, device_type type, const char *tag) + : hh_cop400_state(mconfig, type, tag) + { } + + void prepare_display(); + DECLARE_WRITE8_MEMBER(write_g); + DECLARE_WRITE8_MEMBER(write_d); + DECLARE_WRITE8_MEMBER(write_l); + DECLARE_READ8_MEMBER(read_l); + + DECLARE_INPUT_CHANGED_MEMBER(position_changed); +}; + +// handlers + +void unkeinv_state::prepare_display() +{ + display_matrix(8+8, 8+12, m_g << 4 | m_d, m_l, false); + + // positional led row is on L6,L7 + u16 wand = m_display_state[7] << 8 | m_display_state[6]; + m_display_state[8 + m_inp_matrix[1]->read()] = wand; + display_update(); +} + +WRITE8_MEMBER(unkeinv_state::write_g) +{ + // G0-G3: led select part + // G2,G3: input mux + m_g = ~data & 0xf; + prepare_display(); +} + +WRITE8_MEMBER(unkeinv_state::write_d) +{ + // D0-D3: led select part + m_d = ~data & 0xf; + prepare_display(); +} + +WRITE8_MEMBER(unkeinv_state::write_l) +{ + // L0-L7: led data + m_l = ~data & 0xff; + prepare_display(); +} + +READ8_MEMBER(unkeinv_state::read_l) +{ + u8 ret = 0xff; + + // L0-L5+G2: positional odd + // L0-L5+G3: positional even + u8 pos = m_inp_matrix[1]->read(); + if (m_g & 4 && pos & 1) + ret ^= (1 << (pos >> 1)); + if (m_g & 8 && ~pos & 1) + ret ^= (1 << (pos >> 1)); + + // L7+G3: fire button + if (m_g & 8 && m_inp_matrix[0]->read()) + ret ^= 0x80; + + return ret & ~m_l; +} + +// config + +INPUT_CHANGED_MEMBER(unkeinv_state::position_changed) +{ + prepare_display(); +} + +static INPUT_PORTS_START( unkeinv ) + PORT_START("IN.0") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) + + PORT_START("IN.1") + PORT_BIT( 0x0f, 0x00, IPT_POSITIONAL ) PORT_POSITIONS(12) PORT_SENSITIVITY(10) PORT_KEYDELTA(1) PORT_CENTERDELTA(0) PORT_CHANGED_MEMBER(DEVICE_SELF, unkeinv_state, position_changed, nullptr) +INPUT_PORTS_END + +static MACHINE_CONFIG_START( unkeinv ) + + /* basic machine hardware */ + MCFG_CPU_ADD("maincpu", COP421, 850000) // frequency guessed + MCFG_COP400_CONFIG(COP400_CKI_DIVISOR_4, COP400_CKO_OSCILLATOR_OUTPUT, false) // guessed + MCFG_COP400_WRITE_G_CB(WRITE8(unkeinv_state, write_g)) + MCFG_COP400_WRITE_D_CB(WRITE8(unkeinv_state, write_d)) + MCFG_COP400_WRITE_L_CB(WRITE8(unkeinv_state, write_l)) + MCFG_COP400_READ_L_CB(READ8(unkeinv_state, read_l)) + MCFG_COP400_READ_L_TRISTATE_CB(CONSTANT(0xff)) + MCFG_COP400_WRITE_SO_CB(DEVWRITELINE("speaker", speaker_sound_device, level_w)) + + MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_cop400_state, display_decay_tick, attotime::from_msec(1)) + MCFG_DEFAULT_LAYOUT(layout_unkeinv) + + /* 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 + + + + + /*************************************************************************** LJN I Took a Lickin' From a Chicken @@ -690,7 +811,6 @@ READ_LINE_MEMBER(lchicken_state::read_si) return m_so; } - // config static INPUT_PORTS_START( lchicken ) @@ -818,7 +938,6 @@ READ8_MEMBER(funjacks_state::read_g) return m_inp_matrix[3]->read() | (m_g & 2); } - // config static INPUT_PORTS_START( funjacks ) @@ -916,7 +1035,6 @@ WRITE8_MEMBER(funrlgl_state::write_g) m_speaker->level_w(data >> 3 & 1); } - // config static INPUT_PORTS_START( funrlgl ) @@ -1023,7 +1141,6 @@ READ8_MEMBER(mdallas_state::read_in) return read_inputs(6) & 0xf; } - // config /* physical button layout and labels is like this: @@ -1140,7 +1257,6 @@ READ8_MEMBER(plus1_state::read_l) return m_inp_matrix[1]->read() & m_l; } - // config static INPUT_PORTS_START( plus1 ) @@ -1251,7 +1367,6 @@ READ8_MEMBER(lightfgt_state::read_g) return read_inputs(5); } - // config static INPUT_PORTS_START( lightfgt ) @@ -1358,7 +1473,6 @@ WRITE_LINE_MEMBER(bship82_state::write_so) display_matrix(1, 1, state, 1); } - // config static INPUT_PORTS_START( bship82 ) @@ -1537,7 +1651,6 @@ WRITE_LINE_MEMBER(qkracer_state::write_sk) prepare_display(); } - // config static INPUT_PORTS_START( qkracer ) @@ -1630,6 +1743,12 @@ ROM_START( einvaderc ) ROM_END +ROM_START( unkeinv ) + ROM_REGION( 0x0400, "maincpu", 0 ) + ROM_LOAD( "cop421_us4345764", 0x0000, 0x0400, CRC(0068c3a3) SHA1(4e5fd566a5a26c066cc14623a9bd01e109ebf797) ) // typed in from patent US4345764, good print quality +ROM_END + + ROM_START( lchicken ) ROM_REGION( 0x0400, "maincpu", 0 ) ROM_LOAD( "cop421-njc_n", 0x0000, 0x0400, CRC(319e7985) SHA1(9714327518f65ebefe38ac7911bed2b9b9c77307) ) @@ -1688,6 +1807,8 @@ CONS( 1980, h2hsoccer, h2hbaskb, 0, h2hsoccer, h2hsoccer, h2hbaskb_state, 0, "C CONS( 1981, einvaderc, einvader, 0, einvaderc, einvaderc, einvaderc_state, 0, "Entex", "Space Invader (Entex, COP444L version)", MACHINE_SUPPORTS_SAVE ) +CONS( 1980, unkeinv, 0, 0, unkeinv, unkeinv, unkeinv_state, 0, "Gordon Barlow Design", "unknown electronic Space Invaders game (patent)", MACHINE_SUPPORTS_SAVE ) + CONS( 1980, lchicken, 0, 0, lchicken, lchicken, lchicken_state, 0, "LJN", "I Took a Lickin' From a Chicken", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_MECHANICAL ) CONS( 1979, funjacks, 0, 0, funjacks, funjacks, funjacks_state, 0, "Mattel", "Funtronics: Jacks", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) diff --git a/src/mame/drivers/hh_hmcs40.cpp b/src/mame/drivers/hh_hmcs40.cpp index 5f70d409338..2d40ce9e66f 100644 --- a/src/mame/drivers/hh_hmcs40.cpp +++ b/src/mame/drivers/hh_hmcs40.cpp @@ -400,7 +400,6 @@ READ8_MEMBER(bambball_state::input_r) return read_inputs(4); } - // config static INPUT_PORTS_START( bambball ) @@ -516,7 +515,6 @@ READ8_MEMBER(bmboxing_state::input_r) return read_inputs(4); } - // config /* physical button layout and labels is like this: @@ -663,7 +661,6 @@ void bfriskyt_state::update_int1() set_interrupt(1, read_inputs(5)); } - // config static INPUT_PORTS_START( bfriskyt ) @@ -781,7 +778,6 @@ READ16_MEMBER(packmon_state::input_r) return read_inputs(5) & 0x20; } - // config static INPUT_PORTS_START( packmon ) @@ -905,7 +901,6 @@ void msthawk_state::update_int0() set_interrupt(0, read_inputs(6)); } - // config static INPUT_PORTS_START( msthawk ) @@ -1028,7 +1023,6 @@ void bzaxxon_state::update_int1() set_interrupt(1, read_inputs(4)); } - // config static INPUT_PORTS_START( bzaxxon ) @@ -1148,7 +1142,6 @@ void zackman_state::update_int0() set_interrupt(0, read_inputs(4)); } - // config static INPUT_PORTS_START( zackman ) @@ -1269,7 +1262,6 @@ void bpengo_state::update_int0() set_interrupt(0, read_inputs(4)); } - // config static INPUT_PORTS_START( bpengo ) @@ -1397,7 +1389,6 @@ void bbtime_state::update_int0() set_interrupt(0, read_inputs(5)); } - // config static INPUT_PORTS_START( bbtime ) @@ -1502,7 +1493,6 @@ WRITE16_MEMBER(bdoramon_state::grid_w) plate_w(space, 4, data & 0xf); } - // config static INPUT_PORTS_START( bdoramon ) @@ -1602,7 +1592,6 @@ WRITE16_MEMBER(bultrman_state::grid_w) plate_w(space, 4, data & (1 << offset) & 7); } - // config static INPUT_PORTS_START( bultrman ) @@ -1694,7 +1683,6 @@ WRITE16_MEMBER(machiman_state::grid_w) prepare_display(); } - // config static INPUT_PORTS_START( machiman ) @@ -1823,7 +1811,6 @@ WRITE16_MEMBER(pairmtch_state::speaker_w) m_maincpu->set_input_line(0, (data & 2) ? ASSERT_LINE : CLEAR_LINE); } - // config static INPUT_PORTS_START( pairmtch ) @@ -1949,7 +1936,6 @@ READ16_MEMBER(alnattck_state::input_r) return read_inputs(7) & 0x20; } - // config static INPUT_PORTS_START( alnattck ) @@ -2080,7 +2066,6 @@ WRITE16_MEMBER(cdkong_state::grid_w) prepare_display(); } - // config static INPUT_PORTS_START( cdkong ) @@ -2207,7 +2192,6 @@ READ8_MEMBER(cgalaxn_state::input_r) return read_inputs(2); } - // config static INPUT_PORTS_START( cgalaxn ) @@ -2333,7 +2317,6 @@ READ8_MEMBER(cpacman_state::input_r) return read_inputs(3); } - // config static INPUT_PORTS_START( cpacman ) @@ -2450,7 +2433,6 @@ READ8_MEMBER(cmspacmn_state::input_r) return read_inputs(3); } - // config static INPUT_PORTS_START( cmspacmn ) @@ -2575,7 +2557,6 @@ READ16_MEMBER(sag_state::input_r) return read_inputs(6) << 13; } - // config static INPUT_PORTS_START( sag ) @@ -2702,7 +2683,6 @@ READ8_MEMBER(egalaxn2_state::input_r) return read_inputs(4); } - // config static INPUT_PORTS_START( egalaxn2 ) @@ -2938,7 +2918,6 @@ READ8_MEMBER(eturtles_state::cop_ack_r) return m_d & 1; } - // config static INPUT_PORTS_START( eturtles ) @@ -3061,7 +3040,6 @@ READ8_MEMBER(estargte_state::cop_data_r) return m_r[0] | (m_d << 7 & 0x80); } - // config static INPUT_PORTS_START( estargte ) @@ -3192,7 +3170,6 @@ READ16_MEMBER(ghalien_state::input_r) return read_inputs(7) & 0x8000; } - // config static INPUT_PORTS_START( ghalien ) @@ -3316,7 +3293,6 @@ void gckong_state::update_int1() set_interrupt(1, read_inputs(4)); } - // config static INPUT_PORTS_START( gckong ) @@ -3438,7 +3414,6 @@ void gdigdug_state::update_int1() set_interrupt(1, read_inputs(5)); } - // config static INPUT_PORTS_START( gdigdug ) @@ -3562,7 +3537,6 @@ READ8_MEMBER(mwcbaseb_state::input_r) return read_inputs(7); } - // config /* physical button layout and labels is like this: @@ -3704,7 +3678,6 @@ WRITE16_MEMBER(pbqbert_state::grid_w) plate_w(space, 7, data >> 8 & 1); } - // config static INPUT_PORTS_START( pbqbert ) @@ -3816,7 +3789,6 @@ void kingman_state::update_int0() set_interrupt(0, read_inputs(4)); } - // config static INPUT_PORTS_START( kingman ) @@ -3937,7 +3909,6 @@ void tmtron_state::update_int1() set_interrupt(1, read_inputs(4)); } - // config static INPUT_PORTS_START( tmtron ) @@ -4039,7 +4010,6 @@ WRITE16_MEMBER(vinvader_state::grid_w) plate_w(space, 3 + hmcs40_cpu_device::PORT_R1X, data >> 4 & 7); } - // config static INPUT_PORTS_START( vinvader ) diff --git a/src/mame/drivers/hh_melps4.cpp b/src/mame/drivers/hh_melps4.cpp index 9dbdd384e1c..d1f05423a54 100644 --- a/src/mame/drivers/hh_melps4.cpp +++ b/src/mame/drivers/hh_melps4.cpp @@ -274,7 +274,6 @@ READ16_MEMBER(cfrogger_state::input_r) return (m_inp_matrix[2]->read() & 8) | (read_inputs(2) & 3); } - // config static INPUT_PORTS_START( cfrogger ) @@ -389,7 +388,6 @@ READ16_MEMBER(gjungler_state::input_r) return (m_inp_matrix[2]->read() & 0xc) | (read_inputs(2) & 3); } - // config static INPUT_PORTS_START( gjungler ) diff --git a/src/mame/drivers/hh_pic16.cpp b/src/mame/drivers/hh_pic16.cpp index d7e03652bfa..8607192872f 100644 --- a/src/mame/drivers/hh_pic16.cpp +++ b/src/mame/drivers/hh_pic16.cpp @@ -334,7 +334,6 @@ WRITE8_MEMBER(touchme_state::write_c) update_speaker(); } - // config static INPUT_PORTS_START( touchme ) @@ -442,7 +441,6 @@ WRITE8_MEMBER(pabball_state::write_c) prepare_display(); } - // config static INPUT_PORTS_START( pabball ) @@ -538,7 +536,6 @@ WRITE8_MEMBER(melodym_state::write_c) m_speaker->level_w(~data >> 7 & 1); } - // config static INPUT_PORTS_START( melodym ) @@ -671,7 +668,6 @@ WRITE8_MEMBER(maniac_state::write_c) update_speaker(); } - // config static INPUT_PORTS_START( maniac ) @@ -790,7 +786,6 @@ WRITE8_MEMBER(leboom_state::write_c) m_speaker->level_w(data >> 6 & 1); } - // config static INPUT_PORTS_START( leboom ) @@ -925,7 +920,6 @@ WRITE8_MEMBER(tbaskb_state::write_c) prepare_display(); } - // config static INPUT_PORTS_START( tbaskb ) @@ -1046,7 +1040,6 @@ WRITE8_MEMBER(rockpin_state::write_d) prepare_display(); } - // config static INPUT_PORTS_START( rockpin ) @@ -1152,7 +1145,6 @@ WRITE8_MEMBER(hccbaskb_state::write_c) prepare_display(); } - // config static INPUT_PORTS_START( hccbaskb ) @@ -1274,7 +1266,6 @@ WRITE8_MEMBER(ttfball_state::write_c) prepare_display(); } - // config static INPUT_PORTS_START( ttfball ) @@ -1413,7 +1404,6 @@ WRITE8_MEMBER(uspbball_state::write_d) prepare_display(); } - // config static INPUT_PORTS_START( uspbball ) @@ -1533,7 +1523,6 @@ WRITE8_MEMBER(us2pfball_state::write_d) prepare_display(); } - // config static INPUT_PORTS_START( us2pfball ) diff --git a/src/mame/drivers/hh_tms1k.cpp b/src/mame/drivers/hh_tms1k.cpp index 7b9a29e3e8d..fd6e3753c9e 100644 --- a/src/mame/drivers/hh_tms1k.cpp +++ b/src/mame/drivers/hh_tms1k.cpp @@ -14,7 +14,7 @@ - tispeak: TI Speak & Spell series gen. 1 Let's use this driver for a list of known devices and their serials, - excluding TI's own products(they didn't use "MP" codes). + excluding most of TI's own products(they normally didn't use "MP" codes). serial device etc. -------------------------------------------------------------------- @@ -37,6 +37,7 @@ @MP0919 TMS1000 1979, Tiger Copy Cat (model 7-520) @MP0920 TMS1000 1979, Entex Space Battle (6004) @MP0923 TMS1000 1979, Entex Baseball 2 (6002) + *MP1022 TMS1100 1979, Texas Instruments unknown thermostat @MP1030 TMS1100 1980, APF Mathemagician @MP1133 TMS1470 1979, Kosmos Astro @MP1180 TMS1100 1980, Tomy Power House Pinball @@ -101,6 +102,7 @@ M34047 TMS1100 1982, MicroVision cartridge: Super Blockbuster @M34078A TMS1100 1983, Milton Bradley Electronic Arcade Mania @MP4486A TMS1000C 1983, Vulcan XL 25 + *MP6061 TMS0970 1979, Texas Instruments Electronic Digital Thermostat @MP6100A TMS0980 1979, Ideal Electronic Detective @MP6101B TMS0980 1979, Parker Brothers Stop Thief *MP6361 ? 1983, Defender Strikes (? note: VFD-capable) @@ -480,7 +482,6 @@ READ8_MEMBER(matchnum_state::read_k) return read_inputs(6); } - // config static INPUT_PORTS_START( matchnum ) @@ -609,7 +610,6 @@ READ8_MEMBER(arrball_state::read_k) return read_inputs(1); } - // config static INPUT_PORTS_START( arrball ) @@ -717,7 +717,6 @@ READ8_MEMBER(mathmagi_state::read_k) return read_inputs(6); } - // config /* physical button layout and labels is like this: @@ -879,7 +878,6 @@ READ8_MEMBER(bcheetah_state::read_k) return read_inputs(5); } - // config static INPUT_PORTS_START( bcheetah ) @@ -992,7 +990,6 @@ READ8_MEMBER(amaztron_state::read_k) return k & 0xf; } - // config static INPUT_PORTS_START( amaztron ) @@ -1117,7 +1114,6 @@ READ8_MEMBER(zodiac_state::read_k) return read_inputs(6); } - // config /* The physical button layout and labels are like this: @@ -1300,7 +1296,6 @@ READ8_MEMBER(cqback_state::read_k) return read_rotated_inputs(5); } - // config static INPUT_PORTS_START( cqback ) @@ -1414,7 +1409,6 @@ READ8_MEMBER(h2hfootb_state::read_k) return read_rotated_inputs(9); } - // config static INPUT_PORTS_START( h2hfootb ) @@ -1537,7 +1531,6 @@ READ8_MEMBER(h2hbaseb_state::read_k) return m_inp_matrix[4]->read() | read_inputs(4); } - // config static INPUT_PORTS_START( h2hbaseb ) @@ -1666,7 +1659,6 @@ READ8_MEMBER(h2hboxing_state::read_k) return read_inputs(5); } - // config static INPUT_PORTS_START( h2hboxing ) @@ -1821,7 +1813,6 @@ READ8_MEMBER(quizwizc_state::read_k) return read_inputs(6) | ((m_r & m_pinout) ? 1 : 0); } - // config static INPUT_PORTS_START( quizwizc ) @@ -1997,7 +1988,6 @@ READ8_MEMBER(tc4_state::read_k) return read_inputs(6) | ((m_r & 0x200) ? m_pinout : 0); } - // config static INPUT_PORTS_START( tc4 ) @@ -2139,7 +2129,6 @@ READ8_MEMBER(cnbaskb_state::read_k) return read_inputs(3); } - // config static INPUT_PORTS_START( cnbaskb ) @@ -2248,7 +2237,6 @@ READ8_MEMBER(cmsport_state::read_k) return read_inputs(3); } - // config static INPUT_PORTS_START( cmsport ) @@ -2375,7 +2363,6 @@ READ8_MEMBER(cnfball_state::read_k) return read_inputs(2) | (m_r << 3 & 8); } - // config static INPUT_PORTS_START( cnfball ) @@ -2488,7 +2475,6 @@ READ8_MEMBER(cnfball2_state::read_k) return read_inputs(3); } - // config static INPUT_PORTS_START( cnfball2 ) @@ -2615,7 +2601,6 @@ READ8_MEMBER(eleciq_state::read_k) return read_inputs(7); } - // config static INPUT_PORTS_START( eleciq ) @@ -2659,7 +2644,7 @@ static INPUT_PORTS_START( eleciq ) PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_START("RESET") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_R) PORT_NAME("Reset") PORT_CHANGED_MEMBER(DEVICE_SELF, eleciq_state, reset_button, 0) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_R) PORT_NAME("Reset") PORT_CHANGED_MEMBER(DEVICE_SELF, eleciq_state, reset_button, nullptr) INPUT_PORTS_END INPUT_CHANGED_MEMBER(eleciq_state::reset_button) @@ -2749,7 +2734,6 @@ READ8_MEMBER(esoccer_state::read_k) return read_inputs(3); } - // config static INPUT_PORTS_START( esoccer ) @@ -2874,7 +2858,6 @@ READ8_MEMBER(ebball_state::read_k) return m_inp_matrix[5]->read() | read_inputs(5); } - // config static INPUT_PORTS_START( ebball ) @@ -3003,7 +2986,6 @@ READ8_MEMBER(ebball2_state::read_k) return read_inputs(4); } - // config static INPUT_PORTS_START( ebball2 ) @@ -3149,7 +3131,6 @@ READ8_MEMBER(ebball3_state::read_k) return read_inputs(3); } - // config /* physical button layout and labels is like this: @@ -3302,7 +3283,6 @@ READ8_MEMBER(esbattle_state::read_k) return read_inputs(2); } - // config static INPUT_PORTS_START( esbattle ) @@ -3398,7 +3378,6 @@ WRITE16_MEMBER(einvader_state::write_o) prepare_display(); } - // config static INPUT_PORTS_START( einvader ) @@ -3511,7 +3490,6 @@ READ8_MEMBER(efootb4_state::read_k) return read_inputs(5); } - // config static INPUT_PORTS_START( efootb4 ) @@ -3639,7 +3617,6 @@ READ8_MEMBER(ebaskb2_state::read_k) return read_inputs(4); } - // config static INPUT_PORTS_START( ebaskb2 ) @@ -3770,7 +3747,6 @@ READ8_MEMBER(raisedvl_state::read_k) return read_inputs(2) & 0xf; } - // config static INPUT_PORTS_START( raisedvl ) @@ -3907,7 +3883,6 @@ READ8_MEMBER(f2pbball_state::read_k) return read_inputs(3); } - // config static INPUT_PORTS_START( f2pbball ) @@ -3932,7 +3907,7 @@ static INPUT_PORTS_START( f2pbball ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_COCKTAIL PORT_NAME("P2 Fast") PORT_START("RESET") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("P1 Reset") PORT_CHANGED_MEMBER(DEVICE_SELF, f2pbball_state, reset_button, 0) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("P1 Reset") PORT_CHANGED_MEMBER(DEVICE_SELF, f2pbball_state, reset_button, nullptr) INPUT_PORTS_END INPUT_CHANGED_MEMBER(f2pbball_state::reset_button) @@ -4028,7 +4003,6 @@ READ8_MEMBER(f3in1_state::read_k) return read_inputs(4); } - // config static INPUT_PORTS_START( f3in1 ) @@ -4167,7 +4141,6 @@ READ8_MEMBER(gpoker_state::read_k) return read_inputs(7); } - // config /* physical button layout and labels is like this: @@ -4276,7 +4249,6 @@ WRITE16_MEMBER(gjackpot_state::write_r) m_inp_mux = (data & 0x3f) | (data >> 4 & 0x40); } - // config /* physical button layout and labels is like this: @@ -4421,7 +4393,6 @@ READ8_MEMBER(ginv1000_state::read_k) return m_inp_matrix[2]->read() | read_inputs(2); } - // config static INPUT_PORTS_START( ginv1000 ) @@ -4546,7 +4517,6 @@ READ8_MEMBER(ginv2000_state::read_k) return m_inp_matrix[2]->read() | read_inputs(2); } - // config static INPUT_PORTS_START( ginv2000 ) @@ -4677,7 +4647,6 @@ READ8_MEMBER(fxmcr165_state::read_k) return read_inputs(5); } - // config /* physical button layout and labels is like this: @@ -4796,7 +4765,6 @@ READ8_MEMBER(elecdet_state::read_k) return m_inp_matrix[4]->read() | read_inputs(4); } - // config /* physical button layout and labels is like this: @@ -4931,7 +4899,6 @@ READ8_MEMBER(starwbc_state::read_k) return read_inputs(5); } - // config /* physical button layout and labels is like this: @@ -5052,7 +5019,6 @@ READ8_MEMBER(astro_state::read_k) return read_inputs(8); } - // config static INPUT_PORTS_START( astro ) @@ -5220,7 +5186,6 @@ READ8_MEMBER(elecbowl_state::read_k) return read_inputs(4); } - // config static INPUT_PORTS_START( elecbowl ) @@ -5361,7 +5326,6 @@ READ8_MEMBER(horseran_state::read_k) return read_inputs(8); } - // config /* physical button layout and labels is like this: @@ -5491,7 +5455,6 @@ READ8_MEMBER(mdndclab_state::read_k) return read_inputs(18); } - // config static INPUT_PORTS_START( mdndclab ) @@ -5685,7 +5648,6 @@ READ8_MEMBER(comp4_state::read_k) return read_inputs(3); } - // config static INPUT_PORTS_START( comp4 ) @@ -5781,7 +5743,6 @@ READ8_MEMBER(bship_state::read_k) return m_inp_matrix[11]->read() | read_inputs(11); } - // config static INPUT_PORTS_START( bship ) @@ -5956,7 +5917,6 @@ READ8_MEMBER(bshipb_state::read_k) return m_inp_matrix[11]->read() | read_inputs(11); } - // config // buttons are same as bship set @@ -6048,7 +6008,6 @@ READ8_MEMBER(simon_state::read_k) return read_inputs(4); } - // config static INPUT_PORTS_START( simon ) @@ -6150,7 +6109,6 @@ READ8_MEMBER(ssimon_state::read_k) return read_inputs(6); } - // config static INPUT_PORTS_START( ssimon ) @@ -6331,7 +6289,6 @@ READ8_MEMBER(bigtrak_state::read_k) return read_inputs(7) | (sensor_state() ? 8 : 0); } - // config /* physical button layout and labels is like this: @@ -6573,7 +6530,6 @@ READ8_MEMBER(mbdtower_state::read_k) return read_inputs(3) | ((!m_sensor_blind && sensor_led_on()) ? 8 : 0); } - // config /* physical button layout and labels is like this: @@ -6705,7 +6661,6 @@ READ8_MEMBER(arcmania_state::read_k) return read_inputs(3); } - // config /* physical button layout and labels is like this: @@ -6815,7 +6770,6 @@ READ8_MEMBER(cnsector_state::read_k) return read_inputs(5); } - // config /* physical button layout and labels is like this: @@ -6946,7 +6900,6 @@ READ8_MEMBER(merlin_state::read_k) return read_inputs(4); } - // config static INPUT_PORTS_START( merlin ) @@ -7031,7 +6984,6 @@ public: // handlers: uses the ones in merlin_state - // config static INPUT_PORTS_START( mmerlin ) @@ -7118,7 +7070,6 @@ READ8_MEMBER(stopthief_state::read_k) return m_inp_matrix[2]->read() | read_inputs(2); } - // config /* physical button layout and labels is like this: @@ -7242,7 +7193,6 @@ READ8_MEMBER(bankshot_state::read_k) return read_inputs(2); } - // config /* physical button layout and labels is like this: @@ -7371,7 +7321,6 @@ READ8_MEMBER(splitsec_state::read_k) return read_inputs(2); } - // config static INPUT_PORTS_START( splitsec ) @@ -7458,7 +7407,6 @@ READ8_MEMBER(lostreas_state::read_k) return read_inputs(4); } - // config /* physical button layout and labels is like this: @@ -7597,7 +7545,6 @@ READ8_MEMBER(alphie_state::read_k) return read_rotated_inputs(6); } - // config static const ioport_value alphie_armpos_table[5] = { 0x01, 0x02, 0x04, 0x08, 0x10 }; @@ -7715,7 +7662,6 @@ READ8_MEMBER(tcfball_state::read_k) return read_inputs(3); } - // config static INPUT_PORTS_START( tcfball ) @@ -7784,7 +7730,6 @@ public: // handlers: uses the ones in tcfball_state - // config static INPUT_PORTS_START( tcfballa ) @@ -7897,7 +7842,6 @@ READ8_MEMBER(tandy12_state::read_k) return read_inputs(5); } - // config /* physical button layout and labels is like this: @@ -8040,7 +7984,6 @@ READ8_MEMBER(monkeysee_state::read_k) return read_inputs(5); } - // config static INPUT_PORTS_START( monkeysee ) @@ -8162,7 +8105,6 @@ READ8_MEMBER(speechp_state::read_k) return m_inp_matrix[10]->read() | (read_inputs(10) & 7); } - // config static INPUT_PORTS_START( speechp ) @@ -8295,7 +8237,6 @@ READ8_MEMBER(timaze_state::read_k) return read_inputs(1); } - // config static INPUT_PORTS_START( timaze ) @@ -8375,7 +8316,6 @@ READ8_MEMBER(copycat_state::read_k) return read_inputs(4); } - // config static INPUT_PORTS_START( copycat ) @@ -8473,7 +8413,6 @@ WRITE16_MEMBER(copycatm2_state::write_o) m_speaker->level_w((data & 1) | (data >> 5 & 2)); } - // config static INPUT_PORTS_START( copycatm2 ) @@ -8544,7 +8483,6 @@ WRITE16_MEMBER(ditto_state::write_o) m_speaker->level_w(data >> 5 & 3); } - // config static INPUT_PORTS_START( ditto ) @@ -8640,7 +8578,6 @@ READ8_MEMBER(ss7in1_state::read_k) return read_inputs(4); } - // config static INPUT_PORTS_START( ss7in1 ) @@ -8815,7 +8752,6 @@ READ8_MEMBER(tbreakup_state::read_k) return (m_inp_matrix[2]->read() & 4) | (read_inputs(2) & 8); } - // config static INPUT_PORTS_START( tbreakup ) @@ -8977,7 +8913,6 @@ READ8_MEMBER(phpball_state::read_k) return m_inp_matrix[1]->read() | read_inputs(1); } - // config static INPUT_PORTS_START( phpball ) @@ -9078,7 +9013,6 @@ READ8_MEMBER(ssports4_state::read_k) return read_inputs(6); } - // config static INPUT_PORTS_START( ssports4 ) @@ -9225,7 +9159,6 @@ READ8_MEMBER(xl25_state::read_k) return read_inputs(10); } - // config static INPUT_PORTS_START( xl25 ) diff --git a/src/mame/drivers/hh_ucom4.cpp b/src/mame/drivers/hh_ucom4.cpp index 9da39ecb103..5faf57763bb 100644 --- a/src/mame/drivers/hh_ucom4.cpp +++ b/src/mame/drivers/hh_ucom4.cpp @@ -309,7 +309,6 @@ WRITE8_MEMBER(ufombs_state::speaker_w) m_speaker->level_w(data & 3); } - // config static INPUT_PORTS_START( ufombs ) @@ -432,7 +431,6 @@ READ8_MEMBER(ssfball_state::input_b_r) return m_inp_matrix[2]->read() | read_inputs(2); } - // config /* physical button layout and labels is like this: @@ -578,7 +576,6 @@ READ8_MEMBER(bmsoccer_state::input_a_r) return read_inputs(2); } - // config static INPUT_PORTS_START( bmsoccer ) @@ -694,7 +691,6 @@ WRITE8_MEMBER(bmsafari_state::speaker_w) m_speaker->level_w(data & 1); } - // config static INPUT_PORTS_START( bmsafari ) @@ -810,7 +806,6 @@ READ8_MEMBER(splasfgt_state::input_b_r) return read_inputs(4); } - // config /* physical button layout and labels is like this: @@ -949,7 +944,6 @@ WRITE8_MEMBER(bcclimbr_state::plate_w) prepare_display(); } - // config static INPUT_PORTS_START( bcclimbr ) @@ -1054,7 +1048,6 @@ READ8_MEMBER(tactix_state::input_r) return read_inputs(5); } - // config static INPUT_PORTS_START( tactix ) @@ -1167,7 +1160,6 @@ WRITE8_MEMBER(invspace_state::plate_w) prepare_display(); } - // config static INPUT_PORTS_START( invspace ) @@ -1268,7 +1260,6 @@ WRITE8_MEMBER(efball_state::plate_w) prepare_display(); } - // config static INPUT_PORTS_START( efball ) @@ -1382,7 +1373,6 @@ WRITE8_MEMBER(galaxy2_state::plate_w) prepare_display(); } - // config static INPUT_PORTS_START( galaxy2 ) @@ -1499,7 +1489,6 @@ WRITE8_MEMBER(astrocmd_state::plate_w) prepare_display(); } - // config static INPUT_PORTS_START( astrocmd ) @@ -1595,7 +1584,6 @@ WRITE8_MEMBER(edracula_state::plate_w) display_matrix(18, 8, m_plate, m_grid); } - // config static INPUT_PORTS_START( edracula ) @@ -1684,7 +1672,6 @@ WRITE8_MEMBER(mcompgin_state::lcd_w) m_lcd->write_clock(data >> 1 & 1); } - // config static INPUT_PORTS_START( mcompgin ) @@ -1779,7 +1766,6 @@ WRITE8_MEMBER(mvbfree_state::speaker_w) m_speaker->level_w(data & 1); } - // config static INPUT_PORTS_START( mvbfree ) @@ -1884,7 +1870,6 @@ READ8_MEMBER(grobot9_state::input_r) return read_inputs(5); } - // config static INPUT_PORTS_START( grobot9 ) @@ -1993,7 +1978,6 @@ WRITE8_MEMBER(tccombat_state::plate_w) prepare_display(); } - // config static INPUT_PORTS_START( tccombat ) @@ -2104,7 +2088,6 @@ READ8_MEMBER(tmtennis_state::input_r) return ~read_inputs(2) >> (offset*4); } - // config /* Pro-Tennis physical button layout and labels is like this: @@ -2255,7 +2238,6 @@ WRITE8_MEMBER(tmpacman_state::plate_w) prepare_display(); } - // config static INPUT_PORTS_START( tmpacman ) @@ -2359,7 +2341,6 @@ WRITE8_MEMBER(tmscramb_state::plate_w) prepare_display(); } - // config static INPUT_PORTS_START( tmscramb ) @@ -2462,7 +2443,6 @@ WRITE8_MEMBER(tcaveman_state::plate_w) prepare_display(); } - // config static INPUT_PORTS_START( tcaveman ) @@ -2567,7 +2547,6 @@ READ8_MEMBER(alnchase_state::input_r) return read_inputs(2); } - // config /* physical button layout and labels is like this: diff --git a/src/mame/drivers/novagf8.cpp b/src/mame/drivers/novagf8.cpp index ac93f104f49..c8474d2c3c9 100644 --- a/src/mame/drivers/novagf8.cpp +++ b/src/mame/drivers/novagf8.cpp @@ -170,7 +170,7 @@ static INPUT_PORTS_START( delta1 ) PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("Enter") PORT_START("RESET") // not on matrix - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_N) PORT_CHANGED_MEMBER(DEVICE_SELF, novagf8_state, reset_button, 0) PORT_NAME("New Game") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_N) PORT_CHANGED_MEMBER(DEVICE_SELF, novagf8_state, reset_button, nullptr) PORT_NAME("New Game") INPUT_PORTS_END diff --git a/src/mame/layout/unkeinv.lay b/src/mame/layout/unkeinv.lay new file mode 100644 index 00000000000..071b37f75a9 --- /dev/null +++ b/src/mame/layout/unkeinv.lay @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 89fa6283d24..0eb0bd614b4 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -14676,6 +14676,7 @@ lightfgt // Milton Bradley mdallas // Mattel plus1 // Milton Bradley qkracer // National Semiconductor +unkeinv // @source:hh_hmcs40.cpp alnattck // Coleco