|
37 | 37 | frtgenieb: bp 581e,1,{curpc=0x58fe;g}
|
38 | 38 | frtgeniec: bp 5812,1,{curpc=0x58f0;g}
|
39 | 39 | frtgenied: bp 80de,1,{curpc=0x81bc;g}
|
| 40 | + kingfrt: bp 80d6,1,{curpc=0x81b4;g} |
40 | 41 | - second half of frtgenie's main CPU ROM seems to contain an earlier version
|
41 | 42 | of the data 'GENIE FRUITS DATA: 2001/08/15 VERSION: VA1.00'. Can it be
|
42 | 43 | reached or just a leftover?
|
@@ -121,11 +122,12 @@ class jungleyo_state : public driver_device
|
121 | 122 | , m_paletteram(*this, "paletteram", 0x18000, ENDIANNESS_BIG)
|
122 | 123 | { }
|
123 | 124 |
|
124 |
| - void jungleyo(machine_config &config); |
| 125 | + void jungleyo(machine_config &config) ATTR_COLD; |
125 | 126 |
|
126 |
| - void init_frtgenie(); |
127 |
| - void init_jungleyo(); |
128 |
| - template <uint16_t Reset_addr> void init_magjack(); |
| 127 | + void init_frtgenie() ATTR_COLD; |
| 128 | + void init_jungleyo() ATTR_COLD; |
| 129 | + void init_kingfrt() ATTR_COLD; |
| 130 | + template <uint16_t Reset_addr> void init_magjack() ATTR_COLD; |
129 | 131 |
|
130 | 132 | protected:
|
131 | 133 | virtual void video_start() override ATTR_COLD;
|
@@ -706,6 +708,45 @@ static INPUT_PORTS_START( frtgenied )
|
706 | 708 | PORT_DIPSETTING( 0x0000, "500" )
|
707 | 709 | INPUT_PORTS_END
|
708 | 710 |
|
| 711 | +static INPUT_PORTS_START( kingfrt ) |
| 712 | + PORT_INCLUDE( frtgenied ) |
| 713 | + |
| 714 | + PORT_MODIFY("IN0") |
| 715 | + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_GAMBLE_BET ) PORT_NAME("Bet / Change") |
| 716 | + PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME( "Start / All Stop / Take" ) |
| 717 | + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_GAMBLE_TAKE ) PORT_NAME("Take / Hold") |
| 718 | + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SLOT_STOP2 ) PORT_NAME("Win Up / Stop2 / Odds") |
| 719 | + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_SLOT_STOP1 ) PORT_NAME("Big / Stop1") |
| 720 | + |
| 721 | + PORT_MODIFY("DSW12") |
| 722 | + PORT_DIPNAME( 0x0007, 0x0007, "Main Game Rate" ) PORT_DIPLOCATION("DSW1:1,2,3") |
| 723 | + PORT_DIPSETTING( 0x0000, "78%" ) |
| 724 | + PORT_DIPSETTING( 0x0004, "80%" ) |
| 725 | + PORT_DIPSETTING( 0x0002, "82%" ) |
| 726 | + PORT_DIPSETTING( 0x0006, "84%" ) |
| 727 | + PORT_DIPSETTING( 0x0001, "86%" ) |
| 728 | + PORT_DIPSETTING( 0x0005, "88%" ) |
| 729 | + PORT_DIPSETTING( 0x0003, "90%" ) |
| 730 | + PORT_DIPSETTING( 0x0007, "92%" ) |
| 731 | + PORT_DIPNAME( 0x00c0, 0x00c0, "Max. Bet" ) PORT_DIPLOCATION("DSW1:7,8") |
| 732 | + PORT_DIPSETTING( 0x00c0, "80" ) |
| 733 | + PORT_DIPSETTING( 0x0080, "120" ) |
| 734 | + PORT_DIPSETTING( 0x0040, "240" ) |
| 735 | + PORT_DIPSETTING( 0x0000, "300" ) |
| 736 | + |
| 737 | + PORT_MODIFY("DSW34") |
| 738 | + PORT_DIPNAME( 0x0300, 0x0300, "Double Up Rate" ) PORT_DIPLOCATION("DSW4:1,2") |
| 739 | + PORT_DIPSETTING( 0x0000, "84%" ) |
| 740 | + PORT_DIPSETTING( 0x0200, "86%" ) |
| 741 | + PORT_DIPSETTING( 0x0100, "88%" ) |
| 742 | + PORT_DIPSETTING( 0x0300, "90%" ) |
| 743 | + PORT_DIPNAME( 0xc000, 0xc000, "Key Out" ) PORT_DIPLOCATION("DSW4:7,8") |
| 744 | + PORT_DIPSETTING( 0x0000, "1" ) |
| 745 | + PORT_DIPSETTING( 0xc000, "10" ) |
| 746 | + PORT_DIPSETTING( 0x4000, "50" ) |
| 747 | + PORT_DIPSETTING( 0x8000, "100" ) |
| 748 | +INPUT_PORTS_END |
| 749 | + |
709 | 750 | static INPUT_PORTS_START( magjack )
|
710 | 751 | PORT_INCLUDE( frtgenie )
|
711 | 752 |
|
@@ -1020,6 +1061,29 @@ ROM_START( frtgenied ) // MADE IN TAIWAN YONSHI PCB NO-006E
|
1020 | 1061 | ROM_LOAD( "atf20v8b.u37", 0x000, 0x157, NO_DUMP )
|
1021 | 1062 | ROM_END
|
1022 | 1063 |
|
| 1064 | +// probably a bootleg: copyright has been hacked out of the title screen / test mode. Still present in ROM, though. |
| 1065 | +// GFX and some strings change to Portuguese |
| 1066 | +ROM_START( kingfrt ) |
| 1067 | + ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code, encrypted |
| 1068 | + ROM_LOAD16_BYTE( "king_fruit_rom3.u15", 0x00000, 0x20000, CRC(6e875869) SHA1(1f50ce610945ce350e9603fa6fa259e84896b1f9) ) |
| 1069 | + ROM_LOAD16_BYTE( "king_fruit_rom2.u14", 0x00001, 0x20000, CRC(8a3bc7fb) SHA1(ebcfcf30a6825e392af5e0d92368ed5188752fbe) ) |
| 1070 | + |
| 1071 | + ROM_REGION( 0x40000, "oki", 0 ) |
| 1072 | + ROM_LOAD( "king_fruit_rom_1.u99", 0x00000, 0x40000, CRC(28b0c8fb) SHA1(5cdf59dcbed7da9b882c7dcf27020c1c37dd22cc) ) |
| 1073 | + |
| 1074 | + ROM_REGION( 0x80000, "reelgfx", 0 ) |
| 1075 | + ROM_LOAD( "king_fruit_rom_4.u58", 0x00000, 0x80000, CRC(b3b467b6) SHA1(f1a64af7a8fe22c7ef76617aba359df11e4af737) ) |
| 1076 | + |
| 1077 | + ROM_REGION( 0x80000, "gfx2", 0 ) |
| 1078 | + ROM_LOAD( "king_fruit_rom_5.u59", 0x00000, 0x80000, CRC(8ce286cc) SHA1(cc4ee86c032e4d500dde15524029b5acdaad62fe) ) |
| 1079 | + |
| 1080 | + ROM_REGION( 0x80000, "gfx3", 0 ) |
| 1081 | + ROM_LOAD( "king_fruit_rom_6.u60", 0x00000, 0x80000, CRC(f3ab172a) SHA1(e64b2d9391d574a77d48407d4bb915a21e0ef9f0) ) |
| 1082 | + |
| 1083 | + ROM_REGION( 0x157, "plds", ROMREGION_ERASE00 ) |
| 1084 | + ROM_LOAD( "atf20v8b.u37", 0x000, 0x157, NO_DUMP ) |
| 1085 | +ROM_END |
| 1086 | + |
1023 | 1087 | ROM_START( magjack ) // MADE IN TAIWAN PCB NO-006A
|
1024 | 1088 | ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code, encrypted
|
1025 | 1089 | ROM_LOAD16_BYTE( "3.u15", 0x00000, 0x20000, CRC(7d0855d0) SHA1(489e54f529c648da2333a3a811ced20f0d578029) ) // 27C010
|
@@ -1198,6 +1262,30 @@ void jungleyo_state::init_frtgenie()
|
1198 | 1262 | src[0x006 / 2] = 0x01f8; // reset opcode
|
1199 | 1263 | }
|
1200 | 1264 |
|
| 1265 | +void jungleyo_state::init_kingfrt() |
| 1266 | +{ |
| 1267 | + u16 *src = (u16 *)memregion("maincpu")->base(); |
| 1268 | + |
| 1269 | + for (int i = 0x00000; i < 0x10000 / 2; i++) |
| 1270 | + src[i] = bitswap<16>(src[i] ^ 0x00ff, 15, 9, 12, 10, 14, 13, 8, 11, 7, 6, 1, 4, 3, 5, 0, 2); |
| 1271 | + |
| 1272 | + for (int i = 0x10000 / 2; i < 0x20000 / 2; i++) |
| 1273 | + src[i] = bitswap<16>(src[i] ^ 0xff00, 11, 13, 14, 8, 12, 15, 9, 10, 6, 2, 1, 5, 4, 0, 7, 3); |
| 1274 | + |
| 1275 | + for (int i = 0x20000 / 2; i < 0x30000 / 2; i++) |
| 1276 | + src[i] = bitswap<16>(src[i] ^ 0x00ff, 9, 15, 12, 10, 13, 14, 11, 8, 4, 0, 3, 7, 6, 2, 1, 5); |
| 1277 | + |
| 1278 | + for (int i = 0x30000 / 2; i < 0x40000 / 2; i++) |
| 1279 | + src[i] = bitswap<16>(src[i] ^ 0xffff, 12, 8, 14, 11, 10, 9, 13, 15, 2, 5, 6, 3, 1, 7, 4, 0); |
| 1280 | + |
| 1281 | + // TODO: Stack Pointer/Initial PC settings don't seem to decrypt correctly |
| 1282 | + // hack these until better understood (still wrong values) |
| 1283 | + src[0x000 / 2] = 0x0000; |
| 1284 | + src[0x002 / 2] = 0x0000; |
| 1285 | + src[0x004 / 2] = 0x0000; |
| 1286 | + src[0x006 / 2] = 0x01f8; // reset opcode |
| 1287 | +} |
| 1288 | + |
1201 | 1289 | template <uint16_t Reset_addr>
|
1202 | 1290 | void jungleyo_state::init_magjack()
|
1203 | 1291 | {
|
@@ -1233,6 +1321,7 @@ GAME( 2003, frtgeniea, frtgenie, jungleyo, frtgeniea, jungleyo_state, init_frtge
|
1233 | 1321 | GAME( 2003, frtgenieb, frtgenie, jungleyo, frtgenieb, jungleyo_state, init_frtgenie, ROT0, "Global", "Fruit Genie (Version 1-1-03, set 3)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
1234 | 1322 | GAME( 2003, frtgeniec, frtgenie, jungleyo, frtgeniec, jungleyo_state, init_frtgenie, ROT0, "Global", "Fruit Genie (Version 1-1-03, set 4)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
1235 | 1323 | GAME( 2002, frtgenied, frtgenie, jungleyo, frtgenied, jungleyo_state, init_jungleyo, ROT0, "Winnin World", "Fruit Genie (VT 2.11)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
| 1324 | +GAME( 2004, kingfrt, frtgenie, jungleyo, kingfrt, jungleyo_state, init_kingfrt, ROT0, "bootleg?", "King Fruit (VZ 1.04)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) |
1236 | 1325 |
|
1237 | 1326 | GAME( 2000, magjack, 0, jungleyo, magjack, jungleyo_state, init_magjack<0x260>, ROT0, "Global", "Magical Jack (VA 4.00)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 2000/09/28
|
1238 | 1327 | GAME( 2000, magjacka, magjack, jungleyo, magjacka, jungleyo_state, init_magjack<0x268>, ROT0, "Global", "Magical Jack (VA 3.30)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 2000/08/04
|
|
0 commit comments