mirror of
https://github.com/holub/mame
synced 2025-05-21 21:29:15 +03:00
Improvements to skylncr.c driver.
- Hooked all the PPI 8255 devices. - Reworked the inputs based on them. - Fixed the reels visible area. - Reorganized and cleaned-up the driver. (only remains to split in driver + video)
This commit is contained in:
parent
1b48649379
commit
2fbc0ae577
@ -24,8 +24,7 @@
|
|||||||
|
|
||||||
TODO:
|
TODO:
|
||||||
|
|
||||||
- Hook the PPI 8255 devices and rework the I/O based on them.
|
- Proper M5M82C255 device emulation.
|
||||||
- Proper M5M82C255 emulation.
|
|
||||||
|
|
||||||
|
|
||||||
*************************************************************************************************************/
|
*************************************************************************************************************/
|
||||||
@ -36,6 +35,7 @@
|
|||||||
#include "driver.h"
|
#include "driver.h"
|
||||||
#include "cpu/z80/z80.h"
|
#include "cpu/z80/z80.h"
|
||||||
#include "sound/ay8910.h"
|
#include "sound/ay8910.h"
|
||||||
|
#include "machine/8255ppi.h"
|
||||||
|
|
||||||
static tilemap *tmap;
|
static tilemap *tmap;
|
||||||
|
|
||||||
@ -58,6 +58,12 @@ static UINT8* reelscroll2;
|
|||||||
static UINT8* reelscroll3;
|
static UINT8* reelscroll3;
|
||||||
static UINT8* reelscroll4;
|
static UINT8* reelscroll4;
|
||||||
|
|
||||||
|
static UINT8 skylncr_nmi_enable;
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************
|
||||||
|
* Video Hardware *
|
||||||
|
**************************************/
|
||||||
|
|
||||||
static WRITE8_HANDLER( skylncr_videoram_w )
|
static WRITE8_HANDLER( skylncr_videoram_w )
|
||||||
{
|
{
|
||||||
@ -106,8 +112,7 @@ static TILE_GET_INFO( get_reel_4_tile_info )
|
|||||||
static VIDEO_START( skylncr )
|
static VIDEO_START( skylncr )
|
||||||
{
|
{
|
||||||
|
|
||||||
tmap = tilemap_create( machine, get_tile_info, tilemap_scan_rows,
|
tmap = tilemap_create( machine, get_tile_info, tilemap_scan_rows, 8, 8, 0x40, 0x20 );
|
||||||
8,8, 0x40,0x20 );
|
|
||||||
|
|
||||||
reel_1_tilemap = tilemap_create(machine, get_reel_1_tile_info, tilemap_scan_rows, 8, 32, 64, 8 );
|
reel_1_tilemap = tilemap_create(machine, get_reel_1_tile_info, tilemap_scan_rows, 8, 32, 64, 8 );
|
||||||
reel_2_tilemap = tilemap_create(machine, get_reel_2_tile_info, tilemap_scan_rows, 8, 32, 64, 8 );
|
reel_2_tilemap = tilemap_create(machine, get_reel_2_tile_info, tilemap_scan_rows, 8, 32, 64, 8 );
|
||||||
@ -127,9 +132,9 @@ static VIDEO_START( skylncr )
|
|||||||
}
|
}
|
||||||
|
|
||||||
// are these hardcoded, or registers?
|
// are these hardcoded, or registers?
|
||||||
static const rectangle visible1 = { 0*8, (14+48)*8-1, 4*8, (4+7)*8-1 };
|
static const rectangle visible1 = { 0*8, (20+48)*8-1, 4*8, (4+7)*8-1 };
|
||||||
static const rectangle visible2 = { 0*8, (14+48)*8-1, 12*8, (12+7)*8-1 };
|
static const rectangle visible2 = { 0*8, (20+48)*8-1, 12*8, (12+7)*8-1 };
|
||||||
static const rectangle visible3 = { 0*8, (14+48)*8-1, 20*8, (20+7)*8-1 };
|
static const rectangle visible3 = { 0*8, (20+48)*8-1, 20*8, (20+7)*8-1 };
|
||||||
|
|
||||||
|
|
||||||
static VIDEO_UPDATE( skylncr )
|
static VIDEO_UPDATE( skylncr )
|
||||||
@ -155,6 +160,7 @@ static VIDEO_UPDATE( skylncr )
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
WRITE8_HANDLER( reeltiles_1_w )
|
WRITE8_HANDLER( reeltiles_1_w )
|
||||||
{
|
{
|
||||||
reeltiles_1_ram[offset] = data;
|
reeltiles_1_ram[offset] = data;
|
||||||
@ -204,25 +210,6 @@ WRITE8_HANDLER( reeltileshigh_4_w )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static READ8_HANDLER( ret_ff )
|
|
||||||
{
|
|
||||||
return 0xff;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef UNUSED_FUNCTION
|
|
||||||
static READ8_HANDLER( ret_00 )
|
|
||||||
{
|
|
||||||
return 0x00;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static UINT8 skylncr_nmi_enable;
|
|
||||||
|
|
||||||
static WRITE8_HANDLER( skylncr_nmi_enable_w )
|
|
||||||
{
|
|
||||||
skylncr_nmi_enable = data & 0x10;
|
|
||||||
}
|
|
||||||
|
|
||||||
static WRITE8_HANDLER( skylncr_paletteram_w )
|
static WRITE8_HANDLER( skylncr_paletteram_w )
|
||||||
{
|
{
|
||||||
static int color;
|
static int color;
|
||||||
@ -235,8 +222,14 @@ static WRITE8_HANDLER( skylncr_paletteram_w )
|
|||||||
{
|
{
|
||||||
int r,g,b;
|
int r,g,b;
|
||||||
paletteram[color] = data;
|
paletteram[color] = data;
|
||||||
r = paletteram[(color/3*3)+0]; g = paletteram[(color/3*3)+1]; b = paletteram[(color/3*3)+2];
|
|
||||||
r = (r << 2) | (r >> 4); g = (g << 2) | (g >> 4); b = (b << 2) | (b >> 4);
|
r = paletteram[(color/3 * 3) + 0];
|
||||||
|
g = paletteram[(color/3 * 3) + 1];
|
||||||
|
b = paletteram[(color/3 * 3) + 2];
|
||||||
|
r = (r << 2) | (r >> 4);
|
||||||
|
g = (g << 2) | (g >> 4);
|
||||||
|
b = (b << 2) | (b >> 4);
|
||||||
|
|
||||||
palette_set_color(space->machine, color / 3, MAKE_RGB(r, g, b));
|
palette_set_color(space->machine, color / 3, MAKE_RGB(r, g, b));
|
||||||
color = (color + 1) % (0x100 * 3);
|
color = (color + 1) % (0x100 * 3);
|
||||||
}
|
}
|
||||||
@ -254,8 +247,14 @@ static WRITE8_HANDLER( skylncr_paletteram2_w )
|
|||||||
{
|
{
|
||||||
int r,g,b;
|
int r,g,b;
|
||||||
paletteram_2[color] = data;
|
paletteram_2[color] = data;
|
||||||
r = paletteram_2[(color/3*3)+0]; g = paletteram_2[(color/3*3)+1]; b = paletteram_2[(color/3*3)+2];
|
|
||||||
r = (r << 2) | (r >> 4); g = (g << 2) | (g >> 4); b = (b << 2) | (b >> 4);
|
r = paletteram_2[(color/3 * 3) + 0];
|
||||||
|
g = paletteram_2[(color/3 * 3) + 1];
|
||||||
|
b = paletteram_2[(color/3 * 3) + 2];
|
||||||
|
r = (r << 2) | (r >> 4);
|
||||||
|
g = (g << 2) | (g >> 4);
|
||||||
|
b = (b << 2) | (b >> 4);
|
||||||
|
|
||||||
palette_set_color(space->machine, 0x100 + color / 3, MAKE_RGB(r, g, b));
|
palette_set_color(space->machine, 0x100 + color / 3, MAKE_RGB(r, g, b));
|
||||||
color = (color + 1) % (0x100 * 3);
|
color = (color + 1) % (0x100 * 3);
|
||||||
}
|
}
|
||||||
@ -282,6 +281,37 @@ static WRITE8_HANDLER( reelscroll4_w )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/************************************
|
||||||
|
* Other Handlers *
|
||||||
|
************************************/
|
||||||
|
|
||||||
|
static WRITE8_HANDLER( skylncr_coin_w )
|
||||||
|
{
|
||||||
|
coin_counter_w( 0, data & 0x04 );
|
||||||
|
}
|
||||||
|
|
||||||
|
static READ8_HANDLER( ret_ff )
|
||||||
|
{
|
||||||
|
return 0xff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef UNUSED_FUNCTION
|
||||||
|
static READ8_HANDLER( ret_00 )
|
||||||
|
{
|
||||||
|
return 0x00;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static WRITE8_HANDLER( skylncr_nmi_enable_w )
|
||||||
|
{
|
||||||
|
skylncr_nmi_enable = data & 0x10;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************
|
||||||
|
* Memory Map *
|
||||||
|
**************************************/
|
||||||
|
|
||||||
static ADDRESS_MAP_START( mem_map_skylncr, ADDRESS_SPACE_PROGRAM, 8 )
|
static ADDRESS_MAP_START( mem_map_skylncr, ADDRESS_SPACE_PROGRAM, 8 )
|
||||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||||
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size)
|
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size)
|
||||||
@ -340,21 +370,11 @@ static ADDRESS_MAP_START( mem_map_skylncr, ADDRESS_SPACE_PROGRAM, 8 )
|
|||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
|
|
||||||
static WRITE8_HANDLER( skylncr_coin_w )
|
|
||||||
{
|
|
||||||
coin_counter_w( 0, data & 0x04 );
|
|
||||||
// popmessage("%02x",data);
|
|
||||||
}
|
|
||||||
|
|
||||||
static ADDRESS_MAP_START( io_map_skylncr, ADDRESS_SPACE_IO, 8 )
|
static ADDRESS_MAP_START( io_map_skylncr, ADDRESS_SPACE_IO, 8 )
|
||||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||||
|
|
||||||
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN1")
|
AM_RANGE(0x00, 0x03) AM_DEVREADWRITE(PPI8255, "ppi8255_0", ppi8255_r, ppi8255_w) /* Input Ports */
|
||||||
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN2")
|
AM_RANGE(0x10, 0x13) AM_DEVREADWRITE(PPI8255, "ppi8255_1", ppi8255_r, ppi8255_w) /* Input Ports */
|
||||||
AM_RANGE(0x02, 0x02) AM_READ_PORT("DSW1")
|
|
||||||
AM_RANGE(0x10, 0x10) AM_READ_PORT("DSW2")
|
|
||||||
AM_RANGE(0x11, 0x11) AM_READ_PORT("IN3")
|
|
||||||
AM_RANGE(0x12, 0x12) AM_READ_PORT("IN4")
|
|
||||||
|
|
||||||
AM_RANGE(0x20, 0x20) AM_WRITE( skylncr_coin_w )
|
AM_RANGE(0x20, 0x20) AM_WRITE( skylncr_coin_w )
|
||||||
|
|
||||||
@ -368,6 +388,10 @@ static ADDRESS_MAP_START( io_map_skylncr, ADDRESS_SPACE_IO, 8 )
|
|||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
|
|
||||||
|
/***************************************
|
||||||
|
* Graphics Layouts *
|
||||||
|
***************************************/
|
||||||
|
|
||||||
static const gfx_layout layout8x8x8 =
|
static const gfx_layout layout8x8x8 =
|
||||||
{
|
{
|
||||||
8,8,
|
8,8,
|
||||||
@ -424,6 +448,11 @@ static const gfx_layout layout8x32x8_rot =
|
|||||||
8*32*8/2
|
8*32*8/2
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************
|
||||||
|
* Graphics Decode *
|
||||||
|
**************************************/
|
||||||
|
|
||||||
static GFXDECODE_START( skylncr )
|
static GFXDECODE_START( skylncr )
|
||||||
GFXDECODE_ENTRY( "gfx1", 0, layout8x8x8, 0, 2 )
|
GFXDECODE_ENTRY( "gfx1", 0, layout8x8x8, 0, 2 )
|
||||||
GFXDECODE_ENTRY( "gfx2", 0, layout8x32x8, 0, 2 )
|
GFXDECODE_ENTRY( "gfx2", 0, layout8x32x8, 0, 2 )
|
||||||
@ -431,48 +460,52 @@ static GFXDECODE_START( skylncr )
|
|||||||
GFXDECODE_END
|
GFXDECODE_END
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************
|
||||||
|
* Input Ports *
|
||||||
|
***********************************/
|
||||||
|
|
||||||
static INPUT_PORTS_START( skylncr )
|
static INPUT_PORTS_START( skylncr )
|
||||||
PORT_START("IN1") /* $0 "PORT0 A" */
|
PORT_START("IN1") /* $00 (PPI0 port A) */
|
||||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON6) PORT_NAME("Stop 2") PORT_CODE(KEYCODE_X)
|
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON6) PORT_CODE(KEYCODE_X) PORT_NAME("Stop 2")
|
||||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
||||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON5) PORT_NAME("Stop 1") PORT_CODE(KEYCODE_Z)
|
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON5) PORT_CODE(KEYCODE_Z) PORT_NAME("Stop 1")
|
||||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
||||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON7) PORT_NAME("Stop 3") PORT_CODE(KEYCODE_C)
|
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON7) PORT_CODE(KEYCODE_C) PORT_NAME("Stop 3")
|
||||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
||||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
||||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
||||||
|
|
||||||
PORT_START("IN2") /* $1 "PORT0 B" */
|
PORT_START("IN2") /* $01 (PPI0 port B) */
|
||||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_NAME("Bet") PORT_CODE(KEYCODE_2)
|
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_CODE(KEYCODE_2) PORT_NAME("Bet")
|
||||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
||||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON9) PORT_NAME("Option 2 (D-UP)") PORT_CODE(KEYCODE_S)
|
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON9) PORT_CODE(KEYCODE_S) PORT_NAME("Option 2 (D-UP)")
|
||||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
||||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_NAME("Start") PORT_CODE(KEYCODE_1)
|
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_CODE(KEYCODE_1) PORT_NAME("Start")
|
||||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
||||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
||||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
||||||
|
|
||||||
PORT_START("IN3") /* $11 "PORT1 B" */
|
PORT_START("IN3") /* $11 (PPI1 port B) */
|
||||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2)
|
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2)
|
||||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2)
|
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2)
|
||||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_IMPULSE(2)
|
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_IMPULSE(2)
|
||||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Key In") PORT_CODE(KEYCODE_Q)
|
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_Q) PORT_NAME("Key In")
|
||||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_NAME("Option 1 (D-UP)") PORT_CODE(KEYCODE_A)
|
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_CODE(KEYCODE_A) PORT_NAME("Option 1 (D-UP)")
|
||||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("D-UP") PORT_CODE(KEYCODE_3)
|
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_CODE(KEYCODE_3) PORT_NAME("D-UP")
|
||||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Take Score") PORT_CODE(KEYCODE_4)
|
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_CODE(KEYCODE_4) PORT_NAME("Take Score")
|
||||||
|
|
||||||
PORT_START("IN4") /* $12 "PORT1 C" */
|
PORT_START("IN4") /* $12 (PPI1 port C) */
|
||||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
||||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Reset") PORT_CODE(KEYCODE_R)
|
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_R) PORT_NAME("Reset")
|
||||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Stats") PORT_CODE(KEYCODE_0)
|
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_0) PORT_NAME("Stats")
|
||||||
PORT_SERVICE_NO_TOGGLE( 0x08, IP_ACTIVE_LOW ) /* Settings */
|
PORT_SERVICE_NO_TOGGLE( 0x08, IP_ACTIVE_LOW ) /* Settings */
|
||||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
||||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
||||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
||||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Key Out") PORT_CODE(KEYCODE_W)
|
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_W) PORT_NAME("Key Out")
|
||||||
|
|
||||||
PORT_START("DSW1") /* $2 "DSW1" */
|
PORT_START("DSW1") /* $02 (PPI0 port C) */
|
||||||
PORT_DIPNAME( 0x11, 0x01, "D-UP Percentage" )
|
PORT_DIPNAME( 0x11, 0x01, "D-UP Percentage" )
|
||||||
PORT_DIPSETTING( 0x11, "60%" )
|
PORT_DIPSETTING( 0x11, "60%" )
|
||||||
PORT_DIPSETTING( 0x01, "70%" )
|
PORT_DIPSETTING( 0x01, "70%" )
|
||||||
@ -497,8 +530,8 @@ static INPUT_PORTS_START( skylncr )
|
|||||||
PORT_DIPSETTING( 0x80, "x100" )
|
PORT_DIPSETTING( 0x80, "x100" )
|
||||||
PORT_DIPSETTING( 0x00, "x1" )
|
PORT_DIPSETTING( 0x00, "x1" )
|
||||||
|
|
||||||
PORT_START("DSW2") /* $10 "DSW2" */
|
PORT_START("DSW2") /* $10 (PPI1 port A) */
|
||||||
PORT_DIPNAME( 0x01, 0x01, "DSW2" )
|
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
|
||||||
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
|
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
|
||||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
|
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
|
||||||
@ -573,6 +606,35 @@ static INPUT_PORTS_START( skylncr )
|
|||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************
|
||||||
|
* PPI 8255 (x2) Interface *
|
||||||
|
**************************************/
|
||||||
|
|
||||||
|
static const ppi8255_interface ppi8255_intf[2] =
|
||||||
|
{
|
||||||
|
{ /* A, B & C set as input */
|
||||||
|
DEVICE8_PORT("IN1"), /* Port A read */
|
||||||
|
DEVICE8_PORT("IN2"), /* Port B read */
|
||||||
|
DEVICE8_PORT("DSW1"), /* Port C read */
|
||||||
|
NULL, /* Port A write */
|
||||||
|
NULL, /* Port B write */
|
||||||
|
NULL /* Port C write */
|
||||||
|
},
|
||||||
|
{ /* A, B & C set as input */
|
||||||
|
DEVICE8_PORT("DSW2"), /* Port A read */
|
||||||
|
DEVICE8_PORT("IN3"), /* Port B read */
|
||||||
|
DEVICE8_PORT("IN4"), /* Port C read */
|
||||||
|
NULL, /* Port A write */
|
||||||
|
NULL, /* Port B write */
|
||||||
|
NULL /* Port C write */
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**********************************
|
||||||
|
* AY-3-8910 Interface *
|
||||||
|
**********************************/
|
||||||
|
|
||||||
static const ay8910_interface ay8910_config =
|
static const ay8910_interface ay8910_config =
|
||||||
{
|
{
|
||||||
AY8910_LEGACY_OUTPUT,
|
AY8910_LEGACY_OUTPUT,
|
||||||
@ -590,6 +652,11 @@ static INTERRUPT_GEN( skylncr_vblank_interrupt )
|
|||||||
if (skylncr_nmi_enable) cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
|
if (skylncr_nmi_enable) cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************
|
||||||
|
* Machine Driver *
|
||||||
|
*************************************/
|
||||||
|
|
||||||
static MACHINE_DRIVER_START( skylncr )
|
static MACHINE_DRIVER_START( skylncr )
|
||||||
|
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
@ -600,6 +667,10 @@ static MACHINE_DRIVER_START( skylncr )
|
|||||||
|
|
||||||
MDRV_NVRAM_HANDLER(generic_0fill)
|
MDRV_NVRAM_HANDLER(generic_0fill)
|
||||||
|
|
||||||
|
/* 1x M5M82C255, or 2x PPI8255 */
|
||||||
|
MDRV_PPI8255_ADD( "ppi8255_0", ppi8255_intf[0] )
|
||||||
|
MDRV_PPI8255_ADD( "ppi8255_1", ppi8255_intf[1] )
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
MDRV_SCREEN_ADD("main", RASTER)
|
||||||
MDRV_SCREEN_REFRESH_RATE(60)
|
MDRV_SCREEN_REFRESH_RATE(60)
|
||||||
@ -621,6 +692,10 @@ static MACHINE_DRIVER_START( skylncr )
|
|||||||
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||||
MACHINE_DRIVER_END
|
MACHINE_DRIVER_END
|
||||||
|
|
||||||
|
|
||||||
|
/**********************************
|
||||||
|
* ROM Load *
|
||||||
|
**********************************/
|
||||||
/*
|
/*
|
||||||
|
|
||||||
Sky Lancer PCB Layout
|
Sky Lancer PCB Layout
|
||||||
@ -744,6 +819,10 @@ ROM_START( leader )
|
|||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
|
|
||||||
|
/**********************************
|
||||||
|
* Driver Init *
|
||||||
|
**********************************/
|
||||||
|
|
||||||
static DRIVER_INIT( skylncr )
|
static DRIVER_INIT( skylncr )
|
||||||
{
|
{
|
||||||
paletteram = auto_malloc(0x100 * 3);
|
paletteram = auto_malloc(0x100 * 3);
|
||||||
@ -751,9 +830,9 @@ static DRIVER_INIT( skylncr )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************
|
/****************************************************
|
||||||
Game Drivers
|
* Game Drivers *
|
||||||
*****************************************************/
|
****************************************************/
|
||||||
|
|
||||||
/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS */
|
/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS */
|
||||||
GAME( 1995, skylncr, 0, skylncr, skylncr, skylncr, ROT0, "Bordun International", "Sky Lancer (Bordun, ver.U450C)", 0 )
|
GAME( 1995, skylncr, 0, skylncr, skylncr, skylncr, ROT0, "Bordun International", "Sky Lancer (Bordun, ver.U450C)", 0 )
|
||||||
|
Loading…
Reference in New Issue
Block a user