From e8520a2ba6dd3cd403e924f9e83c4852673c0f84 Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Mon, 20 Jan 2020 16:26:33 +0100 Subject: New working clones ------------------ New Cherry '96 Special Edition (v3.55, C1 PCB) [Ioannis Bampoulas] --- src/mame/drivers/goldstar.cpp | 106 ++++++++++++++++++++++++++++++++---------- src/mame/includes/goldstar.h | 1 + src/mame/mame.lst | 1 + 3 files changed, 84 insertions(+), 24 deletions(-) diff --git a/src/mame/drivers/goldstar.cpp b/src/mame/drivers/goldstar.cpp index 56ace00d8b2..059f469e5f4 100644 --- a/src/mame/drivers/goldstar.cpp +++ b/src/mame/drivers/goldstar.cpp @@ -14498,6 +14498,43 @@ ROM_START( nc96h ) ROM_LOAD( "82s129a.u79", 0x0100, 0x0100, BAD_DUMP CRC(05224f73) SHA1(051c3ee9c63f5436e4f6c355fc308f37910a88ef) ) ROM_END +ROM_START( nc96i ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "3.55 new cherry'96.bin", 0x00000, 0x1000, CRC(0046ab11) SHA1(21b500642545b62c3f80f639dee9807e14863be5) ) // v3.55, C1 Sub-PCB + ROM_CONTINUE(0x4000, 0x1000) + ROM_CONTINUE(0x3000, 0x1000) + ROM_CONTINUE(0x7000, 0x1000) + ROM_CONTINUE(0x1000, 0x1000) + ROM_CONTINUE(0x6000, 0x1000) + ROM_CONTINUE(0x2000, 0x1000) + ROM_CONTINUE(0x5000, 0x1000) + ROM_CONTINUE(0x8000, 0x8000) + + ROM_REGION( 0x20000, "graphics", 0 ) + ROM_LOAD( "high cherry'96.bin", 0x00000, 0x10000, CRC(b405a88d) SHA1(74caa24fe10292bb59debf505fb0bbb14547e7fb) ) + ROM_LOAD( "low cherry'96.bin", 0x10000, 0x10000, CRC(846bb8ae) SHA1(aa6203cd4c7a39dbd816a1bebd9a60be7655f823) ) + + ROM_REGION( 0x10000, "user1", ROMREGION_ERASEFF ) + + ROM_REGION( 0x18000, "gfx1", 0 ) + ROM_COPY( "graphics", 0x18000, 0x00000, 0x4000 ) // 1 + ROM_COPY( "graphics", 0x08000, 0x08000, 0x4000 ) // 1 + ROM_COPY( "graphics", 0x04000, 0x10000, 0x4000 ) // 1 + ROM_COPY( "graphics", 0x1c000, 0x04000, 0x4000 ) // 2 + ROM_COPY( "graphics", 0x0c000, 0x0c000, 0x4000 ) // 2 + ROM_COPY( "graphics", 0x14000, 0x14000, 0x4000 ) // 2 + + ROM_REGION( 0x8000, "gfx2", 0 ) + ROM_COPY( "graphics", 0x02000, 0x00000, 0x2000 ) + ROM_COPY( "graphics", 0x12000, 0x02000, 0x2000 ) + ROM_COPY( "graphics", 0x00000, 0x04000, 0x2000 ) + ROM_COPY( "graphics", 0x10000, 0x06000, 0x2000 ) + + ROM_REGION( 0x200, "proms", 0 ) // palette, not dumped for this set + ROM_LOAD( "82s129a.u84", 0x0000, 0x0100, BAD_DUMP CRC(fafc43ad) SHA1(e94592b83f19e5f9b6205473c1e06b36405ebfc2) ) + ROM_LOAD( "82s129a.u79", 0x0100, 0x0100, BAD_DUMP CRC(05224f73) SHA1(051c3ee9c63f5436e4f6c355fc308f37910a88ef) ) +ROM_END + ROM_START( nc96txt ) ROM_REGION( 0x20000, "maincpu", 0 ) ROM_LOAD( "tc132axt.bin", 0x00000, 0x1000, CRC(a77dc042) SHA1(1076a6687da1871b666bd214a755b68f5e1aeb8c) ) // Special Texas v1.32, C2 Sub-PCB @@ -17740,6 +17777,26 @@ void cmaster_state::init_nfb96_c1() } +void cmaster_state::init_nfb96_c1_2() // C1 PCB, different CPLD +{ + uint8_t *rom = memregion("maincpu")->base(); + for (int i = 0; i < 0x10000; i++) + { + uint8_t x = rom[i]; + + switch (i & 0x14) + { + case 0x00: x = bitswap<8>(x ^ 0x7d, 4, 0, 7, 6, 3, 1, 5, 2); break; + case 0x04: x = bitswap<8>(x ^ 0xbe, 6, 7, 0, 4, 3, 2, 1, 5); break; + case 0x10: x = bitswap<8>(x ^ 0x30, 3, 4, 2, 0, 5, 6, 1, 7); break; + case 0x14: x = bitswap<8>(x ^ 0x59, 6, 0, 1, 2, 4, 5, 3, 7); break; + } + rom[i] = x; + } + m_maincpu->space(AS_IO).install_read_handler(0x18, 0x18, read8_delegate(*this, FUNC(cmaster_state::fixedval_r<0x3a>))); + +} + void cmaster_state::init_nfb96_c2() { uint8_t *rom = memregion("maincpu")->base(); @@ -18417,30 +18474,31 @@ GAME( 1998, match98, 0, amcoe1a, match98, cmaster_state, init_matc /* The Sub-PCB has a printed sticker denoting C1, C2, D or DK for the type of FPGA decryption chip used */ /* There is known to be a special IOWA version running on the Texas C2 hardware with roms FB96P IA, FB96L IA & FB96H IA with a (c) 2000 Amcoe */ -GAMEL( 1996, nfb96, 0, amcoe2, nfb96, cmaster_state, init_nfb96_c1, ROT0, "Amcoe", "New Fruit Bonus '96 Special Edition (v3.63, C1 PCB)", 0, layout_nfb96 ) /* ver. 02-3.63 C1 Sub-PCB */ -GAMEL( 1996, nfb96a, nfb96, amcoe2, nfb96, cmaster_state, init_nfb96_c1, ROT0, "Amcoe", "New Fruit Bonus '96 Special Edition (v3.62, C1 PCB)", 0, layout_nfb96 ) /* ver. 00-3.62 C1 Sub-PCB */ -GAMEL( 1996, nfb96b, nfb96, amcoe2, nfb96, cmaster_state, init_nfb96_d, ROT0, "Amcoe", "New Fruit Bonus '96 Special Edition (v3.54, D PCB)", 0, layout_nfb96 ) /* ver. 00-3.54 D Sub-PCB */ -GAMEL( 1996, nfb96c, nfb96, amcoe2, nfb96, cmaster_state, init_nfb96_dk, ROT0, "Amcoe", "New Fruit Bonus '96 Special Edition (v3.62, DK PCB)", 0, layout_nfb96 ) /* ver. 00-3.62 DK Sub-PCB */ -GAMEL( 1996, nfb96d, nfb96, amcoe2, nfb96, cmaster_state, init_nfb96_a, ROT0, "Amcoe", "New Fruit Bonus '96 (v3.1, A PCB)", 0, layout_nfb96 ) /* ver. 00-3.1 A Sub-PCB */ -GAMEL( 2000, nfb96txt, nfb96, amcoe2, nfb96tx, cmaster_state, init_nfb96_c2, ROT0, "Amcoe", "New Fruit Bonus '96 Special Edition (v1.22 Texas XT, C2 PCB)", 0, layout_nfb96 ) /* ver. tf1.22axt C2 Sub-PCB */ - -GAMEL( 1996, nc96, 0, amcoe2, nfb96, cmaster_state, init_nfb96_c1, ROT0, "Amcoe", "New Cherry '96 Special Edition (v3.63, C1 PCB)", 0, layout_nfb96 ) /* C1 Sub-PCB */ -GAMEL( 1996, nc96a, nc96, amcoe2, nfb96, cmaster_state, init_nfb96_c1, ROT0, "Amcoe", "New Cherry '96 Special Edition (v3.62, C1 PCB)", 0, layout_nfb96 ) /* C1 Sub-PCB */ -GAMEL( 1996, nc96b, nc96, amcoe2, nfb96, cmaster_state, init_nfb96_c1, ROT0, "Amcoe", "New Cherry '96 Special Edition (v3.61, C1 PCB)", 0, layout_nfb96 ) /* C1 Sub-PCB */ -GAMEL( 1996, nc96c, nc96, amcoe2, nfb96, cmaster_state, init_nfb96_d, ROT0, "Amcoe", "New Cherry '96 Special Edition (v3.54, D PCB)", 0, layout_nfb96 ) /* D Sub-PCB */ -GAMEL( 1996, nc96d, nc96, amcoe2, nfb96, cmaster_state, init_nfb96_d, ROT0, "Amcoe", "New Cherry '96 Special Edition (v3.53, D PCB)", 0, layout_nfb96 ) /* D Sub-PCB */ -GAMEL( 1996, nc96e, nc96, amcoe2, nfb96, cmaster_state, init_nfb96_d, ROT0, "Amcoe", "New Cherry '96 Special Edition (v3.40, D PCB)", 0, layout_nfb96 ) /* D Sub-PCB */ -GAMEL( 1996, nc96f, nc96, amcoe2, nfb96, cmaster_state, init_nfb96_dk, ROT0, "Amcoe", "New Cherry '96 Special Edition (v3.62, DK PCB)", 0, layout_nfb96 ) /* DK Sub-PCB */ -GAMEL( 1996, nc96g, nc96, amcoe2, nfb96, cmaster_state, init_nfb96_b, ROT0, "Amcoe", "New Cherry '96 (v3.1, B PCB)", 0, layout_nfb96 ) /* B Sub-PCB */ -GAMEL( 1996, nc96h, nc96, amcoe2, nfb96, cmaster_state, init_nfb96_g, ROT0, "Amcoe", "New Cherry '96 (v3.1C, G PCB)", 0, layout_nfb96 ) /* G Sub-PCB */ -GAMEL( 2000, nc96txt, nc96, amcoe2, nfb96tx, cmaster_state, init_nfb96_c2, ROT0, "Amcoe", "New Cherry '96 Special Edition (v1.32 Texas XT, C2 PCB)", 0, layout_nfb96tx ) /* ver. tc1.32axt C2 Sub-PCB */ - -GAME( 2009, fb2010, 0, amcoe2, fb2010, cmaster_state, init_fb2010, ROT0, "Amcoe", "Fruit Bonus 2010", 0 ) - -GAMEL( 1996, roypok96, 0, amcoe2, roypok96, cmaster_state, init_rp35, ROT0, "Amcoe", "Royal Poker '96 (set 1, v97-3.5)", 0, layout_roypok96 ) -GAMEL( 1996, roypok96a, roypok96, amcoe2, roypok96a, cmaster_state, init_rp36, ROT0, "Amcoe", "Royal Poker '96 (set 2, v98-3.6)", 0, layout_roypok96 ) -GAMEL( 1996, roypok96b, roypok96, amcoe2, roypok96a, cmaster_state, init_rp36c3, ROT0, "Amcoe", "Royal Poker '96 (set 3, v98-3.6?)", 0, layout_roypok96 ) -GAME( 1996, roypok96c, roypok96, amcoe2, roypok96a, cmaster_state, init_rp96sub, ROT0, "Amcoe", "Royal Poker '96 (set 4, C3 board)", MACHINE_NOT_WORKING ) +GAMEL( 1996, nfb96, 0, amcoe2, nfb96, cmaster_state, init_nfb96_c1, ROT0, "Amcoe", "New Fruit Bonus '96 Special Edition (v3.63, C1 PCB)", 0, layout_nfb96 ) /* ver. 02-3.63 C1 Sub-PCB */ +GAMEL( 1996, nfb96a, nfb96, amcoe2, nfb96, cmaster_state, init_nfb96_c1, ROT0, "Amcoe", "New Fruit Bonus '96 Special Edition (v3.62, C1 PCB)", 0, layout_nfb96 ) /* ver. 00-3.62 C1 Sub-PCB */ +GAMEL( 1996, nfb96b, nfb96, amcoe2, nfb96, cmaster_state, init_nfb96_d, ROT0, "Amcoe", "New Fruit Bonus '96 Special Edition (v3.54, D PCB)", 0, layout_nfb96 ) /* ver. 00-3.54 D Sub-PCB */ +GAMEL( 1996, nfb96c, nfb96, amcoe2, nfb96, cmaster_state, init_nfb96_dk, ROT0, "Amcoe", "New Fruit Bonus '96 Special Edition (v3.62, DK PCB)", 0, layout_nfb96 ) /* ver. 00-3.62 DK Sub-PCB */ +GAMEL( 1996, nfb96d, nfb96, amcoe2, nfb96, cmaster_state, init_nfb96_a, ROT0, "Amcoe", "New Fruit Bonus '96 (v3.1, A PCB)", 0, layout_nfb96 ) /* ver. 00-3.1 A Sub-PCB */ +GAMEL( 2000, nfb96txt, nfb96, amcoe2, nfb96tx, cmaster_state, init_nfb96_c2, ROT0, "Amcoe", "New Fruit Bonus '96 Special Edition (v1.22 Texas XT, C2 PCB)", 0, layout_nfb96 ) /* ver. tf1.22axt C2 Sub-PCB */ + +GAMEL( 1996, nc96, 0, amcoe2, nfb96, cmaster_state, init_nfb96_c1, ROT0, "Amcoe", "New Cherry '96 Special Edition (v3.63, C1 PCB)", 0, layout_nfb96 ) /* C1 Sub-PCB */ +GAMEL( 1996, nc96a, nc96, amcoe2, nfb96, cmaster_state, init_nfb96_c1, ROT0, "Amcoe", "New Cherry '96 Special Edition (v3.62, C1 PCB)", 0, layout_nfb96 ) /* C1 Sub-PCB */ +GAMEL( 1996, nc96b, nc96, amcoe2, nfb96, cmaster_state, init_nfb96_c1, ROT0, "Amcoe", "New Cherry '96 Special Edition (v3.61, C1 PCB)", 0, layout_nfb96 ) /* C1 Sub-PCB */ +GAMEL( 1996, nc96c, nc96, amcoe2, nfb96, cmaster_state, init_nfb96_d, ROT0, "Amcoe", "New Cherry '96 Special Edition (v3.54, D PCB)", 0, layout_nfb96 ) /* D Sub-PCB */ +GAMEL( 1996, nc96d, nc96, amcoe2, nfb96, cmaster_state, init_nfb96_d, ROT0, "Amcoe", "New Cherry '96 Special Edition (v3.53, D PCB)", 0, layout_nfb96 ) /* D Sub-PCB */ +GAMEL( 1996, nc96e, nc96, amcoe2, nfb96, cmaster_state, init_nfb96_d, ROT0, "Amcoe", "New Cherry '96 Special Edition (v3.40, D PCB)", 0, layout_nfb96 ) /* D Sub-PCB */ +GAMEL( 1996, nc96f, nc96, amcoe2, nfb96, cmaster_state, init_nfb96_dk, ROT0, "Amcoe", "New Cherry '96 Special Edition (v3.62, DK PCB)", 0, layout_nfb96 ) /* DK Sub-PCB */ +GAMEL( 1996, nc96g, nc96, amcoe2, nfb96, cmaster_state, init_nfb96_b, ROT0, "Amcoe", "New Cherry '96 (v3.1, B PCB)", 0, layout_nfb96 ) /* B Sub-PCB */ +GAMEL( 1996, nc96h, nc96, amcoe2, nfb96, cmaster_state, init_nfb96_g, ROT0, "Amcoe", "New Cherry '96 (v3.1C, G PCB)", 0, layout_nfb96 ) /* G Sub-PCB */ +GAMEL( 1996, nc96i, nc96, amcoe2, nfb96, cmaster_state, init_nfb96_c1_2, ROT0, "Amcoe", "New Cherry '96 Special Edition (v3.55, C1 PCB)", 0, layout_nfb96 ) /* C1 Sub-PCB */ +GAMEL( 2000, nc96txt, nc96, amcoe2, nfb96tx, cmaster_state, init_nfb96_c2, ROT0, "Amcoe", "New Cherry '96 Special Edition (v1.32 Texas XT, C2 PCB)", 0, layout_nfb96tx ) /* ver. tc1.32axt C2 Sub-PCB */ + +GAME( 2009, fb2010, 0, amcoe2, fb2010, cmaster_state, init_fb2010, ROT0, "Amcoe", "Fruit Bonus 2010", 0 ) + +GAMEL( 1996, roypok96, 0, amcoe2, roypok96, cmaster_state, init_rp35, ROT0, "Amcoe", "Royal Poker '96 (set 1, v97-3.5)", 0, layout_roypok96 ) +GAMEL( 1996, roypok96a, roypok96, amcoe2, roypok96a, cmaster_state, init_rp36, ROT0, "Amcoe", "Royal Poker '96 (set 2, v98-3.6)", 0, layout_roypok96 ) +GAMEL( 1996, roypok96b, roypok96, amcoe2, roypok96a, cmaster_state, init_rp36c3, ROT0, "Amcoe", "Royal Poker '96 (set 3, v98-3.6?)", 0, layout_roypok96 ) +GAME( 1996, roypok96c, roypok96, amcoe2, roypok96a, cmaster_state, init_rp96sub, ROT0, "Amcoe", "Royal Poker '96 (set 4, C3 board)", MACHINE_NOT_WORKING ) /* these all appear to be graphic hacks of 'New Fruit Bonus '96', they can run with the same program rom diff --git a/src/mame/includes/goldstar.h b/src/mame/includes/goldstar.h index 783ff524d13..8ac8ad05269 100644 --- a/src/mame/includes/goldstar.h +++ b/src/mame/includes/goldstar.h @@ -173,6 +173,7 @@ public: void init_nfb96_a(); void init_nfb96_b(); void init_nfb96_c1(); + void init_nfb96_c1_2(); void init_nfb96_c2(); void init_nfb96_d(); void init_nfb96_dk(); diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 7a132add25b..0120bce4600 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -14989,6 +14989,7 @@ nc96e // (c) 1996 Amcoe nc96f // (c) 1996 Amcoe nc96g // (c) 1996 Amcoe nc96h // (c) 1996 Amcoe +nc96i // (c) 1996 Amcoe nc96txt // (c) 2000 Amcoe ncb3 // (c) 199? Dyna Electronics nfb96 // (c) 1996 Amcoe -- cgit v1.2.3