Merged 86 Lions inside Aristocrat Mk-4 driver [Angelo Salese]

This commit is contained in:
Angelo Salese 2011-04-23 00:34:16 +00:00
parent 598cebb186
commit 27c3a972a4
4 changed files with 52 additions and 409 deletions

1
.gitattributes vendored
View File

@ -1546,7 +1546,6 @@ src/mame/drivers/4enraya.c svneol=native#text/plain
src/mame/drivers/4roses.c svneol=native#text/plain src/mame/drivers/4roses.c svneol=native#text/plain
src/mame/drivers/5clown.c svneol=native#text/plain src/mame/drivers/5clown.c svneol=native#text/plain
src/mame/drivers/8080bw.c svneol=native#text/plain src/mame/drivers/8080bw.c svneol=native#text/plain
src/mame/drivers/86lions.c svneol=native#text/plain
src/mame/drivers/88games.c svneol=native#text/plain src/mame/drivers/88games.c svneol=native#text/plain
src/mame/drivers/ace.c svneol=native#text/plain src/mame/drivers/ace.c svneol=native#text/plain
src/mame/drivers/acefruit.c svneol=native#text/plain src/mame/drivers/acefruit.c svneol=native#text/plain

View File

@ -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 )

View File

@ -5,6 +5,8 @@
Platform: Aristocrat 540 Video ( MK 2.5 Video / MK IV ) Platform: Aristocrat 540 Video ( MK 2.5 Video / MK IV )
Driver by Palindrome & FraSher Driver by Palindrome & FraSher
original 86lions.c driver by Chris Hardy, Angelo Salese & Roberto Fresca
***************** INITIALISATION ********************************************************************* ***************** INITIALISATION *********************************************************************
Method 1 : Method 1 :
@ -147,6 +149,8 @@
11. check what type of mc6845 this HW uses on real PCB, and hook it up properly. 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 ************************************************************************ ***************** POKER GAMES ************************************************************************
Wild One & Golden Poker have a problem where the second branch condition is always true, see assebler below for 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 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 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(0x1801, 0x1801) AM_DEVREADWRITE("crtc", mc6845_register_r, mc6845_register_w)
AM_RANGE(0x1c00, 0x1cff) AM_WRITE(mk4_printer_w) AM_RANGE(0x1c00, 0x1cff) AM_WRITE(mk4_printer_w)
AM_RANGE(0x1900, 0x19ff) AM_READ(mk4_printer_r) 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(0x4000, 0x4fff) AM_RAMBANK("bank1") AM_SHARE("nvram")
AM_RANGE(0x5000, 0x5000) AM_WRITE(u3_p0) 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(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(0x5440, 0x5440) AM_WRITE(mlamps) // take win and gamble lamps
AM_RANGE(0x5468, 0x5468) AM_READWRITE(cgdrr,cgdrw) // 4020 ripple counter outputs 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 ADDRESS_MAP_END
static INPUT_PORTS_START(aristmk4) static INPUT_PORTS_START(aristmk4)
@ -1549,6 +1553,33 @@ static MACHINE_CONFIG_DERIVED( aristmk4_poker, aristmk4 )
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold) MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
MACHINE_CONFIG_END 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_START( 3bagflvt )
ROM_REGION(0x10000, "maincpu", 0 ) 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_LOAD("2cm07.u40", 0x0000, 0x0200, CRC(1e3f402a) SHA1(f38da1ad6607df38add10c69febf7f5f8cd21744)) // Using 2CM07 until a correct PROM is confirmed
ROM_END 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( 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( 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 GAMEL( 1996, eforestb, eforest, aristmk4, eforestb, aristmk4, ROT0, "Aristocrat", "Enchanted Forest (3VXFC5343, New Zealand)", 0, layout_aristmk4 ) // 5c, $2 = 40 credits

View File

@ -377,7 +377,6 @@ $(MAMEOBJ)/amiga.a: \
$(DRIVERS)/upscope.o \ $(DRIVERS)/upscope.o \
$(MAMEOBJ)/aristocr.a: \ $(MAMEOBJ)/aristocr.a: \
$(DRIVERS)/86lions.o \
$(DRIVERS)/aristmk4.o \ $(DRIVERS)/aristmk4.o \
$(DRIVERS)/aristmk5.o \ $(DRIVERS)/aristmk5.o \
$(DRIVERS)/caswin.o \ $(DRIVERS)/caswin.o \