diff options
-rw-r--r-- | src/mame/drivers/funworld.cpp | 156 | ||||
-rw-r--r-- | src/mame/includes/funworld.h | 2 | ||||
-rw-r--r-- | src/mame/mame.lst | 3 |
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 |