summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/skylncr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/skylncr.cpp')
-rw-r--r--src/mame/drivers/skylncr.cpp452
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 )