summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
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
commitf0878dff7ea9187944a8dc8983a6741fd5480193 (patch)
tree2a7f1e60a71ae44d29f8d910190954876005a106
parent64cd9d4cbfa7e103feda1086eac48039b88fc238 (diff)
model3: Hook up billboard emulation
-rw-r--r--src/mame/drivers/model3.cpp6
-rw-r--r--src/mame/includes/model3.h6
-rw-r--r--src/mame/machine/segabill.cpp3
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"