mirror of
https://github.com/holub/mame
synced 2025-05-28 16:43:04 +03:00
Merged 86 Lions inside Aristocrat Mk-4 driver [Angelo Salese]
This commit is contained in:
parent
598cebb186
commit
27c3a972a4
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -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
|
||||
|
@ -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 )
|
@ -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
|
||||
|
@ -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 \
|
||||
|
Loading…
Reference in New Issue
Block a user