From 27c3a972a449e836be8bbcff79e8f9887648733f Mon Sep 17 00:00:00 2001 From: Angelo Salese Date: Sat, 23 Apr 2011 00:34:16 +0000 Subject: [PATCH] Merged 86 Lions inside Aristocrat Mk-4 driver [Angelo Salese] --- .gitattributes | 1 - src/mame/drivers/86lions.c | 404 ------------------------------------ src/mame/drivers/aristmk4.c | 55 ++++- src/mame/mame.mak | 1 - 4 files changed, 52 insertions(+), 409 deletions(-) delete mode 100644 src/mame/drivers/86lions.c diff --git a/.gitattributes b/.gitattributes index d548cf45bd0..76782272164 100644 --- a/.gitattributes +++ b/.gitattributes @@ -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/5clown.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/ace.c svneol=native#text/plain src/mame/drivers/acefruit.c svneol=native#text/plain 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 \