diff options
Diffstat (limited to 'src/mame/funworld/funworld.cpp')
-rw-r--r-- | src/mame/funworld/funworld.cpp | 165 |
1 files changed, 87 insertions, 78 deletions
diff --git a/src/mame/funworld/funworld.cpp b/src/mame/funworld/funworld.cpp index e6ef612a207..1695e0d2e0c 100644 --- a/src/mame/funworld/funworld.cpp +++ b/src/mame/funworld/funworld.cpp @@ -108,6 +108,7 @@ * Power Card (Ver 0263, encrypted), Fun World, 1993. * Mega Card (Ver.0210, encrypted), Fun World, 1993. * Mega Card (Ver.0053, encrypted), Fun World, 1992. + * Joker Card (encrypted), Fun World, 1993. * Joker Card 300 (Ver.A267BC, encrypted), Amatic Trading, 1993. * Royal Card (Evona, Polish, encrypted), Evona Electronic, 1991. * Saloon (French, encrypted), unknown, 199?. @@ -143,9 +144,6 @@ * Royal Card (stealth with MSX multigame), bootleg, 1991. - Supported games: 123 - - ********************************************************************************************** The hardware is generally composed by: @@ -175,7 +173,7 @@ The hardware was designed to manage 4096 tiles with a size of 8x4 pixels each. Also support 4bpp graphics and the palette limitation is 8 bits for color codes (256 x 16 colors). It means the hardware was designed for more elaborated graphics than Jolly Card games... - Color PROMs from current games are 512 bytes lenght, but they only can use the first or the last 256 bytes. + Color PROMs from current games are 512 bytes length, but they only can use the first or the last 256 bytes. Normal hardware capabilities: @@ -757,7 +755,7 @@ #include "emu.h" #include "funworld.h" -#include "cpu/m6502/m65sc02.h" +#include "cpu/m6502/g65sc02.h" #include "cpu/m6502/r65c02.h" #include "machine/6821pia.h" #include "machine/nvram.h" @@ -1064,7 +1062,7 @@ void intergames_state::prot_w(offs_t offset, uint8_t data) { if (offset == 0xf3) m_crtc_selected = false; - + logerror("%s: Writing $#%02X to $%04X\n", machine().describe_context(), data, offset + 0x3600); } @@ -2531,14 +2529,14 @@ static INPUT_PORTS_START( saloon ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("i2cmem" , i2cmem_device, write_scl) // Serial Clock + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("i2cmem", FUNC(i2cmem_device::write_scl)) // Serial Clock PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_START("I2C_DI") // 1000h Input PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_READ_LINE_DEVICE_MEMBER("i2cmem", i2cmem_device, read_sda) // Serial Data In + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_READ_LINE_DEVICE_MEMBER("i2cmem", FUNC(i2cmem_device::read_sda)) // Serial Data In PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -2548,7 +2546,7 @@ static INPUT_PORTS_START( saloon ) PORT_START("I2C_DO") // 1000h Output PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("i2cmem", i2cmem_device, write_sda) // Serial Data Out + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("i2cmem", FUNC(i2cmem_device::write_sda)) // Serial Data Out PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -3308,7 +3306,7 @@ void lunapark_state::machine_reset() void funworld_state::fw1stpal(machine_config &config) { // basic machine hardware - M65SC02(config, m_maincpu, CPU_CLOCK); // 2 MHz. + G65SC02(config, m_maincpu, CPU_CLOCK); // 2 MHz. m_maincpu->set_addrmap(AS_PROGRAM, &funworld_state::funworld_map); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); @@ -3472,7 +3470,7 @@ void intergames_state::intrgmes(machine_config &config) { fw1stpal(config); - M65SC02(config.replace(), m_maincpu, CPU_CLOCK); // 2 MHz. + G65SC02(config.replace(), m_maincpu, CPU_CLOCK); // 2 MHz. m_maincpu->set_addrmap(AS_PROGRAM, &intergames_state::intergames_map); //m_maincpu->set_periodic_int(FUNC(intergames_state::nmi_line_pulse), attotime::from_hz(60)); @@ -3668,7 +3666,7 @@ private: uint8_t opcode_r(offs_t offset); - void opcodes_map(address_map& map); + void opcodes_map(address_map &map) ATTR_COLD; }; uint8_t multiwina_state::opcode_r(offs_t offset) @@ -3704,7 +3702,7 @@ public: private: uint8_t jokercrd_opcode_r(offs_t offset); - void jokercrd_opcodes_map(address_map& map); + void jokercrd_opcodes_map(address_map &map) ATTR_COLD; }; uint8_t jokercrd_state::jokercrd_opcode_r(offs_t offset) @@ -3742,8 +3740,8 @@ uint8_t jokercrd_state::jokercrd_opcode_r(offs_t offset) // it should be noted, however, that the subroutine @c0da seems to be called just from here: // c044: 64 6a stz $6a // c046: 20 da c0 jsr $c0da - // and, if no interrupt is messing with the accesed data, the STZ @c044 should make the BEQ @c0ef - // become an inconditional jump, converting the opcode @c0f1 in dead code + // and, if no interrupt is messing with the accessed data, the STZ @c044 should make the BEQ @c0ef + // become an unconditional jump, converting the opcode @c0f1 in dead code constexpr uint8_t UNKN {0xfc}; @@ -5111,16 +5109,16 @@ ROM_START( pool10 ) ROM_LOAD( "2.u21", 0x0000, 0x8000, CRC(99c8c074) SHA1(f8082b08e895cbcd028a2b7cd961a7a2c8b2762c) ) ROM_LOAD( "1.u20", 0x8000, 0x8000, CRC(9abedd0c) SHA1(f184a82e8ec2387069d631bcb77e890acd44b3f5) ) - ROM_REGION( 0x0800, "nvram", 0 ) // pre-initialized BBRAM (hw uses SRAM + 3,6V battery) + ROM_REGION( 0x0800, "nvram", 0 ) // pre-initialized BBRAM (hw uses SRAM + 3,6V battery) ROM_LOAD( "pool10_nvram.bin", 0x0000, 0x0800, CRC(2f2fab43) SHA1(f815b70c171bad99fa6a60c256e4fdc85dd6b290) ) ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "n82s147an_p10.u25", 0x0000, 0x0200, CRC(1de03d14) SHA1(d8eda20865c1d885a428931f4380032e103b252c) ) ROM_REGION( 0x0600, "plds", 0 ) - ROM_LOAD( "palce16v8h_p10.u5", 0x0000, 0x0117, NO_DUMP ) // PLD is read protected - ROM_LOAD( "gal20v8b_p10.u22", 0x0200, 0x0157, NO_DUMP ) // PLD is read protected - ROM_LOAD( "gal20v8b_p10.u23", 0x0400, 0x0157, NO_DUMP ) // PLD is read protected + ROM_LOAD( "palce16v8h_p10.u5", 0x0000, 0x0117, NO_DUMP ) // PLD is read protected + ROM_LOAD( "gal20v8b_p10.u22", 0x0200, 0x0157, NO_DUMP ) // PLD is read protected + ROM_LOAD( "gal20v8b_p10.u23", 0x0400, 0x0157, NO_DUMP ) // PLD is read protected ROM_END @@ -5131,10 +5129,10 @@ ROM_END u20.bin 1ST AND 2ND HALF IDENTICAL u21.bin 1ST AND 2ND HALF IDENTICAL */ -ROM_START( pool10b ) // 1st set nominated for parent +ROM_START( pool10b ) // 1st set nominated for parent ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "u2.bin", 0x8000, 0x8000, CRC(64fee38e) SHA1(8a624a0b6eb4a3ba09e5b396dc5a01994dfdf294) ) - ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half + ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half // GFX ROMs are the same of pool10, but double sized with identical halves. ROM_REGION( 0x10000, "gfx1", 0 ) @@ -5143,16 +5141,16 @@ ROM_START( pool10b ) // 1st set nominated for parent ROM_LOAD( "u20.bin", 0x8000, 0x8000, CRC(3bdf1106) SHA1(fa21cbd49bb27ea4a784cf4e4b3fbd52650a285b) ) ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half - ROM_REGION( 0x0800, "nvram", 0 ) // pre-initialized BBRAM (hw uses SRAM + 3,6V battery) + ROM_REGION( 0x0800, "nvram", 0 ) // pre-initialized BBRAM (hw uses SRAM + 3,6V battery) ROM_LOAD( "pool10b_nvram.bin", 0x0000, 0x0800, CRC(d9f35299) SHA1(2c3608bc9c322a9cc86f74d8fa2f660804a8cf3c) ) ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "n82s147an_p10.u25", 0x0000, 0x0200, CRC(1de03d14) SHA1(d8eda20865c1d885a428931f4380032e103b252c) ) ROM_REGION( 0x0600, "plds", 0 ) - ROM_LOAD( "palce16v8h_p10b.u5", 0x0000, 0x0117, NO_DUMP ) // PLD is read protected - ROM_LOAD( "palce20v8h_p10b.u22", 0x0200, 0x0157, NO_DUMP ) // PLD is read protected - ROM_LOAD( "palce20v8h_p10b.u23", 0x0400, 0x0157, NO_DUMP ) // PLD is read protected + ROM_LOAD( "palce16v8h_p10b.u5", 0x0000, 0x0117, NO_DUMP ) // PLD is read protected + ROM_LOAD( "palce20v8h_p10b.u22", 0x0200, 0x0157, NO_DUMP ) // PLD is read protected + ROM_LOAD( "palce20v8h_p10b.u23", 0x0400, 0x0157, NO_DUMP ) // PLD is read protected ROM_END @@ -5164,16 +5162,16 @@ ROM_START( pool10c ) ROM_LOAD( "b.u21", 0x0000, 0x8000, CRC(99c8c074) SHA1(f8082b08e895cbcd028a2b7cd961a7a2c8b2762c) ) ROM_LOAD( "c.u20", 0x8000, 0x8000, CRC(9abedd0c) SHA1(f184a82e8ec2387069d631bcb77e890acd44b3f5) ) - ROM_REGION( 0x0800, "nvram", 0 ) // pre-initialized BBRAM (hw uses SRAM + 3,6V battery) + ROM_REGION( 0x0800, "nvram", 0 ) // pre-initialized BBRAM (hw uses SRAM + 3,6V battery) ROM_LOAD( "pool10c_nvram.bin", 0x0000, 0x0800, CRC(396aefed) SHA1(066b87ff054dfb37f733a812ad0dc1b1bd2478e6) ) ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "n82s147an_p10.u25", 0x0000, 0x0200, CRC(1de03d14) SHA1(d8eda20865c1d885a428931f4380032e103b252c) ) ROM_REGION( 0x0600, "plds", 0 ) - ROM_LOAD( "palce16v8h_p10.u5", 0x0000, 0x0117, NO_DUMP ) // PLD is read protected - ROM_LOAD( "gal20v8b_p10.u22", 0x0200, 0x0157, NO_DUMP ) // PLD is read protected - ROM_LOAD( "gal20v8b_p10.u23", 0x0400, 0x0157, NO_DUMP ) // PLD is read protected + ROM_LOAD( "palce16v8h_p10.u5", 0x0000, 0x0117, NO_DUMP ) // PLD is read protected + ROM_LOAD( "gal20v8b_p10.u22", 0x0200, 0x0157, NO_DUMP ) // PLD is read protected + ROM_LOAD( "gal20v8b_p10.u23", 0x0400, 0x0157, NO_DUMP ) // PLD is read protected ROM_END @@ -5185,22 +5183,22 @@ ROM_END ROM_START( pool10d ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "3.50.u2", 0x8000, 0x8000, CRC(4c68e1f4) SHA1(bbab63a18e0c041ce519daa32e12dd1b6a672dce) ) - ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half + ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half ROM_REGION( 0x10000, "gfx1", 0 ) ROM_LOAD( "2.u21", 0x0000, 0x8000, CRC(99c8c074) SHA1(f8082b08e895cbcd028a2b7cd961a7a2c8b2762c) ) // sldh ROM_LOAD( "1.u20", 0x8000, 0x8000, CRC(9abedd0c) SHA1(f184a82e8ec2387069d631bcb77e890acd44b3f5) ) // sldh - ROM_REGION( 0x0800, "nvram", 0 ) // pre-initialized BBRAM (hw uses SRAM + 3,6V battery) + ROM_REGION( 0x0800, "nvram", 0 ) // pre-initialized BBRAM (hw uses SRAM + 3,6V battery) ROM_LOAD( "pool10d_nvram.bin", 0x0000, 0x0800, CRC(6b5984a0) SHA1(156a94e74e33b1a15222cffff9b62e65f6f5f2f5) ) ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "n82s147an_p10.u25", 0x0000, 0x0200, CRC(1de03d14) SHA1(d8eda20865c1d885a428931f4380032e103b252c) ) ROM_REGION( 0x0600, "plds", 0 ) - ROM_LOAD( "palce16v8h_p10.u5", 0x0000, 0x0117, NO_DUMP ) // PLD is read protected - ROM_LOAD( "gal20v8b_p10.u22", 0x0200, 0x0157, NO_DUMP ) // PLD is read protected - ROM_LOAD( "gal20v8b_p10.u23", 0x0400, 0x0157, NO_DUMP ) // PLD is read protected + ROM_LOAD( "palce16v8h_p10.u5", 0x0000, 0x0117, NO_DUMP ) // PLD is read protected + ROM_LOAD( "gal20v8b_p10.u22", 0x0200, 0x0157, NO_DUMP ) // PLD is read protected + ROM_LOAD( "gal20v8b_p10.u23", 0x0400, 0x0157, NO_DUMP ) // PLD is read protected ROM_END @@ -5288,16 +5286,16 @@ ROM_START( pool10e ) ROM_LOAD( "2.u21", 0x0000, 0x8000, CRC(a0d54044) SHA1(c7be1f12f72095daee32ae41c3554d8ab4f99245) ) // sldh ROM_LOAD( "1.u20", 0x8000, 0x8000, CRC(55c9fcc8) SHA1(224bdf63ed345b1def4852af3b33f07790fbf123) ) // sldh - ROM_REGION( 0x0800, "nvram", 0 ) // pre-initialized BBRAM (hw uses SRAM + 3,6V battery) + ROM_REGION( 0x0800, "nvram", 0 ) // pre-initialized BBRAM (hw uses SRAM + 3,6V battery) ROM_LOAD( "pool10e_nvram.bin", 0x0000, 0x0800, CRC(e20f9a14) SHA1(617ca53263a971c9f835a95737a66fac5b99780f) ) - ROM_REGION( 0x0200, "proms", 0 ) // Same as Pool 10, but the 1st half duplicated to cover any PLD addressing + ROM_REGION( 0x0200, "proms", 0 ) // Same as Pool 10, but the 1st half duplicated to cover any PLD addressing ROM_LOAD( "am27s29.u25", 0x0000, 0x0200, CRC(2c315cbf) SHA1(f3f91329f2b8388decf26a050f8fb7da38694218) ) - ROM_REGION( 0x3000, "plds", 0 ) - ROM_LOAD( "palce16v8h.u5", 0x0000, 0x0892, BAD_DUMP CRC(123d539a) SHA1(cccf0cbae3175b091a998eedf4aa44a55b679400) ) // read protected - ROM_LOAD( "palce20v8h.u22", 0x1000, 0x0a92, BAD_DUMP CRC(ba2a021f) SHA1(e9c5970f80c7446c91282d53cfe97c92353dce7d) ) // read protected - ROM_LOAD( "palce20v8h.u23", 0x2000, 0x0a92, BAD_DUMP CRC(ba2a021f) SHA1(e9c5970f80c7446c91282d53cfe97c92353dce7d) ) // read protected + ROM_REGION( 0x0600, "plds", 0 ) // all read protected + ROM_LOAD( "palce16v8h.u5", 0x0000, 0x0117, NO_DUMP ) + ROM_LOAD( "palce20v8h.u22", 0x0200, 0x0157, NO_DUMP ) + ROM_LOAD( "palce20v8h.u23", 0x0400, 0x0157, NO_DUMP ) ROM_END @@ -5309,20 +5307,20 @@ ROM_START( pool10f ) ROM_LOAD( "cmc-pool10-b.u21", 0x0000, 0x8000, CRC(99c8c074) SHA1(f8082b08e895cbcd028a2b7cd961a7a2c8b2762c) ) ROM_LOAD( "cmc-pool10-c.u20", 0x8000, 0x8000, CRC(9abedd0c) SHA1(f184a82e8ec2387069d631bcb77e890acd44b3f5) ) - ROM_REGION( 0x0800, "nvram", 0 ) // pre-initialized BBRAM (hw uses SRAM + 3,6V battery) + ROM_REGION( 0x0800, "nvram", 0 ) // pre-initialized BBRAM (hw uses SRAM + 3,6V battery) ROM_LOAD( "pool10f_nvram.bin", 0x0000, 0x0800, CRC(75dd3562) SHA1(a359cada144e7c90946649f5dd0998d0ee48f4d2) ) ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "27s29.u25", 0x0000, 0x0200, CRC(1de03d14) SHA1(d8eda20865c1d885a428931f4380032e103b252c) ) ROM_REGION( 0x0600, "plds", 0 ) - ROM_LOAD( "palce16v8h_p10.u5", 0x0000, 0x0117, NO_DUMP ) // PLD is read protected - ROM_LOAD( "gal20v8b_p10.u22", 0x0200, 0x0157, NO_DUMP ) // PLD is read protected - ROM_LOAD( "gal20v8b_p10.u23", 0x0400, 0x0157, NO_DUMP ) // PLD is read protected + ROM_LOAD( "palce16v8h_p10.u5", 0x0000, 0x0117, NO_DUMP ) // PLD is read protected + ROM_LOAD( "gal20v8b_p10.u22", 0x0200, 0x0157, NO_DUMP ) // PLD is read protected + ROM_LOAD( "gal20v8b_p10.u23", 0x0400, 0x0157, NO_DUMP ) // PLD is read protected ROM_END -ROM_START( pool10g ) // 2nd set nominated for parent +ROM_START( pool10g ) // 2nd set nominated for parent ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "3.u2", 0x8000, 0x8000, CRC(7b537ce6) SHA1(b221d08c53b9e14178335632420e78070b9cfb27) ) @@ -5330,8 +5328,8 @@ ROM_START( pool10g ) // 2nd set nominated for parent ROM_LOAD( "2.u21", 0x0000, 0x8000, CRC(99c8c074) SHA1(f8082b08e895cbcd028a2b7cd961a7a2c8b2762c) ) ROM_LOAD( "1.u20", 0x8000, 0x8000, CRC(9abedd0c) SHA1(f184a82e8ec2387069d631bcb77e890acd44b3f5) ) - ROM_REGION( 0x0800, "nvram", 0 ) // pre-initialized BBRAM (hw uses SRAM + 3,6V battery) - ROM_LOAD( "pool10h_nvram.bin", 0x0000, 0x0800, CRC(3ec39472) SHA1(aa2bb5abd16557560a19842929ad7dab852abbbf) ) + ROM_REGION( 0x0800, "nvram", 0 ) // pre-initialized BBRAM (hw uses SRAM + 3,6V battery) + ROM_LOAD( "pool10h_nvram.bin", 0x0000, 0x0800, CRC(3ec39472) SHA1(aa2bb5abd16557560a19842929ad7dab852abbbf) ) ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "82s147.u25", 0x0000, 0x0200, CRC(1de03d14) SHA1(d8eda20865c1d885a428931f4380032e103b252c) ) @@ -5346,8 +5344,8 @@ ROM_START( pool10h ) ROM_LOAD( "cmc-pool10+b+.u21", 0x0000, 0x8000, CRC(99c8c074) SHA1(f8082b08e895cbcd028a2b7cd961a7a2c8b2762c) ) ROM_LOAD( "cmc-pool10+c+.u20", 0x8000, 0x8000, CRC(9abedd0c) SHA1(f184a82e8ec2387069d631bcb77e890acd44b3f5) ) - ROM_REGION( 0x0800, "nvram", 0 ) // pre-initialized BBRAM (hw uses SRAM + 3,6V battery) - ROM_LOAD( "pool10i_nvram.bin", 0x0000, 0x0800, CRC(e93dee30) SHA1(195525e95a3bdc1b002b12fd27bc31c63d7a9276) ) + ROM_REGION( 0x0800, "nvram", 0 ) // pre-initialized BBRAM (hw uses SRAM + 3,6V battery) + ROM_LOAD( "pool10i_nvram.bin", 0x0000, 0x0800, CRC(e93dee30) SHA1(195525e95a3bdc1b002b12fd27bc31c63d7a9276) ) ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "n82s147an_p10.u25", 0x0000, 0x0200, CRC(1de03d14) SHA1(d8eda20865c1d885a428931f4380032e103b252c) ) @@ -5357,16 +5355,16 @@ ROM_END ROM_START( pool10i ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "a.u2", 0x8000, 0x8000, CRC(566bc05d) SHA1(eec88c8ba6cb664f38ebf8b71f99b4e7d04a9601) ) // sldh - ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half + ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half ROM_REGION( 0x10000, "gfx1", 0 ) ROM_LOAD( "b.u21", 0x0000, 0x8000, CRC(581c4878) SHA1(5ae61af090feea1745e22f46b33b2c01e6013fbe) ) // sldh - ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half + ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half ROM_LOAD( "c.u20", 0x8000, 0x8000, CRC(3bdf1106) SHA1(fa21cbd49bb27ea4a784cf4e4b3fbd52650a285b) ) // sldh - ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half + ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half - ROM_REGION( 0x0800, "nvram", 0 ) // pre-initialized BBRAM (hw uses SRAM + 3,6V battery) - ROM_LOAD( "pool10l_nvram.bin", 0x0000, 0x0800, CRC(89cbee4b) SHA1(ff8031a96ee40e1e62abbae7a0b3d9dc2122759f) ) + ROM_REGION( 0x0800, "nvram", 0 ) // pre-initialized BBRAM (hw uses SRAM + 3,6V battery) + ROM_LOAD( "pool10l_nvram.bin", 0x0000, 0x0800, CRC(89cbee4b) SHA1(ff8031a96ee40e1e62abbae7a0b3d9dc2122759f) ) ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "82s147.u25", 0x0000, 0x0200, CRC(1de03d14) SHA1(d8eda20865c1d885a428931f4380032e103b252c) ) @@ -5380,7 +5378,7 @@ ROM_START( pool10j ) ROM_LOAD( "cmcpool10.u21", 0x0000, 0x8000, CRC(99c8c074) SHA1(f8082b08e895cbcd028a2b7cd961a7a2c8b2762c) ) ROM_LOAD( "cmcpool10.u20", 0x8000, 0x8000, CRC(9abedd0c) SHA1(f184a82e8ec2387069d631bcb77e890acd44b3f5) ) - ROM_REGION( 0x0800, "nvram", 0 ) // pre-initialized BBRAM (hw uses SRAM + 3,6V battery) + ROM_REGION( 0x0800, "nvram", 0 ) // pre-initialized BBRAM (hw uses SRAM + 3,6V battery) ROM_LOAD( "pool10j_nvram.bin", 0x0000, 0x0800, CRC(48684b02) SHA1(6f2fbd0e2621e31b881edd8056ff93ee78f331ab) ) ROM_REGION( 0x0200, "proms", 0 ) @@ -5402,11 +5400,11 @@ ROM_START( pool10k ) // found on two PCBs ROM_REGION( 0x10000, "gfx1", 0 ) ROM_LOAD( "eagle2.u21", 0x0000, 0x8000, CRC(581c4878) SHA1(5ae61af090feea1745e22f46b33b2c01e6013fbe) ) - ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half + ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half ROM_LOAD( "eagle3.u20", 0x8000, 0x8000, CRC(3bdf1106) SHA1(fa21cbd49bb27ea4a784cf4e4b3fbd52650a285b) ) - ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half + ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half - ROM_REGION( 0x0800, "nvram", 0 ) // pre-initialized BBRAM (hw uses SRAM + 3,6V battery) + ROM_REGION( 0x0800, "nvram", 0 ) // pre-initialized BBRAM (hw uses SRAM + 3,6V battery) ROM_LOAD( "pool10k_nvram.bin", 0x0000, 0x0800, CRC(fb0e9e6a) SHA1(97fbcff4d615983321bf5d53884f7ed56f8a8998) ) ROM_REGION( 0x0200, "proms", 0 ) @@ -5426,7 +5424,7 @@ ROM_START( mag10 ) // same code as pool10g but for title and copyright changes, ROM_LOAD( "magic_b.u21", 0x0000, 0x8000, CRC(99c8c074) SHA1(f8082b08e895cbcd028a2b7cd961a7a2c8b2762c) ) ROM_LOAD( "magic_c.u20", 0x8000, 0x8000, CRC(b863dead) SHA1(8f0016c39ce64a1ecde66f61b7f0db9cdfb36873) ) - ROM_REGION( 0x0800, "nvram", 0 ) // pre-initialized BBRAM (hw uses SRAM + 3,6V battery) + ROM_REGION( 0x0800, "nvram", 0 ) // pre-initialized BBRAM (hw uses SRAM + 3,6V battery) ROM_LOAD( "mag10_nvram.bin", 0x0000, 0x0800, CRC(3ec39472) SHA1(aa2bb5abd16557560a19842929ad7dab852abbbf) ) ROM_REGION( 0x0200, "proms", 0 ) @@ -5480,8 +5478,8 @@ ROM_START( biliard ) ROM_LOAD( "cmcpool10-b.u21", 0x0000, 0x8000, CRC(99c8c074) SHA1(f8082b08e895cbcd028a2b7cd961a7a2c8b2762c) ) ROM_LOAD( "biliard-c.u20", 0x8000, 0x8000, CRC(b15d10ec) SHA1(9b0f32ff791063cfb2d8339a4e8041e034e73eb7) ) - ROM_REGION( 0x0800, "nvram", 0 ) // pre-initialized BBRAM (hw uses SRAM + 3,6V battery) - ROM_LOAD( "biliard_nvram.bin", 0x0000, 0x0800, CRC(2f2fab43) SHA1(f815b70c171bad99fa6a60c256e4fdc85dd6b290) ) + ROM_REGION( 0x0800, "nvram", 0 ) // pre-initialized BBRAM (hw uses SRAM + 3,6V battery) + ROM_LOAD( "biliard_nvram.bin", 0x0000, 0x0800, CRC(2f2fab43) SHA1(f815b70c171bad99fa6a60c256e4fdc85dd6b290) ) ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "am27s29pc.u25", 0x0000, 0x0200, CRC(1de03d14) SHA1(d8eda20865c1d885a428931f4380032e103b252c) ) @@ -5498,7 +5496,7 @@ ROM_END This one seems to run in royalcd1 hardware. */ -ROM_START( royal ) // brute hack of pool 10 +ROM_START( royal ) // brute hack of pool 10 ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "3.u2", 0x8000, 0x8000, CRC(d4f36273) SHA1(2049257ea9ee52fde9cabfe40e809e00526a960e) ) // sldh @@ -5509,11 +5507,11 @@ ROM_START( royal ) // brute hack of pool 10 ROM_LOAD( "1.u20", 0x8000, 0x8000, CRC(9b59e72d) SHA1(96217272ce5abb78ff45ff116a5d921c57717ed9) ) // sldh ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half - ROM_REGION( 0x0800, "nvram", 0 ) // pre-initialized BBRAM (hw uses SRAM + 3,6V battery) - ROM_LOAD( "royal_nvram.bin", 0x0000, 0x0800, CRC(9df190d5) SHA1(4be0f5c6f89f822568e45e0e8457cf51ced2dcfe) ) + ROM_REGION( 0x0800, "nvram", 0 ) // pre-initialized BBRAM (hw uses SRAM + 3,6V battery) + ROM_LOAD( "royal_nvram.bin", 0x0000, 0x0800, CRC(9df190d5) SHA1(4be0f5c6f89f822568e45e0e8457cf51ced2dcfe) ) ROM_REGION( 0x0200, "proms", 0 ) - ROM_LOAD( "82s147.u25", 0x0000, 0x0200, CRC(d922d4e5) SHA1(d1541eabfd9cedd9eaa4fc48a3f64b078ea456be) ) // sldh + ROM_LOAD( "82s147.u25", 0x0000, 0x0200, CRC(d922d4e5) SHA1(d1541eabfd9cedd9eaa4fc48a3f64b078ea456be) ) // sldh ROM_END @@ -7164,11 +7162,11 @@ ROM_END Program roms are encrypted. Seems to be a Big Deal clone, running in Fun World Multi Win hardware. - Unfortunatelly, the graphics ROM vesely_zg_1.ic10 has address 8 line (leg 25) shorted. + Unfortunately, the graphics ROM vesely_zg_1.ic10 has address 8 line (leg 25) shorted. Seems that the protection diode was blown due to a bad handling. With forensics techniques, a special device was constructed to process - the faulty ROM and try to read the contents. Fortunatelly after all these + the faulty ROM and try to read the contents. Fortunately after all these efforts, we got a perfect and complete dump. @@ -7236,6 +7234,22 @@ ROM_START( jokercrd ) ROM_LOAD( "ic13.bin", 0x0000, 0x0200, CRC(e59fc06e) SHA1(88a3bb89f020fe2b20f768ca010a082e0b974831) ) ROM_END +ROM_START( jokercrdf ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "bc4_t.ic38", 0x4000, 0x4000, CRC(2c1701b2) SHA1(1457bc1c0c7845173ebb930dfe3d313a4866b9ad) ) + ROM_LOAD( "bc4_p.ic12", 0xc000, 0x4000, CRC(b5fde2a2) SHA1(508c881267447c06d0d65e9ca2517574d2b73fcc) ) + + ROM_REGION( 0x0800, "decode", 0 ) // inside of the custom CPU + ROM_LOAD( "internal_table.bin", 0x0000, 0x0800, CRC(f1d8f35d) SHA1(2b5f9222a81a627d43fd8448385f85c71c24b914) ) + + ROM_REGION( 0x10000, "gfx1", 0 ) + ROM_LOAD( "2.ic11", 0x0000, 0x8000, CRC(ba994fc3) SHA1(95d2a802c38d7249f10eb2bbe46edfb9b14b6faa) ) + ROM_LOAD( "1.ic10", 0x8000, 0x8000, CRC(367db105) SHA1(400b82dc9e0be4c17a02add009aab3c43dd901f8) ) + + ROM_REGION( 0x0200, "proms", 0 ) + // PROM was broken beyond repair on this PCB, using the one from jokcrdep since GFX ROMs match 100% + ROM_LOAD( "ic13.bin", 0x0000, 0x0200, BAD_DUMP CRC(f990a9ae) SHA1(f7133798b5f20dd5b8dbe5d1a6876341710d93a8) ) +ROM_END /* Mongolfier New @@ -7665,11 +7679,11 @@ ROM_START( novoplay ) // Similar to Royal Vegas Joker Card ROM_END /* - Novo Play Club Card + Novo Play Club Card V6.2H - + Novo Play International. - + PCB from Novo Play, rev 1.6 (1992). Similar hardware scheme than Inter Games. */ @@ -7693,7 +7707,7 @@ ROM_END V3.3H Novo Play International. - + PCB from Novo Play, rev 1.5 (1991). Similar hardware scheme than Inter Games. */ @@ -8383,7 +8397,6 @@ void funworld_state::init_saloon() // inversion for i2c clock generation in i2c_rx routine rom[0xbf23] = 0x60; // ex 70h rom[0xbf2a] = 0x70; // ex 60h - } @@ -8521,7 +8534,6 @@ static void decrypt_rcdino4(uint8_t *rom, int size, uint8_t *gfxrom, int sizeg, int a = bitswap<16>(i, 15, 13, 14, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); rom[a] = buffer[i]; } - } /****************************** @@ -8548,7 +8560,6 @@ static void decrypt_rcdino4(uint8_t *rom, int size, uint8_t *gfxrom, int sizeg, src[x] = bitswap<8>(src[x], 7, 6, 4, 5, 3, 2, 1, 0); src[x] = src[x] ^ 0x81; } - } @@ -8796,7 +8807,6 @@ void intergames_state::init_novop_a() rom[0xb25e] = 0xfc; rom[0xadd0] = 0x40; - } void intergames_state::init_novop_b() @@ -8807,7 +8817,6 @@ void intergames_state::init_novop_b() rom[0xb2bf] = 0xfc; rom[0xae31] = 0x40; - } void intergames_state::init_intgms() @@ -8838,7 +8847,6 @@ void intergames_state::init_intgms() // rom[0xaf69] = 0xea; // rom[0xaf6a] = 0xea; // rom[0xaf6b] = 0xea; - } @@ -8987,6 +8995,7 @@ GAME( 2001, multiwinb, multiwin, fw2ndpal, funworld, funworld_state, empty_in GAME( 1993, powercrd, 0, multiwina,funworld, multiwina_state,empty_init, ROT0, "Fun World", "Power Card (Ver 0263, encrypted)", 0 ) // clone of Bonus Card. GAME( 1993, megacard, 0, multiwina,funworld, multiwina_state,empty_init, ROT0, "Fun World", "Mega Card (Ver.0210, encrypted)", 0 ) GAME( 1993, megacarda, megacard, multiwina,funworld, multiwina_state,empty_init, ROT0, "Fun World", "Mega Card (Ver.0053, encrypted)", 0 ) +GAME( 1993, jokercrdf, 0, multiwina,funworld, multiwina_state,empty_init, ROT0, "Fun World", "Joker Card (encrypted)", 0 ) GAME( 1993, jokercrd, 0, jokercrd, funworld, jokercrd_state, empty_init, ROT0, "Amatic Trading", "Joker Card 300 (Ver.A267BC, encrypted)", 0 ) GAME( 1991, royalcrdf, royalcrd, royalcrdf,royalcrdf, royalcrdf_state,driver_init, ROT0, "Evona Electronic", "Royal Card (Evona, Polish, encrypted)", 0 ) GAME( 198?, saloon, 0, saloon, saloon, funworld_state, init_saloon, ROT0, "<unknown>", "Saloon (French, encrypted)", 0 ) @@ -9017,7 +9026,7 @@ GAME( 1990, funquizb, 0, funquiz, funquiza, funworld_state, empty_in GAMEL( 1986, novoplay, 0, fw2ndpal, novoplay, funworld_state, empty_init, ROT0, "Admiral / Novomatic", "Novo Play Multi Card / Club Card", 0, layout_novoplay ) GAMEL( 1992, novoplaya, novoplay, intrgmes, novop_ab, intergames_state, init_novop_a, ROT0, "Novo Play International", "Novo Play Club Card (V6.2H)", 0, layout_novoplay ) GAMEL( 1991, novoplayb, novoplay, intrgmes, novop_ab, intergames_state, init_novop_b, ROT0, "Novo Play International", "Novo Play Club Card (V3.3H)", 0, layout_novoplay ) -GAME( 1991, intrgmes, 0, intrgmes, intrgmes, intergames_state, init_intgms, ROT0, "Inter Games", "Joker Card (Inter Games)", 0 ) +GAME( 1991, intrgmes, 0, intrgmes, intrgmes, intergames_state, init_intgms, ROT0, "Inter Games", "Joker Card (Inter Games)", 0 ) GAMEL( 1985, fw_a7_11, 0, fw_brick_2, fw_brick1, funworld_state, empty_init, ROT0, "Fun World", "unknown Fun World A7-11 game 1", MACHINE_NOT_WORKING, layout_jollycrd ) GAMEL( 1985, fw_a7_11a, fw_a7_11, fw_brick_2, fw_brick1, funworld_state, empty_init, ROT0, "Fun World", "unknown Fun World A7-11 game 2", MACHINE_NOT_WORKING, layout_jollycrd ) GAMEL( 1991, fw_a0_1, 0, fw_brick_2, fw_brick1, funworld_state, empty_init, ROT0, "Fun World", "unknown Fun World A0-1 game", MACHINE_NOT_WORKING, layout_jollycrd ) |