From 08352d933da2fe537886e2804b652fefe78a8b5d Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Tue, 28 Jun 2022 18:19:01 +0200 Subject: New working clones ------------------ Tetris + Cherry Master (Aidonis Games bootleg) [Ioannis Bampoulas] - dumped a couple missing ROMs for nfm and clone [Ioannis Bampoulas] --- src/mame/igs/goldstar.cpp | 88 +++++++++++++++++++++++++++++++++++++++-------- src/mame/igs/goldstar.h | 1 + src/mame/mame.lst | 1 + 3 files changed, 75 insertions(+), 15 deletions(-) diff --git a/src/mame/igs/goldstar.cpp b/src/mame/igs/goldstar.cpp index 677516408cd..872c4dc3b67 100644 --- a/src/mame/igs/goldstar.cpp +++ b/src/mame/igs/goldstar.cpp @@ -16134,8 +16134,11 @@ ROM_START( nfm ) ROM_LOAD( "fruit6", 0x08000, 0x08000, CRC(39d5b89a) SHA1(4cf52fa557ffc792d3e13f7dbb5d45fd617bac85) ) ROM_LOAD( "fruit5", 0x10000, 0x08000, CRC(a7a8f08d) SHA1(76c93194133ba85c0dde1f364260e16d5b647134) ) - ROM_REGION( 0x40000, "user1", 0 ) - ROM_LOAD( "8_f29c51002t.u53", 0x00000, 0x40000, CRC(ff9d5b6d) SHA1(a84fe241ff9958740dcdbd4650bd16a0aa6e01ca) ) + ROM_REGION( 0x140000, "user1", 0 ) + ROM_LOAD( "8_f29c51002t.u53", 0x00000, 0x40000, CRC(ff9d5b6d) SHA1(a84fe241ff9958740dcdbd4650bd16a0aa6e01ca) ) + // according to the dumper, the next two contain game logo + symbols animations + talking sounds + ROM_LOAD( "am29f040b.plcc32-a.bin", 0x40000, 0x80000, CRC(04bb0bcf) SHA1(b72fc5c351cb05d86938d49d310fe623c7de70d5) ) + ROM_LOAD( "am29f040b.plcc32-b.bin", 0xc0000, 0x80000, CRC(f95838f9) SHA1(99a999945e489c56ec04a87b5037d7e8d138f686) ) ROM_REGION( 0x8000, "colours", 0 ) // colours, only 0x200 used ROM_LOAD( "fruiprg2", 0x0000, 0x08000, CRC(13925ff5) SHA1(236415a244ef6092834f8080cf0d2e04bbfa2650) ) @@ -16171,8 +16174,11 @@ ROM_START( nfma ) ROM_LOAD( "6_27c256.u11", 0x08000, 0x08000, CRC(39d5b89a) SHA1(4cf52fa557ffc792d3e13f7dbb5d45fd617bac85) ) // matches nfm ROM_LOAD( "5_27c256.u4", 0x10000, 0x08000, CRC(a7a8f08d) SHA1(76c93194133ba85c0dde1f364260e16d5b647134) ) // matches nfm - ROM_REGION( 0x40000, "user1", 0 ) - ROM_LOAD( "8_f29c51002t.u53", 0x00000, 0x40000, CRC(ff9d5b6d) SHA1(a84fe241ff9958740dcdbd4650bd16a0aa6e01ca) ) + ROM_REGION( 0x140000, "user1", 0 ) + ROM_LOAD( "8_f29c51002t.u53", 0x00000, 0x40000, CRC(ff9d5b6d) SHA1(a84fe241ff9958740dcdbd4650bd16a0aa6e01ca) ) + // according to the dumper, the next two contain game logo + symbols animations + talking sounds + ROM_LOAD( "am29f040b.plcc32-a.bin", 0x40000, 0x80000, CRC(04bb0bcf) SHA1(b72fc5c351cb05d86938d49d310fe623c7de70d5) ) + ROM_LOAD( "am29f040b.plcc32-b.bin", 0xc0000, 0x80000, CRC(f95838f9) SHA1(99a999945e489c56ec04a87b5037d7e8d138f686) ) ROM_REGION( 0x8000, "colours", 0 ) // colours, only 0x200 used ROM_LOAD( "10bp_27c257.u62", 0x0000, 0x8000, CRC(13925ff5) SHA1(236415a244ef6092834f8080cf0d2e04bbfa2650) ) // matches nfm @@ -17361,6 +17367,33 @@ ROM_START( cmtetrsc ) // this set uses a standard Z80 + an Altera EPM7032LC ROM_END +ROM_START( cmtetrsd ) // this set uses a standard Z80 + PLDs + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "u81", 0x00000, 0x10000, CRC(7e16563b) SHA1(64b1f61e6203d39eb4c1e9876a34a2b67b57ed45) ) + + ROM_REGION( 0x18000, "gfx1", 0 ) + ROM_LOAD( "7__cmtetris.u16", 0x00000, 0x8000, CRC(2f5c94bd) SHA1(d99bcaa788f8abf5c75b29572d53be109b20c4bb) ) + ROM_LOAD( "6__cmtetris.u11", 0x08000, 0x8000, CRC(dac50071) SHA1(7d1c8ec0d81897fe2155578d8c7455dc07104899) ) + ROM_LOAD( "5__cmtetris.u4", 0x10000, 0x8000, CRC(9d67e265) SHA1(62eba137d881789c70121d5c07b5247684b917dd) ) + + ROM_REGION( 0x8000, "gfx2", 0 ) + ROM_LOAD( "4.u15", 0x0000, 0x2000, CRC(8607ffd9) SHA1(9bc94715554aa2473ae2ed249a47f29c7886b3dc) ) + ROM_LOAD( "3.u10", 0x2000, 0x2000, CRC(c32367be) SHA1(ff217021b9c58e23b2226f8b0a7f5da966225715) ) + ROM_LOAD( "2.u14", 0x4000, 0x2000, CRC(6dfcb188) SHA1(22430429c798954d9d979e62699b58feae7fdbf4) ) + ROM_LOAD( "1.u9", 0x6000, 0x2000, CRC(9678ead2) SHA1(e80aefa98b2363fe9e6b2415762695ace272e4d3) ) + + ROM_REGION( 0x10000, "user1", 0 ) + ROM_LOAD( "8.u53", 0x00000, 0x10000, CRC(e92443d3) SHA1(4b6ca4521841610054165f085ae05510e77af191) ) + + ROM_REGION( 0x200, "proms", 0 ) + ROM_LOAD( "82s129.u84", 0x0000, 0x0100, CRC(0489b760) SHA1(78f8632b17a76335183c5c204cdec856988368b0) ) + ROM_LOAD( "82s129.u79", 0x0100, 0x0100, CRC(21eb5b19) SHA1(9b8425bdb97f11f4855c998c7792c3291fd07470) ) + + ROM_REGION( 0x100, "proms2", 0 ) + ROM_LOAD( "82s129.u43", 0x0000, 0x0100, CRC(50ec383b) SHA1(ae95b92bd3946b40134bcdc22708d5c6b0f4c23e) ) +ROM_END + + /********************** Flaming 7, from Cyberdyne Systems, Inc. *********************** Flaming 7. @@ -18751,6 +18784,30 @@ void cmaster_state::init_cmtetrsc() init_cm(); } +void cmaster_state::init_cmtetrsd() +{ + uint8_t *rom = memregion("maincpu")->base(); + + for (int i = 0; i < 0x10000; i++) + { + if (((i & 0x03) != 0x01) && ((i & 0x03) != 0x02)) + rom[i] ^= 0xff; + if (i & 0x01) + rom[i] = bitswap<8>(rom[i], 0, 1, 2, 3, 4, 5, 6, 7); + } + + static const uint16_t swap_table[0x10] = { 0xb000, 0xa000, 0x9000, 0x8000, 0x4000, 0x5000, 0x6000, 0x7000, 0x3000, 0x2000, 0x1000, 0x0000, 0xc000, 0xd000, 0xe000, 0xf000 }; + + std::vector buffer(0x10000); + memcpy(&buffer[0], rom, 0x10000); + + // swap some 0x1000 blocks around + for (int i = 0; i < 0x10; i ++) + memcpy(rom + i * 0x1000, &buffer[swap_table[i]], 0x1000); + + init_cm(); +} + void goldstar_state::init_cmast91() { uint8_t *rom = memregion("maincpu")->base(); @@ -19908,17 +19965,18 @@ GAME( 200?, ss2001, 0, ss2001, cmaster, cmaster_state, empty_init /* Stealth sets. These have hidden games inside that can be switched to avoid inspections, police or whatever purposes)... */ -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT */ -GAMEL( 198?, cmpacman, 0, cm, cmpacman, cmaster_state, init_cm, ROT0, "", "Super Pacman (v1.2) + Cherry Master (Corsica, v8.31, unencrypted, set 1)", 0, layout_cmpacman ) // need to press K to switch between games... -GAMEL( 198?, cmpacmana, cmpacman, cm, cmpacman, cmaster_state, init_cm, ROT0, "", "Super Pacman (v1.2) + Cherry Master (Corsica, v8.31, unencrypted, set 2)", 0, layout_cmpacman ) // need to press K to switch between games... -GAMEL( 198?, cmpacmanb, cmpacman, cm, cmpacman, cmaster_state, init_cmpacmanb, ROT0, "", "Super Pacman (v1.2) + Cherry Master (Corsica, v8.31, encrypted)", 0, layout_cmpacman ) // need to press K to switch between games... -GAMEL( 198?, cmtetris, 0, cm, cmtetris, cmaster_state, init_cm, ROT0, "", "Tetris + Cherry Master (Corsica, v8.01, unencrypted, set 1)", 0, layout_cmpacman ) // need to press K/L to switch between games... -GAMEL( 198?, cmtetrsa, 0, cm, cmtetris, cmaster_state, init_cm, ROT0, "", "Tetris + Cherry Master (Corsica, v8.01, unencrypted, set 2)", 0, layout_cmpacman ) -GAMEL( 198?, cmtetrsb, 0, cm, cmtetris, cmaster_state, init_cm, ROT0, "", "Tetris + Cherry Master (+K, Canada Version, encrypted)", MACHINE_NOT_WORKING, layout_cmpacman ) // different Tetris game. press insert to throttle and see the attract running. -GAMEL( 198?, cmtetrsc, 0, cm, cmtetris, cmaster_state, init_cmtetrsc, ROT0, "", "Tetris + Cherry Master (Corsica, v8.01, encrypted)", 0, layout_cmpacman ) -GAMEL( 1997, crazybon, 0, crazybon, crazybon, goldstar_state, empty_init, ROT0, "bootleg (Crazy Co.)", "Crazy Bonus 2002 (Ver. 1, set 1)", MACHINE_IMPERFECT_COLORS, layout_crazybon ) // Windows ME desktop... but not found the way to switch it. -GAMEL( 1997, crazybona, crazybon, crazybon, crazybon, goldstar_state, empty_init, ROT0, "bootleg (Crazy Co.)", "Crazy Bonus 2002 (Ver. 1, set 2)", MACHINE_IMPERFECT_COLORS, layout_crazybon ) -GAMEL( 1997, crazybonb, crazybon, crazybonb, pkrmast, goldstar_state, init_crazybonb, ROT0, "bootleg (TV Games)", "Crazy Bonus 2002 (Ver. 1, set 3)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_COLORS, layout_crazybon ) // F.B. & POKER 94, VER.1 in NVRAM, decryption seems ok, possibly needs proper memory map +/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT */ +GAMEL( 198?, cmpacman, 0, cm, cmpacman, cmaster_state, init_cm, ROT0, "", "Super Pacman (v1.2) + Cherry Master (Corsica, v8.31, unencrypted, set 1)", 0, layout_cmpacman ) // need to press K to switch between games... +GAMEL( 198?, cmpacmana, cmpacman, cm, cmpacman, cmaster_state, init_cm, ROT0, "", "Super Pacman (v1.2) + Cherry Master (Corsica, v8.31, unencrypted, set 2)", 0, layout_cmpacman ) // need to press K to switch between games... +GAMEL( 198?, cmpacmanb, cmpacman, cm, cmpacman, cmaster_state, init_cmpacmanb, ROT0, "", "Super Pacman (v1.2) + Cherry Master (Corsica, v8.31, encrypted)", 0, layout_cmpacman ) // need to press K to switch between games... +GAMEL( 198?, cmtetris, 0, cm, cmtetris, cmaster_state, init_cm, ROT0, "", "Tetris + Cherry Master (Corsica, v8.01, unencrypted, set 1)", 0, layout_cmpacman ) // need to press K/L to switch between games... +GAMEL( 198?, cmtetrsa, 0, cm, cmtetris, cmaster_state, init_cm, ROT0, "", "Tetris + Cherry Master (Corsica, v8.01, unencrypted, set 2)", 0, layout_cmpacman ) +GAMEL( 198?, cmtetrsb, 0, cm, cmtetris, cmaster_state, init_cm, ROT0, "", "Tetris + Cherry Master (+K, Canada Version, encrypted)", MACHINE_NOT_WORKING, layout_cmpacman ) // different Tetris game. press insert to throttle and see the attract running. +GAMEL( 198?, cmtetrsc, 0, cm, cmtetris, cmaster_state, init_cmtetrsc, ROT0, "", "Tetris + Cherry Master (Corsica, v8.01, encrypted)", 0, layout_cmpacman ) +GAMEL( 198?, cmtetrsd, 0, cm, cmtetris, cmaster_state, init_cmtetrsd, ROT0, "bootleg (Aidonis Games)", "Tetris + Cherry Master (Aidonis Games bootleg)", 0, layout_cmpacman ) // seems to have been hacked to run the slot game as default, see 0x8ba8 +GAMEL( 1997, crazybon, 0, crazybon, crazybon, goldstar_state, empty_init, ROT0, "bootleg (Crazy Co.)", "Crazy Bonus 2002 (Ver. 1, set 1)", MACHINE_IMPERFECT_COLORS, layout_crazybon ) // Windows ME desktop... but not found the way to switch it. +GAMEL( 1997, crazybona, crazybon, crazybon, crazybon, goldstar_state, empty_init, ROT0, "bootleg (Crazy Co.)", "Crazy Bonus 2002 (Ver. 1, set 2)", MACHINE_IMPERFECT_COLORS, layout_crazybon ) +GAMEL( 1997, crazybonb, crazybon, crazybonb, pkrmast, goldstar_state, init_crazybonb, ROT0, "bootleg (TV Games)", "Crazy Bonus 2002 (Ver. 1, set 3)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_COLORS, layout_crazybon ) // F.B. & POKER 94, VER.1 in NVRAM, decryption seems ok, possibly needs proper memory map /* other possible stealth sets: - cmv4a ---> see the 1fxx zone. put a bp in 1f9f to see the loop. diff --git a/src/mame/igs/goldstar.h b/src/mame/igs/goldstar.h index a093cd8bb3c..d3b494f0a6a 100644 --- a/src/mame/igs/goldstar.h +++ b/src/mame/igs/goldstar.h @@ -193,6 +193,7 @@ public: void init_wcat3a(); void init_cmpacmanb(); void init_cmtetrsc(); + void init_cmtetrsd(); uint32_t screen_update_amcoe1a(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 3096e06fa24..49a379f7018 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -15794,6 +15794,7 @@ cmtetris // cmtetrsa // cmtetrsb // cmtetrsc // +cmtetrsd // cmv4 // (c) 1992 Dyna Electronics cmv4a // (c) 1992 Dyna Electronics cmv801 // (c) 198? Corsica -- cgit v1.2.3