mirror of
https://github.com/holub/mame
synced 2025-04-24 09:20:02 +03:00
dynadice.cpp:output_finder (nw)
This commit is contained in:
parent
8e0cdb1e18
commit
9066bcab42
@ -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<uint8_t> m_videoram;
|
||||
// uint8_t * m_nvram; // currently this uses generic nvram handling
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<ay8910_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<cpu_device> m_maincpu;
|
||||
required_device<gfxdecode_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<ay8910_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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user