diff --git a/src/mame/excellent/lastbank.cpp b/src/mame/excellent/lastbank.cpp index b3bf90fd771..ccdd05df58d 100644 --- a/src/mame/excellent/lastbank.cpp +++ b/src/mame/excellent/lastbank.cpp @@ -46,6 +46,7 @@ public: , m_maincpu(*this, "maincpu") , m_oki(*this, "oki") , m_essnd(*this, "essnd") + , m_key{ { *this, "P1_KEY%u", 0U }, { *this, "P2_KEY%u", 0U } } { } void lastbank(machine_config &config); @@ -65,6 +66,8 @@ private: required_device m_oki; required_device m_essnd; + required_ioport_array<5> m_key[2]; + uint8_t m_key_select = 0; uint8_t m_sound_flags = 0; @@ -72,7 +75,7 @@ private: void output_w(offs_t offset, uint8_t data); - uint8_t key_matrix_r(); + template uint8_t key_matrix_r(); void key_select_w(uint8_t data); TIMER_DEVICE_CALLBACK_MEMBER(irq_scanline); @@ -108,21 +111,16 @@ void lastbank_state::screen_vblank(int state) } +template uint8_t lastbank_state::key_matrix_r() { - const char *const keynames[2][5] = { - {"P1_KEY0", "P1_KEY1", "P1_KEY2", "P1_KEY3", "P1_KEY4"}, - {"P2_KEY0", "P2_KEY1", "P2_KEY2", "P2_KEY3", "P2_KEY4"} }; - uint8_t res; - int i; + uint8_t res = 0xff; - res = 0xff; - - for(i=0;i<5;i++) - { - if(m_key_select & 1 << i) - res = ioport(keynames[0][i])->read(); - } + if (BIT(m_key_select, 0)) res &= m_key[Player][0]->read(); + if (BIT(m_key_select, 1)) res &= m_key[Player][1]->read(); + if (BIT(m_key_select, 2)) res &= m_key[Player][2]->read(); + if (BIT(m_key_select, 3)) res &= m_key[Player][3]->read(); + if (BIT(m_key_select, 4)) res &= m_key[Player][4]->read(); return res; } @@ -186,8 +184,8 @@ void lastbank_state::main_map(address_map &map) map(0xa805, 0xa805).w("soundlatch1", FUNC(generic_latch_8_device::write)); map(0xa806, 0xa806).w("soundlatch2", FUNC(generic_latch_8_device::write)); map(0xa807, 0xa807).nopw(); // hopper? - map(0xa808, 0xa808).r(FUNC(lastbank_state::key_matrix_r)); - map(0xa80c, 0xa80c).r(FUNC(lastbank_state::key_matrix_r)); + map(0xa808, 0xa808).r(FUNC(lastbank_state::key_matrix_r<0>)); + map(0xa80c, 0xa80c).r(FUNC(lastbank_state::key_matrix_r<1>)); map(0xa81c, 0xa81c).portr("DSW1"); map(0xa81d, 0xa81d).portr("DSW2"); map(0xa81e, 0xa81e).portr("DSW3"); @@ -292,6 +290,22 @@ static INPUT_PORTS_START( lastbank ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("2-3") PORT_CODE(KEYCODE_A) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) + // TODO + PORT_START("P2_KEY0") + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) + + PORT_START("P2_KEY1") + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) + + PORT_START("P2_KEY2") + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) + + PORT_START("P2_KEY3") + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) + + PORT_START("P2_KEY4") + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_START("DSW1") PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:1") PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) @@ -555,7 +569,7 @@ INPUT_PORTS_END TIMER_DEVICE_CALLBACK_MEMBER(lastbank_state::irq_scanline) { - int scanline = param; + int const scanline = param; if (scanline == 240 && (m_maincpu->irq_enable() & 4)) { @@ -571,7 +585,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(lastbank_state::irq_scanline) void lastbank_state::lastbank(machine_config &config) { // basic machine hardware - TC0091LVC(config, m_maincpu, XTAL(14'318'181) / 4); //!!! TC0091LVC !!! + TC0091LVC(config, m_maincpu, 14.318181_MHz_XTAL / 4); m_maincpu->set_addrmap(AS_PROGRAM, &lastbank_state::main_map); m_maincpu->set_tilemap_xoffs(0,192); // TODO: correct? @@ -579,7 +593,7 @@ void lastbank_state::lastbank(machine_config &config) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - z80_device &audiocpu(Z80(config, "audiocpu", XTAL(14'318'181) / 4)); + z80_device &audiocpu(Z80(config, "audiocpu", 14.318181_MHz_XTAL / 4)); audiocpu.set_addrmap(AS_PROGRAM, &lastbank_state::audio_map); audiocpu.set_addrmap(AS_IO, &lastbank_state::audio_io); // yes, we have no interrupts @@ -602,7 +616,7 @@ void lastbank_state::lastbank(machine_config &config) GENERIC_LATCH_8(config, "soundlatch1"); GENERIC_LATCH_8(config, "soundlatch2"); - OKIM6295(config, m_oki, 1'000'000, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.75); + OKIM6295(config, m_oki, 1_MHz_XTAL, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.75); ES8712(config, m_essnd, 0); m_essnd->msm_write_handler().set("msm", FUNC(msm6585_device::data_w)); @@ -642,7 +656,7 @@ ROM_START( lastbank ) ROM_LOAD( "7.u60", 0x00000, 0x80000, CRC(41be7146) SHA1(00f1c0d5809efccf888e27518a2a5876c4b633d8) ) ROM_END -ROM_START( fever13 ) // ES-9410 PCB (TC0090LVC marked ES9402LA, Z80, ES8712,14'318'181 MHz XTAL, OKI M6295 with 1000J resonator, MSM6585 with 640J resonator) +ROM_START( fever13 ) // ES-9410 PCB (TC0090LVC marked ES9402LA, Z80, ES8712, 14'318'181 MHz XTAL, OKI M6295 with 1000J resonator, MSM6585 with 640J resonator) ROM_REGION( 0x40000, "maincpu", 0 ) ROM_LOAD( "9.u9", 0x00000, 0x40000, CRC(a17a6a9c) SHA1(b2bff250d1ea879bcdd9bea92537975a168babc8) ) @@ -662,5 +676,5 @@ ROM_END } // Anonymous namespace -GAME( 1994, lastbank, 0, lastbank, lastbank, lastbank_state, empty_init, ROT0, "Excellent System", "Last Bank (v1.16)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, fever13, 0, lastbank, fever13, fever13_state, empty_init, ROT0, "Excellent System", "Fever 13 (Japan, v1.3)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) // missing GFX dump +GAME( 1994, lastbank, 0, lastbank, lastbank, lastbank_state, empty_init, ROT0, "Excellent System", "Last Bank (v1.16)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, fever13, 0, lastbank, fever13, fever13_state, empty_init, ROT0, "Excellent System", "Fever 13 (Japan, v1.3)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) // missing GFX ROM dump diff --git a/src/mame/igs/cabaret.cpp b/src/mame/igs/cabaret.cpp index 200e695f630..8e95934d6c1 100644 --- a/src/mame/igs/cabaret.cpp +++ b/src/mame/igs/cabaret.cpp @@ -579,5 +579,5 @@ ROM_END GAME( 1992, cabaret, 0, cabaret, cabaret, cabaret_state, init_cabaret, ROT0, "AMT Co. Ltd.", "Cabaret Show", MACHINE_NOT_WORKING ) -GAME( 1992, double8l, 0, cabaret, cabaret, cabaret_state, init_double8l, ROT0, "AMT Co. Ltd.", "Double 8 Lines", MACHINE_NOT_WORKING ) // missing internal ROM dump +GAME( 1992, double8l, 0, cabaret, cabaret, cabaret_state, init_double8l, ROT0, "AMT Co. Ltd.", "Double 8 Line", MACHINE_NOT_WORKING ) // missing internal ROM dump GAME( 1992, kungfua, kungfu, cabaret, cabaret, cabaret_state, init_kungfua, ROT0, "IGS", "Kung Fu Fighters (IGS, v100)", MACHINE_NOT_WORKING ) // missing internal ROM dump diff --git a/src/mame/igs/goldstar.cpp b/src/mame/igs/goldstar.cpp index b0bf90cdfe3..cfaa22ba198 100644 --- a/src/mame/igs/goldstar.cpp +++ b/src/mame/igs/goldstar.cpp @@ -523,6 +523,7 @@ public: void init_lucky8a(); void init_lucky8f(); void init_lucky8l(); + void init_lucky8m(); void init_magoddsc(); void init_flaming7(); void init_flam7_tw(); @@ -582,6 +583,7 @@ public: void init_cb3c(); void init_cb3e(); void init_cb3f(); + void init_cb3g(); void init_cherrys(); void init_chrygld(); void init_chry10(); @@ -12115,6 +12117,36 @@ ROM_START( cb3f ) // original Wing W4 PCB + subboard with Z80, ROM, RAM and encr ROM_LOAD( "dm74s288.d12", 0x0000, 0x0020, CRC(6df3f972) SHA1(0096a7f7452b70cac6c0752cb62e24b643015b5c) ) ROM_END + + // original Wing W4 PCB + Dyna D9005 subboard with Z80, ROM, RAM and Dyna DP 1200-5 custom. GFX ROMs are identical to many other sets. +ROM_START( cb3g ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "cb3-s4.ic5", 0x00000, 0x10000, CRC(ad0fa0b7) SHA1(29b43e764ca2712406b37d24d942c90992ea46e1) ) // encrypted, on subboard + + ROM_REGION( 0x18000, "gfx1", 0 ) + ROM_LOAD( "cb3-5.7h", 0x00000, 0x08000, CRC(83650a94) SHA1(e79420ab559d3f74013708767ca3f238fd333fb7) ) + ROM_LOAD( "cb3-6.8h", 0x08000, 0x08000, CRC(2f46a3f5) SHA1(3e6022ee8f84039e48f41aea5e68ee28aabdc556) ) + ROM_LOAD( "cb3-7.10h", 0x10000, 0x08000, CRC(dcf97517) SHA1(0a29696e0464c8878c499b1786a17080fd088a72) ) + + ROM_REGION( 0x8000, "gfx2", 0 ) + ROM_LOAD( "cb3-1.1h", 0x00000, 0x02000, CRC(7cc6d26b) SHA1(de33e8985affce7bd3ead89463117c9aaa93d5e4) ) + ROM_LOAD( "cb3-2.3h", 0x02000, 0x02000, CRC(e73ea4e3) SHA1(c9fd56461f6986d6bc170403d298fcc408a524e9) ) + ROM_LOAD( "cb3-3.4h", 0x04000, 0x02000, CRC(91162010) SHA1(3acc21e7074602b247f2f392eb181802092d2f21) ) + ROM_LOAD( "cb3-4.5h", 0x06000, 0x02000, CRC(cbcc6bfb) SHA1(5bafc934fef1f50d8c182c39d3a7ce795c89d175) ) + + // all the PROMs weren't dumped for this set, marking bad as precaution + ROM_REGION( 0x0200, "proms", 0 ) + ROM_LOAD_NIB_LOW( "n82s129.13g", 0x0000, 0x0100, BAD_DUMP CRC(59ac98e4) SHA1(5fc0f1a48c49c956cdb8826e20663dc57a9175e4) ) // 1st bank colors, low 4 bits. + ROM_LOAD_NIB_HIGH( "n82s129.14g", 0x0000, 0x0100, BAD_DUMP CRC(0d8f35bd) SHA1(0c2a0145cdaaf9beabdce241731a36b0c65f18a2) ) // 1st bank colors, high 4 bits. + ROM_LOAD( "dm74s288.13d", 0x0080, 0x0020, BAD_DUMP CRC(77a85e21) SHA1(3b41e0ab7cc55c5d78914d23e8289383f5bd5654) ) // 2nd bank colors + + ROM_REGION( 0x100, "unkprom", 0 ) + ROM_LOAD( "82s129.f3", 0x0000, 0x0100, BAD_DUMP CRC(1d668d4a) SHA1(459117f78323ea264d3a29f1da2889bbabe9e4be) ) + + ROM_REGION( 0x20, "unkprom2", 0 ) + ROM_LOAD( "dm74s288.d12", 0x0000, 0x0020, BAD_DUMP CRC(6df3f972) SHA1(0096a7f7452b70cac6c0752cb62e24b643015b5c) ) +ROM_END + /* Cherry Gold I (bootleg) It runs in CB3e similar hardware... @@ -14454,6 +14486,38 @@ ROM_START( lucky8l ) ROM_LOAD( "w4.d12", 0x0000, 0x0117, CRC(41b55fb0) SHA1(f31a31dc2c0789d08957785e8c8f804690133450) ) // GAL16V8D ROM_END +// original Wing PCB with a small riser board for CPU, logic and 2 8-DIP banks. GFX ROMs are identical to many other sets. +ROM_START( lucky8m ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "28r.b12", 0x0000, 0x4000, CRC(9d7bc7f8) SHA1(93c0297dbe1579b6326d43d743d2b95264e7e0aa) ) + ROM_LOAD( "29r.b14", 0x4000, 0x4000, CRC(7b2b0c0c) SHA1(1acb20be5fbfdf6813f8a5257f9bd771b37504ea) ) + + ROM_REGION( 0x18000, "gfx1", 0 ) + ROM_LOAD( "eagle-5.h7", 0x00000, 0x8000, CRC(59026af3) SHA1(3d7f7e78968ca26275635aeaa0e994468a3da575) ) + ROM_LOAD( "eagle-6.h8", 0x08000, 0x8000, CRC(67a073c1) SHA1(36194d57d0dc0601fa1fdf2e6806f11b2ea6da36) ) + ROM_LOAD( "eagle-7.h10", 0x10000, 0x8000, CRC(c415b9d0) SHA1(fd558fe8a116c33bbd712a639224d041447a45c1) ) + + ROM_REGION( 0x8000, "gfx2", 0 ) + ROM_LOAD( "eagle-1.h1", 0x0000, 0x2000, CRC(29d6f197) SHA1(1542ca457594f6b7fe8f28f7d78023edd7021bc8) ) + ROM_LOAD( "eagle-2.h3", 0x2000, 0x2000, CRC(5f812e65) SHA1(70d9ea82f9337936bf21f82b6961768d436f3a6f) ) + ROM_LOAD( "eagle-3.h4", 0x4000, 0x2000, CRC(898b9ed5) SHA1(11b7d1cfcf425d00d086c74e0dbcb72068dda9fe) ) + ROM_LOAD( "eagle-4.h5", 0x6000, 0x2000, CRC(4f7cfb35) SHA1(0617cf4419be00d9bacc78724089cb8af4104d68) ) + + // all the PROMs weren't dumped for this set, marking bad as precaution + ROM_REGION( 0x200, "proms", 0 ) + ROM_LOAD( "d12", 0x0000, 0x0100, BAD_DUMP CRC(23e81049) SHA1(78071dae70fad870e972d944642fb3a2374be5e4) ) + ROM_LOAD( "prom4", 0x0100, 0x0100, BAD_DUMP CRC(526cf9d3) SHA1(eb779d70f2507d0f26d225ac8f5de8f2243599ca) ) + + ROM_REGION( 0x20, "proms2", 0 ) + ROM_LOAD( "d13", 0x0000, 0x0020, BAD_DUMP CRC(c6b41352) SHA1(d7c3b5aa32e4e456c9432a13bede1db6d62eb270) ) + + ROM_REGION( 0x100, "unkprom", 0 ) + ROM_LOAD( "g14", 0x0000, 0x0100, BAD_DUMP CRC(bd48de71) SHA1(e4fa1e774af1499bc568be5b2deabb859d8c8172) ) + + ROM_REGION( 0x20, "unkprom2", 0 ) + ROM_LOAD( "g13", 0x0000, 0x0020, BAD_DUMP CRC(6df3f972) SHA1(0096a7f7452b70cac6c0752cb62e24b643015b5c) ) +ROM_END + ROM_START( animalw ) // according to the dumper: runs on the same HW as lucky8 but at the two 8255 has some shorts ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "rom8.bin", 0x0000, 0x8000, CRC(8826e4e7) SHA1(70cff8c5ce75ab0f568e8cdf39ef9165b73fa2c0) ) @@ -21256,6 +21320,44 @@ void wingco_state::init_lucky8l() m_palette->update(); } +void wingco_state::init_lucky8m() +{ + uint8_t *rom = memregion("maincpu")->base(); + + for (int i = 0; i < 0x8000; i++) + { + m_decrypted_opcodes[i] = rom[i]; + + // only the opcodes in the first 0x400 bytes and over 0x6200 are encrypted + if (i < 0x400 || (i >= 0x6200 && i < 0x6400) || i >= 0x7c00) + { + uint8_t x = rom[i]; + + switch(i & 0x1e) + { + case 0x00: x = bitswap<8>(x ^ 0x72, 5, 3, 7, 2, 6, 4, 0, 1); break; + case 0x02: x = bitswap<8>(x ^ 0x14, 0, 2, 1, 6, 4, 3, 5, 7); break; + case 0x04: x = bitswap<8>(x ^ 0x7e, 5, 6, 7, 4, 3, 2, 0, 1); break; + case 0x06: x = bitswap<8>(x ^ 0x5c, 0, 6, 1, 4, 3, 2, 5, 7); break; + case 0x08: x = bitswap<8>(x ^ 0xd9, 7, 4, 1, 6, 3, 2, 5, 0); break; + case 0x0a: x = bitswap<8>(x ^ 0x02, 1, 6, 7, 4, 3, 2, 0, 5); break; + case 0x0c: x = bitswap<8>(x ^ 0xd9, 7, 4, 1, 6, 3, 2, 5, 0); break; + case 0x0e: x = bitswap<8>(x ^ 0x02, 1, 6, 7, 4, 3, 2, 0, 5); break; + case 0x10: x = bitswap<8>(x ^ 0x50, 7, 3, 5, 2, 6, 4, 1, 0); break; + case 0x12: x = bitswap<8>(x ^ 0x14, 7, 2, 5, 6, 4, 3, 1, 0); break; + case 0x14: x = bitswap<8>(x ^ 0x5c, 7, 6, 5, 4, 3, 2, 1, 0); break; + case 0x16: x = bitswap<8>(x ^ 0x5c, 7, 6, 5, 4, 3, 2, 1, 0); break; + case 0x18: x = bitswap<8>(x ^ 0xd9, 7, 4, 1, 6, 3, 2, 5, 0); break; + case 0x1a: x = bitswap<8>(x ^ 0x02, 1, 6, 7, 4, 3, 2, 0, 5); break; + case 0x1c: x = bitswap<8>(x ^ 0xd9, 7, 4, 1, 6, 3, 2, 5, 0); break; + case 0x1e: x = bitswap<8>(x ^ 0x02, 1, 6, 7, 4, 3, 2, 0, 5); break; + } + + m_decrypted_opcodes[i] = x; + } + } +} + void wingco_state::init_nd8lines() { uint8_t *rom = memregion("maincpu")->base(); @@ -21723,6 +21825,18 @@ void cb3_state::init_cb3f() rom[i] = cb3f_decrypt(rom[i], i); } +void cb3_state::init_cb3g() +{ + uint8_t *rom = memregion("maincpu")->base(); + + std::vector buffer(0x10000); + + memcpy(&buffer[0], rom, 0x10000); + + for (int i = 0; i < 0x10000; i++) + rom[i] = buffer[bitswap<24>(i, 23, 22, 21, 20, 19, 18, 17, 16, 15, 13, 12, 14, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0)]; +} + /* todo: remove these patches! */ void unkch_state::init_unkch1() { @@ -22079,6 +22193,7 @@ GAME( 199?, cb3c, ncb3, cb3c, chrygld, cb3_state, init_cb3c GAMEL( 199?, cb3d, ncb3, ncb3, ncb3, cb3_state, empty_init, ROT0, "bootleg", "Cherry Bonus III (set 3)", 0, layout_cherryb3 ) GAMEL( 199?, cb3e, ncb3, cb3e, chrygld, cb3_state, init_cb3e, ROT0, "bootleg", "Cherry Bonus III (set 4, encrypted bootleg)", 0, layout_chrygld ) GAMEL( 199?, cb3f, ncb3, ncb3, ncb3, cb3_state, init_cb3f, ROT0, "bootleg (Cleco)", "Cherry Bonus III (set 5, encrypted bootleg)", MACHINE_NOT_WORKING, layout_chrygld ) // partially decrypted, stops at 'call attendant' +GAMEL( 199?, cb3g, ncb3, ncb3, ncb3, cb3_state, init_cb3g, ROT0, "Dyna", "Cherry Bonus III (ver.1.40, set 6)", 0, layout_cherryb3 ) GAMEL( 199?, chryglda, ncb3, cb3e, chrygld, cb3_state, init_cb3e, ROT0, "bootleg", "Cherry Gold I (set 2, encrypted bootleg)", 0, layout_chrygld ) // Runs in CB3e hardware. GAME( 1994, chryangla, ncb3, chryangla,ncb3, cb3_state, init_chryangl, ROT0, "bootleg (G.C.I.)", "Cherry Angel (encrypted, W-4 hardware)", MACHINE_NOT_WORKING ) // DYNA CB3 V1.40 string, decrypted but only test screens work @@ -22165,6 +22280,7 @@ GAMEL( 1989, lucky8i, lucky8, lucky8, lucky8, wingco_state, empty_ini GAMEL( 199?, lucky8j, lucky8, lucky8, lucky8, wingco_state, empty_init, ROT0, "", "New Lucky 8 Lines Crown Turbo (Hack)", MACHINE_NOT_WORKING, layout_lucky8 ) // 2 control sets... GAMEL( 1989, lucky8k, lucky8, lucky8k, lucky8, wingco_state, empty_init, ROT0, "Wing Co., Ltd.", "New Lucky 8 Lines (set 10, W-4, encrypted NEC D315-5136)", 0, layout_lucky8 ) // 2 control sets... GAMEL( 1989, lucky8l, lucky8, lucky8, lucky8, wingco_state, init_lucky8l, ROT0, "Wing Co., Ltd.", "New Lucky 8 Lines (set 11, W-4)", MACHINE_WRONG_COLORS, layout_lucky8 ) // uses a strange mix of PLDs and PROMs for colors +GAMEL( 1989, lucky8m, lucky8, lucky8f, lucky8, wingco_state, init_lucky8m, ROT0, "Wing Co., Ltd.", "New Lucky 8 Lines (set 12, W-4, encrypted)", 0, layout_lucky8 ) GAMEL( 198?, ns8lines, 0, lucky8, lucky8b, wingco_state, empty_init, ROT0, "", "New Lucky 8 Lines / New Super 8 Lines (W-4)", 0, layout_lucky8p1 ) // only 1 control set... GAMEL( 1985, ns8linesa, ns8lines, lucky8, lucky8b, wingco_state, empty_init, ROT0, "Yamate (bootleg)", "New Lucky 8 Lines / New Super 8 Lines (W-4, Lucky97 HW)", 0, layout_lucky8p1 ) // only 1 control set... GAMEL( 198?, ns8linew, ns8lines, lucky8, ns8linew, wingco_state, empty_init, ROT0, "", "New Lucky 8 Lines / New Super 8 Lines (F-5, Witch Bonus)", 0, layout_lucky8 ) // 2 control sets... diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 61cbf57b247..bee4f940240 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -19992,6 +19992,7 @@ cb3c // (c) 199? Dyna Electronics cb3d // (c) 199? Dyna Electronics cb3e // 199? bootleg cb3f // 199? bootleg +cb3g // (c) 199? Dyna Electronics cherry96 // bootleg chry10 // bootleg chryangl // (c) 199? Dyna Electronics @@ -20079,6 +20080,7 @@ lucky8i // 199?, Eagle, licensed by Wing lucky8j // 199?, hack lucky8k // (c) 1989 Wing. With CPU NEC D315-5136 lucky8l // (c) 1989 Wing Co. Ltd +lucky8m // (c) 1989 Wing Co. Ltd luckybar // unknown luckylad // (c) 1985 Wing Co. Ltd magodds // 198? (c) Micro Manufacturing Ltd.