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]
This commit is contained in:
Ivan Vangelista 2023-07-17 22:55:51 +02:00
parent a27673eecf
commit a915e9ea3f
8 changed files with 307 additions and 55 deletions

View File

@ -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"

View File

@ -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

View File

@ -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 )

View File

@ -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;

View File

@ -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 <typename T> void set_prom_region(T &&tag) { m_prom_region.set_tag(std::forward<T>(tag)); }
// palette RAM accessors

View File

@ -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

150
src/mame/misc/unkgolf.cpp Normal file
View File

@ -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<z80_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>", "unknown golf game", MACHINE_IS_SKELETON_MECHANICAL )

View File

@ -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)