summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/funworld/funworld.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/funworld/funworld.cpp')
-rw-r--r--src/mame/funworld/funworld.cpp165
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 )