diff options
author | Dirk Best <mail@dirk-best.de> | 2019-09-06 11:47:08 +0200 |
---|---|---|
committer | Dirk Best <mail@dirk-best.de> | 2019-09-06 16:16:46 +0200 |
commit | f0878dff7ea9187944a8dc8983a6741fd5480193 (patch) | |
tree | 2a7f1e60a71ae44d29f8d910190954876005a106 | |
parent | 64cd9d4cbfa7e103feda1086eac48039b88fc238 (diff) |
model3: Hook up billboard emulation
-rw-r--r-- | src/mame/drivers/model3.cpp | 6 | ||||
-rw-r--r-- | src/mame/includes/model3.h | 6 | ||||
-rw-r--r-- | src/mame/machine/segabill.cpp | 3 |
3 files changed, 14 insertions, 1 deletions
diff --git a/src/mame/drivers/model3.cpp b/src/mame/drivers/model3.cpp index a1a923b5990..32cd37a5d28 100644 --- a/src/mame/drivers/model3.cpp +++ b/src/mame/drivers/model3.cpp @@ -742,6 +742,7 @@ JP4/5/6/7 - Jumpers to configure ROMs #include "machine/m3comm.h" #include "speaker.h" +#include "segabill.lh" void model3_state::update_irq_state() { @@ -5921,6 +5922,7 @@ void model3_state::add_base_devices(machine_config &config) m_io->in_pb_callback().set(FUNC(model3_state::input_r)); m_io->in_pc_callback().set_ioport("IN2"); m_io->in_pd_callback().set_ioport("IN3"); + m_io->out_pe_callback().set([this] (uint8_t data) { m_billboard->write(data); }); m_io->in_pg_callback().set_ioport("DSW"); m_io->an_port_callback<0>().set_ioport("AN0"); m_io->an_port_callback<1>().set_ioport("AN1"); @@ -5954,6 +5956,10 @@ void model3_state::add_base_devices(machine_config &config) scsp2.set_addrmap(0, &model3_state::scsp2_map); scsp2.add_route(0, "lspeaker", 1.0); scsp2.add_route(1, "rspeaker", 1.0); + + SEGA_BILLBOARD(config, m_billboard, 0); + + config.set_default_layout(layout_segabill); } void model3_state::add_scsi_devices(machine_config &config) diff --git a/src/mame/includes/model3.h b/src/mame/includes/model3.h index dc91632bcd5..018f61fcab5 100644 --- a/src/mame/includes/model3.h +++ b/src/mame/includes/model3.h @@ -15,6 +15,7 @@ #include "sound/scsp.h" #include "machine/315_5649.h" #include "machine/315-5881_crypt.h" +#include "machine/segabill.h" #include "machine/msm6242.h" #include "machine/timer.h" #include "emupal.h" @@ -81,7 +82,8 @@ public: m_soundram(*this, "soundram"), m_gfxdecode(*this, "gfxdecode"), m_palette(*this, "palette"), - m_cryptdevice(*this, "315_5881") + m_cryptdevice(*this, "315_5881"), + m_billboard(*this, "billboard") { m_step15_with_mpc106 = false; m_step20_with_old_real3d = false; @@ -159,6 +161,8 @@ private: required_device<palette_device> m_palette; optional_device<sega_315_5881_crypt_device> m_cryptdevice; + required_device<sega_billboard_device> m_billboard; + tilemap_t *m_layer4[4]; tilemap_t *m_layer8[4]; diff --git a/src/mame/machine/segabill.cpp b/src/mame/machine/segabill.cpp index 19d87c149a7..38dfbf4f560 100644 --- a/src/mame/machine/segabill.cpp +++ b/src/mame/machine/segabill.cpp @@ -4,6 +4,9 @@ Sega Billboard + TODO: Timing, vs298 needs a higher interrupt frequency, but then + the animations seem to fast? + ***************************************************************************/ #include "emu.h" |