From a915e9ea3f4a85f21f333a08667ab0c3e1140a9c Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Mon, 17 Jul 2023 22:55:51 +0200 Subject: New systems marked not working ------------------------------ Doreamon (Power Link) [hammy] Love Pi Chan (Power Link) [Recreativos Piscis] unknown golf game [hammy] - dataeast/dec8.cpp: redumped meikyuha, confirmed it's a bootleg, added correct PROMs [Guru] New working clones ------------------ Nemo (Japan 901120, 89625B-1 ROM board) [Corrado Tomaselli, Brian Troha] --- src/mame/capcom/cps1.cpp | 55 +++++++++++++++- src/mame/capcom/cps1_v.cpp | 4 +- src/mame/dataeast/dec8.cpp | 110 +++++++++++++++++++------------- src/mame/dataeast/dec8.h | 2 + src/mame/dataeast/decrmc3.h | 1 - src/mame/mame.lst | 8 ++- src/mame/misc/unkgolf.cpp | 150 ++++++++++++++++++++++++++++++++++++++++++++ src/mame/nmk/nmkmedal.cpp | 32 ++++++++-- 8 files changed, 307 insertions(+), 55 deletions(-) create mode 100644 src/mame/misc/unkgolf.cpp diff --git a/src/mame/capcom/cps1.cpp b/src/mame/capcom/cps1.cpp index 1a5c1fd14d6..d56829b0388 100644 --- a/src/mame/capcom/cps1.cpp +++ b/src/mame/capcom/cps1.cpp @@ -6987,10 +6987,60 @@ ROM_START( nemoj ) ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) ROM_REGION( 0x0200, "bboardplds", 0 ) - ROM_LOAD( "nm22b.1a", 0x0000, 0x0117, NO_DUMP ) + ROM_LOAD( "nm22b.1a", 0x0000, 0x0117, CRC(378881e1) SHA1(0359a5936be87d38913a0fb881269685b6cab31c) ) ROM_LOAD( "lwio.12c", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) ROM_END +/* B-Board 89625B-1 */ +ROM_START( nemoja ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "nmj_36a.12f", 0x00000, 0x20000, CRC(daeceabb) SHA1(ebd44922be9d07a3d3411af52edee8a60cb11dad) ) // data identical to nemoj, only 4 program ROMs explicitly labaled with "J" + ROM_LOAD16_BYTE( "nmj_42a.12h", 0x00001, 0x20000, CRC(55024740) SHA1(4bacbd191bb435de5dc548ac7fa16ed286bd2d3b) ) + ROM_LOAD16_BYTE( "nmj_37a.13f", 0x40000, 0x20000, CRC(619068b6) SHA1(2507c6f77a06a80f913c848dcb6816bcbf4bba8a) ) + ROM_LOAD16_BYTE( "nmj_43a.13h", 0x40001, 0x20000, CRC(a948a53b) SHA1(65c2abf321cf8b171bbfbb51ed57bc99eb552ca9) ) + ROM_LOAD16_BYTE( "nm_34.10f", 0x80000, 0x20000, CRC(5737feed) SHA1(2635715cc21381e9f0a4ae4227eb5896886ee3e2) ) // == nm-32m.8h + ROM_LOAD16_BYTE( "nm_40.10h", 0x80001, 0x20000, CRC(8a4099f3) SHA1(d1af73d8992aa9ef6dcd729675a2fbea8c290311) ) // == nm-32m.8h + ROM_LOAD16_BYTE( "nm_35.11f", 0xc0000, 0x20000, CRC(bd11a7f8) SHA1(1c09db7cbd132866d4f08720cdd60707069f8580) ) // == nm-32m.8h + ROM_LOAD16_BYTE( "nm_41.11h", 0xc0001, 0x20000, CRC(6309603d) SHA1(51bee785ddb87340ad56960ad816c0513bc93eb8) ) // == nm-32m.8h + + ROM_REGION( 0x200000, "gfx", 0 ) + ROM_LOAD64_BYTE( "nm_09.4b", 0x000000, 0x20000, CRC(9d60d286) SHA1(69ea9d584d735c3629e1c017cbd966df264e4324) ) // == nm-5m.7a + ROM_LOAD64_BYTE( "nm_01.4a", 0x000001, 0x20000, CRC(8a83f7c4) SHA1(ef24f47517d22dfecd3e6b5ef76e38073f6b81ba) ) // == nm-5m.7a + ROM_LOAD64_BYTE( "nm_13.9b", 0x000002, 0x20000, CRC(a4909fe0) SHA1(6b1a0e8c2bd2979f7fcc363a86de28d3e365709c) ) // == nm-7m.9a + ROM_LOAD64_BYTE( "nm_05.9a", 0x000003, 0x20000, CRC(16db1e61) SHA1(76ff93edd4d40a2527744585a87052a3fc0c77f6) ) // == nm-7m.9a + ROM_LOAD64_BYTE( "nm_24.5e", 0x000004, 0x20000, CRC(3312c648) SHA1(9e4f584fa360de16d42d65619dbe9426d4322c00) ) // == nm-1m.3a + ROM_LOAD64_BYTE( "nm_17.5c", 0x000005, 0x20000, CRC(ccfc50e2) SHA1(a238f050d11e925b1c0037bb860289ab746b7039) ) // == nm-1m.3a + ROM_LOAD64_BYTE( "nm_38.8h", 0x000006, 0x20000, CRC(ae98a997) SHA1(d2d499395e43aa85d9098966d04fde6bd055900b) ) // == nm-3m.5a + ROM_LOAD64_BYTE( "nm_32.8f", 0x000007, 0x20000, CRC(b3704dde) SHA1(d107fecb45f34e877faabffcdaba437935754906) ) // == nm-3m.5a + ROM_LOAD64_BYTE( "nm_10.5b", 0x100000, 0x20000, CRC(33c1388c) SHA1(cd1ec3e8d6d2b5a65648c749426ec4e254f93d8c) ) // == nm-5m.7a + ROM_LOAD64_BYTE( "nm_02.5a", 0x100001, 0x20000, CRC(84c69469) SHA1(700cf7be644056b1dbc5d8bed37caf6383a81cfe) ) // == nm-5m.7a + ROM_LOAD64_BYTE( "nm_14.10b", 0x100002, 0x20000, CRC(66612270) SHA1(0c996571459ac44d5ca5683bdcb6a6f08dd83480) ) // == nm-7m.9a + ROM_LOAD64_BYTE( "nm_06.10a", 0x100003, 0x20000, CRC(8b9bcf95) SHA1(e03c6dc4946a37bdab68d929722b1e10a2aca31a) ) // == nm-7m.9a + ROM_LOAD64_BYTE( "nm_25.7e", 0x100004, 0x20000, CRC(acfc84d2) SHA1(4cd9f3bc32ef62cb3b414de68db34f950d10f406) ) // == nm-1m.3a + ROM_LOAD64_BYTE( "nm_18.7c", 0x100005, 0x20000, CRC(4347deed) SHA1(fdd9b3f1ddad42464dcc7298e5b740ffe1622343) ) // == nm-1m.3a + ROM_LOAD64_BYTE( "nm_39.9h", 0x100006, 0x20000, CRC(6a274ecd) SHA1(66259fd6e71cfdb618c189b7f18749a996aacfdf) ) // == nm-3m.5a + ROM_LOAD64_BYTE( "nm_33.9f", 0x100007, 0x20000, CRC(c469dc74) SHA1(d06956eef5f9b31779f218d597a1a504c1e16bad) ) // == nm-3m.5a + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "nm_23.13b", 0x00000, 0x08000, CRC(8d3c5a42) SHA1(cc7477da80f3d08cf014379318e39cb75b5d3205) ) // 1 byte different from nemo, pcb verified + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "nm_30.12c", 0x00000, 0x20000, CRC(bab333d4) SHA1(c1d0fb61ec46f17eb7edf69e1ad5ac91b5d51daa) ) // == nme_18.11c + ROM_LOAD( "nm_31.13c", 0x20000, 0x20000, CRC(2650a0a8) SHA1(e9e8cc1b27a2cb3e87124061fabcf42982f0611f) ) // == nme_19.12c + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "nm22b.1a", 0x0000, 0x0117, CRC(378881e1) SHA1(0359a5936be87d38913a0fb881269685b6cab31c) ) + ROM_LOAD( "iob1.12e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) // uses IOB1 due to different ROM board, otherwise identical to nemoj +ROM_END + /* B-Board 90629B-3 */ ROM_START( sf2 ) ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ @@ -14845,7 +14895,8 @@ GAME( 1990, cawingur1, cawing, cps1_10MHz, cawing, cps_state, init_cps1, GAME( 1990, cawingj, cawing, cps1_10MHz, cawing, cps_state, init_cps1, ROT0, "Capcom", "U.S. Navy (Japan 901012)", MACHINE_SUPPORTS_SAVE ) GAME( 1990, nemo, 0, cps1_10MHz, nemo, cps_state, init_cps1, ROT0, "Capcom", "Nemo (World 901130)", MACHINE_SUPPORTS_SAVE ) // "ETC" GAME( 1990, nemor1, nemo, cps1_10MHz, nemo, cps_state, init_cps1, ROT0, "Capcom", "Nemo (World 901109)", MACHINE_SUPPORTS_SAVE ) // "ETC" -GAME( 1990, nemoj, nemo, cps1_10MHz, nemo, cps_state, init_cps1, ROT0, "Capcom", "Nemo (Japan 901120)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, nemoj, nemo, cps1_10MHz, nemo, cps_state, init_cps1, ROT0, "Capcom", "Nemo (Japan 901120, 89622B-3 ROM board)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, nemoja, nemo, cps1_10MHz, nemo, cps_state, init_cps1, ROT0, "Capcom", "Nemo (Japan 901120, 89625B-1 ROM board)", MACHINE_SUPPORTS_SAVE ) GAME( 1991, sf2, 0, cps1_10MHz, sf2, cps_state, init_cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (World 910522)", MACHINE_SUPPORTS_SAVE ) // "ETC" GAME( 1991, sf2ea, sf2, cps1_10MHz, sf2, cps_state, init_cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (World 910204)", MACHINE_SUPPORTS_SAVE ) // "ETC" GAME( 1991, sf2eb, sf2, cps1_10MHz, sf2, cps_state, init_cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (World 910214)", MACHINE_SUPPORTS_SAVE ) // "ETC" diff --git a/src/mame/capcom/cps1_v.cpp b/src/mame/capcom/cps1_v.cpp index 04f42b0e1da..b6981fc02a5 100644 --- a/src/mame/capcom/cps1_v.cpp +++ b/src/mame/capcom/cps1_v.cpp @@ -97,6 +97,7 @@ U.S. Navy (Japan 901012) 89625B-1 CA Nemo (World 901109) 1990 89624B-3 NM24B IOB1 88622-C-5 CPS-B-15 DL-0411-10010 None Nemo (World 901130) 89624B-3 NM24B IOB1 88622-C-5 CPS-B-15 DL-0411-10010 None Nemo (Japan 901120) 89622B-3 NM22B LWIO 88622-C-5 CPS-B-15 DL-0411-10010 None +Nemo (Japan 901120) 89625B-1 NM22B IOB1 88622-C-5 CPS-B-15 DL-0411-10010 None Street Fighter II: The World Warrior (World 910129) 1991 90629B-2 STF29 IOB1 90632C-1 CPS-B-17 DL-0411-10012 C632 Street Fighter II: The World Warrior (World 910204)# 90629B-2 STF29 IOB1 90632C-1 CPS-B-17 DL-0411-10012 C632 @@ -1800,7 +1801,8 @@ static const struct CPS1config cps1_config_table[]= {"chikij", CPS_B_14, mapper_CK22B }, // equivalent to CK24B {"nemo", CPS_B_15, mapper_NM24B }, {"nemor1", CPS_B_15, mapper_NM24B }, - {"nemoj", CPS_B_15, mapper_NM24B }, // wrong, this set uses NM22B, still not dumped + {"nemoj", CPS_B_15, mapper_NM24B }, // wrong, this set uses NM22B (dumped), specific mapper not implemented + {"nemoja", CPS_B_15, mapper_NM24B }, // wrong, this set uses NM22B (dumped), specific mapper not implemented {"cawing", CPS_B_16, mapper_CA24B }, {"cawingr1", CPS_B_16, mapper_CA24B }, {"cawingu", CPS_B_05, mapper_CA22B }, // equivalent to CA24B diff --git a/src/mame/dataeast/dec8.cpp b/src/mame/dataeast/dec8.cpp index fcf96e3e7d4..e71b06fdd09 100644 --- a/src/mame/dataeast/dec8.cpp +++ b/src/mame/dataeast/dec8.cpp @@ -3100,15 +3100,14 @@ ROM_END /* -Meikyuu Hunter G (Japan, set 2) +Meikyuu Hunter G (Japan, bootleg) -set 2 - the code is very different, but is this an original board? it lacks original labels - and the IC positions are different on the sprite roms +the code is very different, this is a bootleg board. It lacks original labels +and the IC positions are different on the sprite ROMs this version lacks the linescroll effects when starting the game / demoplay, but the demoplay seems -more complete, whereas in set 1 the players appear to get stuck before reaching the boss - -also is 27512.15f a good dump? graphic roms usually match, might be a good idea to check 27512.6d too +more complete, whereas in the original the players appear to get stuck before reaching the boss. +Probably bootlegged from a different revision. CPU --- @@ -3134,7 +3133,7 @@ CPUs PCB (AT0789A): 3x P27256 2x TMM24512 5x M27512ZB -3x N82S137N (not dumped) +3x N82S137N ROMs PCB (AT0789B): 8x M27512ZB @@ -3151,17 +3150,18 @@ ROMs PCB (AT0789B): ------------------------------------ There is a small piggyback attached under CPUs PCB full of 74Sxx -This boards looks like a legit PCB from Data East, even if a Data East logo is not present. +This boards looks like a legit PCB from Data East, even if a Data East logo is not present, +but it's confirmed to be a bootleg. ALL MEMORIES ARE MASK ROMS! */ -ROM_START( meikyuha ) +ROM_START( meikyuhbl ) ROM_REGION( 0x40000, "maincpu", 0 ) ROM_LOAD( "27256.1d", 0x08000, 0x08000, CRC(d5b5e8a2) SHA1(0155d1d0ddbd764b960148c3c9ef34223e101659) ) // dw-01-5.1d matched 6.552124% ROM_LOAD( "24512.3d", 0x10000, 0x10000, CRC(40c9b0b8) SHA1(81deb25e00eb4d4c5133ea42cda279c318ee771c) ) ROM_LOAD( "24512.4d", 0x20000, 0x10000, CRC(5606a8f4) SHA1(e46e887f13f648fe2162cb853b3c20fa60e3d215) ) - ROM_LOAD( "27512.6d", 0x30000, 0x10000, CRC(8ca6055d) SHA1(37dc5d3b158dc5d7c9677fc4f82e10804181619f) ) // dw-04.6d matched 99.995422% + ROM_LOAD( "27512.6d", 0x30000, 0x10000, CRC(8ca6055d) SHA1(37dc5d3b158dc5d7c9677fc4f82e10804181619f) ) // dw-04.6d matched 99.995422% (verified on 2 different PCBs, so almost certainly good) ROM_REGION( 0x10000, "audiocpu", 0 ) ROM_LOAD( "27256.5f", 0x8000, 0x8000, CRC(c28c4d82) SHA1(ad88506bcbc9763e39d6e6bb25ef2bd6aa929f30) ) @@ -3185,12 +3185,18 @@ ROM_START( meikyuha ) ROM_REGION( 0x40000, "gfx3", 0 ) /* tiles */ ROM_LOAD( "27512.12f", 0x00000, 0x10000, CRC(b65e029d) SHA1(f8791d57f688f16e0f076361603510e7133f4e36) ) ROM_LOAD( "27512.14f", 0x10000, 0x10000, CRC(668d995d) SHA1(dc6221de6103168c8e19f2c6eb159b8989ca2208) ) - ROM_LOAD( "27512.15f", 0x20000, 0x10000, CRC(547fe4e2) SHA1(f8406e7d2bbd2243fcfe27c7ba401f04536dadc9) ) // dw-08.15f matched 99.996948% (bad?) + ROM_LOAD( "27512.15f", 0x20000, 0x10000, CRC(bb2cf4a0) SHA1(78806adb6a9ad9fc0707ead567a3220eb2bdb32f) ) ROM_LOAD( "27512.17f", 0x30000, 0x10000, CRC(6a528d13) SHA1(f1ef592f1efea637abde26bb8e3d02d552582a43) ) - ROM_REGION( 0x0800, "proms", 0 ) // taken from other set - ROM_LOAD( "dw18.9d", 0x0000, 0x0400, CRC(75f1945f) SHA1(6fa436ae21851ec30847d57c31bdd2fd695e08af) ) - ROM_LOAD( "dw19.10d", 0x0400, 0x0400, CRC(cc16f3fa) SHA1(4562106ff752f5fc5ae00ff098141e5d74fe4700) ) + ROM_REGION( 0x0800, "proms", 0 ) + ROM_LOAD_NIB_LOW( "82s137.12d", 0x0000, 0x0400, CRC(bf922733) SHA1(c2566b2ad3d7520aa57a1e8027d4832631bd9a72) ) + ROM_LOAD_NIB_HIGH( "82s137.13d", 0x0000, 0x0400, CRC(4ccc328e) SHA1(7d527f5265b65ac070c41e89b39c38c1ba42b544) ) + ROM_LOAD( "82s137.10d", 0x0400, 0x0400, CRC(cc16f3fa) SHA1(4562106ff752f5fc5ae00ff098141e5d74fe4700) ) + + ROM_REGION( 0x600, "plds", ROMREGION_ERASEFF ) + ROM_LOAD( "pal16r4anc.16", 0x000, 0x104, NO_DUMP ) + ROM_LOAD( "pal16r4anc.158", 0x200, 0x104, NO_DUMP ) + ROM_LOAD( "pal16r4anc.165", 0x400, 0x104, NO_DUMP ) ROM_END /* @@ -3850,39 +3856,53 @@ ROM_START( cobracomjb ) ROM_END +void dec8_state::init_meikyuhbl() +{ + // this bootleg has the high nibble of the first 0x400 bytes with reversed bits. + // Address it here instead of hacking the DECO RM-C3 device. + + uint8_t *proms = memregion("proms")->base(); + + for (int i = 0; i < 0x400; i++) + proms[i] = bitswap<8>(proms[i], 4, 5, 6, 7, 3, 2, 1, 0); + + m_palette->update(); +} + + /******************************************************************************/ -GAME( 1986, lastmisn, 0, lastmisn, lastmisn, dec8_state, empty_init, ROT270, "Data East Corporation", "Last Mission (World revision 8)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, lastmisnu6, lastmisn, lastmisn, lastmisn, dec8_state, empty_init, ROT270, "Data East USA", "Last Mission (US revision 6)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, lastmisnu5, lastmisn, lastmisn, lastmisn, dec8_state, empty_init, ROT270, "Data East USA", "Last Mission (US revision 5)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, lastmisnj, lastmisn, lastmisn, lastmisnj, dec8_state, empty_init, ROT270, "Data East Corporation", "Last Mission (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, shackled, 0, shackled, shackled, dec8_state, empty_init, ROT0, "Data East USA", "Shackled (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, breywood, shackled, shackled, breywood, dec8_state, empty_init, ROT0, "Data East Corporation", "Breywood (Japan revision 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, gondo, 0, gondo, gondo, dec8_state, empty_init, ROT270, "Data East Corporation", "Gondomania (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, gondou, gondo, gondo, gondo, dec8_state, empty_init, ROT270, "Data East USA", "Gondomania (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, makyosen, gondo, gondo, gondo, dec8_state, empty_init, ROT270, "Data East Corporation", "Makyou Senshi (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, garyoret, 0, garyoret, garyoret, dec8_state, empty_init, ROT0, "Data East Corporation", "Garyo Retsuden (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, ghostb, 0, ghostb, ghostb, dec8_state, empty_init, ROT0, "Data East USA", "The Real Ghostbusters (US 2 Players, revision 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, ghostb2a, ghostb, ghostb, ghostb2a, dec8_state, empty_init, ROT0, "Data East USA", "The Real Ghostbusters (US 2 Players)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, ghostb3, ghostb, ghostb, ghostb3, dec8_state, empty_init, ROT0, "Data East USA", "The Real Ghostbusters (US 3 Players, revision 3B?)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, ghostb3a, ghostb, ghostb, ghostb3, dec8_state, empty_init, ROT0, "Data East USA", "The Real Ghostbusters (US 3 Players, revision 2)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // ROMs confirmed working on PCB - stalls in demo mode -GAME( 1987, meikyuh, ghostb, meikyuh, meikyuh, dec8_state, empty_init, ROT0, "Data East Corporation", "Meikyuu Hunter G (Japan, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, meikyuha, ghostb, meikyuh, meikyuh, dec8_state, empty_init, ROT0, "Data East Corporation", "Meikyuu Hunter G (Japan, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, csilver, 0, csilver, csilver, csilver_state, empty_init, ROT0, "Data East Corporation", "Captain Silver (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, csilverj, csilver, csilver, csilverj, csilver_state, empty_init, ROT0, "Data East Corporation", "Captain Silver (Japan, revision 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, csilverja, csilver, csilver, csilverj, csilver_state, empty_init, ROT0, "Data East Corporation", "Captain Silver (Japan, revision 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, oscar, 0, oscar, oscar, dec8_state, empty_init, ROT0, "Data East Corporation", "Psycho-Nics Oscar (World revision 0)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, oscarbl, oscar, oscarbl, oscar, dec8_state, empty_init, ROT0, "bootleg", "Psycho-Nics Oscar (World revision 0, bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, oscaru, oscar, oscar, oscarj, dec8_state, empty_init, ROT0, "Data East USA", "Psycho-Nics Oscar (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, oscarj1, oscar, oscar, oscarj, dec8_state, empty_init, ROT0, "Data East Corporation", "Psycho-Nics Oscar (Japan revision 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, oscarj2, oscar, oscar, oscarj, dec8_state, empty_init, ROT0, "Data East Corporation", "Psycho-Nics Oscar (Japan revision 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, srdarwin, 0, srdarwin, srdarwin, dec8_state, empty_init, ROT270, "Data East Corporation", "Super Real Darwin (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, srdarwinj, srdarwin, srdarwin, srdarwinj, dec8_state, empty_init, ROT270, "Data East Corporation", "Super Real Darwin (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, lastmisn, 0, lastmisn, lastmisn, dec8_state, empty_init, ROT270, "Data East Corporation", "Last Mission (World revision 8)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, lastmisnu6, lastmisn, lastmisn, lastmisn, dec8_state, empty_init, ROT270, "Data East USA", "Last Mission (US revision 6)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, lastmisnu5, lastmisn, lastmisn, lastmisn, dec8_state, empty_init, ROT270, "Data East USA", "Last Mission (US revision 5)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, lastmisnj, lastmisn, lastmisn, lastmisnj, dec8_state, empty_init, ROT270, "Data East Corporation", "Last Mission (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, shackled, 0, shackled, shackled, dec8_state, empty_init, ROT0, "Data East USA", "Shackled (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, breywood, shackled, shackled, breywood, dec8_state, empty_init, ROT0, "Data East Corporation", "Breywood (Japan revision 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, gondo, 0, gondo, gondo, dec8_state, empty_init, ROT270, "Data East Corporation", "Gondomania (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, gondou, gondo, gondo, gondo, dec8_state, empty_init, ROT270, "Data East USA", "Gondomania (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, makyosen, gondo, gondo, gondo, dec8_state, empty_init, ROT270, "Data East Corporation", "Makyou Senshi (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, garyoret, 0, garyoret, garyoret, dec8_state, empty_init, ROT0, "Data East Corporation", "Garyo Retsuden (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, ghostb, 0, ghostb, ghostb, dec8_state, empty_init, ROT0, "Data East USA", "The Real Ghostbusters (US 2 Players, revision 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, ghostb2a, ghostb, ghostb, ghostb2a, dec8_state, empty_init, ROT0, "Data East USA", "The Real Ghostbusters (US 2 Players)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, ghostb3, ghostb, ghostb, ghostb3, dec8_state, empty_init, ROT0, "Data East USA", "The Real Ghostbusters (US 3 Players, revision 3B?)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, ghostb3a, ghostb, ghostb, ghostb3, dec8_state, empty_init, ROT0, "Data East USA", "The Real Ghostbusters (US 3 Players, revision 2)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // ROMs confirmed working on PCB - stalls in demo mode +GAME( 1987, meikyuh, ghostb, meikyuh, meikyuh, dec8_state, empty_init, ROT0, "Data East Corporation", "Meikyuu Hunter G (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, meikyuhbl, ghostb, meikyuh, meikyuh, dec8_state, init_meikyuhbl, ROT0, "Data East Corporation", "Meikyuu Hunter G (Japan, bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, csilver, 0, csilver, csilver, csilver_state, empty_init, ROT0, "Data East Corporation", "Captain Silver (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, csilverj, csilver, csilver, csilverj, csilver_state, empty_init, ROT0, "Data East Corporation", "Captain Silver (Japan, revision 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, csilverja, csilver, csilver, csilverj, csilver_state, empty_init, ROT0, "Data East Corporation", "Captain Silver (Japan, revision 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, oscar, 0, oscar, oscar, dec8_state, empty_init, ROT0, "Data East Corporation", "Psycho-Nics Oscar (World revision 0)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, oscarbl, oscar, oscarbl, oscar, dec8_state, empty_init, ROT0, "bootleg", "Psycho-Nics Oscar (World revision 0, bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, oscaru, oscar, oscar, oscarj, dec8_state, empty_init, ROT0, "Data East USA", "Psycho-Nics Oscar (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, oscarj1, oscar, oscar, oscarj, dec8_state, empty_init, ROT0, "Data East Corporation", "Psycho-Nics Oscar (Japan revision 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, oscarj2, oscar, oscar, oscarj, dec8_state, empty_init, ROT0, "Data East Corporation", "Psycho-Nics Oscar (Japan revision 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, srdarwin, 0, srdarwin, srdarwin, dec8_state, empty_init, ROT270, "Data East Corporation", "Super Real Darwin (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, srdarwinj, srdarwin, srdarwin, srdarwinj, dec8_state, empty_init, ROT270, "Data East Corporation", "Super Real Darwin (Japan)", MACHINE_SUPPORTS_SAVE ) // Unlike most Deco games of this period Cobra Command does not seem to have a Data East USA release. Instead the Data East Corporation release // was used in the US as evidenced by boards with the EL romset bearing AAMA seal stickers (American Amusement Machine Association) -GAME( 1988, cobracom, 0, cobracom, cobracom, dec8_state, empty_init, ROT0, "Data East Corporation", "Cobra-Command (World/US revision 5)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, cobracoma, cobracom, cobracom, cobracom, dec8_state, empty_init, ROT0, "Data East Corporation", "Cobra-Command (World/US revision 4)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, cobracomb, cobracom, cobracom, cobracom, dec8_state, empty_init, ROT0, "Data East Corporation", "Cobra-Command (World/US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, cobracomj, cobracom, cobracom, cobracom, dec8_state, empty_init, ROT0, "Data East Corporation", "Cobra-Command (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, cobracomjb, cobracom, cobracom, cobracom, dec8_state, empty_init, ROT0, "bootleg", "Cobra-Command (Japan, bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, cobracom, 0, cobracom, cobracom, dec8_state, empty_init, ROT0, "Data East Corporation", "Cobra-Command (World/US revision 5)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, cobracoma, cobracom, cobracom, cobracom, dec8_state, empty_init, ROT0, "Data East Corporation", "Cobra-Command (World/US revision 4)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, cobracomb, cobracom, cobracom, cobracom, dec8_state, empty_init, ROT0, "Data East Corporation", "Cobra-Command (World/US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, cobracomj, cobracom, cobracom, cobracom, dec8_state, empty_init, ROT0, "Data East Corporation", "Cobra-Command (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, cobracomjb, cobracom, cobracom, cobracom, dec8_state, empty_init, ROT0, "bootleg", "Cobra-Command (Japan, bootleg)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/dataeast/dec8.h b/src/mame/dataeast/dec8.h index 64165cdbeb7..dcf37220a7a 100644 --- a/src/mame/dataeast/dec8.h +++ b/src/mame/dataeast/dec8.h @@ -52,6 +52,8 @@ public: void oscarbl(machine_config &config); void gondo(machine_config &config); + void init_meikyuhbl(); + protected: virtual void machine_start() override; virtual void machine_reset() override; diff --git a/src/mame/dataeast/decrmc3.h b/src/mame/dataeast/decrmc3.h index 4daa37d989f..a8d994f0302 100644 --- a/src/mame/dataeast/decrmc3.h +++ b/src/mame/dataeast/decrmc3.h @@ -49,7 +49,6 @@ public: // void set_endianness(endianness_t endianness); void set_entries(u32 entries) { m_entries = entries; } void set_indirect_entries(u32 entries) { m_indirect_entries = entries; } - void set_prom_region(const char *region) { m_prom_region.set_tag(region); } template void set_prom_region(T &&tag) { m_prom_region.set_tag(std::forward(tag)); } // palette RAM accessors diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 7efc4956c36..eeacb4ebdb8 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -15071,6 +15071,7 @@ mswordu // 25/07/1990 (c) 1990 (USA) mtwins // 19/06/1990 (c) 1990 (World) nemo // 30/11/1990 (c) 1990 (World) nemoj // 20/11/1990 (c) 1990 (Japan) +nemoja // 20/11/1990 (c) 1990 (Japan) nemor1 // 09/11/1990 (c) 1990 (World) pang3 // 01/06/1995 (c) 1995 Mitchell (Euro) not listed on Capcom's site pang3b // bootleg @@ -16562,7 +16563,7 @@ lastmisnu5 // (c) 1986 Data East USA (US) lastmisnu6 // (c) 1986 Data East USA (US) makyosen // (c) 1987 Data East Corporation (Japan) meikyuh // (c) 1987 Data East Corporation (Japan) -meikyuha // (c) 1987 Data East Corporation (Japan) +meikyuhbl // bootleg oscar // (c) 1988 Data East Corporation (World) oscarbl // bootleg oscarj1 // (c) 1987 Data East Corporation (Japan) @@ -31716,6 +31717,9 @@ twinbskt // (c) 1995 Recreativos Pasqual saiyukip // umipoker // +@source:misc/unkgolf.cpp +unkgolf + @source:misc/unkhorse.cpp unkhorse // @@ -34457,6 +34461,8 @@ vandykejal2 // UPL-90064 (c) Jaleco drail // NTC / NMK hpierrot // NTC / NMK omatsuri // NMK +pldoraemon // NMK +plpittashi // NMK sweethrt // NMK trocana // NTC / NMK diff --git a/src/mame/misc/unkgolf.cpp b/src/mame/misc/unkgolf.cpp new file mode 100644 index 00000000000..d143f1b62d1 --- /dev/null +++ b/src/mame/misc/unkgolf.cpp @@ -0,0 +1,150 @@ +// license:BSD-3-Clause +// copyright-holders: + +/* +HSG-001A PCB + +This is probably a golf game (or part of it), given the ROM labels. + +Main components: +Sharp LH0080A Z80A-CPU-D +Sharp LH0082A Z80A-CTC-D +HM6264ALP-15 RAM +4x TMP82C55AP-2 (with 2 more empty spaces) +OKI M6376 +? XTAL +4.096 XTAL +8-DIP bank +1 push button +*/ + +#include "emu.h" + +#include "cpu/z80/z80.h" +#include "machine/i8255.h" +#include "machine/z80ctc.h" +#include "machine/z80daisy.h" +#include "sound/okim6376.h" + +#include "speaker.h" + + +namespace { + +class unkgolf_state : public driver_device +{ +public: + unkgolf_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu") + {} + + void unkgolf(machine_config &config) ATTR_COLD; + +private: + required_device m_maincpu; + + void program_map(address_map &map) ATTR_COLD; + void io_map(address_map &map) ATTR_COLD; +}; + + +void unkgolf_state::program_map(address_map &map) +{ + map(0x0000, 0x3fff).rom(); + map(0x4000, 0x47ff).ram(); +} + +void unkgolf_state::io_map(address_map &map) +{ + map.global_mask(0xff); + + map(0x00, 0x03).rw("ctc", FUNC(z80ctc_device::read), FUNC(z80ctc_device::write)); + /* // TODO: determine which of the six ranges are used by the 4 actually present PPIs + map(0x10, 0x13).rw("ppi0", FUNC(i8255_device::read), FUNC(i8255_device::write)); + map(0x20, 0x23).rw("ppi1", FUNC(i8255_device::read), FUNC(i8255_device::write)); + map(0x30, 0x30).rw("ppi2", FUNC(i8255_device::read), FUNC(i8255_device::write)); + map(0x40, 0x43).rw("ppi3", FUNC(i8255_device::read), FUNC(i8255_device::write)); + map(0x50, 0x53).rw("ppi4", FUNC(i8255_device::read), FUNC(i8255_device::write)); + map(0x60, 0x63).rw("ppi5", FUNC(i8255_device::read), FUNC(i8255_device::write)); + */ +} + + +static INPUT_PORTS_START( unkgolf ) + PORT_START("IN0") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("IN1") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("DSW1") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) +INPUT_PORTS_END + + +static const z80_daisy_config daisy_chain[] = +{ + { "ctc" }, + { nullptr } +}; + + +void unkgolf_state::unkgolf(machine_config &config) +{ + Z80(config, m_maincpu, 4'000'000); // need to verify unreadable XTAL + m_maincpu->set_daisy_config(daisy_chain); + m_maincpu->set_addrmap(AS_PROGRAM, &unkgolf_state::program_map); + m_maincpu->set_addrmap(AS_IO, &unkgolf_state::io_map); + + z80ctc_device& ctc(Z80CTC(config, "ctc", 4'000'000)); + ctc.intr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); + + I8255(config, "ppi0"); + + I8255(config, "ppi1"); + + I8255(config, "ppi2"); + + I8255(config, "ppi3"); + + SPEAKER(config, "mono").front_center(); + + OKIM6376(config, "oki", 4.096_MHz_XTAL / 32).add_route(ALL_OUTPUTS, "mono", 1.0); // divisor unknown +} + + +ROM_START( unkgolf ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pinest_4096h.u3", 0x00000, 0x10000, CRC(0f97fd6c) SHA1(d0f8ebf3414929498a8a014252ce61974e3b5d77) ) // 1ST AND 2ND HALF IDENTICAL, handwritten label + + ROM_REGION( 0x100000, "oki", 0 ) // handwritten labels + ROM_LOAD( "golf11", 0x00000, 0x80000, CRC(48234f9e) SHA1(bd2d0c17b532fe105485d64a04c76b7a9d6b2f26) ) + ROM_LOAD( "golf12", 0x80000, 0x80000, CRC(2ee904e5) SHA1(b7565f5a1eb677e0d05aa43f302a0c50be48b708) ) // 1xxxxxxxxxxxxxxxxxx = 0xFF +ROM_END + +} // anonymous namespace + + +GAME( 19??, unkgolf, 0, unkgolf, unkgolf, unkgolf_state, empty_init, ROT0, "", "unknown golf game", MACHINE_IS_SKELETON_MECHANICAL ) diff --git a/src/mame/nmk/nmkmedal.cpp b/src/mame/nmk/nmkmedal.cpp index 39b8f5ef249..9219d150e7e 100644 --- a/src/mame/nmk/nmkmedal.cpp +++ b/src/mame/nmk/nmkmedal.cpp @@ -410,11 +410,33 @@ ROM_START( omatsuri ) // seems to hit some unimplemented CPU regs ROM_LOAD( "3", 0x80000, 0x80000, CRC(0e6afb1f) SHA1(e016a684fb41acb55057797b22a07dab72ff9e9d) ) ROM_END +// POW98200 main PCB + POW98202 ROM PCB with small label "9810 ムラカミ" (9810 murakami) +ROM_START( pldoraemon ) + ROM_REGION(0x10000, "maincpu", 0) + ROM_LOAD( "doraemon_p.l._v992040.1", 0x00000, 0x10000, CRC(4f5c5300) SHA1(42d8d63e85886d9f3482dcd11fe3117521e06c56) ) // ドラえもんP.L. V992040 + + ROM_REGION(0x100000, "ymz", 0) + ROM_LOAD( "doraemon_a_snd8c090.2", 0x00000, 0x80000, CRC(239b8d04) SHA1(173ec0fbdde5b5f3709151ac1c2087b127bfc546) ) // ドラえもん A SND8C090 + ROM_LOAD( "doraemon_snd9105b.3", 0x80000, 0x80000, CRC(f77fd552) SHA1(95e030f5324d9f2d3eb800f4a48baa03516dde7e) ) // ドラえもん SND9105B +ROM_END + +// POW98200 main PCB + POW98202 ROM PCB with small label "9806 マノ" (9806 mano) +ROM_START( plpittashi ) // all ROM labels handwritten + ROM_REGION(0x10000, "maincpu", 0) + ROM_LOAD( "pittashi_1_v986220.1", 0x00000, 0x10000, CRC(eb19cda9) SHA1(ca572a6e362d0c8e82ed86e4f02f13adf8189273) ) // actual label "ピッタシ" (transliterated to pittashi) + + ROM_REGION(0x100000, "ymz", ROMREGION_ERASE00) + ROM_LOAD( "pittashi_2_snd86180.2", 0x00000, 0x80000, CRC(b65808f3) SHA1(a076f9e121ab310bae99880ecd4c860f47ff8769) ) + // empty second socket +ROM_END + } // anonymous namespace -GAME( 1995, drail, 0, drail, trocana, hpierrot_state, empty_init, ROT0, "NTC / NMK", "Dream Rail", MACHINE_IS_SKELETON_MECHANICAL ) // NMK LTD, N.T.C., H07051, V39, TEST2, V07 strings -GAME( 1996, trocana, 0, trocana, trocana, trocana_state, empty_init, ROT0, "NTC / NMK", "Trocana", MACHINE_IS_SKELETON_MECHANICAL ) // NMK LTD, NTC LTD, V96313 strings -GAME( 1996, hpierrot, 0, hpierrot, trocana, hpierrot_state, empty_init, ROT0, "NTC / NMK", "Happy Pierrot", MACHINE_IS_SKELETON_MECHANICAL ) // NTC LTD, NMK LTD, V96821 strings -GAME( 1996, sweethrt, 0, sweethrt, trocana, hpierrot_state, empty_init, ROT0, "NMK", "Sweetheart", MACHINE_IS_SKELETON_MECHANICAL ) // NMK LTD, V96B29° strings -GAME( 1999, omatsuri, 0, omatsuri, trocana, omatsuri_state, empty_init, ROT0, "NMK / Sega", "Shimura Ken no Bakatono-sama Ooedomatsuri", MACHINE_IS_SKELETON_MECHANICAL ) // NMK LTD, V99422 strings. Cabinet has NMK logo, manual has Sega logo +GAME( 1995, drail, 0, drail, trocana, hpierrot_state, empty_init, ROT0, "NTC / NMK", "Dream Rail", MACHINE_IS_SKELETON_MECHANICAL ) // NMK LTD, N.T.C., H07051, V39, TEST2, V07 strings +GAME( 1996, trocana, 0, trocana, trocana, trocana_state, empty_init, ROT0, "NTC / NMK", "Trocana", MACHINE_IS_SKELETON_MECHANICAL ) // NMK LTD, NTC LTD, V96313 strings +GAME( 1996, hpierrot, 0, hpierrot, trocana, hpierrot_state, empty_init, ROT0, "NTC / NMK", "Happy Pierrot", MACHINE_IS_SKELETON_MECHANICAL ) // NTC LTD, NMK LTD, V96821 strings +GAME( 1996, sweethrt, 0, sweethrt, trocana, hpierrot_state, empty_init, ROT0, "NMK", "Sweetheart", MACHINE_IS_SKELETON_MECHANICAL ) // NMK LTD, V96B29° strings +GAME( 1999, omatsuri, 0, omatsuri, trocana, omatsuri_state, empty_init, ROT0, "NMK / Sega", "Shimura Ken no Bakatono-sama Ooedomatsuri", MACHINE_IS_SKELETON_MECHANICAL ) // NMK LTD, V99422 strings. Cabinet has NMK logo, manual has Sega logo +GAME( 1999, pldoraemon, 0, omatsuri, trocana, omatsuri_state, empty_init, ROT0, "NMK", "Doreamon (Power Link)", MACHINE_IS_SKELETON_MECHANICAL ) // NMK LTD, V99204°, DORAMON (sic), STEPPING_PCB200_CAP75 strings +GAME( 1998, plpittashi, 0, omatsuri, trocana, omatsuri_state, empty_init, ROT0, "NMK", "Love Pi Chan (Power Link)", MACHINE_IS_SKELETON_MECHANICAL ) // NMK LTD, V98622°, LOVE PI, CHAN strings (title taken from string, very probably wrong) -- cgit v1.2.3