mirror of
https://github.com/holub/mame
synced 2025-10-06 17:08:28 +03:00
model2: Hook up billboard emulation to model2a/b games
This commit is contained in:
parent
5eff6a0beb
commit
3f1d38442f
@ -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)
|
||||||
|
@ -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;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*****************************
|
/*****************************
|
||||||
|
Loading…
Reference in New Issue
Block a user