diff options
Diffstat (limited to 'src/mame/drivers/skylncr.cpp')
-rw-r--r-- | src/mame/drivers/skylncr.cpp | 452 |
1 files changed, 160 insertions, 292 deletions
diff --git a/src/mame/drivers/skylncr.cpp b/src/mame/drivers/skylncr.cpp index 25d0e0ccea6..035c9a6369b 100644 --- a/src/mame/drivers/skylncr.cpp +++ b/src/mame/drivers/skylncr.cpp @@ -143,18 +143,9 @@ public: driver_device(mconfig, type, tag), m_videoram(*this, "videoram"), m_colorram(*this, "colorram"), - m_reeltiles_1_ram(*this, "reeltiles_1_ram"), - m_reeltiles_2_ram(*this, "reeltiles_2_ram"), - m_reeltiles_3_ram(*this, "reeltiles_3_ram"), - m_reeltiles_4_ram(*this, "reeltiles_4_ram"), - m_reeltileshigh_1_ram(*this, "rthigh_1_ram"), - m_reeltileshigh_2_ram(*this, "rthigh_2_ram"), - m_reeltileshigh_3_ram(*this, "rthigh_3_ram"), - m_reeltileshigh_4_ram(*this, "rthigh_4_ram"), - m_reelscroll1(*this, "reelscroll1"), - m_reelscroll2(*this, "reelscroll2"), - m_reelscroll3(*this, "reelscroll3"), - m_reelscroll4(*this, "reelscroll4"), + m_reeltiles_ram(*this, "reeltiles_ram.%u", 0U), + m_reeltileshigh_ram(*this, "rthigh_ram.%u", 0U), + m_reelscroll(*this, "reelscroll.%u", 0U), m_maincpu(*this, "maincpu"), m_gfxdecode(*this, "gfxdecode"), m_palette(*this, "palette"), @@ -168,68 +159,46 @@ public: void skylncr(machine_config &config); void mbutrfly(machine_config &config); + void init_mbutrfly() { save_item(NAME(m_mbutrfly_prot)); } void init_miaction(); void init_sonikfig(); READ_LINE_MEMBER(mbutrfly_prot_r); +protected: + virtual void machine_start() override { m_lamps.resolve(); save_item(NAME(m_nmi_enable)); } + virtual void video_start() override; + private: - void skylncr_videoram_w(offs_t offset, uint8_t data); - void skylncr_colorram_w(offs_t offset, uint8_t data); - void reeltiles_1_w(offs_t offset, uint8_t data); - void reeltiles_2_w(offs_t offset, uint8_t data); - void reeltiles_3_w(offs_t offset, uint8_t data); - void reeltiles_4_w(offs_t offset, uint8_t data); - void reeltileshigh_1_w(offs_t offset, uint8_t data); - void reeltileshigh_2_w(offs_t offset, uint8_t data); - void reeltileshigh_3_w(offs_t offset, uint8_t data); - void reeltileshigh_4_w(offs_t offset, uint8_t data); - void reelscroll1_w(offs_t offset, uint8_t data); - void reelscroll2_w(offs_t offset, uint8_t data); - void reelscroll3_w(offs_t offset, uint8_t data); - void reelscroll4_w(offs_t offset, uint8_t data); - void skylncr_coin_w(uint8_t data); + void videoram_w(offs_t offset, uint8_t data); + void colorram_w(offs_t offset, uint8_t data); + template<uint8_t Which> void reeltiles_w(offs_t offset, uint8_t data); + template<uint8_t Which> void reeltileshigh_w(offs_t offset, uint8_t data); + template<uint8_t Which> void reelscroll_w(offs_t offset, uint8_t data); + void coin_w(uint8_t data); uint8_t ret_ff(); - void skylncr_nmi_enable_w(uint8_t data); + void nmi_enable_w(uint8_t data); void mbutrfly_prot_w(uint8_t data); uint8_t bdream97_opcode_r(offs_t offset); TILE_GET_INFO_MEMBER(get_tile_info); - TILE_GET_INFO_MEMBER(get_reel_1_tile_info); - TILE_GET_INFO_MEMBER(get_reel_2_tile_info); - TILE_GET_INFO_MEMBER(get_reel_3_tile_info); - TILE_GET_INFO_MEMBER(get_reel_4_tile_info); - uint32_t screen_update_skylncr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - INTERRUPT_GEN_MEMBER(skylncr_vblank_interrupt); + template<uint8_t Which> TILE_GET_INFO_MEMBER(get_reel_tile_info); + uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + INTERRUPT_GEN_MEMBER(vblank_interrupt); void bdream97_opcode_map(address_map &map); void io_map_mbutrfly(address_map &map); void io_map_skylncr(address_map &map); - void mem_map_skylncr(address_map &map); + void mem_map(address_map &map); void ramdac2_map(address_map &map); void ramdac_map(address_map &map); - virtual void machine_start() override { m_lamps.resolve(); } - virtual void video_start() override; - tilemap_t *m_tmap; required_shared_ptr<uint8_t> m_videoram; required_shared_ptr<uint8_t> m_colorram; - required_shared_ptr<uint8_t> m_reeltiles_1_ram; - required_shared_ptr<uint8_t> m_reeltiles_2_ram; - required_shared_ptr<uint8_t> m_reeltiles_3_ram; - required_shared_ptr<uint8_t> m_reeltiles_4_ram; - required_shared_ptr<uint8_t> m_reeltileshigh_1_ram; - required_shared_ptr<uint8_t> m_reeltileshigh_2_ram; - required_shared_ptr<uint8_t> m_reeltileshigh_3_ram; - required_shared_ptr<uint8_t> m_reeltileshigh_4_ram; - tilemap_t *m_reel_1_tilemap; - tilemap_t *m_reel_2_tilemap; - tilemap_t *m_reel_3_tilemap; - tilemap_t *m_reel_4_tilemap; - required_shared_ptr<uint8_t> m_reelscroll1; - required_shared_ptr<uint8_t> m_reelscroll2; - required_shared_ptr<uint8_t> m_reelscroll3; - required_shared_ptr<uint8_t> m_reelscroll4; + required_shared_ptr_array<uint8_t, 4> m_reeltiles_ram; + required_shared_ptr_array<uint8_t, 4> m_reeltileshigh_ram; + tilemap_t *m_reel_tilemap[4]; + required_shared_ptr_array<uint8_t, 4> m_reelscroll; uint8_t m_nmi_enable; bool m_mbutrfly_prot; required_device<cpu_device> m_maincpu; @@ -244,13 +213,13 @@ private: * Video Hardware * **************************************/ -void skylncr_state::skylncr_videoram_w(offs_t offset, uint8_t data) +void skylncr_state::videoram_w(offs_t offset, uint8_t data) { m_videoram[offset] = data; m_tmap->mark_tile_dirty(offset); } -void skylncr_state::skylncr_colorram_w(offs_t offset, uint8_t data) +void skylncr_state::colorram_w(offs_t offset, uint8_t data) { m_colorram[offset] = data; m_tmap->mark_tile_dirty(offset); @@ -259,37 +228,17 @@ void skylncr_state::skylncr_colorram_w(offs_t offset, uint8_t data) TILE_GET_INFO_MEMBER(skylncr_state::get_tile_info) { - uint16_t code = m_videoram[ tile_index ] + (m_colorram[ tile_index ] << 8); + uint16_t code = m_videoram[tile_index] + (m_colorram[tile_index] << 8); int pal = (code & 0x8000) >> 15; tileinfo.set(0, code, pal^1, TILE_FLIPYX( 0 )); } -TILE_GET_INFO_MEMBER(skylncr_state::get_reel_1_tile_info) -{ - uint16_t code = m_reeltiles_1_ram[ tile_index ] + (m_reeltileshigh_1_ram[ tile_index ] << 8); - int pal = (code & 0x8000) >> 15; - tileinfo.set(1, code&0x7fff, pal^1, TILE_FLIPYX( 0 )); -} - -TILE_GET_INFO_MEMBER(skylncr_state::get_reel_2_tile_info) -{ - uint16_t code = m_reeltiles_2_ram[ tile_index ] + (m_reeltileshigh_2_ram[ tile_index ] << 8); - int pal = (code & 0x8000) >> 15; - tileinfo.set(1, code, pal^1, TILE_FLIPYX( 0 )); -} - -TILE_GET_INFO_MEMBER(skylncr_state::get_reel_3_tile_info) -{ - uint16_t code = m_reeltiles_3_ram[ tile_index ] + (m_reeltileshigh_3_ram[ tile_index ] << 8); - int pal = (code & 0x8000) >> 15; - tileinfo.set(1, code, pal^1, TILE_FLIPYX( 0 )); -} - -TILE_GET_INFO_MEMBER(skylncr_state::get_reel_4_tile_info) +template<uint8_t Which> +TILE_GET_INFO_MEMBER(skylncr_state::get_reel_tile_info) { - uint16_t code = m_reeltiles_4_ram[ tile_index ] + (m_reeltileshigh_4_ram[ tile_index ] << 8); + uint16_t code = m_reeltiles_ram[Which][tile_index] + (m_reeltileshigh_ram[Which][tile_index] << 8); int pal = (code & 0x8000) >> 15; - tileinfo.set(1, code, pal^1, TILE_FLIPYX( 0 )); + tileinfo.set(1, Which == 0 ? code & 0x7fff : code, pal^1, TILE_FLIPYX( 0 )); } @@ -297,118 +246,68 @@ void skylncr_state::video_start() { m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(skylncr_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x20 ); - m_reel_1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(skylncr_state::get_reel_1_tile_info)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8 ); - m_reel_2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(skylncr_state::get_reel_2_tile_info)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8 ); - m_reel_3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(skylncr_state::get_reel_3_tile_info)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8 ); - m_reel_4_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(skylncr_state::get_reel_4_tile_info)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8 ); + m_reel_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(skylncr_state::get_reel_tile_info<0>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8 ); + m_reel_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(skylncr_state::get_reel_tile_info<1>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8 ); + m_reel_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(skylncr_state::get_reel_tile_info<2>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8 ); + m_reel_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(skylncr_state::get_reel_tile_info<3>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8 ); - m_reel_2_tilemap->set_scroll_cols(0x40); - m_reel_3_tilemap->set_scroll_cols(0x40); - m_reel_4_tilemap->set_scroll_cols(0x40); + m_reel_tilemap[1]->set_scroll_cols(0x40); + m_reel_tilemap[2]->set_scroll_cols(0x40); + m_reel_tilemap[3]->set_scroll_cols(0x40); - m_reel_2_tilemap->set_transparent_pen(0); - m_reel_3_tilemap->set_transparent_pen(0); - m_reel_4_tilemap->set_transparent_pen(0); + m_reel_tilemap[1]->set_transparent_pen(0); + m_reel_tilemap[2]->set_transparent_pen(0); + m_reel_tilemap[3]->set_transparent_pen(0); m_tmap->set_transparent_pen(0); } -uint32_t skylncr_state::screen_update_skylncr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) +uint32_t skylncr_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - int i; - bitmap.fill(rgb_t::black(), cliprect); - m_reel_1_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_reel_tilemap[0]->draw(screen, bitmap, cliprect, 0, 0); // are these hardcoded, or registers? const rectangle visible1(0*8, (16+48)*8-1, 4*8, (4+7)*8-1); const rectangle visible2(0*8, (16+48)*8-1, 12*8, (12+7)*8-1); const rectangle visible3(0*8, (16+48)*8-1, 20*8, (20+7)*8-1); - for (i= 0;i < 64;i++) + for (int i= 0;i < 64;i++) { - m_reel_2_tilemap->set_scrolly(i, m_reelscroll2[i]); - m_reel_3_tilemap->set_scrolly(i, m_reelscroll3[i]); - m_reel_4_tilemap->set_scrolly(i, m_reelscroll4[i]); + m_reel_tilemap[1]->set_scrolly(i, m_reelscroll[1][i]); + m_reel_tilemap[2]->set_scrolly(i, m_reelscroll[2][i]); + m_reel_tilemap[3]->set_scrolly(i, m_reelscroll[3][i]); } - m_reel_2_tilemap->draw(screen, bitmap, visible1, 0, 0); - m_reel_3_tilemap->draw(screen, bitmap, visible2, 0, 0); - m_reel_4_tilemap->draw(screen, bitmap, visible3, 0, 0); + m_reel_tilemap[1]->draw(screen, bitmap, visible1, 0, 0); + m_reel_tilemap[2]->draw(screen, bitmap, visible2, 0, 0); + m_reel_tilemap[3]->draw(screen, bitmap, visible3, 0, 0); m_tmap->draw(screen, bitmap, cliprect, 0, 0); return 0; } -void skylncr_state::reeltiles_1_w(offs_t offset, uint8_t data) -{ - m_reeltiles_1_ram[offset] = data; - m_reel_1_tilemap->mark_tile_dirty(offset); -} - -void skylncr_state::reeltiles_2_w(offs_t offset, uint8_t data) -{ - m_reeltiles_2_ram[offset] = data; - m_reel_2_tilemap->mark_tile_dirty(offset); -} - -void skylncr_state::reeltiles_3_w(offs_t offset, uint8_t data) -{ - m_reeltiles_3_ram[offset] = data; - m_reel_3_tilemap->mark_tile_dirty(offset); -} - -void skylncr_state::reeltiles_4_w(offs_t offset, uint8_t data) -{ - m_reeltiles_4_ram[offset] = data; - m_reel_4_tilemap->mark_tile_dirty(offset); -} - -void skylncr_state::reeltileshigh_1_w(offs_t offset, uint8_t data) -{ - m_reeltileshigh_1_ram[offset] = data; - m_reel_1_tilemap->mark_tile_dirty(offset); -} - -void skylncr_state::reeltileshigh_2_w(offs_t offset, uint8_t data) -{ - m_reeltileshigh_2_ram[offset] = data; - m_reel_2_tilemap->mark_tile_dirty(offset); -} - -void skylncr_state::reeltileshigh_3_w(offs_t offset, uint8_t data) -{ - m_reeltileshigh_3_ram[offset] = data; - m_reel_3_tilemap->mark_tile_dirty(offset); -} - -void skylncr_state::reeltileshigh_4_w(offs_t offset, uint8_t data) -{ - m_reeltileshigh_4_ram[offset] = data; - m_reel_4_tilemap->mark_tile_dirty(offset); -} - -void skylncr_state::reelscroll1_w(offs_t offset, uint8_t data) -{ - m_reelscroll1[offset] = data; -} - -void skylncr_state::reelscroll2_w(offs_t offset, uint8_t data) +template<uint8_t Which> +void skylncr_state::reeltiles_w(offs_t offset, uint8_t data) { - m_reelscroll2[offset] = data; + m_reeltiles_ram[Which][offset] = data; + m_reel_tilemap[Which]->mark_tile_dirty(offset); } -void skylncr_state::reelscroll3_w(offs_t offset, uint8_t data) +template<uint8_t Which> +void skylncr_state::reeltileshigh_w(offs_t offset, uint8_t data) { - m_reelscroll3[offset] = data; + m_reeltileshigh_ram[Which][offset] = data; + m_reel_tilemap[Which]->mark_tile_dirty(offset); } -void skylncr_state::reelscroll4_w(offs_t offset, uint8_t data) +template<uint8_t Which> +void skylncr_state::reelscroll_w(offs_t offset, uint8_t data) { - m_reelscroll4[offset] = data; + m_reelscroll[Which][offset] = data; } @@ -416,7 +315,7 @@ void skylncr_state::reelscroll4_w(offs_t offset, uint8_t data) * Other Handlers * ************************************/ -void skylncr_state::skylncr_coin_w(uint8_t data) +void skylncr_state::coin_w(uint8_t data) { machine().bookkeeping().coin_counter_w(0, data & 0x04); m_hopper->motor_w(data & 0x20); @@ -434,7 +333,7 @@ uint8_t skylncr_state::ret_00() } #endif -void skylncr_state::skylncr_nmi_enable_w(uint8_t data) +void skylncr_state::nmi_enable_w(uint8_t data) { m_nmi_enable = data & 0x10; } @@ -467,60 +366,29 @@ uint8_t skylncr_state::bdream97_opcode_r(offs_t offset) * Memory Map * **************************************/ -void skylncr_state::mem_map_skylncr(address_map &map) +void skylncr_state::mem_map(address_map &map) { map(0x0000, 0x7fff).rom(); map(0x8000, 0x87ff).ram().share("nvram"); - map(0x8800, 0x8fff).ram().w(FUNC(skylncr_state::skylncr_videoram_w)).share("videoram"); - map(0x9000, 0x97ff).ram().w(FUNC(skylncr_state::skylncr_colorram_w)).share("colorram"); + map(0x8800, 0x8fff).ram().w(FUNC(skylncr_state::videoram_w)).share(m_videoram); + map(0x9000, 0x97ff).ram().w(FUNC(skylncr_state::colorram_w)).share(m_colorram); - map(0x9800, 0x99ff).ram().w(FUNC(skylncr_state::reeltiles_1_w)).share("reeltiles_1_ram"); - map(0x9a00, 0x9bff).ram().w(FUNC(skylncr_state::reeltiles_2_w)).share("reeltiles_2_ram"); - map(0x9c00, 0x9dff).ram().w(FUNC(skylncr_state::reeltiles_3_w)).share("reeltiles_3_ram"); - map(0x9e00, 0x9fff).ram().w(FUNC(skylncr_state::reeltiles_4_w)).share("reeltiles_4_ram"); - map(0xa000, 0xa1ff).ram().w(FUNC(skylncr_state::reeltileshigh_1_w)).share("rthigh_1_ram"); - map(0xa200, 0xa3ff).ram().w(FUNC(skylncr_state::reeltileshigh_2_w)).share("rthigh_2_ram"); - map(0xa400, 0xa5ff).ram().w(FUNC(skylncr_state::reeltileshigh_3_w)).share("rthigh_3_ram"); - map(0xa600, 0xa7ff).ram().w(FUNC(skylncr_state::reeltileshigh_4_w)).share("rthigh_4_ram"); + map(0x9800, 0x99ff).ram().w(FUNC(skylncr_state::reeltiles_w<0>)).share(m_reeltiles_ram[0]); + map(0x9a00, 0x9bff).ram().w(FUNC(skylncr_state::reeltiles_w<1>)).share(m_reeltiles_ram[1]); + map(0x9c00, 0x9dff).ram().w(FUNC(skylncr_state::reeltiles_w<2>)).share(m_reeltiles_ram[2]); + map(0x9e00, 0x9fff).ram().w(FUNC(skylncr_state::reeltiles_w<3>)).share(m_reeltiles_ram[3]); + map(0xa000, 0xa1ff).ram().w(FUNC(skylncr_state::reeltileshigh_w<0>)).share(m_reeltileshigh_ram[0]); + map(0xa200, 0xa3ff).ram().w(FUNC(skylncr_state::reeltileshigh_w<1>)).share(m_reeltileshigh_ram[1]); + map(0xa400, 0xa5ff).ram().w(FUNC(skylncr_state::reeltileshigh_w<2>)).share(m_reeltileshigh_ram[2]); + map(0xa600, 0xa7ff).ram().w(FUNC(skylncr_state::reeltileshigh_w<3>)).share(m_reeltileshigh_ram[3]); map(0xaa55, 0xaa55).r(FUNC(skylncr_state::ret_ff)); - map(0xb000, 0xb03f).ram().w(FUNC(skylncr_state::reelscroll1_w)).share("reelscroll1"); - map(0xb040, 0xb07f).ram().w(FUNC(skylncr_state::reelscroll1_w)); - map(0xb080, 0xb0bf).ram().w(FUNC(skylncr_state::reelscroll1_w)); - map(0xb0c0, 0xb0ff).ram().w(FUNC(skylncr_state::reelscroll1_w)); - map(0xb100, 0xb13f).ram().w(FUNC(skylncr_state::reelscroll1_w)); - map(0xb140, 0xb17f).ram().w(FUNC(skylncr_state::reelscroll1_w)); - map(0xb180, 0xb1bf).ram().w(FUNC(skylncr_state::reelscroll1_w)); - map(0xb1c0, 0xb1ff).ram().w(FUNC(skylncr_state::reelscroll1_w)); - - map(0xb200, 0xb23f).ram().w(FUNC(skylncr_state::reelscroll2_w)).share("reelscroll2"); - map(0xb240, 0xb27f).ram().w(FUNC(skylncr_state::reelscroll2_w)); - map(0xb280, 0xb2bf).ram().w(FUNC(skylncr_state::reelscroll2_w)); - map(0xb2c0, 0xb2ff).ram().w(FUNC(skylncr_state::reelscroll2_w)); - map(0xb300, 0xb33f).ram().w(FUNC(skylncr_state::reelscroll2_w)); - map(0xb340, 0xb37f).ram().w(FUNC(skylncr_state::reelscroll2_w)); - map(0xb380, 0xb3bf).ram().w(FUNC(skylncr_state::reelscroll2_w)); - map(0xb3c0, 0xb3ff).ram().w(FUNC(skylncr_state::reelscroll2_w)); - - map(0xb400, 0xb43f).ram().w(FUNC(skylncr_state::reelscroll3_w)).share("reelscroll3"); - map(0xb440, 0xb47f).ram().w(FUNC(skylncr_state::reelscroll3_w)); - map(0xb480, 0xb4bf).ram().w(FUNC(skylncr_state::reelscroll3_w)); - map(0xb4c0, 0xb4ff).ram().w(FUNC(skylncr_state::reelscroll3_w)); - map(0xb500, 0xb53f).ram().w(FUNC(skylncr_state::reelscroll3_w)); - map(0xb540, 0xb57f).ram().w(FUNC(skylncr_state::reelscroll3_w)); - map(0xb580, 0xb5bf).ram().w(FUNC(skylncr_state::reelscroll3_w)); - map(0xb5c0, 0xb5ff).ram().w(FUNC(skylncr_state::reelscroll3_w)); - - map(0xb600, 0xb63f).ram().w(FUNC(skylncr_state::reelscroll4_w)).share("reelscroll4"); - map(0xb640, 0xb67f).ram().w(FUNC(skylncr_state::reelscroll4_w)); - map(0xb680, 0xb6bf).ram().w(FUNC(skylncr_state::reelscroll4_w)); - map(0xb6c0, 0xb6ff).ram().w(FUNC(skylncr_state::reelscroll4_w)); - map(0xb700, 0xb73f).ram().w(FUNC(skylncr_state::reelscroll4_w)); - map(0xb740, 0xb77f).ram().w(FUNC(skylncr_state::reelscroll4_w)); - map(0xb780, 0xb7bf).ram().w(FUNC(skylncr_state::reelscroll4_w)); - map(0xb7c0, 0xb7ff).ram().w(FUNC(skylncr_state::reelscroll4_w)); + map(0xb000, 0xb03f).mirror(0x1c0).ram().w(FUNC(skylncr_state::reelscroll_w<0>)).share(m_reelscroll[0]); + map(0xb200, 0xb23f).mirror(0x1c0).ram().w(FUNC(skylncr_state::reelscroll_w<1>)).share(m_reelscroll[1]); + map(0xb400, 0xb43f).mirror(0x1c0).ram().w(FUNC(skylncr_state::reelscroll_w<2>)).share(m_reelscroll[2]); + map(0xb600, 0xb63f).mirror(0x1c0).ram().w(FUNC(skylncr_state::reelscroll_w<3>)).share(m_reelscroll[3]); map(0xc000, 0xffff).rom(); } @@ -530,10 +398,10 @@ void skylncr_state::io_map_skylncr(address_map &map) { map.global_mask(0xff); - map(0x00, 0x03).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write)); /* Input Ports */ - map(0x10, 0x13).rw("ppi8255_1", FUNC(i8255_device::read), FUNC(i8255_device::write)); /* Input Ports */ + map(0x00, 0x03).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write)); // Input Ports + map(0x10, 0x13).rw("ppi8255_1", FUNC(i8255_device::read), FUNC(i8255_device::write)); // Input Ports - map(0x20, 0x20).w(FUNC(skylncr_state::skylncr_coin_w)); + map(0x20, 0x20).w(FUNC(skylncr_state::coin_w)); map(0x30, 0x31).w("aysnd", FUNC(ay8910_device::address_data_w)); map(0x31, 0x31).r("aysnd", FUNC(ay8910_device::data_r)); @@ -546,7 +414,7 @@ void skylncr_state::io_map_skylncr(address_map &map) map(0x51, 0x51).w("ramdac2", FUNC(ramdac_device::pal_w)); map(0x52, 0x52).w("ramdac2", FUNC(ramdac_device::mask_w)); - map(0x70, 0x70).w(FUNC(skylncr_state::skylncr_nmi_enable_w)); + map(0x70, 0x70).w(FUNC(skylncr_state::nmi_enable_w)); } @@ -597,7 +465,7 @@ static const gfx_layout layout8x8x8 = 8*8*4 }; -static const gfx_layout layout8x8x8_alt = /* for sstar97 */ +static const gfx_layout layout8x8x8_alt = // for sstar97 { 8,8, RGN_FRAC(1,2), @@ -613,7 +481,7 @@ static const gfx_layout layout8x8x8_alt = /* for sstar97 */ 8*8*4 }; -static const gfx_layout layout8x8x8_bdream97 = /* for bdream97 */ +static const gfx_layout layout8x8x8_bdream97 = // for bdream97 { 8,8, RGN_FRAC(1,2), @@ -669,7 +537,7 @@ static const gfx_layout layout8x32x8_rot = 8*32*8/2 }; -static const gfx_layout layout8x32x8_alt = /* for sstar97 */ +static const gfx_layout layout8x32x8_alt = // for sstar97 { 8,32, RGN_FRAC(1,2), @@ -688,7 +556,7 @@ static const gfx_layout layout8x32x8_alt = /* for sstar97 */ 8*32*8/2 }; -static const gfx_layout layout8x32x8_alt2 = /* for neraidov */ +static const gfx_layout layout8x32x8_alt2 = // for neraidov { 8,32, RGN_FRAC(1,2), @@ -707,7 +575,7 @@ static const gfx_layout layout8x32x8_alt2 = /* for neraidov */ 8*32*8/2 }; -static const gfx_layout layout8x32x8_bdream97 = /* for bdream97 */ +static const gfx_layout layout8x32x8_bdream97 = // for bdream97 { 8,32, RGN_FRAC(1,2), @@ -761,7 +629,7 @@ GFXDECODE_END ***********************************/ static INPUT_PORTS_START( skylncr ) - PORT_START("IN1") /* $00 (PPI0 port A) */ + PORT_START("IN1") // $00 (PPI0 port A) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SLOT_STOP2) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SLOT_STOP1) @@ -771,7 +639,7 @@ static INPUT_PORTS_START( skylncr ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN) - PORT_START("IN2") /* $01 (PPI0 port B) */ + PORT_START("IN2") // $01 (PPI0 port B) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_BET) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_LOW) PORT_NAME("Down/Low") @@ -781,7 +649,7 @@ static INPUT_PORTS_START( skylncr ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN) - PORT_START("IN3") /* $11 (PPI1 port B) */ + PORT_START("IN3") // $11 (PPI1 port 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) @@ -792,17 +660,17 @@ static INPUT_PORTS_START( skylncr ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_TAKE ) PORT_NAME("Take Score") - PORT_START("IN4") /* $12 (PPI1 port C) */ + PORT_START("IN4") // $12 (PPI1 port C) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MEMORY_RESET ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) - 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( 0x20, IP_ACTIVE_LOW, IPT_CUSTOM) PORT_READ_LINE_DEVICE_MEMBER("hopper", ticket_dispenser_device, line_r) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) - PORT_START("DSW1") /* $02 (PPI0 port C) */ + PORT_START("DSW1") // $02 (PPI0 port C) PORT_DIPNAME( 0x11, 0x11, "D-UP Percentage" ) PORT_DIPSETTING( 0x11, "60%" ) PORT_DIPSETTING( 0x01, "70%" ) @@ -827,7 +695,7 @@ static INPUT_PORTS_START( skylncr ) PORT_DIPSETTING( 0x00, "x1" ) PORT_DIPSETTING( 0x80, "x100" ) - PORT_START("DSW2") /* $10 (PPI1 port A) */ + PORT_START("DSW2") // $10 (PPI1 port A) PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) @@ -851,7 +719,7 @@ static INPUT_PORTS_START( skylncr ) PORT_DIPSETTING( 0x40, "80%" ) PORT_DIPSETTING( 0x00, "90%" ) - PORT_START("DSW3") /* AY8910 port A */ + 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" ) @@ -876,7 +744,7 @@ static INPUT_PORTS_START( skylncr ) PORT_DIPSETTING( 0x40, "16" ) PORT_DIPSETTING( 0x00, "32" ) - PORT_START("DSW4") /* AY8910 port B */ + 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" ) @@ -924,7 +792,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( leader ) - PORT_START("IN1") /* $00 (PPI0 port A) */ + PORT_START("IN1") // $00 (PPI0 port A) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SLOT_STOP2) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SLOT_STOP1) @@ -934,7 +802,7 @@ static INPUT_PORTS_START( leader ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN) - PORT_START("IN2") /* $01 (PPI0 port B) */ + PORT_START("IN2") // $01 (PPI0 port B) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_BET) PORT_NAME("Bet/Throttle") PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_LOW) PORT_NAME("Down/Low") @@ -944,7 +812,7 @@ static INPUT_PORTS_START( leader ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN) - PORT_START("IN3") /* $11 (PPI1 port B) */ + PORT_START("IN3") // $11 (PPI1 port 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) @@ -955,17 +823,17 @@ static INPUT_PORTS_START( leader ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_TAKE ) PORT_NAME("Take Score") - PORT_START("IN4") /* $12 (PPI1 port C) */ + PORT_START("IN4") // $12 (PPI1 port C) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MEMORY_RESET ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) - 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( 0x20, IP_ACTIVE_LOW, IPT_CUSTOM) PORT_READ_LINE_DEVICE_MEMBER("hopper", ticket_dispenser_device, line_r) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) - PORT_START("DSW1") /* $02 (PPI0 port C) */ + PORT_START("DSW1") // $02 (PPI0 port C) PORT_DIPNAME( 0x11, 0x11, "Butterfly Max Mul" ) PORT_DIPLOCATION("DSW-A:!4,!5") PORT_DIPSETTING( 0x11, "5" ) PORT_DIPSETTING( 0x01, "7" ) @@ -990,7 +858,7 @@ static INPUT_PORTS_START( leader ) PORT_DIPSETTING( 0x00, "x1" ) PORT_DIPSETTING( 0x80, "x100" ) - PORT_START("DSW2") /* $10 (PPI1 port A) */ + PORT_START("DSW2") // $10 (PPI1 port A) PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW-B:1") PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) @@ -1014,7 +882,7 @@ static INPUT_PORTS_START( leader ) PORT_DIPSETTING( 0x40, "25%" ) PORT_DIPSETTING( 0x00, "30%" ) - PORT_START("DSW3") /* AY8910 port A */ + PORT_START("DSW3") // AY8910 port A PORT_DIPNAME( 0x07, 0x07, "Coinage A, B & C" ) PORT_DIPLOCATION("DSW-D:1,2,3") PORT_DIPSETTING( 0x00, "1 Coin / 1 Credit" ) PORT_DIPSETTING( 0x01, "1 Coin / 5 Credits" ) @@ -1038,7 +906,7 @@ static INPUT_PORTS_START( leader ) PORT_DIPSETTING( 0x40, "32" ) PORT_DIPSETTING( 0x00, "64" ) - PORT_START("DSW4") /* AY8910 port B */ + PORT_START("DSW4") // AY8910 port B PORT_DIPNAME( 0x07, 0x07, "Remote Credits" ) PORT_DIPLOCATION("DSW-C:1,2,3") PORT_DIPSETTING( 0x00, "1 Pulse / 100 Credits" ) PORT_DIPSETTING( 0x01, "1 Pulse / 110 Credits" ) @@ -1066,7 +934,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( neraidou ) - PORT_START("IN1") /* $00 (PPI0 port A) */ + PORT_START("IN1") // $00 (PPI0 port A) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SLOT_STOP2) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SLOT_STOP1) @@ -1076,7 +944,7 @@ static INPUT_PORTS_START( neraidou ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN) - PORT_START("IN2") /* $01 (PPI0 port B) */ + PORT_START("IN2") // $01 (PPI0 port B) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_BET) PORT_NAME("Bet/Throttle") PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_LOW) PORT_NAME("Down/Low") @@ -1086,7 +954,7 @@ static INPUT_PORTS_START( neraidou ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN) - PORT_START("IN3") /* $11 (PPI1 port B) */ + PORT_START("IN3") // $11 (PPI1 port 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) @@ -1097,17 +965,17 @@ static INPUT_PORTS_START( neraidou ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_TAKE ) PORT_NAME("Take Score") - PORT_START("IN4") /* $12 (PPI1 port C) */ + PORT_START("IN4") // $12 (PPI1 port C) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MEMORY_RESET ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) - 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( 0x20, IP_ACTIVE_LOW, IPT_CUSTOM) PORT_READ_LINE_DEVICE_MEMBER("hopper", ticket_dispenser_device, line_r) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) - PORT_START("DSW1") /* $02 (PPI0 port C) */ + PORT_START("DSW1") // $02 (PPI0 port C) PORT_DIPNAME( 0x01, 0x01, "Hardware Type (could be inverted)" ) // leave it off, otherwise the game works bad and resets PORT_DIPSETTING( 0x01, "Rolla" ) PORT_DIPSETTING( 0x00, "Sky" ) @@ -1133,7 +1001,7 @@ static INPUT_PORTS_START( neraidou ) PORT_DIPSETTING( 0x00, "x1" ) PORT_DIPSETTING( 0x80, "x100" ) - PORT_START("DSW2") /* $10 (PPI1 port A) */ + PORT_START("DSW2") // $10 (PPI1 port A) PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) @@ -1158,7 +1026,7 @@ static INPUT_PORTS_START( neraidou ) PORT_DIPSETTING( 0x40, "40%" ) PORT_DIPSETTING( 0x00, "50%" ) - PORT_START("DSW3") /* AY8910 port A */ + 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" ) @@ -1182,7 +1050,7 @@ static INPUT_PORTS_START( neraidou ) PORT_DIPSETTING( 0x40, "32" ) PORT_DIPSETTING( 0x00, "64" ) - PORT_START("DSW4") /* AY8910 port B */ + 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" ) @@ -1210,7 +1078,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( gallag50 ) - PORT_START("IN1") /* $00 (PPI0 port A) */ + PORT_START("IN1") // $00 (PPI0 port A) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SLOT_STOP2) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SLOT_STOP1) @@ -1220,7 +1088,7 @@ static INPUT_PORTS_START( gallag50 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN) - PORT_START("IN2") /* $01 (PPI0 port B) */ + PORT_START("IN2") // $01 (PPI0 port B) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_BET) PORT_NAME("Bet/Throttle") PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_LOW) PORT_NAME("Down/Low") @@ -1230,7 +1098,7 @@ static INPUT_PORTS_START( gallag50 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN) - PORT_START("IN3") /* $11 (PPI1 port B) */ + PORT_START("IN3") // $11 (PPI1 port 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) @@ -1241,17 +1109,17 @@ static INPUT_PORTS_START( gallag50 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_TAKE ) PORT_NAME("Take Score") - PORT_START("IN4") /* $12 (PPI1 port C) */ + PORT_START("IN4") // $12 (PPI1 port C) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MEMORY_RESET ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) - 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( 0x20, IP_ACTIVE_LOW, IPT_CUSTOM) PORT_READ_LINE_DEVICE_MEMBER("hopper", ticket_dispenser_device, line_r) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) - PORT_START("DSW1") /* $02 (PPI0 port C) */ + PORT_START("DSW1") // $02 (PPI0 port C) PORT_DIPNAME( 0x01, 0x01, "Hardware Type (could be inverted)" ) // leave it off, otherwise the game works bad and resets PORT_DIPSETTING( 0x01, "Rolla" ) PORT_DIPSETTING( 0x00, "Sky" ) @@ -1277,7 +1145,7 @@ static INPUT_PORTS_START( gallag50 ) PORT_DIPSETTING( 0x00, "x1" ) PORT_DIPSETTING( 0x80, "x100" ) - PORT_START("DSW2") /* $10 (PPI1 port A) */ + PORT_START("DSW2") // $10 (PPI1 port A) PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) @@ -1302,7 +1170,7 @@ static INPUT_PORTS_START( gallag50 ) PORT_DIPSETTING( 0x40, "25%" ) PORT_DIPSETTING( 0x00, "30%" ) - PORT_START("DSW3") /* AY8910 port A */ + 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" ) @@ -1326,7 +1194,7 @@ static INPUT_PORTS_START( gallag50 ) PORT_DIPSETTING( 0x40, "32" ) PORT_DIPSETTING( 0x00, "64" ) - PORT_START("DSW4") /* AY8910 port B */ + 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" ) @@ -1354,7 +1222,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( sstar97 ) - PORT_START("IN1") /* $00 (PPI0 port A) */ + PORT_START("IN1") // $00 (PPI0 port A) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SLOT_STOP2) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SLOT_STOP1) @@ -1364,7 +1232,7 @@ static INPUT_PORTS_START( sstar97 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN) - PORT_START("IN2") /* $01 (PPI0 port B) */ + PORT_START("IN2") // $01 (PPI0 port B) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_BET) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_LOW) @@ -1374,7 +1242,7 @@ static INPUT_PORTS_START( sstar97 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN) - PORT_START("IN3") /* $11 (PPI1 port B) */ + PORT_START("IN3") // $11 (PPI1 port 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) @@ -1384,17 +1252,17 @@ static INPUT_PORTS_START( sstar97 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_TAKE ) PORT_NAME("Take Score") - PORT_START("IN4") /* $12 (PPI1 port C) */ + PORT_START("IN4") // $12 (PPI1 port C) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MEMORY_RESET ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) - 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( 0x20, IP_ACTIVE_LOW, IPT_CUSTOM) PORT_READ_LINE_DEVICE_MEMBER("hopper", ticket_dispenser_device, line_r) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) - PORT_START("DSW1") /* $02 (PPI0 port C) */ + PORT_START("DSW1") // $02 (PPI0 port C) PORT_DIPNAME( 0x11, 0x11, "D-UP Percentage" ) PORT_DIPSETTING( 0x11, "60%" ) PORT_DIPSETTING( 0x01, "70%" ) @@ -1419,7 +1287,7 @@ static INPUT_PORTS_START( sstar97 ) PORT_DIPSETTING( 0x00, "x1" ) PORT_DIPSETTING( 0x80, "x100" ) - PORT_START("DSW2") /* $10 (PPI1 port A) */ + PORT_START("DSW2") // $10 (PPI1 port A) PORT_DIPNAME( 0x03, 0x03, "Main Game Percentage" ) PORT_DIPSETTING( 0x03, "60%" ) PORT_DIPSETTING( 0x02, "70%" ) @@ -1442,7 +1310,7 @@ static INPUT_PORTS_START( sstar97 ) PORT_DIPSETTING( 0x40, "80%" ) PORT_DIPSETTING( 0x00, "90%" ) - PORT_START("DSW3") /* AY8910 port A */ + 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" ) @@ -1466,7 +1334,7 @@ static INPUT_PORTS_START( sstar97 ) PORT_DIPSETTING( 0x40, "16" ) PORT_DIPSETTING( 0x00, "32" ) - PORT_START("DSW4") /* AY8910 port B */ + 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" ) @@ -1494,7 +1362,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( sonikfig ) - PORT_START("IN1") /* $00 (PPI0 port A) */ + PORT_START("IN1") // $00 (PPI0 port A) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SLOT_STOP2) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_D) PORT_NAME("IN1-02") PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SLOT_STOP1) @@ -1504,7 +1372,7 @@ static INPUT_PORTS_START( sonikfig ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_H) PORT_NAME("IN1-40") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_J) PORT_NAME("IN1-80") - PORT_START("IN2") /* $01 (PPI0 port B) */ + PORT_START("IN2") // $01 (PPI0 port B) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_BET) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_K) PORT_NAME("IN2-02") PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_LOW) PORT_NAME("Down/Low") PORT_CODE(KEYCODE_S) @@ -1514,7 +1382,7 @@ static INPUT_PORTS_START( sonikfig ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Y) PORT_NAME("IN2-40") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_U) PORT_NAME("IN2-80") - PORT_START("IN3") /* $11 (PPI1 port B) */ + PORT_START("IN3") // $11 (PPI1 port B) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) // OK PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2) // OK PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_IMPULSE(2) // OK @@ -1524,7 +1392,7 @@ static INPUT_PORTS_START( sonikfig ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_I) PORT_NAME("IN3-40") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_TAKE ) PORT_NAME("Take Score") - PORT_START("IN4") /* $12 (PPI1 port C) */ + PORT_START("IN4") // $12 (PPI1 port C) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("IN4-01") PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_R) PORT_NAME("Reset #1") // OK PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Stats") @@ -1534,7 +1402,7 @@ static INPUT_PORTS_START( sonikfig ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("IN4-40") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) - PORT_START("DSW1") /* $02 (PPI0 port C) */ + PORT_START("DSW1") // $02 (PPI0 port C) PORT_DIPNAME( 0x11, 0x00, "D-UP Percentage" ) // OK PORT_DIPSETTING( 0x11, "40%" ) // OK PORT_DIPSETTING( 0x01, "50%" ) // OK @@ -1559,7 +1427,7 @@ static INPUT_PORTS_START( sonikfig ) PORT_DIPSETTING( 0x00, "x1" ) // OK PORT_DIPSETTING( 0x80, "x100" ) // OK - PORT_START("DSW2") /* $10 (PPI1 port A) */ + PORT_START("DSW2") // $10 (PPI1 port A) PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) @@ -1584,7 +1452,7 @@ static INPUT_PORTS_START( sonikfig ) PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_START("DSW3") /* AY8910 port A */ + PORT_START("DSW3") // AY8910 port A PORT_DIPNAME( 0x07, 0x07, "Coinage A, B & C" ) // OK on test PORT_DIPSETTING( 0x00, "1 Coin / 1 Credit" ) // OK on test, always 1c-1c in game... PORT_DIPSETTING( 0x01, "1 Coin / 5 Credits" ) // OK on test, always 1c-1c in game... @@ -1607,7 +1475,7 @@ static INPUT_PORTS_START( sonikfig ) PORT_DIPSETTING( 0x40, "16" ) // OK PORT_DIPSETTING( 0x00, "32" ) // OK - PORT_START("DSW4") /* AY8910 port B */ + PORT_START("DSW4") // AY8910 port B PORT_DIPNAME( 0x07, 0x00, "Key In" ) // OK on test PORT_DIPSETTING( 0x00, "1 Pulse / 100 Credits" ) // OK on test, always 1 credit in game... PORT_DIPSETTING( 0x01, "1 Pulse / 110 Credits" ) // OK on test, always 1 credit in game... @@ -1636,7 +1504,7 @@ INPUT_PORTS_END // It runs in IM 0, thus needs an opcode on the data bus -INTERRUPT_GEN_MEMBER(skylncr_state::skylncr_vblank_interrupt) +INTERRUPT_GEN_MEMBER(skylncr_state::vblank_interrupt) { if (m_nmi_enable) device.execute().pulse_input_line(INPUT_LINE_NMI, attotime::zero); } @@ -1648,15 +1516,15 @@ INTERRUPT_GEN_MEMBER(skylncr_state::skylncr_vblank_interrupt) void skylncr_state::skylncr(machine_config &config) { - /* basic machine hardware */ + // basic machine hardware Z80(config, m_maincpu, MASTER_CLOCK/4); - m_maincpu->set_addrmap(AS_PROGRAM, &skylncr_state::mem_map_skylncr); + m_maincpu->set_addrmap(AS_PROGRAM, &skylncr_state::mem_map); m_maincpu->set_addrmap(AS_IO, &skylncr_state::io_map_skylncr); - m_maincpu->set_vblank_int("screen", FUNC(skylncr_state::skylncr_vblank_interrupt)); + m_maincpu->set_vblank_int("screen", FUNC(skylncr_state::vblank_interrupt)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - /* 1x M5M82C255, or 2x PPI8255 */ + // 1x M5M82C255, or 2x PPI8255 i8255_device &ppi0(I8255A(config, "ppi8255_0")); ppi0.in_pa_callback().set_ioport("IN1"); ppi0.in_pb_callback().set_ioport("IN2"); @@ -1669,13 +1537,13 @@ void skylncr_state::skylncr(machine_config &config) TICKET_DISPENSER(config, m_hopper, attotime::from_msec(HOPPER_PULSE), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH); - /* video hardware */ + // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_refresh_hz(60); screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); screen.set_size(512, 256); screen.set_visarea(0, 512-1, 0, 256-1); - screen.set_screen_update(FUNC(skylncr_state::screen_update_skylncr)); + screen.set_screen_update(FUNC(skylncr_state::screen_update)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_skylncr); PALETTE(config, m_palette).set_entries(0x200); @@ -1688,7 +1556,7 @@ void skylncr_state::skylncr(machine_config &config) ramdac2.set_addrmap(0, &skylncr_state::ramdac2_map); ramdac2.set_color_base(0x100); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); ay8910_device &aysnd(AY8910(config, "aysnd", MASTER_CLOCK/8)); aysnd.port_a_read_callback().set_ioport("DSW3"); @@ -1725,7 +1593,7 @@ void skylncr_state::bdream97(machine_config &config) { skylncr(config); - /* basic machine hardware */ + // basic machine hardware m_maincpu->set_addrmap(AS_OPCODES, &skylncr_state::bdream97_opcode_map); m_gfxdecode->set_info(gfx_bdream97); @@ -2140,15 +2008,15 @@ void skylncr_state::init_miaction() ****************************************************/ // YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS -GAME( 1995, skylncr, 0, skylncr, skylncr, skylncr_state, empty_init, ROT0, "Bordun International", "Sky Lancer (Bordun, version U450C)", 0 ) -GAME( 1995, butrfly, 0, skylncr, skylncr, skylncr_state, empty_init, ROT0, "Bordun International", "Butterfly Video Game (version U350C)", 0 ) -GAME( 1999, mbutrfly, 0, mbutrfly, mbutrfly, skylncr_state, empty_init, ROT0, "Bordun International", "Magical Butterfly (version U350C, protected)", 0 ) -GAME( 1995, madzoo, 0, skylncr, skylncr, skylncr_state, empty_init, ROT0, "Bordun International", "Mad Zoo (version U450C)", 0 ) -GAME( 1995, leader, 0, skylncr, leader, skylncr_state, empty_init, ROT0, "bootleg", "Leader (version Z 2E, Greece)", 0 ) -GAME( 199?, gallag50, 0, skylncr, gallag50, skylncr_state, empty_init, ROT0, "bootleg", "Gallag Video Game / Petalouda (Butterfly, x50)", 0 ) -GAME( 199?, neraidou, 0, neraidou, neraidou, skylncr_state, empty_init, ROT0, "bootleg", "Neraidoula", 0 ) -GAME( 199?, miaction, 0, skylncr, skylncr, skylncr_state, init_miaction, ROT0, "Vegas", "Missing In Action", MACHINE_NOT_WORKING ) -GAME( 199?, tigerslt, 0, skylncr, skylncr, skylncr_state, init_miaction, ROT0, "bootleg", "Tiger (slot)", MACHINE_NOT_WORKING ) -GAME( 199?, sstar97, 0, sstar97, sstar97, skylncr_state, empty_init, ROT0, "Bordun International", "Super Star 97 / Ming Xing 97 (version V153B)", 0 ) -GAME( 1995, bdream97, 0, bdream97, skylncr, skylncr_state, empty_init, ROT0, "bootleg (KKK)", "Hudie Meng 97", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 2000, sonikfig, 0, skylncr, sonikfig, skylncr_state, init_sonikfig, ROT0, "Z Games", "Sonik Fighter (version 02, encrypted)", MACHINE_WRONG_COLORS | MACHINE_NOT_WORKING ) +GAME( 1995, skylncr, 0, skylncr, skylncr, skylncr_state, empty_init, ROT0, "Bordun International", "Sky Lancer (Bordun, version U450C)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, butrfly, 0, skylncr, skylncr, skylncr_state, empty_init, ROT0, "Bordun International", "Butterfly Video Game (version U350C)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, mbutrfly, 0, mbutrfly, mbutrfly, skylncr_state, init_mbutrfly, ROT0, "Bordun International", "Magical Butterfly (version U350C, protected)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, madzoo, 0, skylncr, skylncr, skylncr_state, empty_init, ROT0, "Bordun International", "Mad Zoo (version U450C)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, leader, 0, skylncr, leader, skylncr_state, empty_init, ROT0, "bootleg", "Leader (version Z 2E, Greece)", MACHINE_SUPPORTS_SAVE ) +GAME( 199?, gallag50, 0, skylncr, gallag50, skylncr_state, empty_init, ROT0, "bootleg", "Gallag Video Game / Petalouda (Butterfly, x50)", MACHINE_SUPPORTS_SAVE ) +GAME( 199?, neraidou, 0, neraidou, neraidou, skylncr_state, empty_init, ROT0, "bootleg", "Neraidoula", MACHINE_SUPPORTS_SAVE ) +GAME( 199?, miaction, 0, skylncr, skylncr, skylncr_state, init_miaction, ROT0, "Vegas", "Missing In Action", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 199?, tigerslt, 0, skylncr, skylncr, skylncr_state, init_miaction, ROT0, "bootleg", "Tiger (slot)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 199?, sstar97, 0, sstar97, sstar97, skylncr_state, empty_init, ROT0, "Bordun International", "Super Star 97 / Ming Xing 97 (version V153B)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, bdream97, 0, bdream97, skylncr, skylncr_state, empty_init, ROT0, "bootleg (KKK)", "Hudie Meng 97", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 2000, sonikfig, 0, skylncr, sonikfig, skylncr_state, init_sonikfig, ROT0, "Z Games", "Sonik Fighter (version 02, encrypted)", MACHINE_WRONG_COLORS | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) |