@@ -562,6 +562,8 @@ class wingco_state : public goldstar_state
562
562
void init_lucky8m() ATTR_COLD;
563
563
void init_lucky8n() ATTR_COLD;
564
564
void init_lucky8p() ATTR_COLD;
565
+ void init_lucky8r() ATTR_COLD;
566
+ void init_lucky8s() ATTR_COLD;
565
567
void init_magoddsc() ATTR_COLD;
566
568
void init_luckylad() ATTR_COLD;
567
569
void init_nd8lines() ATTR_COLD;
@@ -15671,7 +15673,80 @@ ROM_START( lucky8q )
15671
15673
15672
15674
ROM_REGION( 0x20, "unkprom2", 0 )
15673
15675
ROM_LOAD( "g13", 0x0000, 0x0020, CRC(6df3f972) SHA1(0096a7f7452b70cac6c0752cb62e24b643015b5c) )
15676
+ ROM_END
15677
+
15678
+ /*
15679
+ lucky 8 lines
15680
+ protected sets
15681
+
15682
+ The program checks often some nvram registers expecting to be left shifted each time
15683
+ they are accessed, but no piece of code (even inside the interrupts) is doing this task.
15684
+
15685
+ for now, we patched the protection scheme.
15686
+
15687
+ lucky8r, has an additional "Turbo" feature.
15688
+ lucky8s, has two new features: "Fever" (betting 16 credits), and "Bingo" (betting 32 credits).
15689
+
15690
+ Both enhacements need to be checked.
15691
+
15692
+ */
15693
+ ROM_START( lucky8r )
15694
+ ROM_REGION( 0x10000, "maincpu", 0 )
15695
+ ROM_LOAD( "16_289.bin", 0x0000, 0x8000, CRC(44196d20) SHA1(cb1378dee3cddb9a75d65269c61510705babdfb6) )
15696
+
15697
+ ROM_REGION( 0x18000, "gfx1", 0 )
15698
+ ROM_LOAD( "5", 0x00000, 0x8000, CRC(59026af3) SHA1(3d7f7e78968ca26275635aeaa0e994468a3da575) )
15699
+ ROM_LOAD( "6", 0x08000, 0x8000, CRC(67a073c1) SHA1(36194d57d0dc0601fa1fdf2e6806f11b2ea6da36) )
15700
+ ROM_LOAD( "7", 0x10000, 0x8000, CRC(c415b9d0) SHA1(fd558fe8a116c33bbd712a639224d041447a45c1) )
15701
+
15702
+ ROM_REGION( 0x8000, "gfx2", 0 )
15703
+ ROM_LOAD( "1", 0x0000, 0x2000, CRC(29d6f197) SHA1(1542ca457594f6b7fe8f28f7d78023edd7021bc8) )
15704
+ ROM_LOAD( "2", 0x2000, 0x2000, CRC(5f812e65) SHA1(70d9ea82f9337936bf21f82b6961768d436f3a6f) )
15705
+ ROM_LOAD( "3", 0x4000, 0x2000, CRC(898b9ed5) SHA1(11b7d1cfcf425d00d086c74e0dbcb72068dda9fe) )
15706
+ ROM_LOAD( "4", 0x6000, 0x2000, CRC(4f7cfb35) SHA1(0617cf4419be00d9bacc78724089cb8af4104d68) )
15707
+
15708
+ ROM_REGION( 0x200, "proms", 0 )
15709
+ ROM_LOAD( "d12", 0x0000, 0x0100, CRC(23e81049) SHA1(78071dae70fad870e972d944642fb3a2374be5e4) )
15710
+ ROM_LOAD( "prom4", 0x0100, 0x0100, CRC(526cf9d3) SHA1(eb779d70f2507d0f26d225ac8f5de8f2243599ca) )
15711
+
15712
+ ROM_REGION( 0x20, "proms2", 0 )
15713
+ ROM_LOAD( "d13", 0x0000, 0x0020, CRC(c6b41352) SHA1(d7c3b5aa32e4e456c9432a13bede1db6d62eb270) )
15714
+
15715
+ ROM_REGION( 0x100, "unkprom", 0 )
15716
+ ROM_LOAD( "g14", 0x0000, 0x0100, CRC(bd48de71) SHA1(e4fa1e774af1499bc568be5b2deabb859d8c8172) )
15717
+
15718
+ ROM_REGION( 0x20, "unkprom2", 0 )
15719
+ ROM_LOAD( "g13", 0x0000, 0x0020, CRC(6df3f972) SHA1(0096a7f7452b70cac6c0752cb62e24b643015b5c) )
15720
+ ROM_END
15674
15721
15722
+ // Same protection scheme than lucky8r. See above.
15723
+ ROM_START( lucky8s )
15724
+ ROM_REGION( 0x10000, "maincpu", 0 )
15725
+ ROM_LOAD( "890.bin", 0x0000, 0x8000, CRC(0cb24215) SHA1(21bcad456c49c67e530b5555620db1e80df27d40) )
15726
+
15727
+ ROM_REGION( 0x18000, "gfx1", 0 )
15728
+ ROM_LOAD( "5", 0x00000, 0x8000, CRC(59026af3) SHA1(3d7f7e78968ca26275635aeaa0e994468a3da575) )
15729
+ ROM_LOAD( "6", 0x08000, 0x8000, CRC(67a073c1) SHA1(36194d57d0dc0601fa1fdf2e6806f11b2ea6da36) )
15730
+ ROM_LOAD( "7", 0x10000, 0x8000, CRC(c415b9d0) SHA1(fd558fe8a116c33bbd712a639224d041447a45c1) )
15731
+
15732
+ ROM_REGION( 0x8000, "gfx2", 0 )
15733
+ ROM_LOAD( "1", 0x0000, 0x2000, CRC(29d6f197) SHA1(1542ca457594f6b7fe8f28f7d78023edd7021bc8) )
15734
+ ROM_LOAD( "2", 0x2000, 0x2000, CRC(5f812e65) SHA1(70d9ea82f9337936bf21f82b6961768d436f3a6f) )
15735
+ ROM_LOAD( "3", 0x4000, 0x2000, CRC(898b9ed5) SHA1(11b7d1cfcf425d00d086c74e0dbcb72068dda9fe) )
15736
+ ROM_LOAD( "4", 0x6000, 0x2000, CRC(4f7cfb35) SHA1(0617cf4419be00d9bacc78724089cb8af4104d68) )
15737
+
15738
+ ROM_REGION( 0x200, "proms", 0 )
15739
+ ROM_LOAD( "d12", 0x0000, 0x0100, CRC(23e81049) SHA1(78071dae70fad870e972d944642fb3a2374be5e4) )
15740
+ ROM_LOAD( "prom4", 0x0100, 0x0100, CRC(526cf9d3) SHA1(eb779d70f2507d0f26d225ac8f5de8f2243599ca) )
15741
+
15742
+ ROM_REGION( 0x20, "proms2", 0 )
15743
+ ROM_LOAD( "d13", 0x0000, 0x0020, CRC(c6b41352) SHA1(d7c3b5aa32e4e456c9432a13bede1db6d62eb270) )
15744
+
15745
+ ROM_REGION( 0x100, "unkprom", 0 )
15746
+ ROM_LOAD( "g14", 0x0000, 0x0100, CRC(bd48de71) SHA1(e4fa1e774af1499bc568be5b2deabb859d8c8172) )
15747
+
15748
+ ROM_REGION( 0x20, "unkprom2", 0 )
15749
+ ROM_LOAD( "g13", 0x0000, 0x0020, CRC(6df3f972) SHA1(0096a7f7452b70cac6c0752cb62e24b643015b5c) )
15675
15750
ROM_END
15676
15751
15677
15752
@@ -23401,6 +23476,35 @@ void wingco_state::init_lucky8p()
23401
23476
}
23402
23477
}
23403
23478
23479
+ void wingco_state::init_lucky8r()
23480
+ {
23481
+ uint8_t *rom = memregion("maincpu")->base();
23482
+
23483
+ // bypass protection
23484
+ rom[0x4340] = 0x20;
23485
+ rom[0x4364] = 0x08;
23486
+ rom[0x4385] = 0x02;
23487
+ rom[0x43a6] = 0x80;
23488
+ rom[0x454e] = 0x00;
23489
+ rom[0x4567] = 0x00;
23490
+ rom[0x431f] = 0x28; // skip checksum;
23491
+ }
23492
+
23493
+ void wingco_state::init_lucky8s()
23494
+ {
23495
+ uint8_t *rom = memregion("maincpu")->base();
23496
+
23497
+ // bypass protection
23498
+ rom[0x4772] = 0x08;
23499
+ rom[0x47a8] = 0x02;
23500
+ rom[0x47db] = 0x20;
23501
+ rom[0x480e] = 0x80;
23502
+ rom[0x4a99] = 0x00;
23503
+ rom[0x4ab0] = 0x00;
23504
+ rom[0x473f] = 0x28; // skip checksum;
23505
+ }
23506
+
23507
+
23404
23508
void wingco_state::init_nd8lines()
23405
23509
{
23406
23510
uint8_t *rom = memregion("maincpu")->base();
@@ -24257,6 +24361,7 @@ void cmaster_state::init_cmezspina()
24257
24361
init_cmv4();
24258
24362
}
24259
24363
24364
+
24260
24365
} // anonymous namespace
24261
24366
24262
24367
@@ -24396,6 +24501,8 @@ GAMEL( 1989, lucky8n, lucky8, lucky8f, lucky8, wingco_state, init_luck
24396
24501
GAMEL( 1988, lucky8o, lucky8, lucky8, lucky8, wingco_state, empty_init, ROT0, "Yamate", "New Lucky 8 Lines (set 14, W-4, Yamate)", 0, layout_lucky8 ) // 2 control sets...
24397
24502
GAMEL( 1988, lucky8p, lucky8, lucky8p, lucky8, wingco_state, init_lucky8p, ROT0, "bootleg (Cleco)", "New Lucky 8 Lines (set 15, W-4, Cleco bootleg)", MACHINE_IMPERFECT_GRAPHICS, layout_lucky8 ) // 2 control sets, missing GFX on title screen (wrong GFX ROMs)
24398
24503
GAMEL( 1988, lucky8q, lucky8, lucky8, lucky8, wingco_state, empty_init, ROT0, "Wing Co., Ltd.", "New Lucky 8 Lines (set 16, W-4)", 0, layout_lucky8 )
24504
+ GAMEL( 1987, lucky8r, lucky8, lucky8, lucky8, wingco_state, init_lucky8r, ROT0, "TQ System", "New Lucky 8 Lines (set 17, W-4, turbo, protected)", 0, layout_lucky8 ) // shift left registers protection
24505
+ GAMEL( 1988, lucky8s, lucky8, lucky8, lucky8, wingco_state, init_lucky8s, ROT0, "Wing Co., Ltd.", "New Lucky 8 Lines (set 18, W-4, bingo/fever, protected)", 0, layout_lucky8 ) // shift left registers protection
24399
24506
GAMEL( 198?, ns8lines, 0, lucky8, lucky8b, wingco_state, empty_init, ROT0, "<unknown>", "New Lucky 8 Lines / New Super 8 Lines (W-4)", 0, layout_lucky8p1 ) // only 1 control set...
24400
24507
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...
24401
24508
GAMEL( 198?, ns8linew, ns8lines, lucky8, ns8linew, wingco_state, empty_init, ROT0, "<unknown>", "New Lucky 8 Lines / New Super 8 Lines (F-5, Witch Bonus)", 0, layout_lucky8 ) // 2 control sets...
0 commit comments