mirror of
https://github.com/holub/mame
synced 2025-05-23 06:08:48 +03:00
Improvements to the skylncr.c driver. [Roberto Fresca, David Haywood]
- Complete reel support from the scratch. - Full inputs, outputs & DIP switches from the scratch. - Added new games. - Updated technical and game notes. New games added or promoted from NOT_WORKING status --------------------------------------------------- Sky Lancer (Bordun, ver.U450C) [Roberto Fresca, David Haywood] Butterfly Video Game (ver.U350C) [Roberto Fresca, David Haywood] Mad Zoo (ver.U450C) [Roberto Fresca, David Haywood] New games marked as GAME_NOT_WORKING ------------------------------------ Leader [Roberto Fresca, David Haywood]
This commit is contained in:
parent
44a99ed738
commit
421f6842fd
@ -1,21 +1,63 @@
|
||||
/*************************************************************************************************************
|
||||
|
||||
Sky Lancer
|
||||
Sky Lancer / Mad Zoo
|
||||
|
||||
preliminary driver by Luca Elia
|
||||
Original preliminary driver by Luca Elia.
|
||||
Additional Work: Roberto Fresca & David Haywood.
|
||||
|
||||
|
||||
**************************************************************************************************************
|
||||
|
||||
Notes:
|
||||
|
||||
- Some of the tiles look badly scaled down, and others appear to have columns swapped.
|
||||
This might actually be correct.
|
||||
|
||||
- Skylncr and madzoo can run with the same program roms, they're basically graphics swaps.
|
||||
|
||||
- To enter the Service Mode, press F2. All the game settings are there.
|
||||
Change regular values using DIP switches, and jackpot value using STOP2 and STOP3.
|
||||
To exit the mode, press START. You must reset the machine (F3) to update the changes.
|
||||
|
||||
- Press key 0 to navigate between statistics pages. Press START to exit the mode.
|
||||
|
||||
|
||||
TODO:
|
||||
|
||||
- Hook the PPI 8255 devices and rework the I/O based on them.
|
||||
- Proper M5M82C255 emulation.
|
||||
|
||||
compare with carrera.c & cherrym2.c
|
||||
|
||||
*************************************************************************************************************/
|
||||
|
||||
|
||||
#define MASTER_CLOCK XTAL_12MHz /* confirmed */
|
||||
|
||||
#include "driver.h"
|
||||
#include "cpu/z80/z80.h"
|
||||
#include "sound/ay8910.h"
|
||||
|
||||
static tilemap *tmap, *tmap2;
|
||||
static tilemap *tmap;
|
||||
|
||||
static UINT8 *skylncr_videoram,*skylncr_colorram;
|
||||
static UINT8 *skylncr_videoram2,*skylncr_colorram2;
|
||||
|
||||
static UINT8* reeltiles_1_ram;
|
||||
static UINT8* reeltiles_2_ram;
|
||||
static UINT8* reeltiles_3_ram;
|
||||
static UINT8* reeltiles_4_ram;
|
||||
static UINT8* reeltileshigh_1_ram;
|
||||
static UINT8* reeltileshigh_2_ram;
|
||||
static UINT8* reeltileshigh_3_ram;
|
||||
static UINT8* reeltileshigh_4_ram;
|
||||
static tilemap *reel_1_tilemap;
|
||||
static tilemap *reel_2_tilemap;
|
||||
static tilemap *reel_3_tilemap;
|
||||
static tilemap *reel_4_tilemap;
|
||||
static UINT8* reelscroll1;
|
||||
static UINT8* reelscroll2;
|
||||
static UINT8* reelscroll3;
|
||||
static UINT8* reelscroll4;
|
||||
|
||||
|
||||
static WRITE8_HANDLER( skylncr_videoram_w )
|
||||
{
|
||||
@ -29,67 +71,139 @@ static WRITE8_HANDLER( skylncr_colorram_w )
|
||||
tilemap_mark_tile_dirty(tmap, offset);
|
||||
}
|
||||
|
||||
|
||||
static TILE_GET_INFO( get_tile_info )
|
||||
{
|
||||
UINT16 code = skylncr_videoram[ tile_index ] + (skylncr_colorram[ tile_index ] << 8);
|
||||
SET_TILE_INFO(0, code, 0, TILE_FLIPYX( 0 ));
|
||||
}
|
||||
|
||||
|
||||
static WRITE8_HANDLER( skylncr_videoram2_w )
|
||||
static TILE_GET_INFO( get_reel_1_tile_info )
|
||||
{
|
||||
skylncr_videoram2[offset] = data;
|
||||
tilemap_mark_tile_dirty(tmap2, offset);
|
||||
}
|
||||
|
||||
static WRITE8_HANDLER( skylncr_colorram2_w )
|
||||
{
|
||||
skylncr_colorram2[offset] = data;
|
||||
tilemap_mark_tile_dirty(tmap2, offset);
|
||||
}
|
||||
|
||||
static TILE_GET_INFO( get_tile_info2 )
|
||||
{
|
||||
UINT16 code = skylncr_videoram2[ tile_index ] + (skylncr_colorram2[ tile_index ] << 8);
|
||||
UINT16 code = reeltiles_1_ram[ tile_index ] + (reeltileshigh_1_ram[ tile_index ] << 8);
|
||||
SET_TILE_INFO(1, code, 0, TILE_FLIPYX( 0 ));
|
||||
}
|
||||
|
||||
#define TILES_PER_PAGE_X (0x40)
|
||||
#define TILES_PER_PAGE_Y (0x8)
|
||||
#define PAGES_PER_TMAP_X (0x2)
|
||||
#define PAGES_PER_TMAP_Y (0x2)
|
||||
|
||||
static TILEMAP_MAPPER( skylncr_tilemap_scan_pages )
|
||||
static TILE_GET_INFO( get_reel_2_tile_info )
|
||||
{
|
||||
return (col / TILES_PER_PAGE_X) * TILES_PER_PAGE_X * TILES_PER_PAGE_Y +
|
||||
(col % TILES_PER_PAGE_X) +
|
||||
|
||||
(row / TILES_PER_PAGE_Y) * TILES_PER_PAGE_X * TILES_PER_PAGE_Y * PAGES_PER_TMAP_X +
|
||||
(row % TILES_PER_PAGE_Y) * TILES_PER_PAGE_X;
|
||||
UINT16 code = reeltiles_2_ram[ tile_index ] + (reeltileshigh_2_ram[ tile_index ] << 8);
|
||||
SET_TILE_INFO(1, code, 0, TILE_FLIPYX( 0 ));
|
||||
}
|
||||
|
||||
static TILE_GET_INFO( get_reel_3_tile_info )
|
||||
{
|
||||
UINT16 code = reeltiles_3_ram[ tile_index ] + (reeltileshigh_3_ram[ tile_index ] << 8);
|
||||
SET_TILE_INFO(1, code, 0, TILE_FLIPYX( 0 ));
|
||||
}
|
||||
|
||||
static TILE_GET_INFO( get_reel_4_tile_info )
|
||||
{
|
||||
UINT16 code = reeltiles_4_ram[ tile_index ] + (reeltileshigh_4_ram[ tile_index ] << 8);
|
||||
SET_TILE_INFO(1, code, 0, TILE_FLIPYX( 0 ));
|
||||
}
|
||||
|
||||
|
||||
static VIDEO_START( skylncr )
|
||||
{
|
||||
|
||||
tmap = tilemap_create( machine, get_tile_info, tilemap_scan_rows,
|
||||
8,8, 0x40,0x20 );
|
||||
|
||||
tmap2 = tilemap_create( machine, get_tile_info2, skylncr_tilemap_scan_pages,
|
||||
8,32,
|
||||
TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y );
|
||||
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_3_tilemap = tilemap_create(machine, get_reel_3_tile_info, tilemap_scan_rows, 8,32, 64,8 );
|
||||
reel_4_tilemap = tilemap_create(machine, get_reel_4_tile_info, tilemap_scan_rows, 8,32, 64,8 );
|
||||
|
||||
tilemap_set_transparent_pen(tmap, 0);
|
||||
tilemap_set_transparent_pen(tmap2, 0);
|
||||
tilemap_set_scroll_cols(reel_2_tilemap, 0x40);
|
||||
tilemap_set_scroll_cols(reel_3_tilemap, 0x40);
|
||||
tilemap_set_scroll_cols(reel_4_tilemap, 0x40);
|
||||
|
||||
tilemap_set_transparent_pen(reel_2_tilemap, 0);
|
||||
tilemap_set_transparent_pen(reel_3_tilemap, 0);
|
||||
tilemap_set_transparent_pen(reel_4_tilemap, 0);
|
||||
|
||||
|
||||
tilemap_set_transparent_pen(tmap, 0);
|
||||
}
|
||||
|
||||
// are these hardcoded, or registers?
|
||||
static const rectangle visible1 = { 0*8, (14+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 visible3 = { 0*8, (14+48)*8-1, 20*8, (20+7)*8-1 };
|
||||
|
||||
|
||||
static VIDEO_UPDATE( skylncr )
|
||||
{
|
||||
int i;
|
||||
|
||||
bitmap_fill(bitmap,cliprect,0);
|
||||
tilemap_draw(bitmap,cliprect, tmap2, 0, 0);
|
||||
tilemap_draw(bitmap,cliprect, reel_1_tilemap, 0, 0);
|
||||
|
||||
for (i= 0;i < 64;i++)
|
||||
{
|
||||
tilemap_set_scrolly(reel_2_tilemap, i, reelscroll2[i]);
|
||||
tilemap_set_scrolly(reel_3_tilemap, i, reelscroll3[i]);
|
||||
tilemap_set_scrolly(reel_4_tilemap, i, reelscroll4[i]);
|
||||
}
|
||||
|
||||
tilemap_draw(bitmap,&visible1,reel_2_tilemap,0,0);
|
||||
tilemap_draw(bitmap,&visible2,reel_3_tilemap,0,0);
|
||||
tilemap_draw(bitmap,&visible3,reel_4_tilemap,0,0);
|
||||
|
||||
|
||||
tilemap_draw(bitmap,cliprect, tmap, 0, 0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
WRITE8_HANDLER( reeltiles_1_w )
|
||||
{
|
||||
reeltiles_1_ram[offset] = data;
|
||||
tilemap_mark_tile_dirty(reel_1_tilemap, offset);
|
||||
}
|
||||
|
||||
WRITE8_HANDLER( reeltiles_2_w )
|
||||
{
|
||||
reeltiles_2_ram[offset] = data;
|
||||
tilemap_mark_tile_dirty(reel_2_tilemap, offset);
|
||||
}
|
||||
|
||||
WRITE8_HANDLER( reeltiles_3_w )
|
||||
{
|
||||
reeltiles_3_ram[offset] = data;
|
||||
tilemap_mark_tile_dirty(reel_3_tilemap, offset);
|
||||
}
|
||||
|
||||
WRITE8_HANDLER( reeltiles_4_w )
|
||||
{
|
||||
reeltiles_4_ram[offset] = data;
|
||||
tilemap_mark_tile_dirty(reel_4_tilemap, offset);
|
||||
}
|
||||
|
||||
WRITE8_HANDLER( reeltileshigh_1_w )
|
||||
{
|
||||
reeltileshigh_1_ram[offset] = data;
|
||||
tilemap_mark_tile_dirty(reel_1_tilemap, offset);
|
||||
}
|
||||
|
||||
WRITE8_HANDLER( reeltileshigh_2_w )
|
||||
{
|
||||
reeltileshigh_2_ram[offset] = data;
|
||||
tilemap_mark_tile_dirty(reel_2_tilemap, offset);
|
||||
}
|
||||
|
||||
WRITE8_HANDLER( reeltileshigh_3_w )
|
||||
{
|
||||
reeltileshigh_3_ram[offset] = data;
|
||||
tilemap_mark_tile_dirty(reel_3_tilemap, offset);
|
||||
}
|
||||
|
||||
WRITE8_HANDLER( reeltileshigh_4_w )
|
||||
{
|
||||
reeltileshigh_4_ram[offset] = data;
|
||||
tilemap_mark_tile_dirty(reel_4_tilemap, offset);
|
||||
}
|
||||
|
||||
|
||||
static READ8_HANDLER( ret_ff )
|
||||
{
|
||||
return 0xff;
|
||||
@ -147,19 +261,80 @@ static WRITE8_HANDLER( skylncr_paletteram2_w )
|
||||
}
|
||||
}
|
||||
|
||||
static WRITE8_HANDLER( reelscroll1_w )
|
||||
{
|
||||
reelscroll1[offset] = data;
|
||||
}
|
||||
|
||||
static WRITE8_HANDLER( reelscroll2_w )
|
||||
{
|
||||
reelscroll2[offset] = data;
|
||||
}
|
||||
|
||||
static WRITE8_HANDLER( reelscroll3_w )
|
||||
{
|
||||
reelscroll3[offset] = data;
|
||||
}
|
||||
|
||||
static WRITE8_HANDLER( reelscroll4_w )
|
||||
{
|
||||
reelscroll4[offset] = data;
|
||||
}
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( mem_map_skylncr, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0x8000, 0x87ff) AM_RAM
|
||||
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size)
|
||||
|
||||
AM_RANGE(0x8800, 0x8fff) AM_READWRITE( SMH_RAM, skylncr_videoram_w ) AM_BASE( &skylncr_videoram )
|
||||
AM_RANGE(0x9000, 0x97ff) AM_READWRITE( SMH_RAM, skylncr_colorram_w ) AM_BASE( &skylncr_colorram )
|
||||
|
||||
AM_RANGE(0x9800, 0x9fff) AM_READWRITE( SMH_RAM, skylncr_videoram2_w ) AM_BASE( &skylncr_videoram2 )
|
||||
AM_RANGE(0xa000, 0xa7ff) AM_READWRITE( SMH_RAM, skylncr_colorram2_w ) AM_BASE( &skylncr_colorram2 )
|
||||
AM_RANGE(0x9800, 0x99ff) AM_READWRITE( SMH_RAM, reeltiles_1_w ) AM_BASE( &reeltiles_1_ram )
|
||||
AM_RANGE(0x9a00, 0x9bff) AM_READWRITE( SMH_RAM, reeltiles_2_w ) AM_BASE( &reeltiles_2_ram )
|
||||
AM_RANGE(0x9c00, 0x9dff) AM_READWRITE( SMH_RAM, reeltiles_3_w ) AM_BASE( &reeltiles_3_ram )
|
||||
AM_RANGE(0x9e00, 0x9fff) AM_READWRITE( SMH_RAM, reeltiles_4_w ) AM_BASE( &reeltiles_4_ram )
|
||||
AM_RANGE(0xa000, 0xa1ff) AM_READWRITE( SMH_RAM, reeltileshigh_1_w ) AM_BASE( &reeltileshigh_1_ram )
|
||||
AM_RANGE(0xa200, 0xa3ff) AM_READWRITE( SMH_RAM, reeltileshigh_2_w ) AM_BASE( &reeltileshigh_2_ram )
|
||||
AM_RANGE(0xa400, 0xa5ff) AM_READWRITE( SMH_RAM, reeltileshigh_3_w ) AM_BASE( &reeltileshigh_3_ram )
|
||||
AM_RANGE(0xa600, 0xa7ff) AM_READWRITE( SMH_RAM, reeltileshigh_4_w ) AM_BASE( &reeltileshigh_4_ram )
|
||||
|
||||
AM_RANGE(0xaa55, 0xaa55) AM_READ( ret_ff )
|
||||
|
||||
AM_RANGE(0xb000, 0xb7ff) AM_RAM
|
||||
AM_RANGE(0xb000, 0xb03f) AM_RAM AM_WRITE(reelscroll1_w) AM_BASE(&reelscroll1)
|
||||
AM_RANGE(0xb040, 0xb07f) AM_RAM AM_WRITE(reelscroll1_w)
|
||||
AM_RANGE(0xb080, 0xb0bf) AM_RAM AM_WRITE(reelscroll1_w)
|
||||
AM_RANGE(0xb0c0, 0xb0ff) AM_RAM AM_WRITE(reelscroll1_w)
|
||||
AM_RANGE(0xb100, 0xb13f) AM_RAM AM_WRITE(reelscroll1_w)
|
||||
AM_RANGE(0xb140, 0xb17f) AM_RAM AM_WRITE(reelscroll1_w)
|
||||
AM_RANGE(0xb180, 0xb1bf) AM_RAM AM_WRITE(reelscroll1_w)
|
||||
AM_RANGE(0xb1c0, 0xb1ff) AM_RAM AM_WRITE(reelscroll1_w)
|
||||
|
||||
AM_RANGE(0xb200, 0xb23f) AM_RAM AM_WRITE(reelscroll2_w) AM_BASE(&reelscroll2)
|
||||
AM_RANGE(0xb240, 0xb27f) AM_RAM AM_WRITE(reelscroll2_w)
|
||||
AM_RANGE(0xb280, 0xb2bf) AM_RAM AM_WRITE(reelscroll2_w)
|
||||
AM_RANGE(0xb2c0, 0xb2ff) AM_RAM AM_WRITE(reelscroll2_w)
|
||||
AM_RANGE(0xb300, 0xb33f) AM_RAM AM_WRITE(reelscroll2_w)
|
||||
AM_RANGE(0xb340, 0xb37f) AM_RAM AM_WRITE(reelscroll2_w)
|
||||
AM_RANGE(0xb380, 0xb3bf) AM_RAM AM_WRITE(reelscroll2_w)
|
||||
AM_RANGE(0xb3c0, 0xb3ff) AM_RAM AM_WRITE(reelscroll2_w)
|
||||
|
||||
AM_RANGE(0xb400, 0xb43f) AM_RAM AM_WRITE(reelscroll3_w) AM_BASE(&reelscroll3)
|
||||
AM_RANGE(0xb440, 0xb47f) AM_RAM AM_WRITE(reelscroll3_w)
|
||||
AM_RANGE(0xb480, 0xb4bf) AM_RAM AM_WRITE(reelscroll3_w)
|
||||
AM_RANGE(0xb4c0, 0xb4ff) AM_RAM AM_WRITE(reelscroll3_w)
|
||||
AM_RANGE(0xb500, 0xb53f) AM_RAM AM_WRITE(reelscroll3_w)
|
||||
AM_RANGE(0xb540, 0xb57f) AM_RAM AM_WRITE(reelscroll3_w)
|
||||
AM_RANGE(0xb580, 0xb5bf) AM_RAM AM_WRITE(reelscroll3_w)
|
||||
AM_RANGE(0xb5c0, 0xb5ff) AM_RAM AM_WRITE(reelscroll3_w)
|
||||
|
||||
AM_RANGE(0xb600, 0xb63f) AM_RAM AM_WRITE(reelscroll4_w) AM_BASE(&reelscroll4)
|
||||
AM_RANGE(0xb640, 0xb67f) AM_RAM AM_WRITE(reelscroll4_w)
|
||||
AM_RANGE(0xb680, 0xb6bf) AM_RAM AM_WRITE(reelscroll4_w)
|
||||
AM_RANGE(0xb6c0, 0xb6ff) AM_RAM AM_WRITE(reelscroll4_w)
|
||||
AM_RANGE(0xb700, 0xb73f) AM_RAM AM_WRITE(reelscroll4_w)
|
||||
AM_RANGE(0xb740, 0xb77f) AM_RAM AM_WRITE(reelscroll4_w)
|
||||
AM_RANGE(0xb780, 0xb7bf) AM_RAM AM_WRITE(reelscroll4_w)
|
||||
AM_RANGE(0xb7c0, 0xb7ff) AM_RAM AM_WRITE(reelscroll4_w)
|
||||
|
||||
AM_RANGE(0xc000, 0xffff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
@ -174,12 +349,12 @@ static WRITE8_HANDLER( skylncr_coin_w )
|
||||
static ADDRESS_MAP_START( io_map_skylncr, ADDRESS_SPACE_IO, 8 )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
|
||||
AM_RANGE(0x00, 0x00) AM_READ_PORT("SYSTEM")
|
||||
AM_RANGE(0x01, 0x01) AM_READ_PORT("BUTTONS")
|
||||
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN1")
|
||||
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN2")
|
||||
AM_RANGE(0x02, 0x02) AM_READ_PORT("DSW1")
|
||||
AM_RANGE(0x10, 0x10) AM_READ_PORT("DSW2")
|
||||
AM_RANGE(0x11, 0x11) AM_READ_PORT("COIN1")
|
||||
AM_RANGE(0x12, 0x12) AM_READ_PORT("COIN2")
|
||||
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 )
|
||||
|
||||
@ -210,34 +385,6 @@ static const gfx_layout layout8x8x8 =
|
||||
};
|
||||
|
||||
static const gfx_layout layout8x32x8 =
|
||||
{
|
||||
8,32,
|
||||
RGN_FRAC(1,2),
|
||||
8,
|
||||
{ STEP8(0,1) },
|
||||
{ 8*0,8*4,8*1,8*5,8*2,8*6,8*3,8*7 },
|
||||
{
|
||||
RGN_FRAC(1,2)+8*8*0, RGN_FRAC(0,2)+8*8*0,
|
||||
RGN_FRAC(1,2)+8*8*1, RGN_FRAC(0,2)+8*8*1,
|
||||
RGN_FRAC(1,2)+8*8*2, RGN_FRAC(0,2)+8*8*2,
|
||||
RGN_FRAC(1,2)+8*8*3, RGN_FRAC(0,2)+8*8*3,
|
||||
RGN_FRAC(1,2)+8*8*4, RGN_FRAC(0,2)+8*8*4,
|
||||
RGN_FRAC(1,2)+8*8*5, RGN_FRAC(0,2)+8*8*5,
|
||||
RGN_FRAC(1,2)+8*8*6, RGN_FRAC(0,2)+8*8*6,
|
||||
RGN_FRAC(1,2)+8*8*7, RGN_FRAC(0,2)+8*8*7,
|
||||
RGN_FRAC(1,2)+8*8*8, RGN_FRAC(0,2)+8*8*8,
|
||||
RGN_FRAC(1,2)+8*8*9, RGN_FRAC(0,2)+8*8*9,
|
||||
RGN_FRAC(1,2)+8*8*10,RGN_FRAC(0,2)+8*8*10,
|
||||
RGN_FRAC(1,2)+8*8*11,RGN_FRAC(0,2)+8*8*11,
|
||||
RGN_FRAC(1,2)+8*8*12,RGN_FRAC(0,2)+8*8*12,
|
||||
RGN_FRAC(1,2)+8*8*13,RGN_FRAC(0,2)+8*8*13,
|
||||
RGN_FRAC(1,2)+8*8*14,RGN_FRAC(0,2)+8*8*14,
|
||||
RGN_FRAC(1,2)+8*8*15,RGN_FRAC(0,2)+8*8*15
|
||||
},
|
||||
8*16*8
|
||||
};
|
||||
|
||||
static const gfx_layout layout8x32x8_rot =
|
||||
{
|
||||
8,32,
|
||||
RGN_FRAC(1,2),
|
||||
@ -256,51 +403,9 @@ static const gfx_layout layout8x32x8_rot =
|
||||
8*32*8/2
|
||||
};
|
||||
|
||||
static const gfx_layout mz_layout8x8x8 =
|
||||
{
|
||||
8,8,
|
||||
RGN_FRAC(1,2),
|
||||
8,
|
||||
{ STEP8(0,1) },
|
||||
{
|
||||
8*0,8*1,
|
||||
RGN_FRAC(1,2)+8*0,RGN_FRAC(1,2)+8*1,
|
||||
8*2,8*3,
|
||||
RGN_FRAC(1,2)+8*2,RGN_FRAC(1,2)+8*3
|
||||
},
|
||||
{ STEP8(0,8*4) },
|
||||
8*8*4
|
||||
};
|
||||
|
||||
static const gfx_layout mz_layout8x32x8 =
|
||||
{
|
||||
8,32,
|
||||
RGN_FRAC(1,2),
|
||||
8,
|
||||
{ STEP8(0,1) },
|
||||
{ 8*0,8*1,8*2,8*3,8*4,8*5,8*6,8*7 },
|
||||
{
|
||||
RGN_FRAC(1,2)+8*8*0, RGN_FRAC(0,2)+8*8*0,
|
||||
RGN_FRAC(1,2)+8*8*1, RGN_FRAC(0,2)+8*8*1,
|
||||
RGN_FRAC(1,2)+8*8*2, RGN_FRAC(0,2)+8*8*2,
|
||||
RGN_FRAC(1,2)+8*8*3, RGN_FRAC(0,2)+8*8*3,
|
||||
RGN_FRAC(1,2)+8*8*4, RGN_FRAC(0,2)+8*8*4,
|
||||
RGN_FRAC(1,2)+8*8*5, RGN_FRAC(0,2)+8*8*5,
|
||||
RGN_FRAC(1,2)+8*8*6, RGN_FRAC(0,2)+8*8*6,
|
||||
RGN_FRAC(1,2)+8*8*7, RGN_FRAC(0,2)+8*8*7,
|
||||
RGN_FRAC(1,2)+8*8*8, RGN_FRAC(0,2)+8*8*8,
|
||||
RGN_FRAC(1,2)+8*8*9, RGN_FRAC(0,2)+8*8*9,
|
||||
RGN_FRAC(1,2)+8*8*10,RGN_FRAC(0,2)+8*8*10,
|
||||
RGN_FRAC(1,2)+8*8*11,RGN_FRAC(0,2)+8*8*11,
|
||||
RGN_FRAC(1,2)+8*8*12,RGN_FRAC(0,2)+8*8*12,
|
||||
RGN_FRAC(1,2)+8*8*13,RGN_FRAC(0,2)+8*8*13,
|
||||
RGN_FRAC(1,2)+8*8*14,RGN_FRAC(0,2)+8*8*14,
|
||||
RGN_FRAC(1,2)+8*8*15,RGN_FRAC(0,2)+8*8*15
|
||||
},
|
||||
8*16*8
|
||||
};
|
||||
|
||||
static const gfx_layout mz_layout8x32x8_rot =
|
||||
/* this will decode the big x2 x3 'correctly' however, maybe they're
|
||||
simply not meant to appear correct? */
|
||||
static const gfx_layout layout8x32x8_rot =
|
||||
{
|
||||
8,32,
|
||||
RGN_FRAC(1,2),
|
||||
@ -308,9 +413,9 @@ static const gfx_layout mz_layout8x32x8_rot =
|
||||
{ STEP8(0,1) },
|
||||
{
|
||||
8*0, 8*1,
|
||||
RGN_FRAC(1,2)+8*0, RGN_FRAC(1,2)+8*1,
|
||||
RGN_FRAC(1,2)+8*1, RGN_FRAC(1,2)+8*0,
|
||||
8*2, 8*3,
|
||||
RGN_FRAC(1,2)+8*2, RGN_FRAC(1,2)+8*3
|
||||
RGN_FRAC(1,2)+8*3, RGN_FRAC(1,2)+8*2
|
||||
},
|
||||
{
|
||||
STEP16(0,8*4),
|
||||
@ -321,62 +426,76 @@ static const gfx_layout mz_layout8x32x8_rot =
|
||||
|
||||
static GFXDECODE_START( skylncr )
|
||||
GFXDECODE_ENTRY( "gfx1", 0, layout8x8x8, 0, 2 )
|
||||
GFXDECODE_ENTRY( "gfx2", 0, layout8x32x8_rot, 0, 2 )
|
||||
GFXDECODE_ENTRY( "gfx2", 0, layout8x32x8, 0, 2 )
|
||||
GFXDECODE_ENTRY( "gfx2", 0, layout8x32x8_rot, 0, 2 )
|
||||
GFXDECODE_END
|
||||
|
||||
static GFXDECODE_START( madzoo )
|
||||
GFXDECODE_ENTRY( "gfx1", 0, mz_layout8x8x8, 0, 2 )
|
||||
GFXDECODE_ENTRY( "gfx2", 0, mz_layout8x32x8_rot, 0, 2 )
|
||||
GFXDECODE_ENTRY( "gfx2", 0, mz_layout8x32x8, 0, 2 )
|
||||
GFXDECODE_END
|
||||
|
||||
static INPUT_PORTS_START( skylncr )
|
||||
PORT_START("SYSTEM") /* $0 "PORT0 A" */
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START3)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START4)
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1)
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE2)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE3)
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE4)
|
||||
PORT_START("IN1") /* $0 "PORT0 A" */
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON6) PORT_NAME("Stop 2") PORT_CODE(KEYCODE_X)
|
||||
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( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON7) PORT_NAME("Stop 3") PORT_CODE(KEYCODE_C)
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
||||
|
||||
PORT_START("BUTTONS") /* $1 "PORT0 B" */
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4)
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(2) // skip test
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_PLAYER(2)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3) PORT_PLAYER(2)
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4) PORT_PLAYER(2)
|
||||
PORT_START("IN2") /* $1 "PORT0 B" */
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_NAME("Bet") PORT_CODE(KEYCODE_2)
|
||||
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( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_NAME("Start") PORT_CODE(KEYCODE_1)
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
||||
|
||||
PORT_START("IN3") /* $11 "PORT1 B" */
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) 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( 0x08, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Key In") PORT_CODE(KEYCODE_Q)
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_NAME("Option 1 (D-UP)") PORT_CODE(KEYCODE_A)
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("D-UP") PORT_CODE(KEYCODE_3)
|
||||
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_START("IN4") /* $12 "PORT1 C" */
|
||||
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( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Stats") PORT_CODE(KEYCODE_0)
|
||||
PORT_SERVICE_NO_TOGGLE( 0x08, IP_ACTIVE_LOW ) /* Settings */
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
||||
PORT_BIT( 0x20, 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_START("DSW1") /* $2 "DSW1" */
|
||||
PORT_DIPNAME( 0x01, 0x01, "DSW1" )
|
||||
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_DIPNAME( 0x11, 0x01, "D-UP Percentage" )
|
||||
PORT_DIPSETTING( 0x11, "60%" )
|
||||
PORT_DIPSETTING( 0x01, "70%" )
|
||||
PORT_DIPSETTING( 0x10, "80%" )
|
||||
PORT_DIPSETTING( 0x00, "90%" )
|
||||
PORT_DIPNAME( 0x0e, 0x0e, "Main Game Percentage" )
|
||||
PORT_DIPSETTING( 0x0e, "75%" )
|
||||
PORT_DIPSETTING( 0x0c, "78%" )
|
||||
PORT_DIPSETTING( 0x0a, "81%" )
|
||||
PORT_DIPSETTING( 0x08, "84%" )
|
||||
PORT_DIPSETTING( 0x06, "87%" )
|
||||
PORT_DIPSETTING( 0x04, "90%" )
|
||||
PORT_DIPSETTING( 0x02, "93%" )
|
||||
PORT_DIPSETTING( 0x00, "96%" )
|
||||
PORT_DIPNAME( 0x20, 0x20, "Reels Speed" )
|
||||
PORT_DIPSETTING( 0x20, "Slow" )
|
||||
PORT_DIPSETTING( 0x00, "Fast" )
|
||||
PORT_DIPNAME( 0x40, 0x40, "Bonus Score" )
|
||||
PORT_DIPSETTING( 0x40, "32" )
|
||||
PORT_DIPSETTING( 0x00, "24" )
|
||||
PORT_DIPNAME( 0x80, 0x00, "Key Out" )
|
||||
PORT_DIPSETTING( 0x80, "x100" )
|
||||
PORT_DIPSETTING( 0x00, "x1" )
|
||||
|
||||
PORT_START("DSW2") /* $10 "DSW2" */
|
||||
PORT_DIPNAME( 0x01, 0x01, "DSW2" )
|
||||
@ -385,15 +504,63 @@ static INPUT_PORTS_START( skylncr )
|
||||
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_DIPNAME( 0x04, 0x04, "Double-Up" )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( No ) )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( Yes ) )
|
||||
PORT_DIPNAME( 0x18, 0x08, "Payout Limit" )
|
||||
PORT_DIPSETTING( 0x00, "0" )
|
||||
PORT_DIPSETTING( 0x08, "5000" )
|
||||
PORT_DIPSETTING( 0x10, "2000" )
|
||||
PORT_DIPSETTING( 0x18, "1000" )
|
||||
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0xc0, 0xc0, "Clown Percentage" )
|
||||
PORT_DIPSETTING( 0xc0, "60%" )
|
||||
PORT_DIPSETTING( 0x80, "70%" )
|
||||
PORT_DIPSETTING( 0x40, "80%" )
|
||||
PORT_DIPSETTING( 0x00, "90%" )
|
||||
|
||||
PORT_START("DSW3") /* AY8910 port A */
|
||||
PORT_DIPNAME( 0x07, 0x07, "Coinage A, B & C" )
|
||||
PORT_DIPSETTING( 0x00, "1 Coin / 1 Credit" )
|
||||
PORT_DIPSETTING( 0x01, "1 Coin / 5 Credits" )
|
||||
PORT_DIPSETTING( 0x02, "1 Coin / 10 Credits" )
|
||||
PORT_DIPSETTING( 0x03, "1 Coin / 20 Credits" )
|
||||
PORT_DIPSETTING( 0x04, "1 Coin / 30 Credits" )
|
||||
PORT_DIPSETTING( 0x05, "1 Coin / 40 Credits" )
|
||||
PORT_DIPSETTING( 0x06, "1 Coin / 50 Credits" )
|
||||
PORT_DIPSETTING( 0x07, "1 Coin / 100 Credit" )
|
||||
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, "Max Win Bonus" )
|
||||
PORT_DIPSETTING( 0x20, "10000" )
|
||||
PORT_DIPSETTING( 0x00, "20000" )
|
||||
PORT_DIPNAME( 0xc0, 0xc0, "Minimum Bet" )
|
||||
PORT_DIPSETTING( 0xc0, "0" )
|
||||
PORT_DIPSETTING( 0x80, "8" )
|
||||
PORT_DIPSETTING( 0x40, "16" )
|
||||
PORT_DIPSETTING( 0x00, "32" )
|
||||
|
||||
PORT_START("DSW4") /* AY8910 port B */
|
||||
PORT_DIPNAME( 0x07, 0x07, "Remote Credits" )
|
||||
PORT_DIPSETTING( 0x00, "1 Pulse / 100 Credits" )
|
||||
PORT_DIPSETTING( 0x01, "1 Pulse / 110 Credits" )
|
||||
PORT_DIPSETTING( 0x02, "1 Pulse / 120 Credits" )
|
||||
PORT_DIPSETTING( 0x03, "1 Pulse / 130 Credits" )
|
||||
PORT_DIPSETTING( 0x04, "1 Pulse / 200 Credits" )
|
||||
PORT_DIPSETTING( 0x05, "1 Pulse / 400 Credits" )
|
||||
PORT_DIPSETTING( 0x06, "1 Pulse / 500 Credits" )
|
||||
PORT_DIPSETTING( 0x07, "1 Pulse / 1000 Credits" )
|
||||
PORT_DIPNAME( 0x18, 0x00, "Max Bet" )
|
||||
PORT_DIPSETTING( 0x18, "32" )
|
||||
PORT_DIPSETTING( 0x10, "64" )
|
||||
PORT_DIPSETTING( 0x08, "72" )
|
||||
PORT_DIPSETTING( 0x00, "80" )
|
||||
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
@ -403,81 +570,9 @@ static INPUT_PORTS_START( skylncr )
|
||||
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
|
||||
PORT_START("COIN1") /* $11 "PORT1 B" */
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
|
||||
PORT_START("COIN2") /* $12 "PORT1 C" */
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN2)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
|
||||
PORT_START("DSW4") /* AY8910 port A */
|
||||
PORT_DIPNAME( 0x01, 0x01, "DSW4" )
|
||||
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("DSW3") /* AY8910 port B */
|
||||
PORT_DIPNAME( 0x01, 0x01, "DSW3" )
|
||||
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 ay8910_interface ay8910_config =
|
||||
{
|
||||
AY8910_LEGACY_OUTPUT,
|
||||
@ -498,11 +593,13 @@ static INTERRUPT_GEN( skylncr_vblank_interrupt )
|
||||
static MACHINE_DRIVER_START( skylncr )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("main", Z80, 12000000/4)
|
||||
MDRV_CPU_ADD("main", Z80, MASTER_CLOCK/4)
|
||||
MDRV_CPU_PROGRAM_MAP(mem_map_skylncr,0)
|
||||
MDRV_CPU_IO_MAP(io_map_skylncr,0)
|
||||
MDRV_CPU_VBLANK_INT("main", skylncr_vblank_interrupt)
|
||||
|
||||
MDRV_NVRAM_HANDLER(generic_0fill)
|
||||
|
||||
/* video hardware */
|
||||
MDRV_SCREEN_ADD("main", RASTER)
|
||||
MDRV_SCREEN_REFRESH_RATE(60)
|
||||
@ -519,20 +616,11 @@ static MACHINE_DRIVER_START( skylncr )
|
||||
|
||||
/* sound hardware */
|
||||
MDRV_SPEAKER_STANDARD_MONO("mono")
|
||||
MDRV_SOUND_ADD("ay", AY8910, 12000000/8)
|
||||
MDRV_SOUND_ADD("ay", AY8910, MASTER_CLOCK/8)
|
||||
MDRV_SOUND_CONFIG(ay8910_config)
|
||||
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
static MACHINE_DRIVER_START( madzoo )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_IMPORT_FROM(skylncr)
|
||||
|
||||
/* video hardware */
|
||||
MDRV_GFXDECODE(madzoo)
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
/*
|
||||
|
||||
Sky Lancer PCB Layout
|
||||
@ -574,6 +662,23 @@ ROM_START( skylncr )
|
||||
ROM_LOAD( "574200.u33", 0x00000, 0x80000, CRC(19b25221) SHA1(2f32d337125a9fd0bc7f50713b05e564fd4f81b2) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( butrfly )
|
||||
ROM_REGION( 0x80000, "main", 0 )
|
||||
ROM_LOAD( "butterfly.prg", 0x00000, 0x10000, CRC(b35b289c) SHA1(5a02bfb6e1fb608099b9f491c10795ef888a3b36) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD16_BYTE( "u29", 0x00000, 0x20000, CRC(2ff775ea) SHA1(2219c75cbac2969485607446ab116587bdee7278) )
|
||||
ROM_LOAD16_BYTE( "u31", 0x00001, 0x20000, CRC(029d2214) SHA1(cf8256157db0b297ed457b3da6b6517907128843) )
|
||||
ROM_LOAD16_BYTE( "u33", 0x40000, 0x20000, CRC(37bad677) SHA1(c077f0c07b097b376a01e5637446e4c4f82d9e28) )
|
||||
ROM_LOAD16_BYTE( "u35", 0x40001, 0x20000, CRC(d14c7713) SHA1(c229ef64f3b0a04ff8e27bc56cff6a55ca34b80c) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx2", 0 )
|
||||
ROM_LOAD16_BYTE( "u52", 0x00000, 0x20000, CRC(15051537) SHA1(086c38c05c605f297a7bc470eb51763a7648e72c) )
|
||||
ROM_LOAD16_BYTE( "u54", 0x00001, 0x20000, CRC(8e34d029) SHA1(ae316f2f34768938a07d62db110ce59d2751abaa) )
|
||||
ROM_LOAD16_BYTE( "u56", 0x40000, 0x20000, CRC(a53daaef) SHA1(7b88bb986bd5e47576163d6999f8770c720c5bfc) )
|
||||
ROM_LOAD16_BYTE( "u58", 0x40001, 0x20000, CRC(21ca47f8) SHA1(b192be06a2eb817776309580dc64fd76772a8d50) )
|
||||
ROM_END
|
||||
|
||||
/*
|
||||
|
||||
Mad Zoo PCB Layout
|
||||
@ -609,16 +714,33 @@ ROM_START( madzoo )
|
||||
ROM_LOAD( "27512.u9", 0x00000, 0x10000, CRC(98b1c9fe) SHA1(9ca1706d25038a078fb07ba5c2e6681ed468bc88) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "27c301.u29", 0x00000, 0x20000, CRC(4d58ab1d) SHA1(a6c9a855de6c7c502deea6afe2061dbbc6a1dfce) )
|
||||
ROM_LOAD( "27c301.u31", 0x20000, 0x20000, CRC(511a8d19) SHA1(d49cc025b7b44a1f364b843dbe215fd2aa1e8986) )
|
||||
ROM_LOAD( "27c301.u33", 0x40000, 0x20000, CRC(63e7ec89) SHA1(5184c164c356976325c7ad715d0f32a16bd44061) )
|
||||
ROM_LOAD( "27c301.u35", 0x60000, 0x20000, CRC(a1ef51d1) SHA1(76508de6ab9effd1c8e27753403f161da073014c) )
|
||||
ROM_LOAD16_BYTE( "27c301.u29", 0x00000, 0x20000, CRC(44645bb8) SHA1(efaf88d63e09029aa023ddaf72dbd9ee1df10315) )
|
||||
ROM_LOAD16_BYTE( "27c301.u31", 0x00001, 0x20000, CRC(58267dbc) SHA1(dd64e4b44d10e2d93ded255622891f058b2b8bb9) )
|
||||
ROM_LOAD16_BYTE( "27c301.u33", 0x40000, 0x20000, CRC(6adb1c2c) SHA1(d782a778a34e6240a3ae09cd11124790864a9149) )
|
||||
ROM_LOAD16_BYTE( "27c301.u35", 0x40001, 0x20000, CRC(a8d3a174) SHA1(b668bb1db1d27aff52e808aa9b972f24693161b3) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx2", 0 )
|
||||
ROM_LOAD( "27c301.u52", 0x00000, 0x20000, CRC(00cd5c9d) SHA1(68c2ffdba4018bcb03fe8a96c4a269d3ec7379d8) )
|
||||
ROM_LOAD( "27c301.u54", 0x20000, 0x20000, CRC(9bd8af17) SHA1(5f32523ea797821205c5bb0f3c53c09ca784555b) )
|
||||
ROM_LOAD( "27c301.u56", 0x40000, 0x20000, CRC(d73278a6) SHA1(2865659d80c76d73f19b178748cf67d792cd6a84) )
|
||||
ROM_LOAD( "27c301.u58", 0x60000, 0x20000, CRC(895b2dac) SHA1(2a6dfec2a18a63f0cc4344506653ab7b14c31a59) )
|
||||
ROM_LOAD16_BYTE( "27c301.u52", 0x00000, 0x20000, CRC(dd1997ed) SHA1(9197a0b4a0b6284ae7eeb6364c87589f6f8a614d) )
|
||||
ROM_LOAD16_BYTE( "27c301.u54", 0x00001, 0x20000, CRC(a654a6df) SHA1(54292953df1103ad830e1f40fdf96c48e0e13be7) )
|
||||
ROM_LOAD16_BYTE( "27c301.u56", 0x40000, 0x20000, CRC(f2e3c394) SHA1(8e09516fe822d7c125be57b154c896ab3e024f98) )
|
||||
ROM_LOAD16_BYTE( "27c301.u58", 0x40001, 0x20000, CRC(65d2015b) SHA1(121494a2684276276e2504d6f853718e93f4d458) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( leader )
|
||||
ROM_REGION( 0x80000, "main", 0 )
|
||||
ROM_LOAD( "leader.prg", 0x00000, 0x10000, CRC(1a6e1129) SHA1(639f687e7720bab89628b377dca0475f17a35041) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD16_BYTE( "leadergfx1.dmp11", 0x00000, 0x20000, CRC(08acae31) SHA1(8b93066a2159e56607499fe1b1748a70a73a326c) )
|
||||
ROM_LOAD16_BYTE( "leadergfx1.dmp21", 0x00001, 0x20000, CRC(88cd7a49) SHA1(f7187c7e3e584180de03998f376001f8d5966882) )
|
||||
ROM_LOAD16_BYTE( "leadergfx1.dmp12", 0x40000, 0x20000, CRC(e57e145e) SHA1(3f6169ed1d907de3438787c02dc53c73ca6bdb73) )
|
||||
ROM_LOAD16_BYTE( "leadergfx1.dmp22", 0x40001, 0x20000, CRC(e8368d29) SHA1(19e7d7d6e320f5f06e91013cb4c92b3987dbe24e) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx2", 0 )
|
||||
ROM_LOAD16_BYTE( "leadergfx2.dmp11", 0x00000, 0x20000, CRC(1d62edf4) SHA1(7ba43bf0d0d0cadd5c7fcbe940ecf3fab5c9127b) )
|
||||
ROM_LOAD16_BYTE( "leadergfx2.dmp21", 0x00001, 0x20000, CRC(57b9d159) SHA1(ee98aea160653d55017bd893cc253d23c7b1faf4) )
|
||||
ROM_LOAD16_BYTE( "leadergfx2.dmp12", 0x40000, 0x20000, CRC(91e73bf9) SHA1(90a9c1119ae05bbd66a4d3c2266ec02cc53969bd) )
|
||||
ROM_LOAD16_BYTE( "leadergfx2.dmp22", 0x40001, 0x20000, CRC(04cc0118) SHA1(016ccbe7daf8c4676830aadcc906a64e2826d11a) )
|
||||
ROM_END
|
||||
|
||||
|
||||
@ -633,5 +755,8 @@ static DRIVER_INIT( skylncr )
|
||||
Game Drivers
|
||||
*****************************************************/
|
||||
|
||||
GAME( 1995, skylncr, 0, skylncr, skylncr, skylncr, ROT0, "Bordun International", "Sky Lancer (Bordun International)", GAME_NOT_WORKING )
|
||||
GAME( 1995, madzoo, 0, madzoo, skylncr, skylncr, ROT0, "Bordun International", "Mad Zoo", GAME_NOT_WORKING )
|
||||
/* 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, butrfly, 0, skylncr, skylncr, skylncr, ROT0, "Bordun International", "Butterfly Video Game (ver.U350C)", 0 )
|
||||
GAME( 1995, madzoo, 0, skylncr, skylncr, skylncr, ROT0, "Bordun International", "Mad Zoo (ver.U450C)", 0 )
|
||||
GAME( 1995, leader, 0, skylncr, skylncr, skylncr, ROT0, "Bootleg", "Leader", GAME_NOT_WORKING )
|
||||
|
@ -7406,6 +7406,7 @@ Other Sun games
|
||||
DRIVER( cb3 ) /* (c) 19?? Dyna/bootleg? */
|
||||
DRIVER( cmv801 ) /* (c) 198? Corsica */
|
||||
DRIVER( cmaster ) /* (c) 1991 Dyna */
|
||||
DRIVER( lucky8 ) /* (c) 1989 Wing Co.Ltd */
|
||||
DRIVER( cpoker ) /* (c) 1993? IGS */
|
||||
DRIVER( cpokert ) /* (c) 1993? Tuning */
|
||||
DRIVER( csk227it ) /* (c) 198? IGS */
|
||||
@ -8154,7 +8155,6 @@ Other Sun games
|
||||
DRIVER( videomat ) /* 1990 bootleg */
|
||||
DRIVER( sigmapkr ) /* (c) 1995 Sigma */
|
||||
DRIVER( sigma2k ) /* (c) 2000 Sigma */
|
||||
DRIVER( lucky8 ) /* (c) 1989 Falcon */
|
||||
DRIVER( sidewndr ) /* (c) 1981? ACE */
|
||||
DRIVER( spellbnd ) /* (c) 1981? ACE */
|
||||
DRIVER( starspnr ) /* (c) 1982? ACE */
|
||||
@ -8310,7 +8310,9 @@ Other Sun games
|
||||
DRIVER( tetriunk )
|
||||
DRIVER( smstrv ) /* (c) 1984 SMS MFG CORP */
|
||||
DRIVER( skylncr ) /* (c) 1995 Bordun International */
|
||||
DRIVER( butrfly ) /* (c) 1995 Bordun International */
|
||||
DRIVER( madzoo ) /* (c) 1995 Bordun International */
|
||||
DRIVER( leader ) /* Bootleg? */
|
||||
DRIVER( livequiz ) /* (c) 1999 Andamiro */
|
||||
DRIVER( cowrace ) /* (c) 19?? unknown */
|
||||
DRIVER( mjsiyoub ) /* (c) 1986 Visco */
|
||||
|
Loading…
Reference in New Issue
Block a user