model2: Hook up billboard emulation to model2a/b games

This commit is contained in:
Dirk Best 2019-09-05 15:12:42 +02:00
parent 5eff6a0beb
commit 3f1d38442f
2 changed files with 22 additions and 2 deletions

View File

@ -106,6 +106,7 @@
#include "speaker.h" #include "speaker.h"
#include "model1io2.lh" #include "model1io2.lh"
#include "segabill.lh"
/* Timers - these count down at 25 MHz and pull IRQ2 when they hit 0 */ /* Timers - these count down at 25 MHz and pull IRQ2 when they hit 0 */
READ32_MEMBER(model2_state::timers_r) READ32_MEMBER(model2_state::timers_r)
@ -2694,12 +2695,17 @@ void model2a_state::model2a(machine_config &config)
io.in_pb_callback().set(FUNC(model2a_state::in0_r)); io.in_pb_callback().set(FUNC(model2a_state::in0_r));
io.in_pc_callback().set_ioport("IN1"); io.in_pc_callback().set_ioport("IN1");
io.in_pd_callback().set_ioport("IN2"); io.in_pd_callback().set_ioport("IN2");
io.out_pe_callback().set([this] (uint8_t data) { m_billboard->write(data); });
model2_timers(config); model2_timers(config);
model2_screen(config); model2_screen(config);
model2_scsp(config); model2_scsp(config);
M2COMM(config, "m2comm", 0); M2COMM(config, "m2comm", 0);
SEGA_BILLBOARD(config, m_billboard, 0);
config.set_default_layout(layout_segabill);
} }
void model2a_state::manxtt(machine_config &config) void model2a_state::manxtt(machine_config &config)
@ -2816,12 +2822,17 @@ void model2b_state::model2b(machine_config &config)
io.in_pb_callback().set(FUNC(model2b_state::in0_r)); io.in_pb_callback().set(FUNC(model2b_state::in0_r));
io.in_pc_callback().set_ioport("IN1"); io.in_pc_callback().set_ioport("IN1");
io.in_pd_callback().set_ioport("IN2"); io.in_pd_callback().set_ioport("IN2");
io.out_pe_callback().set([this] (uint8_t data) { m_billboard->write(data); });
model2_timers(config); model2_timers(config);
model2_screen(config); model2_screen(config);
model2_scsp(config); model2_scsp(config);
M2COMM(config, "m2comm", 0); M2COMM(config, "m2comm", 0);
SEGA_BILLBOARD(config, m_billboard, 0);
config.set_default_layout(layout_segabill);
} }
void model2b_state::model2b_5881(machine_config &config) void model2b_state::model2b_5881(machine_config &config)

View File

@ -18,6 +18,7 @@
#include "machine/gen_fifo.h" #include "machine/gen_fifo.h"
#include "machine/i8251.h" #include "machine/i8251.h"
#include "machine/m2comm.h" #include "machine/m2comm.h"
#include "machine/segabill.h"
#include "machine/timer.h" #include "machine/timer.h"
#include "sound/scsp.h" #include "sound/scsp.h"
#include "video/segaic24.h" #include "video/segaic24.h"
@ -457,7 +458,8 @@ class model2a_state : public model2_tgp_state
{ {
public: public:
model2a_state(const machine_config &mconfig, device_type type, const char *tag) model2a_state(const machine_config &mconfig, device_type type, const char *tag)
: model2_tgp_state(mconfig, type, tag) : model2_tgp_state(mconfig, type, tag),
m_billboard(*this, "billboard")
{} {}
void manxtt(machine_config &config); void manxtt(machine_config &config);
@ -476,6 +478,9 @@ protected:
void model2a_crx_mem(address_map &map); void model2a_crx_mem(address_map &map);
void model2a_5881_mem(address_map &map); void model2a_5881_mem(address_map &map);
void model2a_0229_mem(address_map &map); void model2a_0229_mem(address_map &map);
private:
required_device<sega_billboard_device> m_billboard;
}; };
/***************************** /*****************************
@ -489,7 +494,8 @@ class model2b_state : public model2_state
public: public:
model2b_state(const machine_config &mconfig, device_type type, const char *tag) model2b_state(const machine_config &mconfig, device_type type, const char *tag)
: model2_state(mconfig, type, tag), : model2_state(mconfig, type, tag),
m_copro_adsp(*this, "copro_adsp") m_copro_adsp(*this, "copro_adsp"),
m_billboard(*this, "billboard")
{} {}
void model2b(machine_config &config); void model2b(machine_config &config);
@ -526,6 +532,9 @@ protected:
virtual void copro_halt() override; virtual void copro_halt() override;
virtual void copro_boot() override; virtual void copro_boot() override;
private:
required_device<sega_billboard_device> m_billboard;
}; };
/***************************** /*****************************