summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author Angelo Salese <angelosa@users.noreply.github.com>2011-04-23 00:34:16 +0000
committer Angelo Salese <angelosa@users.noreply.github.com>2011-04-23 00:34:16 +0000
commit27c3a972a449e836be8bbcff79e8f9887648733f (patch)
treece1279db7de78d65ba5de1a5728e6409578a00b2 /src
parent598cebb186bdc1a90d791e33617cadc08ed1e475 (diff)
Merged 86 Lions inside Aristocrat Mk-4 driver [Angelo Salese]
Diffstat (limited to 'src')
-rw-r--r--src/mame/drivers/86lions.c404
-rw-r--r--src/mame/drivers/aristmk4.c55
-rw-r--r--src/mame/mame.mak1
3 files changed, 52 insertions, 408 deletions
diff --git a/src/mame/drivers/86lions.c b/src/mame/drivers/86lions.c
deleted file mode 100644
index 9097c28feb0..00000000000
--- a/src/mame/drivers/86lions.c
+++ /dev/null
@@ -1,404 +0,0 @@
-/*******************************************************************************************
-
-86 Lions (c) 1985 Aristocrat
-
-driver by Chris Hardy,Angelo Salese & Roberto Fresca
-
-
-NOTES:
-
- - 2 graphics ROMS by each R, G, B.
- - 6 bit buffer, goes to 2 resistors each to 3 transistors... 32 colors.
- - CRTC is using 4 pixels by memory address.
- - Xtal and crtc CLK are accurate.
- - Seems to be 1 DSW bank tied to VIA, and another to ay8910.
- - Maybe this is "Aristocrat Mark-III" HW?
-
-TODO:
- - Understand inputs / via mapping properly;
- - Finish the mc6845 conversion;
-
-Changes 02/06/2009 - Palindrome
-- Fixed VIA address map to 5000 - 0x501f ( now generates required FIRQ_LINE timer interrupt,
- call attendant msg no longer displayed)
-
-
-*******************************************************************************************/
-
-#define MAIN_CLOCK XTAL_12MHz /* guess */
-
-#include "emu.h"
-#include "cpu/m6809/m6809.h"
-#include "video/mc6845.h"
-#include "sound/ay8910.h"
-#include "machine/6522via.h"
-
-
-class _86lions_state : public driver_device
-{
-public:
- _86lions_state(running_machine &machine, const driver_device_config_base &config)
- : driver_device(machine, config) { }
-
- UINT8 *m_lions_vram;
-};
-
-
-
-static VIDEO_START(lions)
-{
-}
-
-static SCREEN_UPDATE(lions)
-{
- _86lions_state *state = screen->machine().driver_data<_86lions_state>();
- const gfx_element *gfx = screen->machine().gfx[0];
- int count = 0;
-
- int y,x;
-
- for (y=0;y<27;y++)
- {
- for (x=0;x<38;x++)
- {
- int tile = state->m_lions_vram[count+1]|state->m_lions_vram[count]<<8;
- tile&=0x1ff;
- //int colour = tile>>12;
- drawgfx_opaque(bitmap,cliprect,gfx,tile,0,0,0,x*8,y*8);
-
- count+=2;
- }
- }
- return 0;
-}
-
-
-/**********************
-*
-* End of Video Hardware
-*
-**********************/
-
-static READ8_HANDLER( test_r )
-{
- return space->machine().rand();
-}
-
-
-static ADDRESS_MAP_START( lions_map, AS_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE_MEMBER(_86lions_state, m_lions_vram)
- AM_RANGE(0x0800, 0x0fff) AM_RAM
- AM_RANGE(0x1800, 0x1800) AM_DEVWRITE("crtc", mc6845_address_w)
- AM_RANGE(0x1801, 0x1801) AM_DEVREADWRITE("crtc", mc6845_register_r, mc6845_register_w)
- AM_RANGE(0x5000, 0x500f) AM_MIRROR(0x0010) AM_DEVREADWRITE_MODERN("via6522_0", via6522_device, read, write)
- AM_RANGE(0x5300, 0x5300) AM_READ(test_r)//AM_READ_PORT("IN0")
- AM_RANGE(0x5382, 0x5383) AM_DEVWRITE("aysnd", ay8910_data_address_w)
- AM_RANGE(0xe000, 0xffff) AM_ROM
-ADDRESS_MAP_END
-
-static INPUT_PORTS_START( lions )
-
- PORT_START("IN0")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("0-1") PORT_CODE(KEYCODE_1)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("0-2") PORT_CODE(KEYCODE_2)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("0-3") PORT_CODE(KEYCODE_3)
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("0-4") PORT_CODE(KEYCODE_4)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("0-5") PORT_CODE(KEYCODE_5)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("0-6") PORT_CODE(KEYCODE_6)
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("0-7") PORT_CODE(KEYCODE_7)
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("0-8") PORT_CODE(KEYCODE_8)
-
- PORT_START("IN1")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("1-1") PORT_CODE(KEYCODE_Q)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("1-2") PORT_CODE(KEYCODE_W)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("1-3") PORT_CODE(KEYCODE_E)
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("1-4") PORT_CODE(KEYCODE_R)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("1-5") PORT_CODE(KEYCODE_T)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("1-6") PORT_CODE(KEYCODE_Y)
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("1-7") PORT_CODE(KEYCODE_U)
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("1-8") PORT_CODE(KEYCODE_I)
-
- PORT_START("IN2")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("2-1") PORT_CODE(KEYCODE_A)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("2-2") PORT_CODE(KEYCODE_S)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("2-3") PORT_CODE(KEYCODE_D)
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("2-4") PORT_CODE(KEYCODE_F)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("2-5") PORT_CODE(KEYCODE_G)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("2-6") PORT_CODE(KEYCODE_H)
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("2-7") PORT_CODE(KEYCODE_J)
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("2-8") PORT_CODE(KEYCODE_K)
-
- PORT_START("IN3")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("3-1") PORT_CODE(KEYCODE_Z)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("3-2") PORT_CODE(KEYCODE_X)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("3-3") PORT_CODE(KEYCODE_C)
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("3-4") PORT_CODE(KEYCODE_V)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("3-5") PORT_CODE(KEYCODE_B)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("3-6") PORT_CODE(KEYCODE_N)
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("3-7") PORT_CODE(KEYCODE_M)
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("3-8") PORT_CODE(KEYCODE_L)
-
-// PORT_START("DSW1")
-// PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
-// PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
-// PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-// PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
-// PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
-// PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-// PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
-// PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
-// PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-// PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
-// PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
-// PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-// PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
-// PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
-// PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-// PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
-// PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
-// PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-// PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
-// PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
-// PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-// PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
-// PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
-// PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
-// PORT_START("DSW2")
-// PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
-// PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
-// PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-// PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
-// PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
-// PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-// PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
-// PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
-// PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-// PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
-// PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
-// PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-// PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
-// PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
-// PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-// PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
-// PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
-// PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-// PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
-// PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
-// PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-// PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
-// PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
-// PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-INPUT_PORTS_END
-
-
-static const gfx_layout layout8x8x6 =
-{
- 8,8,
- RGN_FRAC(1,6),
- 6,
- { RGN_FRAC(3,6),
- RGN_FRAC(0,6),
- RGN_FRAC(4,6),
- RGN_FRAC(1,6),
- RGN_FRAC(5,6),
- RGN_FRAC(2,6)
- },
- { STEP8(0,1) },
- { STEP8(0,8) },
- 8*8
-};
-
-static GFXDECODE_START( lions )
- GFXDECODE_ENTRY( "gfx1", 0, layout8x8x6, 0, 1 )
-GFXDECODE_END
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("IN2"), /* DSW? */
- DEVCB_INPUT_PORT("IN3"), /* DSW? */
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-//static READ8_DEVICE_HANDLER( input_a )
-//{
-//return input_port_read(machine, "IN0");
-// return device->machine().rand();
-//return 0xff;
-//}
-
-//static READ8_DEVICE_HANDLER( input_b )
-//{
-//return input_port_read(machine, "IN1");
-// return device->machine().rand();
-//return 0xff;
-//}
-
-static READ8_DEVICE_HANDLER( input_ca1 )
-{
-// return device->machine().rand();
- return 0x00;
-}
-
-static READ8_DEVICE_HANDLER( input_cb1 )
-{
-// return device->machine().rand();
- return 0x00;
-}
-
-static READ8_DEVICE_HANDLER( input_ca2 )
-{
-// return device->machine().rand();
-
- return 0x00;
-}
-
-static READ8_DEVICE_HANDLER( input_cb2 )
-{
-// return device->machine().rand();
-
- return 0x00;
-}
-
-static WRITE8_DEVICE_HANDLER( output_a )
-{
- popmessage("VIA outa: %02X", data);
- // ...
-}
-
-static WRITE8_DEVICE_HANDLER( output_b )
-{
- popmessage("VIA outb: %02X", data);
- // ...
-}
-
-
-static WRITE8_DEVICE_HANDLER( output_ca1 )
-{
- // ...
-}
-
-static WRITE8_DEVICE_HANDLER( output_cb1 )
-{
- // ...
-}
-
-static WRITE8_DEVICE_HANDLER( output_ca2 )
-{
- // ...
-}
-
-static WRITE8_DEVICE_HANDLER( output_cb2 )
-{
- // ...
-}
-
-static const via6522_interface via_interface =
-{
- /*inputs : A/B */ DEVCB_INPUT_PORT("IN0"), DEVCB_INPUT_PORT("IN1"),
- /*inputs : CA/B1,CA/B2 */ DEVCB_HANDLER(input_ca1), DEVCB_HANDLER(input_cb1), DEVCB_HANDLER(input_ca2), DEVCB_HANDLER(input_cb2),
- /*outputs: A/B */ DEVCB_HANDLER(output_a), DEVCB_HANDLER(output_b),
- /*outputs: CA/B1,CA/B2 */ DEVCB_HANDLER(output_ca1), DEVCB_HANDLER(output_cb1), DEVCB_HANDLER(output_ca2), DEVCB_HANDLER(output_cb2),
- /*irq */ DEVCB_CPU_INPUT_LINE("maincpu", M6809_FIRQ_LINE)
-};
-
-static INTERRUPT_GEN( lions_irq )
-{
-}
-
-static const mc6845_interface mc6845_intf =
-{
- /* in fact is a mc6845 driving 4 pixels by memory address.
- that's why the big horizontal parameters */
-
- "screen", /* screen we are acting on */
- 4, /* number of pixels per video memory address */
- NULL, /* before pixel update callback */
- NULL, /* row update callback */
- NULL, /* after pixel update callback */
- DEVCB_NULL, /* callback for display state changes */
- DEVCB_NULL, /* callback for cursor state changes */
- DEVCB_NULL, /* HSYNC callback */
- DEVCB_NULL, /* VSYNC callback */
- NULL /* update address callback */
-};
-
-/* same as Aristocrat Mark-IV HW color offset 7 */
-static PALETTE_INIT( lions )
-{
- int i;
-
- for (i = 0;i < machine.total_colors();i++)
- {
- int bit0,bit1,bit2,r,g,b;
-
- bit0 = (i >> 0) & 0x01;
- bit1 = (i >> 1) & 0x01;
- b = 0x4f * bit0 + 0xa8 * bit1;
- bit0 = (i >> 1) & 0x01;
- bit1 = (i >> 2) & 0x01;
- bit2 = (i >> 3) & 0x01;
- g = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- bit0 = (i >> 3) & 0x01;
- bit1 = (i >> 4) & 0x01;
- bit2 = (i >> 5) & 0x01;
- r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
-
- palette_set_color(machine, i, MAKE_RGB(r, g, b));
- }
-}
-
-static MACHINE_CONFIG_START( lions, _86lions_state )
- /* basic machine hardware */
- MCFG_CPU_ADD("maincpu", M6809, MAIN_CLOCK/4) /* 3 MHz.(guess) */
- MCFG_CPU_PROGRAM_MAP(lions_map)
- MCFG_CPU_VBLANK_INT("screen", lions_irq )
-
- /* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
- MCFG_SCREEN_SIZE(304, 256)
- MCFG_SCREEN_VISIBLE_AREA(0, 304-1, 0, 216-1) /* from the crtc registers... updated by crtc */
- MCFG_SCREEN_UPDATE(lions)
-
- MCFG_GFXDECODE(lions)
- MCFG_PALETTE_LENGTH(64)
- MCFG_PALETTE_INIT(lions)
-
- MCFG_VIDEO_START(lions)
-
- MCFG_VIA6522_ADD("via6522_0", MAIN_CLOCK/12, via_interface) /* 1 MHz.(only 1 or 2 MHz.are valid) */
-
- MCFG_MC6845_ADD("crtc", MC6845, MAIN_CLOCK/8, mc6845_intf) /* 1.5 MHz.(logical guess to get a decent 59.6374 Hz.) */
-
- MCFG_SPEAKER_STANDARD_MONO("mono")
-
- MCFG_SOUND_ADD("aysnd", AY8910, MAIN_CLOCK/8) /* 1.5 MHz.(guess) */
- MCFG_SOUND_CONFIG(ay8910_config)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
-MACHINE_CONFIG_END
-
-
-ROM_START( 86lions )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "lion_std.u9", 0xe000, 0x2000, CRC(994842b0) SHA1(72fc31c577ee70b07ce9a4f2e864fe113d32affe) )
-
- ROM_REGION( 0x6000, "gfx1", 0 )
- ROM_LOAD( "rd0.u13", 0x00000, 0x1000, CRC(38c57504) SHA1(cc3ac1df644abc4586fc9f0e88531ba146b86b48) )
- ROM_LOAD( "gn0.u10", 0x01000, 0x1000, CRC(80dce6f4) SHA1(bf953eba9cb270297b0d0efffe15b926e94dfbe7) )
- ROM_LOAD( "bl0.u8", 0x02000, 0x1000, CRC(00ef4724) SHA1(714fafd035e2befbb35c6d00df52845745e58a93) )
- ROM_LOAD( "rd1.u12", 0x03000, 0x1000, CRC(350dd017) SHA1(ba273d4231e7e4c44922898cf5a70e8b1d6e2f9d) )
- ROM_LOAD( "gn1.u11", 0x04000, 0x1000, CRC(80dce6f4) SHA1(bf953eba9cb270297b0d0efffe15b926e94dfbe7) )
- ROM_LOAD( "bl1.u9", 0x05000, 0x1000, CRC(675e164a) SHA1(99346ca70bfe673b31d71dc6b3bbc3b8f961e87f) )
-
-// ROM_REGION( 0x20, "proms", 0 )
-// ROM_LOAD( "prom.x", 0x00, 0x20, NO_DUMP )
-ROM_END
-
-
-GAME( 1985, 86lions, 0, lions, lions, 0, ROT0, "Aristocrat", "86 Lions", GAME_NOT_WORKING )
diff --git a/src/mame/drivers/aristmk4.c b/src/mame/drivers/aristmk4.c
index 9906da7fd58..9d5856a97aa 100644
--- a/src/mame/drivers/aristmk4.c
+++ b/src/mame/drivers/aristmk4.c
@@ -5,6 +5,8 @@
Platform: Aristocrat 540 Video ( MK 2.5 Video / MK IV )
Driver by Palindrome & FraSher
+ original 86lions.c driver by Chris Hardy, Angelo Salese & Roberto Fresca
+
***************** INITIALISATION *********************************************************************
Method 1 :
@@ -147,6 +149,8 @@
11. check what type of mc6845 this HW uses on real PCB, and hook it up properly.
+ 12. fix 86 Lions (pre-Aristocrat Mk-4 HW, without prom and dunno what else)
+
***************** POKER GAMES ************************************************************************
Wild One & Golden Poker have a problem where the second branch condition is always true, see assebler below for
@@ -817,7 +821,7 @@ ADDRESS_MAP_END
Poker card style games seem to have different address mapping
-The graphics rom is mapped from 0x4000 - 0x4ffff
+The graphics rom is mapped from 0x4000 - 0x4fff
The U87 personality rom is not required, therefore game rom code mapping is from 0x8000-0xffff
@@ -832,7 +836,6 @@ static ADDRESS_MAP_START( aristmk4_poker_map, AS_PROGRAM, 8 )
AM_RANGE(0x1801, 0x1801) AM_DEVREADWRITE("crtc", mc6845_register_r, mc6845_register_w)
AM_RANGE(0x1c00, 0x1cff) AM_WRITE(mk4_printer_w)
AM_RANGE(0x1900, 0x19ff) AM_READ(mk4_printer_r)
- AM_RANGE(0x6000, 0x7fff) AM_ROM // graphics rom map
AM_RANGE(0x4000, 0x4fff) AM_RAMBANK("bank1") AM_SHARE("nvram")
AM_RANGE(0x5000, 0x5000) AM_WRITE(u3_p0)
@@ -850,7 +853,8 @@ static ADDRESS_MAP_START( aristmk4_poker_map, AS_PROGRAM, 8 )
AM_RANGE(0x5380, 0x5383) AM_DEVREADWRITE("pia6821_0",pia6821_r,pia6821_w) // RTC data - PORT A , mechanical meters - PORTB ??
AM_RANGE(0x5440, 0x5440) AM_WRITE(mlamps) // take win and gamble lamps
AM_RANGE(0x5468, 0x5468) AM_READWRITE(cgdrr,cgdrw) // 4020 ripple counter outputs
- AM_RANGE(0x6000, 0xffff) AM_ROM // game roms
+ AM_RANGE(0x6000, 0x7fff) AM_ROM // graphics rom map
+ AM_RANGE(0x8000, 0xffff) AM_ROM // game roms
ADDRESS_MAP_END
static INPUT_PORTS_START(aristmk4)
@@ -1549,6 +1553,33 @@ static MACHINE_CONFIG_DERIVED( aristmk4_poker, aristmk4 )
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
MACHINE_CONFIG_END
+/* same as Aristocrat Mark-IV HW color offset 7 */
+static PALETTE_INIT( lions )
+{
+ int i;
+
+ for (i = 0;i < machine.total_colors();i++)
+ {
+ int bit0,bit1,r,g,b;
+
+ bit0 = (i >> 0) & 0x01;
+ bit1 = (i >> 1) & 0x01;
+ b = 0x4f * bit0 + 0xa8 * bit1;
+ bit0 = (i >> 2) & 0x01;
+ bit1 = (i >> 3) & 0x01;
+ g = 0x4f * bit0 + 0xa8 * bit1;
+ bit0 = (i >> 4) & 0x01;
+ bit1 = (i >> 5) & 0x01;
+ r = 0x4f * bit0 + 0xa8 * bit1;
+
+ palette_set_color(machine, i, MAKE_RGB(r, g, b));
+ }
+}
+
+static MACHINE_CONFIG_DERIVED( 86lions, aristmk4 )
+ MCFG_PALETTE_INIT(lions)
+MACHINE_CONFIG_END
+
ROM_START( 3bagflvt )
ROM_REGION(0x10000, "maincpu", 0 )
@@ -2123,6 +2154,24 @@ ROM_START( gldnpkr )
ROM_LOAD("2cm07.u40", 0x0000, 0x0200, CRC(1e3f402a) SHA1(f38da1ad6607df38add10c69febf7f5f8cd21744)) // Using 2CM07 until a correct PROM is confirmed
ROM_END
+ROM_START( 86lions )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "lion_std.u9", 0xe000, 0x2000, CRC(994842b0) SHA1(72fc31c577ee70b07ce9a4f2e864fe113d32affe) )
+
+ ROM_REGION( 0xc000, "tile_gfx", ROMREGION_ERASE00 )
+ ROM_LOAD( "bl0.u8", 0x00000, 0x1000, CRC(00ef4724) SHA1(714fafd035e2befbb35c6d00df52845745e58a93) )
+ ROM_LOAD( "gn0.u10", 0x02000, 0x1000, CRC(80dce6f4) SHA1(bf953eba9cb270297b0d0efffe15b926e94dfbe7) )
+ ROM_LOAD( "rd1.u12", 0x04000, 0x1000, CRC(350dd017) SHA1(ba273d4231e7e4c44922898cf5a70e8b1d6e2f9d) )
+ ROM_LOAD( "bl1.u9", 0x06000, 0x1000, CRC(675e164a) SHA1(99346ca70bfe673b31d71dc6b3bbc3b8f961e87f) )
+ ROM_LOAD( "gn1.u11", 0x08000, 0x1000, CRC(80dce6f4) SHA1(bf953eba9cb270297b0d0efffe15b926e94dfbe7) )
+ ROM_LOAD( "rd0.u13", 0x0a000, 0x1000, CRC(38c57504) SHA1(cc3ac1df644abc4586fc9f0e88531ba146b86b48) )
+
+// ROM_REGION( 0x200, "proms", 0 )
+// ROM_LOAD( "prom.x", 0x00, 0x20, NO_DUMP )
+ROM_END
+
+
+GAMEL( 1985, 86lions, 0, 86lions, aristmk4, aristmk4, ROT0, "Aristocrat", "86 Lions", GAME_NOT_WORKING, layout_aristmk4 )
GAMEL( 1996, eforest, 0, aristmk4, aristmk4, aristmk4, ROT0, "Aristocrat", "Enchanted Forest (12XF528902, US)", GAME_NOT_WORKING, layout_aristmk4 ) // multiple denominations
GAMEL( 1995, eforesta, eforest, aristmk4, aristmk4, aristmk4, ROT0, "Aristocrat", "Enchanted Forest (4VXFC818, NSW)", 0, layout_aristmk4 ) // 10c, $1 = 10 credits
GAMEL( 1996, eforestb, eforest, aristmk4, eforestb, aristmk4, ROT0, "Aristocrat", "Enchanted Forest (3VXFC5343, New Zealand)", 0, layout_aristmk4 ) // 5c, $2 = 40 credits
diff --git a/src/mame/mame.mak b/src/mame/mame.mak
index 7f61debd26a..0272d7d757b 100644
--- a/src/mame/mame.mak
+++ b/src/mame/mame.mak
@@ -377,7 +377,6 @@ $(MAMEOBJ)/amiga.a: \
$(DRIVERS)/upscope.o \
$(MAMEOBJ)/aristocr.a: \
- $(DRIVERS)/86lions.o \
$(DRIVERS)/aristmk4.o \
$(DRIVERS)/aristmk5.o \
$(DRIVERS)/caswin.o \