diff --git a/src/mame/drivers/skylncr.c b/src/mame/drivers/skylncr.c index 7f0765080a8..51172dfba2d 100644 --- a/src/mame/drivers/skylncr.c +++ b/src/mame/drivers/skylncr.c @@ -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 ) diff --git a/src/mame/mamedriv.c b/src/mame/mamedriv.c index 925397cb0b1..bf7b47a62ed 100644 --- a/src/mame/mamedriv.c +++ b/src/mame/mamedriv.c @@ -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 */