diff options
author | Roberto Fresca <robertof@mamedev.org> | 2012-10-27 05:46:42 +0000 |
---|---|---|
committer | Roberto Fresca <robertof@mamedev.org> | 2012-10-27 05:46:42 +0000 |
commit | 5768e8235bf5df642aecaeeea417ab88c4073a2a (patch) | |
tree | f0c848bc78132976f0a64853d353b15379eceac6 /src/mame/drivers/funworld.c | |
parent | 4da26486833806487697fa5d00b0e1389709410b (diff) |
Fun World driver improvements [Roberto Fresca]
* Added 'Bonus Card (Austrian)' from Fun World.
* Added PCB layouts.
* Set Big Deal sets and Jolly Card hybrid as clones
of Bonus Card.
* Cleaned up the code.
* Changed company name 'Funworld' to 'Fun World'.
* Added technical notes.
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Bonus Card (Austrian) [Roberto Fresca, Team Europe]
Diffstat (limited to 'src/mame/drivers/funworld.c')
-rw-r--r-- | src/mame/drivers/funworld.c | 394 |
1 files changed, 301 insertions, 93 deletions
diff --git a/src/mame/drivers/funworld.c b/src/mame/drivers/funworld.c index 21d9eae0102..034f98f19ab 100644 --- a/src/mame/drivers/funworld.c +++ b/src/mame/drivers/funworld.c @@ -1,10 +1,14 @@ /********************************************************************************** - FUNWORLD / TAB. + Fun World / Amatic / TAB / Impera. + Series 7000 hardware. - Original preliminary driver: Curt Coder, Peter Trauner. - Rewrite and aditional work: Roberto Fresca. + 65C02 + 2x PIAs + M6845 CRTC + AY8910 + Driver by Roberto Fresca. + Based on a preliminary work of Curt Coder & Peter Trauner. + +*********************************************************************************** Games running on this hardware: @@ -18,10 +22,11 @@ * Jolly Card (Italian, blue TAB board, encrypted), bootleg, 199?. * Jolly Card (Italian, encrypted bootleg), bootleg, 1990. * Super Joly 2000 - 3x, M.P. 1985. - * Jolly Card (Austrian, Funworld, bootleg), Inter Games, 1986. - * Big Deal (Hungarian, set 1), Funworld, 1986. - * Big Deal (Hungarian, set 2), Funworld, 1986. - * Jolly Card (Austrian, Funworld), Funworld, 1986. + * Jolly Card (Austrian, Fun World, bootleg), Inter Games, 1986. + * Bonus Card (Austrian), Fun World, 1986. + * Big Deal (Hungarian, set 1), Fun World, 1986. + * Big Deal (Hungarian, set 2), Fun World, 1986. + * Jolly Card (Austrian, Fun World), Fun World, 1986. * Cuore 1 (Italian), C.M.C., 1996. * Elephant Family (Italian, new), C.M.C., 1997. * Elephant Family (Italian, old), C.M.C., 1996. @@ -47,20 +52,20 @@ * Magic Card II (Bulgarian), Impera, 1996. * Magic Card II (Green TAB or Impera board), Impera, 1996. * Magic Card II (Blue TAB board, encrypted), Impera, 1996. - * Royal Vegas Joker Card (Slow deal), Funworld, 1993. + * Royal Vegas Joker Card (Slow deal), Fun World, 1993. * 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 (98bet, set 1). Impera, 198?. * Jolly Joker (98bet, set 2). Impera, 198?. * Jolly Joker (40bet, croatian hack), Impera, 198?. - * Multi Win (Ver.0167, encrypted), Funworld, 1992. - * Mega Card (Ver 0263, encrypted), Funworld, 1993. + * Multi Win (Ver.0167, encrypted), Fun World, 1992. + * Mega Card (Ver 0263, encrypted), Fun World, 1993. * Joker Card (Ver.A267BC, encrypted), Vesely Svet, 1993. * Mongolfier New (Italian), bootleg, 199?. * Soccer New (Italian), bootleg, 199?. * Saloon (French, encrypted), unknown, 199?. - * Fun World Quiz (Austrian), Funworld, 198?. + * Fun World Quiz (Austrian), Fun World, 198?. * Witch Royal (Export version 2.1), Video Klein, 199?. * Novo Play Multi Card / Club Card, Admiral/Novomatic, 1986. @@ -69,7 +74,7 @@ The hardware is generally composed by: CPU: 1x 65SC02 or 65C02 at 2MHz. - Sound: 1x AY3-8910 or YM2149F (AY8910 compatible) at 2MHz. + Sound: 1x AY-3-8910 or YM2149F (AY8910 compatible) at 2MHz. I/O: 2x 6821 (PIA) Video: 1x 6845 (CRTC) RAM: 1x 6116 @@ -91,9 +96,9 @@ 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 16colors). + 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 use the first 256 bytes. + Color PROMs from current games are 512 bytes lenght, but they only can use the first or the last 256 bytes. Normal hardware capabilities: @@ -121,7 +126,7 @@ - Encryption. - A) Encrypted CPU. At least two Funworld boards have custom encrypted CPUs: + A) Encrypted CPU. At least two Fun World boards have custom encrypted CPUs: - Joker Card from Vesely Svet use a custom unknown CPU and use encrypted prg roms. - Royal Card (slovak, encrypted) from Evona Electronic seems to use a block @@ -209,9 +214,11 @@ You have 1 attempt for each 100 earned points. If you lose the game, you lose the points. - * Jolly Card (austrian, Funworld, bootleg) + * Bonus Card (Austrian) + * Big Deal (Hungarian) + * Jolly Card (Austrian, Fun World, bootleg) - This one seems to have normal RAM instead of NVRAM. + These ones seems to have normal RAM instead of NVRAM. Going through the code, there's not any NVRAM initialization routine through service 1 & 2. @@ -285,7 +292,7 @@ * (multi) Joker Card (Vesely). - * Multi Win (Funworld) + * Multi Win (Fun World) These sets seems to run in the same modified hardware. They are encrypted, and have a second program rom with unknown code/purposes. @@ -390,8 +397,8 @@ $0E00 - $0E00 CRTC6845 (A) // MC6845 addressing. $0E01 - $0E01 CRTC6845 (R/W) // MC6845 Read/Write. - $2000 - $2FFF VideoRAM (funworld/bigdeal) - $3000 - $3FFF ColorRAM (funworld/bigdeal) + $2000 - $2FFF VideoRAM (Fun World/bigdeal) + $3000 - $3FFF ColorRAM (Fun World/bigdeal) $4000 - $4FFF VideoRAM (magicrd2/royalcrd) $5000 - $5FFF ColorRAM (magicrd2/royalcrd) @@ -682,7 +689,7 @@ - Fixed graphics bitplanes to involved games. - Added more hardware/technical info. - Modify the mongolnw machine driver. Now can see it starts. - - Added Multi Win, from Funworld. The set is encrypted and use a + - Added Multi Win, from Fun World. The set is encrypted and use a custom CPU. Seems similar hardware than (multi) Joker Card. - Added Fun World Quiz. Needs proper banking, and both graphics and bipolar PROM redumps. @@ -757,10 +764,24 @@ - Added default NVRAM, necessary to boot. - Added technical notes. + [2012/10/11] + - Added 'Mega Card (Ver 0263, encrypted)' from Fun World. + - Added PCB layout. + - GFX are properly decoded. + + [2012/10/27] + - Added 'Bonus Card (Austrian)' from Fun World. + - Added PCB layouts. + - Set Big Deal sets and Jolly Card hybrid as clones + of Bonus Card. + - Cleaned up the code. + - Changed company name 'Funworld' to 'Fun World'. + - Added technical notes. + *** TO DO *** - - Figure out the royalcdc, jokercrd and multiwin encryption. + - Figure out the royalcdc, jokercrd, multiwin and megacard encryption. - Figure out the remaining PIA connections for almost all games. - Fix Saloon and move it to its own driver. - Fix the imperfect sound in Magic Card II. @@ -1280,9 +1301,71 @@ static INPUT_PORTS_START( jolyc980 ) PORT_DIPSETTING( 0x80, "Manual Payout SW" ) INPUT_PORTS_END +static INPUT_PORTS_START( bonuscrd ) + PORT_START("IN0") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME("Hold 1 / Red") + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_CANCEL ) PORT_NAME("Clear / Take") + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Start") + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD5 ) PORT_NAME("Hold 5 / Black / Bet") + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE1 ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE2 ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) PORT_NAME("Hold 4 / Hoch (High)") + + PORT_START("IN1") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) PORT_NAME("Hold 2 / Tief (Low)") + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) PORT_NAME("Hold 3 / Half Gamble") + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_NAME("Payout") + + PORT_START("IN2") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("DSW") + /* the following one should be left ON by default to allow initialization */ + PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:8") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x01, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x02, "Bonus Type" ) PORT_DIPLOCATION("SW1:7") + PORT_DIPSETTING( 0x00, "Good Luck!" ) + PORT_DIPSETTING( 0x02, "55/77/99 Bonus" ) + PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:6") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x04, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x00, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:5") + PORT_DIPSETTING( 0x00, "5 Points/Coin" ) + PORT_DIPSETTING( 0x08, "10 Points/Coin" ) + PORT_DIPNAME( 0x10, 0x00, "D-UP Type" ) PORT_DIPLOCATION("SW1:4") + PORT_DIPSETTING( 0x00, "Forced, Red-Low-High-Black" ) + PORT_DIPSETTING( 0x10, "Classic Hi-Lo" ) + PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:3") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x20, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, "Hold" ) PORT_DIPLOCATION("SW1:2") + PORT_DIPSETTING( 0x00, "Auto Hold" ) + PORT_DIPSETTING( 0x40, "No Auto Hold" ) + + /* after nvram init, set the following one to 'manual' + to allow the remote credits mode to work */ + PORT_DIPNAME( 0x80, 0x00, "Payout" ) PORT_DIPLOCATION("SW1:1") + PORT_DIPSETTING( 0x00, "Hopper" ) + PORT_DIPSETTING( 0x80, "Manual Payout SW" ) +INPUT_PORTS_END + static INPUT_PORTS_START( bigdeal ) PORT_START("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN ) PORT_NAME("Remote") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME("Hold 1") PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_CANCEL ) PORT_NAME("Clear / Take") PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Start") @@ -1316,18 +1399,18 @@ static INPUT_PORTS_START( bigdeal ) PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:8") PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:7") + PORT_DIPNAME( 0x02, 0x02, "Bonus Type" ) PORT_DIPLOCATION("SW1:7") + PORT_DIPSETTING( 0x00, "Good Luck!" ) + PORT_DIPSETTING( 0x02, "55/77/99 Bonus" ) + PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:6") PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, "Remote Value" ) PORT_DIPLOCATION("SW1:6") - PORT_DIPSETTING( 0x00, "10 Points/Pulse" ) - PORT_DIPSETTING( 0x04, "100 Points/Pulse" ) + PORT_DIPSETTING( 0x04, DEF_STR( On ) ) PORT_DIPNAME( 0x08, 0x00, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:5") PORT_DIPSETTING( 0x00, "5 Points/Coin" ) PORT_DIPSETTING( 0x08, "10 Points/Coin" ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:4") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x00, "D-UP Type" ) PORT_DIPLOCATION("SW1:4") + PORT_DIPSETTING( 0x00, "Forced, Red-Low-High-Black" ) + PORT_DIPSETTING( 0x10, "Classic Hi-Lo" ) PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:3") PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x20, DEF_STR( On ) ) @@ -2189,11 +2272,16 @@ static const gfx_layout charlayout = * Graphics Decode Information * ******************************/ -static GFXDECODE_START( fw1stpal ) +/* The palette system is adressable through a PLD. + The game could have 2 different palettes, located + in the first and second half of the bipolar PROM. +*/ + +static GFXDECODE_START( fw1stpal ) /* Adressing the first half of the palette */ GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 16 ) GFXDECODE_END -static GFXDECODE_START( fw2ndpal ) +static GFXDECODE_START( fw2ndpal ) /* Adressing the second half of the palette */ GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0x100, 16 ) GFXDECODE_END @@ -2261,34 +2349,34 @@ static const pia6821_interface pia0_intf = */ { - DEVCB_INPUT_PORT("IN0"), /* port A in */ - DEVCB_INPUT_PORT("IN1"), /* port B in */ - DEVCB_NULL, /* line CA1 in */ - DEVCB_NULL, /* line CB1 in */ - DEVCB_NULL, /* line CA2 in */ - DEVCB_NULL, /* line CB2 in */ - DEVCB_NULL, /* port A out */ - DEVCB_NULL, /* port B out */ - DEVCB_NULL, /* line CA2 out */ - DEVCB_NULL, /* port CB2 out */ - DEVCB_NULL, /* IRQA */ - DEVCB_NULL /* IRQB */ + DEVCB_INPUT_PORT("IN0"), /* port A in */ + DEVCB_INPUT_PORT("IN1"), /* port B in */ + DEVCB_NULL, /* line CA1 in */ + DEVCB_NULL, /* line CB1 in */ + DEVCB_NULL, /* line CA2 in */ + DEVCB_NULL, /* line CB2 in */ + DEVCB_NULL, /* port A out */ + DEVCB_NULL, /* port B out */ + DEVCB_NULL, /* line CA2 out */ + DEVCB_NULL, /* port CB2 out */ + DEVCB_NULL, /* IRQA */ + DEVCB_NULL /* IRQB */ }; static const pia6821_interface pia1_intf = { - DEVCB_INPUT_PORT("IN2"), /* port A in */ - DEVCB_INPUT_PORT("DSW"), /* port B in */ - DEVCB_NULL, /* line CA1 in */ - DEVCB_NULL, /* line CB1 in */ - DEVCB_NULL, /* line CA2 in */ - DEVCB_NULL, /* line CB2 in */ - DEVCB_NULL, /* port A out */ - DEVCB_NULL, /* port B out */ - DEVCB_DRIVER_MEMBER(funworld_state,pia1_ca2_w), /* line CA2 out */ - DEVCB_NULL, /* port CB2 out */ - DEVCB_NULL, /* IRQA */ - DEVCB_NULL /* IRQB */ + DEVCB_INPUT_PORT("IN2"), /* port A in */ + DEVCB_INPUT_PORT("DSW"), /* port B in */ + DEVCB_NULL, /* line CA1 in */ + DEVCB_NULL, /* line CB1 in */ + DEVCB_NULL, /* line CA2 in */ + DEVCB_NULL, /* line CB2 in */ + DEVCB_NULL, /* port A out */ + DEVCB_NULL, /* port B out */ + DEVCB_DRIVER_MEMBER(funworld_state, pia1_ca2_w), /* line CA2 out */ + DEVCB_NULL, /* port CB2 out */ + DEVCB_NULL, /* IRQA */ + DEVCB_NULL /* IRQB */ }; /* these ports are set to output anyway, but this quietens the log */ @@ -2320,8 +2408,8 @@ static const ay8910_interface funquiz_ay8910_intf = { AY8910_LEGACY_OUTPUT, AY8910_DEFAULT_LOADS, - DEVCB_DRIVER_MEMBER(funworld_state,funquiz_ay8910_a_r), /* portA in */ - DEVCB_DRIVER_MEMBER(funworld_state,funquiz_ay8910_b_r), /* portB in */ + DEVCB_DRIVER_MEMBER(funworld_state,funquiz_ay8910_a_r), /* portA in */ + DEVCB_DRIVER_MEMBER(funworld_state,funquiz_ay8910_b_r), /* portB in */ DEVCB_DRIVER_MEMBER(funworld_state,funworld_lamp_a_w), /* portA out */ DEVCB_DRIVER_MEMBER(funworld_state,funworld_lamp_b_w) /* portB out */ }; @@ -2353,7 +2441,7 @@ static MACHINE_CONFIG_START( fw1stpal, funworld_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M65SC02, MASTER_CLOCK/8) /* 2MHz */ MCFG_CPU_PROGRAM_MAP(funworld_map) - MCFG_CPU_VBLANK_INT_DRIVER("screen", funworld_state, nmi_line_pulse) + MCFG_CPU_VBLANK_INT_DRIVER("screen", funworld_state, nmi_line_pulse) MCFG_NVRAM_ADD_0FILL("nvram") @@ -2372,8 +2460,8 @@ static MACHINE_CONFIG_START( fw1stpal, funworld_state ) MCFG_GFXDECODE(fw1stpal) MCFG_PALETTE_LENGTH(0x200) - MCFG_PALETTE_INIT_OVERRIDE(funworld_state,funworld) - MCFG_VIDEO_START_OVERRIDE(funworld_state,funworld) + MCFG_PALETTE_INIT_OVERRIDE(funworld_state, funworld) + MCFG_VIDEO_START_OVERRIDE(funworld_state, funworld) MCFG_MC6845_ADD("crtc", MC6845, MASTER_CLOCK/8, mc6845_intf) /* 2MHz, veryfied on jollycrd & royalcrd */ @@ -2389,7 +2477,7 @@ static MACHINE_CONFIG_DERIVED( fw2ndpal, fw1stpal ) MCFG_CPU_REPLACE("maincpu", M65C02, MASTER_CLOCK/8) /* 2MHz */ MCFG_CPU_PROGRAM_MAP(funworld_map) - MCFG_CPU_VBLANK_INT_DRIVER("screen", funworld_state, nmi_line_pulse) + MCFG_CPU_VBLANK_INT_DRIVER("screen", funworld_state, nmi_line_pulse) MCFG_GFXDECODE(fw2ndpal) MACHINE_CONFIG_END @@ -2401,7 +2489,7 @@ static MACHINE_CONFIG_DERIVED( funquiz, fw1stpal ) MCFG_CPU_REPLACE("maincpu", M65C02, MASTER_CLOCK/8) /* 2MHz */ MCFG_CPU_PROGRAM_MAP(funquiz_map) - MCFG_CPU_VBLANK_INT_DRIVER("screen", funworld_state, nmi_line_pulse) + MCFG_CPU_VBLANK_INT_DRIVER("screen", funworld_state, nmi_line_pulse) MCFG_SOUND_REPLACE("ay8910", AY8910, MASTER_CLOCK/8) /* 2MHz */ MCFG_SOUND_CONFIG(funquiz_ay8910_intf) @@ -2413,7 +2501,7 @@ static MACHINE_CONFIG_DERIVED( magicrd2, fw1stpal ) MCFG_CPU_REPLACE("maincpu", M65C02, MASTER_CLOCK/8) /* 2MHz */ MCFG_CPU_PROGRAM_MAP(magicrd2_map) - MCFG_CPU_VBLANK_INT_DRIVER("screen", funworld_state, nmi_line_pulse) + MCFG_CPU_VBLANK_INT_DRIVER("screen", funworld_state, nmi_line_pulse) MCFG_VIDEO_START_OVERRIDE(funworld_state,magicrd2) @@ -2426,35 +2514,35 @@ static MACHINE_CONFIG_DERIVED( royalcd1, fw1stpal ) MCFG_CPU_REPLACE("maincpu", M65C02, MASTER_CLOCK/8) /* (G65SC02P in pro version) 2MHz */ MCFG_CPU_PROGRAM_MAP(magicrd2_map) - MCFG_CPU_VBLANK_INT_DRIVER("screen", funworld_state, nmi_line_pulse) + MCFG_CPU_VBLANK_INT_DRIVER("screen", funworld_state, nmi_line_pulse) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( royalcd2, fw2ndpal ) MCFG_CPU_REPLACE("maincpu", M65C02, MASTER_CLOCK/8) /* 2MHz */ MCFG_CPU_PROGRAM_MAP(magicrd2_map) - MCFG_CPU_VBLANK_INT_DRIVER("screen", funworld_state, nmi_line_pulse) + MCFG_CPU_VBLANK_INT_DRIVER("screen", funworld_state, nmi_line_pulse) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( cuoreuno, fw1stpal ) MCFG_CPU_REPLACE("maincpu", M65C02, MASTER_CLOCK/8) /* 2MHz */ MCFG_CPU_PROGRAM_MAP(cuoreuno_map) - MCFG_CPU_VBLANK_INT_DRIVER("screen", funworld_state, nmi_line_pulse) + MCFG_CPU_VBLANK_INT_DRIVER("screen", funworld_state, nmi_line_pulse) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( saloon, fw1stpal ) MCFG_CPU_REPLACE("maincpu", M65C02, MASTER_CLOCK/8) /* 2MHz */ MCFG_CPU_PROGRAM_MAP(saloon_map) - MCFG_CPU_VBLANK_INT_DRIVER("screen", funworld_state, nmi_line_pulse) + MCFG_CPU_VBLANK_INT_DRIVER("screen", funworld_state, nmi_line_pulse) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( witchryl, fw1stpal ) MCFG_CPU_REPLACE("maincpu", M65C02, MASTER_CLOCK/8) /* 2MHz */ MCFG_CPU_PROGRAM_MAP(witchryl_map) - MCFG_CPU_VBLANK_INT_DRIVER("screen", funworld_state, nmi_line_pulse) + MCFG_CPU_VBLANK_INT_DRIVER("screen", funworld_state, nmi_line_pulse) MACHINE_CONFIG_END @@ -2850,7 +2938,105 @@ ROM_START( jolycdab ) ROM_END -/******************************** Big Deal sets ************************************/ +/******************************** Bonus Card based sets ************************************/ + +/* + Bonus Card + Fun World, 1986. + + Hardware Fun World/Impera/TAB... + Seems close to Big Deal and Royal Vegas Joker Card. + + PCB Layout... + +----------------------------------------------------------------------------------------------------------------+ + | | + | +--------+ +--------+ +----------+ +--------+ | + | | | +------------+ | | | LM380N | | | | + | | | | GD74LS157 | | | +----------+ | | +---+ +---+ + | | | +------------+ |HYUNDAI | |AY38910A| | | +---+ --| + | | | | | |/P | |ULN| | | --| + | | | +------------+ |HY6116AL| | | |200| |74L| --| + | | | | GD74LS157 | |P-10 | | | |3AN| |S04| --| + | |MC68B45P| +------------+ | | |9027CCA | | | |N | --| + | | | | | | | | | | | --| + | | | +------------+ | | +----------+ | | +---+ | | --| + | | | | GD74LS157 | | | |XRU74HC126| | TAIWAN | +---+ --| + | | 2JR5 | +------------+ | | +----------+ | | --| + | | | +--------+ | | +---+ --| + | |LLAG9319| +------------+ +------------+ | | | | --| + | | | | GD74LS157 | | HD74LS245P | | | |ULN| +---+ + | | | +------------+ +------------+ | | |200| | + | | | | | |3AN| | + | | | +----+ | | | | | + | | | +------------------+ |XTAL| | | | | | + | +--------+ | KM6264BL-10 | | | +----------+ +--------+ +---+ | + | | | |16.0| | 74LS139AN| +--------+ +--------+ | + | +-------------+ | 251Y KOREA | |0Mhz| +----------+ | | | | | + | | GD74LS245 | | | +----+ | | | | | + | +-------------+ +------------------+ | | | | +---+ + | +---+ +------------+ |R65C02P2| |MC6821P | --| + | +-------------+ +------------+ | | |TIBPAL16L8-2| | | | | --| + | | HD74LS374P | | HD74LS374P | | | +------------+ |11450-12| | 0K2P | --| + | +-------------+ +------------+ | | | | | | --| + | |GD7| | MEXICO | | | --| + |+--------------------+ +----------+ |4LS| | | | | +---+ --| + ||Bonus Card 1 | | 74LS194AN| |368| | | |LLAI9320| | 8| --| + || | +----------+ +---+ |9314 | | | | | --| + || 27C256| |A27110-4| | | | | --| + || | +----------+ +---+ | | | | |DIP| --| + |+--------------------+ | 74LS194AN| | | | | | | | | --| + | +----------+ |74L| | | | | | | --| + | |S39| | | | | | | --| + |+--------------------+ +----------+ |3N | | | | | | 1| --| + ||Bonus Card 2 | | 74LS194AN| | | | | | | +---+ --| + || | +----------+ | | +--------+ +--------+ --| + || 27C256| +---+ +--------+ --| + || | +----------+ +--------------------+ | | --| + |+--------------------+ | 74LS194AN| |Bonus Card 3 | | | --| + | +----------+ | | | | --| + | | 27C256| |MC6821P | --| + |+----------+ +----------+ | | | | --| + || GD74LS174| |HD74LS02P | +--------------------+ | 0K2P | --| + |+----------+ +----------+ | | --| + | | | --| + |+---+ +---+ +---+ +---+ +---+ |LLAI9320| --| + ||GD7| | | |HD7| | | | | | | --| + ||4LS| |74S| |4LS| |74L| JOLLY-2-T |74L| | | --| + ||174| |472| |374| |S00| |S02| | | --| + || | |N | |P | |N | |N | | | --| + || | | | | | | | +----+ | | | | --| + || | | | | | | | | A00| | | | | --| + |+---+ | | | | | | +----+ | | | | +---+ + | | | | | +---+ +---+ | | | + | +---+ +---+ +--------+ | + | | + +----------------------------------------------------------------------------------------------------------------+ + + A00 = TL7705ACP + + + DIP + +---------------+ + |#|#| | | |#| | | + |---------------| + | | |#|#|#| |#|#| + +---------------+ + 1 2 3 4 5 6 7 8 + +*/ +ROM_START( bonuscrd ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "bonuscard_3.bin", 0x8000, 0x8000, CRC(c4c6f7af) SHA1(3d0c5c867a9473043fb0b2cde6c6b98c4580ad81) ) + + ROM_REGION( 0x10000, "gfx1", 0 ) + ROM_LOAD( "bonuscard_2.bin", 0x0000, 0x8000, CRC(b026823b) SHA1(8d0c80019a9b35104a3782c4fad5c2ca07440a37) ) + ROM_LOAD( "bonuscard_1.bin", 0x8000, 0x8000, CRC(e07f72de) SHA1(f4bd6bc7a8aabe76d09d48362e32f29932fff4e4) ) + + ROM_REGION( 0x0400, "proms", 0 ) +// ROM_LOAD( "jokercrd_prom.bin", 0x0000, 0x0200, BAD_DUMP CRC(e59fc06e) SHA1(88a3bb89f020fe2b20f768ca010a082e0b974831) ) + ROM_LOAD( "74s472n.bin", 0x0000, 0x0200, CRC(e56780cb) SHA1(c06b854f21b1dcee465ac9c8c9a2934b7e99565f) ) +ROM_END + /* Big Deal (hungarian) @@ -2889,7 +3075,7 @@ ROM_END /* - Jolly Card (austrian, Funworld, bootleg) + Jolly Card (austrian, Fun World, bootleg) ---------------------------------------- - 1x G65SC02P (CPU) @@ -4051,9 +4237,9 @@ ROM_END /* (Multi) Joker Card from Vesely Svet (Sprightly World). Czech poker game. Program roms seems encrypted. Seems to be a Big Deal clone, running in - Funworld Multi Win hardware. + Fun World Multi Win hardware. - 1x Custom Funworld CPU, based on 6502 family. Silkscreened "Fun World Elektronik". + 1x Custom Fun World CPU, based on 6502 family. Silkscreened "Fun World Elektronik". 1x Maxim MAX690CPA - Microprocessor Supervisory IC (DIP 8). 2x MC68B21P PIAs. @@ -4394,7 +4580,7 @@ ROM_END Admiral Club Card (Novo Play) Novomatic, 1986. - Hardware Funworld/Impera/TAB... + Hardware Fun World/Impera/TAB... Seems close to Royal Vegas Joker Card. */ @@ -4415,12 +4601,11 @@ ROM_START( novoplay ) /* Similar to Royal Vegas Joker Card */ ROM_END - /************************** * Driver Initialization * **************************/ -DRIVER_INIT_MEMBER(funworld_state,tabblue) +DRIVER_INIT_MEMBER(funworld_state, tabblue) { /**************************************************************************************************** @@ -4457,7 +4642,7 @@ DRIVER_INIT_MEMBER(funworld_state,tabblue) } } -DRIVER_INIT_MEMBER(funworld_state,magicd2a) +DRIVER_INIT_MEMBER(funworld_state, magicd2a) /***************************************************************** For a serie of Mexican Rockwell's 65c02 @@ -4477,7 +4662,7 @@ DRIVER_INIT_MEMBER(funworld_state,magicd2a) ROM[0xc1c6] = 0x92; } -DRIVER_INIT_MEMBER(funworld_state,magicd2b) +DRIVER_INIT_MEMBER(funworld_state, magicd2b) /*** same as blue TAB PCB, with the magicd2a patch ***/ { int x, na, nb, nad, nbd; @@ -4498,7 +4683,7 @@ DRIVER_INIT_MEMBER(funworld_state,magicd2b) ROM[0xc1c6] = 0x92; } -DRIVER_INIT_MEMBER(funworld_state,soccernw) +DRIVER_INIT_MEMBER(funworld_state, soccernw) { /* temporary patch to avoid hardware errors for debug purposes */ UINT8 *ROM = machine().root_device().memregion("maincpu")->base(); @@ -4514,7 +4699,7 @@ DRIVER_INIT_MEMBER(funworld_state,soccernw) // ROM[0xa33c] = 0xea; } -DRIVER_INIT_MEMBER(funworld_state,saloon) +DRIVER_INIT_MEMBER(funworld_state, saloon) /************************************************* LEOPARDO 5 Hardware @@ -4622,7 +4807,7 @@ DRIVER_INIT_MEMBER(funworld_state,saloon) } -DRIVER_INIT_MEMBER(funworld_state,multiwin) +DRIVER_INIT_MEMBER(funworld_state, multiwin) /***************************************************** This only decrypt the text strings. @@ -4652,7 +4837,7 @@ DRIVER_INIT_MEMBER(funworld_state,multiwin) space.set_decrypted_region(0x8000, 0xffff, machine().root_device().memregion("maincpu")->base() + 0x18000); } -DRIVER_INIT_MEMBER(funworld_state,royalcdc) +DRIVER_INIT_MEMBER(funworld_state, royalcdc) { /***************************************************** @@ -4711,6 +4896,8 @@ DRIVER_INIT_MEMBER(funworld_state,royalcdc) *************************/ /* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT */ + +// Jolly Card based... GAMEL( 1985, jollycrd, 0, fw1stpal, funworld, driver_device, 0, ROT0, "TAB Austria", "Jolly Card (Austrian)", 0, layout_jollycrd ) GAMEL( 1985, jolyc3x3, jollycrd, fw1stpal, funworld, driver_device, 0, ROT0, "TAB Austria", "Jolly Card (3x3 deal)", 0, layout_jollycrd ) GAMEL( 1993, jolycmzs, jollycrd, cuoreuno, jolyc980, driver_device, 0, ROT0, "MZS Tech", "Jolly Card Professional 2.0 (MZS Tech)", 0, layout_jollycrd ) @@ -4721,10 +4908,15 @@ GAMEL( 1993, jolyccrb, jollycrd, cuoreuno, jolycdcr, driver_device, 0, GAMEL( 199?, jolycdit, jollycrd, cuoreuno, jolycdit, funworld_state, tabblue, ROT0, "bootleg", "Jolly Card (Italian, blue TAB board, encrypted)", 0, layout_royalcrd ) GAMEL( 1990, jolycdib, jollycrd, cuoreuno, jolycdib, funworld_state, tabblue, ROT0, "bootleg", "Jolly Card (Italian, encrypted bootleg)", 0, layout_jollycrd ) /* not a real TAB blue PCB */ GAMEL( 1985, sjcd2kx3, jollycrd, fw1stpal, funworld, driver_device, 0, ROT0, "M.P.", "Super Joly 2000 - 3x", 0, layout_jollycrd ) -GAME( 1986, jolycdab, jollycrd, fw1stpal, funworld, driver_device, 0, ROT0, "Inter Games", "Jolly Card (Austrian, Funworld, bootleg)", GAME_NOT_WORKING ) -GAMEL( 1986, bigdeal, 0, fw2ndpal, bigdeal, driver_device, 0, ROT0, "Funworld", "Big Deal (Hungarian, set 1)", GAME_IMPERFECT_COLORS, layout_bigdeal ) -GAMEL( 1986, bigdealb, bigdeal, fw2ndpal, bigdeal, driver_device, 0, ROT0, "Funworld", "Big Deal (Hungarian, set 2)", GAME_IMPERFECT_COLORS, layout_bigdeal ) -GAMEL( 1986, jolycdat, bigdeal, fw2ndpal, bigdeal, driver_device, 0, ROT0, "Funworld", "Jolly Card (Austrian, Funworld)", GAME_IMPERFECT_COLORS, layout_bigdeal ) +GAME( 1986, jolycdab, jollycrd, fw1stpal, funworld, driver_device, 0, ROT0, "Inter Games", "Jolly Card (Austrian, Fun World, bootleg)", GAME_NOT_WORKING ) + +// Bonus Card based... +GAMEL( 1986, bonuscrd, 0, fw1stpal, bonuscrd, driver_device, 0, ROT0, "Fun World", "Bonus Card (Austrian)", GAME_IMPERFECT_COLORS, layout_bigdeal ) +GAMEL( 1986, bigdeal, bonuscrd, fw2ndpal, bigdeal, driver_device, 0, ROT0, "Fun World", "Big Deal (Hungarian, set 1)", GAME_IMPERFECT_COLORS, layout_bigdeal ) +GAMEL( 1986, bigdealb, bonuscrd, fw2ndpal, bigdeal, driver_device, 0, ROT0, "Fun World", "Big Deal (Hungarian, set 2)", GAME_IMPERFECT_COLORS, layout_bigdeal ) +GAMEL( 1986, jolycdat, bonuscrd, fw2ndpal, bonuscrd, driver_device, 0, ROT0, "Fun World", "Jolly Card (Austrian, Bonus Card hybrid)", GAME_IMPERFECT_COLORS, layout_bigdeal ) + +// CMC Italian jamma PCB's... GAMEL( 1996, cuoreuno, 0, cuoreuno, cuoreuno, driver_device, 0, ROT0, "C.M.C.", "Cuore 1 (Italian)", 0, layout_jollycrd ) GAMEL( 1997, elephfam, 0, cuoreuno, cuoreuno, driver_device, 0, ROT0, "C.M.C.", "Elephant Family (Italian, new)", 0, layout_jollycrd ) GAMEL( 1996, elephfmb, elephfam, cuoreuno, cuoreuno, driver_device, 0, ROT0, "C.M.C.", "Elephant Family (Italian, old)", 0, layout_jollycrd ) @@ -4736,6 +4928,8 @@ GAMEL( 1997, tortufam, 0, cuoreuno, cuoreuno, driver_device, 0, GAMEL( 1996, potgame, 0, cuoreuno, cuoreuno, driver_device, 0, ROT0, "C.M.C.", "Pot Game (Italian)", 0, layout_jollycrd ) GAMEL( 1996, bottle10, 0, cuoreuno, cuoreuno, driver_device, 0, ROT0, "C.M.C.", "Bottle 10 (Italian, set 1)", 0, layout_jollycrd ) GAMEL( 1996, bottl10b, bottle10, cuoreuno, cuoreuno, driver_device, 0, ROT0, "C.M.C.", "Bottle 10 (Italian, set 2)", 0, layout_jollycrd ) + +// Royal Card based... GAMEL( 1991, royalcrd, 0, royalcd2, royalcrd, driver_device, 0, ROT0, "TAB Austria", "Royal Card (Austrian, set 1)", 0, layout_jollycrd ) GAMEL( 1991, royalcrda, royalcrd, royalcd2, royalcrd, driver_device, 0, ROT0, "TAB Austria", "Royal Card (Austrian, set 2)", 0, layout_jollycrd ) GAMEL( 1991, royalcrdb, royalcrd, royalcd1, royalcrd, driver_device, 0, ROT0, "TAB Austria", "Royal Card (Austrian/Polish, set 3)", 0, layout_jollycrd ) @@ -4745,24 +4939,38 @@ GAMEL( 1991, royalcrde, royalcrd, royalcd1, royalcrd, driver_device, 0, GAMEL( 1991, royalcrdt, royalcrd, royalcd1, royalcrd, driver_device, 0, ROT0, "TAB Austria", "Royal Card (TAB original)", 0, layout_jollycrd ) GAME( 1991, royalcrdf, royalcrd, royalcd1, royalcrd, funworld_state, royalcdc, ROT0, "Evona Electronic","Royal Card (Slovak, encrypted)", GAME_NOT_WORKING ) GAME( 1993, royalcrdp, royalcrd, cuoreuno, royalcrd, driver_device, 0, ROT0, "Digital Dreams", "Royal Card v2.0 Professional", GAME_NOT_WORKING ) +GAMEL( 199?, witchryl, 0, witchryl, witchryl, driver_device, 0, ROT0, "Video Klein", "Witch Royal (Export version 2.1)", 0, layout_jollycrd ) + +// Lucky Lady based... GAMEL( 1991, lluck3x3, royalcrd, cuoreuno, royalcrd, driver_device, 0, ROT0, "TAB Austria", "Lucky Lady (3x3 deal)", 0, layout_jollycrd ) GAMEL( 1991, lluck4x1, royalcrd, royalcd1, royalcrd, driver_device, 0, ROT0, "TAB Austria", "Lucky Lady (4x1 aces)", 0, layout_jollycrd ) + +// Magic Card 2 based... GAMEL( 1996, magicrd2, 0, magicrd2, magicrd2, driver_device, 0, ROT0, "Impera", "Magic Card II (Bulgarian)", GAME_IMPERFECT_SOUND, layout_jollycrd ) GAME( 1996, magicd2a, magicrd2, magicrd2, magicrd2, funworld_state, magicd2a, ROT0, "Impera", "Magic Card II (green TAB or Impera board)", GAME_NOT_WORKING ) GAME( 1996, magicd2b, magicrd2, magicrd2, magicrd2, funworld_state, magicd2b, ROT0, "Impera", "Magic Card II (blue TAB board, encrypted)", GAME_NOT_WORKING ) -GAMEL( 1993, vegasslw, 0, fw2ndpal, vegasslw, driver_device, 0, ROT0, "Funworld", "Royal Vegas Joker Card (slow deal)", 0, layout_jollycrd ) + +// Joker Card based... +GAMEL( 1993, vegasslw, 0, fw2ndpal, vegasslw, driver_device, 0, ROT0, "Fun World", "Royal Vegas Joker Card (slow deal)", 0, layout_jollycrd ) GAMEL( 1993, vegasfst, vegasslw, fw2ndpal, vegasfst, driver_device, 0, ROT0, "Soft Design", "Royal Vegas Joker Card (fast deal)", 0, layout_jollycrd ) GAMEL( 1993, vegasfte, vegasslw, fw2ndpal, vegasfte, driver_device, 0, ROT0, "Soft Design", "Royal Vegas Joker Card (fast deal, English gfx)", 0, layout_jollycrd ) GAMEL( 1993, vegasmil, vegasslw, fw2ndpal, vegasmil, driver_device, 0, ROT0, "Mile", "Royal Vegas Joker Card (fast deal, Mile)", 0, layout_jollycrd ) + +// Jolly Joker based... GAMEL( 198?, jolyjokr, 0, fw1stpal, funworld, driver_device, 0, ROT0, "Impera", "Jolly Joker (98bet, set 1)", 0, layout_jollycrd ) GAMEL( 198?, jolyjokra, jolyjokr, fw1stpal, jolyjokra, driver_device, 0, ROT0, "Impera", "Jolly Joker (98bet, set 2)", 0, layout_jollycrd ) GAMEL( 198?, jolyjokrb, jolyjokr, fw1stpal, funworld, driver_device, 0, ROT0, "Impera", "Jolly Joker (40bet, Croatian hack)", 0, layout_jollycrd ) -GAME( 1992, multiwin, 0, fw1stpal, funworld, funworld_state, multiwin, ROT0, "Funworld", "Multi Win (Ver.0167, encrypted)", GAME_NOT_WORKING ) -GAME( 1993, megacard, 0, fw2ndpal, funworld, driver_device, 0, ROT0, "Funworld", "Mega Card (Ver 0263, encrypted)", GAME_NOT_WORKING ) + +// Encrypted games... +GAME( 1992, multiwin, 0, fw1stpal, funworld, funworld_state, multiwin, ROT0, "Fun World", "Multi Win (Ver.0167, encrypted)", GAME_NOT_WORKING ) +GAME( 1993, megacard, 0, fw2ndpal, funworld, driver_device, 0, ROT0, "Fun World", "Mega Card (Ver 0263, encrypted)", GAME_NOT_WORKING ) GAME( 1993, jokercrd, 0, fw2ndpal, funworld, driver_device, 0, ROT0, "Vesely Svet", "Joker Card (Ver.A267BC, encrypted)", GAME_NOT_WORKING ) +GAME( 198?, saloon, 0, saloon, saloon, funworld_state, saloon, ROT0, "<unknown>", "Saloon (French, encrypted)", GAME_NOT_WORKING ) + +// MCU based games... GAME( 199?, mongolnw, 0, royalcd1, royalcrd, driver_device, 0, ROT0, "bootleg", "Mongolfier New (Italian)", GAME_NOT_WORKING ) GAME( 199?, soccernw, 0, royalcd1, royalcrd, funworld_state, soccernw, ROT0, "bootleg", "Soccer New (Italian)", GAME_NOT_WORKING ) -GAME( 198?, saloon, 0, saloon, saloon, funworld_state, saloon, ROT0, "<unknown>", "Saloon (French, encrypted)", GAME_NOT_WORKING ) -GAME( 198?, funquiz, 0, funquiz, funquiz, driver_device, 0, ROT0, "Funworld / Oehlinger", "Fun World Quiz (Austrian)", 0 ) -GAMEL( 199?, witchryl, 0, witchryl, witchryl, driver_device, 0, ROT0, "Video Klein", "Witch Royal (Export version 2.1)", 0, layout_jollycrd ) + +// Other games... +GAME( 198?, funquiz, 0, funquiz, funquiz, driver_device, 0, ROT0, "Fun World / Oehlinger", "Fun World Quiz (Austrian)", 0 ) GAMEL( 1986, novoplay, 0, fw2ndpal, novoplay, driver_device, 0, ROT0, "Admiral/Novomatic", "Novo Play Multi Card / Club Card", 0, layout_novoplay ) |