vcombat.cpp device_finder (nw)

This commit is contained in:
Ivan Vangelista 2018-05-21 09:25:19 +02:00
parent 1fe4b36065
commit 1a986cdf39

View File

@ -106,13 +106,29 @@ public:
m_soundcpu(*this, "soundcpu"), m_soundcpu(*this, "soundcpu"),
m_vid_0(*this, "vid_0"), m_vid_0(*this, "vid_0"),
m_vid_1(*this, "vid_1"), m_vid_1(*this, "vid_1"),
m_dac(*this, "dac") { } m_dac(*this, "dac"),
m_crtc(*this, "crtc") { }
void init_shadfgtr();
void init_vcombat();
void shadfgtr(machine_config &config);
void vcombat(machine_config &config);
private:
required_device<tlc34076_device> m_tlc34076;
required_shared_ptr<uint16_t> m_framebuffer_ctrl;
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_soundcpu;
required_device<i860_cpu_device> m_vid_0;
optional_device<i860_cpu_device> m_vid_1;
required_device<dac_word_interface> m_dac;
optional_device<mc6845_device> m_crtc;
std::unique_ptr<uint16_t[]> m_m68k_framebuffer[2]; std::unique_ptr<uint16_t[]> m_m68k_framebuffer[2];
std::unique_ptr<uint16_t[]> m_i860_framebuffer[2][2]; std::unique_ptr<uint16_t[]> m_i860_framebuffer[2][2];
required_device<tlc34076_device> m_tlc34076;
required_shared_ptr<uint16_t> m_framebuffer_ctrl;
int m_crtc_select; int m_crtc_select;
DECLARE_WRITE16_MEMBER(main_video_write); DECLARE_WRITE16_MEMBER(main_video_write);
DECLARE_READ16_MEMBER(control_1_r); DECLARE_READ16_MEMBER(control_1_r);
DECLARE_READ16_MEMBER(control_2_r); DECLARE_READ16_MEMBER(control_2_r);
@ -126,20 +142,13 @@ public:
DECLARE_WRITE16_MEMBER(crtc_w); DECLARE_WRITE16_MEMBER(crtc_w);
DECLARE_WRITE16_MEMBER(vcombat_dac_w); DECLARE_WRITE16_MEMBER(vcombat_dac_w);
DECLARE_WRITE_LINE_MEMBER(sound_update); DECLARE_WRITE_LINE_MEMBER(sound_update);
void init_shadfgtr();
void init_vcombat();
DECLARE_MACHINE_RESET(vcombat); DECLARE_MACHINE_RESET(vcombat);
DECLARE_MACHINE_RESET(shadfgtr); DECLARE_MACHINE_RESET(shadfgtr);
uint32_t update_screen(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int index); uint32_t update_screen(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int index);
uint32_t screen_update_vcombat_main(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); uint32_t screen_update_vcombat_main(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
uint32_t screen_update_vcombat_aux(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); uint32_t screen_update_vcombat_aux(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_soundcpu;
required_device<i860_cpu_device> m_vid_0;
optional_device<i860_cpu_device> m_vid_1;
required_device<dac_word_interface> m_dac;
void shadfgtr(machine_config &config);
void vcombat(machine_config &config);
void main_map(address_map &map); void main_map(address_map &map);
void sound_map(address_map &map); void sound_map(address_map &map);
void vid_0_map(address_map &map); void vid_0_map(address_map &map);
@ -335,15 +344,13 @@ WRITE64_MEMBER(vcombat_state::v1_fb_w)
WRITE16_MEMBER(vcombat_state::crtc_w) WRITE16_MEMBER(vcombat_state::crtc_w)
{ {
mc6845_device *crtc = machine().device<mc6845_device>("crtc"); if (m_crtc == nullptr)
if (crtc == nullptr)
return; return;
if (m_crtc_select == 0) if (m_crtc_select == 0)
crtc->address_w(space, 0, data >> 8); m_crtc->address_w(space, 0, data >> 8);
else else
crtc->register_w(space, 0, data >> 8); m_crtc->register_w(space, 0, data >> 8);
m_crtc_select ^= 1; m_crtc_select ^= 1;
} }