diff --git a/src/mame/drivers/dynadice.cpp b/src/mame/drivers/dynadice.cpp index ab0234f2f96..17b7d1bfcbd 100644 --- a/src/mame/drivers/dynadice.cpp +++ b/src/mame/drivers/dynadice.cpp @@ -50,30 +50,42 @@ public: : driver_device(mconfig, type, tag), m_videoram(*this, "videoram"), m_maincpu(*this, "maincpu"), - m_gfxdecode(*this, "gfxdecode") { } + m_gfxdecode(*this, "gfxdecode"), + m_ay8910(*this, "ay8910") { } +void init_dynadice(); + +void dynadice(machine_config &config); + +protected: + virtual void machine_start() override; + virtual void machine_reset() override; + virtual void video_start() override; + +private: /* memory pointers */ required_shared_ptr m_videoram; // uint8_t * m_nvram; // currently this uses generic nvram handling + required_device m_maincpu; + required_device m_gfxdecode; + required_device m_ay8910; + /* video-related */ tilemap_t *m_bg_tilemap; tilemap_t *m_top_tilemap; /* misc */ int m_ay_data; - DECLARE_WRITE8_MEMBER(dynadice_videoram_w); + + DECLARE_WRITE8_MEMBER(videoram_w); DECLARE_WRITE8_MEMBER(sound_data_w); DECLARE_WRITE8_MEMBER(sound_control_w); - void init_dynadice(); + TILE_GET_INFO_MEMBER(get_tile_info); - virtual void machine_start() override; - virtual void machine_reset() override; - virtual void video_start() override; - uint32_t screen_update_dynadice(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - required_device m_maincpu; - required_device m_gfxdecode; - void dynadice(machine_config &config); + + uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void dynadice_io_map(address_map &map); void dynadice_map(address_map &map); void dynadice_sound_io_map(address_map &map); @@ -81,7 +93,7 @@ public: }; -WRITE8_MEMBER(dynadice_state::dynadice_videoram_w) +WRITE8_MEMBER(dynadice_state::videoram_w) { m_videoram[offset] = data; m_bg_tilemap->mark_tile_dirty(offset); @@ -95,7 +107,6 @@ WRITE8_MEMBER(dynadice_state::sound_data_w) WRITE8_MEMBER(dynadice_state::sound_control_w) { - ay8910_device *ay8910 = machine().device("aysnd"); /* AY 3-8910 : @@ -106,17 +117,17 @@ WRITE8_MEMBER(dynadice_state::sound_control_w) */ if ((data & 7) == 7) - ay8910->address_w(space, 0, m_ay_data); + m_ay8910->address_w(space, 0, m_ay_data); if ((data & 7) == 6) - ay8910->data_w(space, 0, m_ay_data); + m_ay8910->data_w(space, 0, m_ay_data); } void dynadice_state::dynadice_map(address_map &map) { map(0x0000, 0x1fff).rom(); - map(0x2000, 0x23ff).ram().w(this, FUNC(dynadice_state::dynadice_videoram_w)).share("videoram"); + map(0x2000, 0x23ff).ram().w(this, FUNC(dynadice_state::videoram_w)).share("videoram"); map(0x4000, 0x40ff).ram().share("nvram"); } @@ -228,7 +239,7 @@ void dynadice_state::video_start() m_bg_tilemap->set_scrollx(0, -16); } -uint32_t dynadice_state::screen_update_dynadice(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +uint32_t dynadice_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { rectangle myclip = cliprect; myclip.max_x = 15; @@ -250,11 +261,11 @@ void dynadice_state::machine_reset() MACHINE_CONFIG_START(dynadice_state::dynadice) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I8080,18432000/8) + MCFG_DEVICE_ADD(m_maincpu, I8080, 18.432_MHz_XTAL / 8) MCFG_DEVICE_PROGRAM_MAP(dynadice_map) MCFG_DEVICE_IO_MAP(dynadice_io_map) - MCFG_DEVICE_ADD("audiocpu", Z80,18432000/6) + MCFG_DEVICE_ADD("audiocpu", Z80, 18.432_MHz_XTAL / 6) MCFG_DEVICE_PROGRAM_MAP(dynadice_sound_map) MCFG_DEVICE_IO_MAP(dynadice_sound_io_map) @@ -267,17 +278,17 @@ MACHINE_CONFIG_START(dynadice_state::dynadice) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256+16, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 34*8-1, 3*8, 28*8-1) - MCFG_SCREEN_UPDATE_DRIVER(dynadice_state, screen_update_dynadice) + MCFG_SCREEN_UPDATE_DRIVER(dynadice_state, screen_update) MCFG_SCREEN_PALETTE("palette") - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_dynadice) + MCFG_DEVICE_ADD(m_gfxdecode, GFXDECODE, "palette", gfx_dynadice) MCFG_PALETTE_ADD_3BIT_BRG("palette") SPEAKER(config, "mono").front_center(); MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_DEVICE_ADD("aysnd", AY8910, 2000000) + MCFG_DEVICE_ADD(m_ay8910, AY8910, 2000000) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END