summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--src/mame/drivers/funworld.cpp156
-rw-r--r--src/mame/includes/funworld.h2
-rw-r--r--src/mame/mame.lst3
3 files changed, 134 insertions, 27 deletions
diff --git a/src/mame/drivers/funworld.cpp b/src/mame/drivers/funworld.cpp
index c95182c93ac..8a8c3df9907 100644
--- a/src/mame/drivers/funworld.cpp
+++ b/src/mame/drivers/funworld.cpp
@@ -5,7 +5,7 @@
Fun World / TAB / Impera
Series 7000 hardware.
- 65C02 + 2x PIAs + M6845 CRTC + AY8910
+ 65C02/65SC02 + 2x PIAs + M6845 CRTC + AY8910
Also from Amatic, CMC, Dino4 encrypted, and Leopard 4.
@@ -71,7 +71,6 @@
* Royal Card Professional 2.0, Digital Dreams, 1993.
* Royal Card / Royal Jackpot (with a third draw)(encrypted), TAB / Video Klein, 1991
* Witch Royal (Export version 2.1), Video Klein, 199?.
- * Royal Card (Italian, Dino 4 hardware, encrypted), unknown, 1998.
* Lucky Lady (3x3 deal), TAB Austria, 1991.
* Lucky Lady (4x1 aces), TAB Austria, 1991.
* Magic Card II (Bulgarian), Impera, 1996.
@@ -82,12 +81,13 @@
* Royal Vegas Joker Card (Fast deal), Soft Design, 1993.
* Royal Vegas Joker Card (Fast deal, english gfx), Soft Design, 1993.
* Royal Vegas Joker Card (Fast deal, Mile), Mile, 1993.
- * Jolly Joker (original, interleaved GFX). Impera, 198?.
- * Jolly Joker (original, different encoded GFX). Impera, 198?.
- * Jolly Joker (98bet, set 1). Impera, 198?.
- * Jolly Joker (98bet, set 2). Impera, 198?.
- * Jolly Joker (40bet, croatian hack), Impera, 198?.
- * Jolly Joker (Apple Time), Apple Time, 198?.
+ * Jolly Joker (original, interleaved GFX). Impera, 199?.
+ * Jolly Joker (original, different encoded GFX). Impera, 199?.
+ * Jolly Joker (Solid State module in suicide board). Impera, 199?.
+ * Jolly Joker (98bet, set 1). Impera, 199?.
+ * Jolly Joker (98bet, set 2). Impera, 199?.
+ * Jolly Joker (40bet, croatian hack), Impera, 199?.
+ * Jolly Joker (Apple Time), Apple Time, 199?.
* Multi Win (Ver.0167, encrypted), Fun World, 1992.
* Power Card (Ver 0263, encrypted), Fun World, 1993.
* Mega Card (Ver.0210, encrypted), Fun World, 1993.
@@ -99,6 +99,7 @@
* Jolly Card (Italian, encrypted bootleg, set 1), bootleg, 1990.
* Jolly Card (Italian, encrypted bootleg, set 2), bootleg, 1993.
* Pool 10 (Italian, Dino 4 hardware, encrypted), C.M.C., 1997.
+ * Royal Card (Italian, Dino 4 hardware, encrypted), unknown, 1998.
* China Town (Ver 1B, Dino4 HW), unknown, 1998.
* Royal Card (Italian, Dino 4 hardware, encrypted), TAB Austria, 1998.
* Mongolfier New (Italian), unknown, 199?.
@@ -112,10 +113,15 @@
* Unknown Fun World A7-11 game 2, Fun World, 1985.
* Unknown Fun World A0-1 game, Fun World, 1991.
* Joker Card / Multi Card (Epoxy brick CPU), Fun World, 1991.
+ * Gratis Poker (V.204, Set 1), Mega Soft, 1995.
+ * Gratis Poker (V.204, Set 2), Mega Soft, 1995.
* Royal Card (stealth with NES multigame), bootleg, 1991.
* Royal Card (stealth with MSX multigame), bootleg, 1991.
+ Supported games: 100
+
+
*****************************************************************************************
The hardware is generally composed by:
@@ -984,6 +990,24 @@ void royalcrdf_state::royalcrdf_map(address_map &map)
}
+void funworld_state::gratispk_map(address_map &map)
+{
+ map(0x0000, 0x07ff).ram().share("nvram");
+ map(0x0800, 0x0803).rw("pia0", FUNC(pia6821_device::read), FUNC(pia6821_device::write));
+ map(0x0a00, 0x0a03).rw("pia1", FUNC(pia6821_device::read), FUNC(pia6821_device::write));
+ map(0x0c00, 0x0c00).r("ay8910", FUNC(ay8910_device::data_r));
+ map(0x0c00, 0x0c01).w("ay8910", FUNC(ay8910_device::address_data_w));
+ map(0x0e00, 0x0e00).w("crtc", FUNC(mc6845_device::address_w));
+ map(0x0e01, 0x0e01).rw("crtc", FUNC(mc6845_device::register_r), FUNC(mc6845_device::register_w));
+// map(0x2c00, 0x2cff).ram(); /* range for protection */
+// map(0x3600, 0x36ff).ram(); /* some games use $3603-05 range for protection */
+// map(0x3c00, 0x3cff).ram(); /* range for protection */
+ map(0x4000, 0x4fff).ram().w(FUNC(funworld_state::funworld_videoram_w)).share("videoram");
+ map(0x5000, 0x5fff).ram().w(FUNC(funworld_state::funworld_colorram_w)).share("colorram");
+ map(0x6000, 0xffff).rom();
+}
+
+
/*************************
* Input ports *
*************************/
@@ -3197,6 +3221,16 @@ void funworld_state::fw_brick_2(machine_config &config)
NVRAM(config, "nvram1", nvram_device::DEFAULT_ALL_0);
}
+
+void funworld_state::gratispk(machine_config &config)
+{
+// fw1stpal(config); // card deck wrong colors.
+ fw2ndpal(config); // correct palette
+
+ m_maincpu->set_addrmap(AS_PROGRAM, &funworld_state::gratispk_map);
+}
+
+
uint8_t royalcrdf_state::royalcrdf_opcode_r(offs_t offset)
{
// address-based data bitswap; 4 address bits are involved, but only
@@ -6088,7 +6122,7 @@ ROM_END
The following two sets have the same program
but different graphics system.
-
+
Both sets have graphics ROMs data interleaved
inside the second half of a 16bit 27C210 EPROM.
The second set has some 8bits data in the first half.
@@ -6105,20 +6139,20 @@ ROM_END
*/
ROM_START( jolyjokro )
- ROM_REGION( 0x20000, "maincpu", 0 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "impera1.bin", 0x0000, 0x10000, CRC(3cad9fcf) SHA1(09f23ae8c04e6b461e17a8b3978fe44566ffc3aa) )
ROM_REGION( 0x10000, "gfxpool", 0 )
ROM_LOAD( "impera2.bin", 0x0000, 0x10000, CRC(aa86dba6) SHA1(fe189dde83bd855f4a0b34b20c161a9addc15017) )
- ROM_CONTINUE( 0x0000, 0x10000) // discarding 1nd empty half (0000-ffff)
+ ROM_CONTINUE( 0x0000, 0x10000) // discarding 1nd empty half (0000-ffff)
ROM_REGION( 0x10000, "gfx1", 0 )
- ROM_FILL( 0x0000, 0x10000, 0xff) // deinterleaved GFX data will be placed here
+ ROM_FILL( 0x0000, 0x10000, 0xff) // deinterleaved GFX data will be placed here
- ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM
+ ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM
ROM_LOAD( "jolyjokro_nvram.bin", 0x0000, 0x0800, CRC(1f69e567) SHA1(86695ca6f9f93c6badd092410611d8061edf8efa) )
- ROM_REGION( 0x0200, "proms", 0 ) // PLD address the 2nd half
+ ROM_REGION( 0x0200, "proms", 0 ) // PLD address the 2nd half
ROM_LOAD( "1_impera_color_ii.bin", 0x0000, 0x0200, CRC(9d62f9f5) SHA1(68300c25c7eaa13a3fdbf91ab0711d0bc530543d) )
ROM_END
@@ -6128,7 +6162,7 @@ ROM_START( jolyjokrp )
ROM_REGION( 0x10000, "gfxpool", 0 )
ROM_LOAD( "9c_1ff1.bin", 0x00000, 0x10000, CRC(4b8f0821) SHA1(0821eed07f5e98b66d87a3079756dad72ffe9665) )
- ROM_CONTINUE( 0x00000, 0x10000) // discarding 1nd half (0000-ffff), but has some data. maybe the missing impera logo?
+ ROM_CONTINUE( 0x00000, 0x10000) // discarding 1nd half (0000-ffff), but has some data. leftover?
ROM_REGION( 0x10000, "gfx1", 0 )
ROM_FILL( 0x0000, 0x10000, 0xff) // deinterleaved GFX data will be placed here
@@ -6140,6 +6174,32 @@ ROM_START( jolyjokrp )
ROM_LOAD( "impera_color_ii.bin", 0x0000, 0x0200, CRC(9d62f9f5) SHA1(68300c25c7eaa13a3fdbf91ab0711d0bc530543d) )
ROM_END
+/*
+ Jolly Joker
+ Impera.
+
+ This hardware has a daughterboard that seems a solid state replacement
+ for the suicide modules of funworld boards.
+
+ It's just a theory, but the main battery is routed to the daughterboard
+ connectors, when this module has not suicide program inside a RAM.
+
+*/
+ROM_START( jolyjokrm ) // Jolly Joker (Solid State module in suicide board)
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "impera1.bin", 0x0000, 0x10000, CRC(3cad9fcf) SHA1(09f23ae8c04e6b461e17a8b3978fe44566ffc3aa) )
+
+ ROM_REGION( 0x10000, "gfx1", 0 )
+ ROM_LOAD( "02.bin", 0x0000, 0x8000, CRC(f0fa5941) SHA1(1fcade31ed6893ffcfd4efe97dfaaa31d24283ec) )
+ ROM_LOAD( "01.bin", 0x8000, 0x8000, CRC(c3ab44dd) SHA1(e46c0fd94da561f57033647f1703fa135777ece5) )
+
+ ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM
+ ROM_LOAD( "jolyjokrm_nvram.bin", 0x0000, 0x0800, CRC(f33e66ed) SHA1(7a4b9a1b2f976d5d26f54915a213d5ac5eca0a42) )
+
+ ROM_REGION( 0x0200, "proms", 0 )
+ ROM_LOAD( "63s481.bin", 0x0000, 0x0200, CRC(1f974802) SHA1(c9d4d72edef3c03b0c6e1a0ffc0b82f6d213d29c) )
+ROM_END
+
/******************************** Other sets ************************************/
@@ -7244,6 +7304,45 @@ ROM_START( jokcrdep )
ROM_END
+/*
+ Gratis Poker
+ Stmk
+ Version: 004
+ 29. Sept. 95
+
+*/
+ROM_START( gratispk ) // Gratis Poker (V.204, Set 1)
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "gratis_poker_club_ver_204.bin", 0x8000, 0x8000, CRC(e53da78e) SHA1(6b87af4d66082f1a18e9e00a41df2484f5373cc7) )
+
+ ROM_REGION( 0x10000, "gfx1", 0 )
+ ROM_LOAD( "3.bin", 0x0000, 0x8000, CRC(daec20c7) SHA1(340bdb7749a7d898e96db5a470821cfe7216ea57) )
+ ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half
+ ROM_LOAD( "2.bin", 0x8000, 0x8000, CRC(112c5f33) SHA1(fffaa247a97f9bde7374cc80ab0bb9fb71bcc4b6) )
+ ROM_IGNORE( 0x8000 ) // Identical halves. Discarding 2nd half
+
+ ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM
+ ROM_LOAD( "gratispk_nvram.bin", 0x0000, 0x0800, CRC(8fcad62f) SHA1(85def713ed5b9bbdbf0d077a38f779d6f4329a1c) )
+
+ ROM_REGION( 0x0200, "proms", 0 )
+ ROM_LOAD( "tbp28s42n.bin", 0x0000, 0x0200, CRC(e92f74e0) SHA1(dfc4a9d140d21b990f769c10802c4d2c33dd4132) )
+ROM_END
+
+ROM_START( gratispka ) // Gratis Poker (V.204, Set 2)
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "35g_ver_204.bin", 0x8000, 0x8000, CRC(e53da78e) SHA1(6b87af4d66082f1a18e9e00a41df2484f5373cc7) )
+
+ ROM_REGION( 0x10000, "gfx1", 0 )
+ ROM_LOAD( "3.bin", 0x0000, 0x8000, CRC(4f077fa3) SHA1(d65005b7111b77ac7c3707bd12bc376506d9477b) )
+ ROM_LOAD( "2.bin", 0x8000, 0x8000, CRC(0f3711b0) SHA1(ce874dbfc2d7171cff2be41d4a44fe8194526ef7) )
+
+ ROM_REGION( 0x0800, "nvram", 0 ) // default NVRAM
+ ROM_LOAD( "gratispk_nvram.bin", 0x0000, 0x0800, CRC(8fcad62f) SHA1(85def713ed5b9bbdbf0d077a38f779d6f4329a1c) )
+
+ ROM_REGION( 0x0200, "proms", 0 )
+ ROM_LOAD( "tbp28s42n.bin", 0x0000, 0x0200, CRC(e92f74e0) SHA1(dfc4a9d140d21b990f769c10802c4d2c33dd4132) )
+ROM_END
+
/**************************
* Driver Initialization *
@@ -8019,12 +8118,13 @@ GAMEL( 1993, vegasfte, vegasslw, fw2ndpal, vegasfte, funworld_state, empty_ini
GAMEL( 1993, vegasmil, vegasslw, fw2ndpal, vegasmil, funworld_state, empty_init, ROT0, "Mile", "Royal Vegas Joker Card (fast deal, Mile)", 0, layout_jollycrd )
// Jolly Joker based...
-GAMEL( 198?, jolyjokr, 0, fw1stpal, funworld, funworld_state, empty_init, ROT0, "Impera", "Jolly Joker (98bet, set 1)", 0, layout_jollycrd )
-GAMEL( 198?, jolyjokra, jolyjokr, fw1stpal, jolyjokra, funworld_state, empty_init, ROT0, "Impera", "Jolly Joker (98bet, set 2)", 0, layout_jollycrd )
-GAMEL( 198?, jolyjokrb, jolyjokr, fw1stpal, funworld, funworld_state, empty_init, ROT0, "Impera", "Jolly Joker (40bet, Croatian hack)", 0, layout_jollycrd )
-GAMEL( 198?, jolyjokrc, jolyjokr, fw1stpal, funworld, funworld_state, empty_init, ROT0, "Apple Time", "Jolly Joker (Apple Time)", MACHINE_NOT_WORKING, layout_jollycrd ) // bad program ROM...
-GAMEL( 198?, jolyjokro, jolyjokr, fw2ndpal, funworld, funworld_state, init_impera16, ROT0, "Impera", "Jolly Joker (original program, interleaved GFX, Impera logo)", 0, layout_jollycrd )
-GAMEL( 198?, jolyjokrp, jolyjokr, fw2ndpal, funworld, funworld_state, init_impera16, ROT0, "Impera", "Jolly Joker (original program, interleaved GFX, no logo)", 0, layout_jollycrd )
+GAMEL( 199?, jolyjokr, 0, fw1stpal, funworld, funworld_state, empty_init, ROT0, "Impera", "Jolly Joker (98bet, set 1)", 0, layout_jollycrd )
+GAMEL( 199?, jolyjokra, jolyjokr, fw1stpal, jolyjokra, funworld_state, empty_init, ROT0, "Impera", "Jolly Joker (98bet, set 2)", 0, layout_jollycrd )
+GAMEL( 199?, jolyjokrb, jolyjokr, fw1stpal, funworld, funworld_state, empty_init, ROT0, "Impera", "Jolly Joker (40bet, Croatian hack)", 0, layout_jollycrd )
+GAMEL( 199?, jolyjokrc, jolyjokr, fw1stpal, funworld, funworld_state, empty_init, ROT0, "Apple Time", "Jolly Joker (Apple Time)", MACHINE_NOT_WORKING, layout_jollycrd ) // bad program ROM...
+GAMEL( 199?, jolyjokro, jolyjokr, fw2ndpal, funworld, funworld_state, init_impera16, ROT0, "Impera", "Jolly Joker (original program, interleaved GFX, Impera logo)", 0, layout_jollycrd )
+GAMEL( 199?, jolyjokrp, jolyjokr, fw2ndpal, funworld, funworld_state, init_impera16, ROT0, "Impera", "Jolly Joker (original program, interleaved GFX, no logo)", 0, layout_jollycrd )
+GAMEL( 199?, jolyjokrm, jolyjokr, fw1stpal, funworld, funworld_state, empty_init, ROT0, "Impera", "Jolly Joker (Solid State module in suicide board)", 0, layout_jollycrd )
// Encrypted games...
GAME( 1992, multiwin, 0, multiwin, funworld, multiwin_state, driver_init, ROT0, "Fun World", "Multi Win (Ver.0167, encrypted)", 0 )
@@ -8055,12 +8155,14 @@ GAME( 1990, funquiza, 0, funquiz, funquiza, funworld_state, empty_ini
GAME( 1990, funquizb, 0, funquiz, funquiza, funworld_state, empty_init, ROT0, "Fun World", "Fun World Quiz (German, 27-04-1990)", 0 )
// Other games...
-GAMEL( 1986, novoplay, 0, fw2ndpal, novoplay, funworld_state, empty_init, ROT0, "Admiral/Novomatic","Novo Play Multi Card / Club Card", 0, layout_novoplay )
-GAME( 1991, intrgmes, 0, intrgmes, intrgmes, intergames_state, empty_init, 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 )
-GAMEL( 1991, jokcrdep, 0, fw_brick_2, fw_brick1, funworld_state, empty_init, ROT0, "Fun World", "Joker Card / Multi Card (Epoxy brick CPU)", MACHINE_NOT_WORKING, layout_jollycrd )
+GAMEL( 1986, novoplay, 0, fw2ndpal, novoplay, funworld_state, empty_init, ROT0, "Admiral/Novomatic","Novo Play Multi Card / Club Card", 0, layout_novoplay )
+GAME( 1991, intrgmes, 0, intrgmes, intrgmes, intergames_state, empty_init, 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 )
+GAMEL( 1991, jokcrdep, 0, fw_brick_2, fw_brick1, funworld_state, empty_init, ROT0, "Fun World", "Joker Card / Multi Card (Epoxy brick CPU)", MACHINE_NOT_WORKING, layout_jollycrd )
+GAMEL( 199?, gratispk, 0, gratispk, funworld, funworld_state, empty_init, ROT0, "Mega Soft", "Gratis Poker (V.204, Set 1)", 0, layout_jollycrd )
+GAMEL( 199?, gratispka, gratispk, gratispk, funworld, funworld_state, empty_init, ROT0, "Mega Soft", "Gratis Poker (V.204, Set 2)", 0, layout_jollycrd )
// These are 2-in-1 stealth boards, they can run the Poker game, or, using completely separate hardware on the same PCB, a NES / MSX Multigames!
GAMEL( 1991, royalcrd_nes, royalcrd, royalcd2, royalcrd, funworld_state, empty_init, ROT0, "bootleg", "Royal Card (stealth with NES multigame)", MACHINE_NOT_WORKING, layout_jollycrd )
diff --git a/src/mame/includes/funworld.h b/src/mame/includes/funworld.h
index 25d31af0b12..a4a7dffa4fb 100644
--- a/src/mame/includes/funworld.h
+++ b/src/mame/includes/funworld.h
@@ -35,6 +35,7 @@ public:
void witchryl(machine_config &config);
void fw_brick_1(machine_config &config);
void fw_brick_2(machine_config &config);
+ void gratispk(machine_config &config);
void init_saloon();
void init_mongolnw();
@@ -76,6 +77,7 @@ private:
void fw_brick_map(address_map &map);
void saloon_map(address_map &map);
void witchryl_map(address_map &map);
+ void gratispk_map(address_map &map);
required_shared_ptr<uint8_t> m_videoram;
required_shared_ptr<uint8_t> m_colorram;
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index b209e6474ef..0803af4b2f9 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -13849,6 +13849,8 @@ elephfmb // (c) 1996 C.M.C.
funquiz // (c) 198? Fun World
funquiza // (c) 1990 Fun World
funquizb // (c) 1990 Fun World
+gratispk // (c) 1995 Mega Soft
+gratispka // (c) 1995 Mega Soft
jokercrd // (c) 1993 Vesely Svet
jollycrd // (c) 1985 TAB-Austria
jollycrda // (c) 1985 TAB-Austria
@@ -13872,6 +13874,7 @@ jolyjokr // (c) 198? Impera
jolyjokra // (c) 198? Impera
jolyjokrb // (c) 198? Impera
jolyjokrc // (c) 198? Apple Time
+jolyjokrm // (c) 198? Impera
jolyjokro // (c) 198? Impera
jolyjokrp // (c) 198? Impera
lluck3x3 // (c) 1991 TAB-Austria