summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/funworld.c
diff options
context:
space:
mode:
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
commit5768e8235bf5df642aecaeeea417ab88c4073a2a (patch)
treef0c848bc78132976f0a64853d353b15379eceac6 /src/mame/drivers/funworld.c
parent4da26486833806487697fa5d00b0e1389709410b (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.c394
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 )