mirror of
https://github.com/holub/mame
synced 2025-04-22 16:31:49 +03:00
netlist: modernize interface. (nw)
This commit is contained in:
parent
808ec55f33
commit
6dc8689ffd
@ -597,12 +597,6 @@ netlist_mame_analog_output_device::netlist_mame_analog_output_device(const machi
|
||||
{
|
||||
}
|
||||
|
||||
void netlist_mame_analog_output_device::set_params(const char *in_name, output_delegate &&adelegate)
|
||||
{
|
||||
m_in = in_name;
|
||||
m_delegate = std::move(adelegate);
|
||||
}
|
||||
|
||||
void netlist_mame_analog_output_device::custom_netlist_additions(netlist::netlist_state_t &nlstate)
|
||||
{
|
||||
const pstring pin(m_in);
|
||||
@ -737,6 +731,15 @@ netlist_mame_ram_pointer_device::netlist_mame_ram_pointer_device(const machine_c
|
||||
{
|
||||
}
|
||||
|
||||
netlist_mame_ram_pointer_device::netlist_mame_ram_pointer_device(const machine_config &mconfig, const char *tag, device_t *owner, const char *pname)
|
||||
: device_t(mconfig, NETLIST_RAM_POINTER, tag, owner, 0)
|
||||
, netlist_mame_sub_interface(*owner)
|
||||
, m_param(nullptr)
|
||||
, m_param_name(pname)
|
||||
, m_data(nullptr)
|
||||
{
|
||||
}
|
||||
|
||||
void netlist_mame_ram_pointer_device::set_params(const char *param_name)
|
||||
{
|
||||
if (LOG_DEV_CALLS) logerror("set_params\n");
|
||||
|
@ -30,10 +30,10 @@ namespace netlist {
|
||||
|
||||
// MAME specific configuration
|
||||
|
||||
|
||||
#define MCFG_NETLIST_SETUP(_setup) \
|
||||
downcast<netlist_mame_device &>(*device).set_constructor(NETLIST_NAME(_setup));
|
||||
|
||||
#if 0
|
||||
#define MCFG_NETLIST_SETUP_MEMBER(_obj, _setup) \
|
||||
downcast<netlist_mame_device &>(*device).set_constructor(_obj, _setup);
|
||||
|
||||
@ -47,8 +47,7 @@ namespace netlist {
|
||||
#define MCFG_NETLIST_ANALOG_OUTPUT(_basetag, _tag, _IN, _class, _member, _class_tag) \
|
||||
MCFG_DEVICE_ADD(_basetag ":" _tag, NETLIST_ANALOG_OUTPUT, 0) \
|
||||
downcast<netlist_mame_analog_output_device &>(*device).set_params(_IN, \
|
||||
netlist_mame_analog_output_device::output_delegate(& _class :: _member, \
|
||||
# _class "::" # _member, _class_tag, (_class *)nullptr) );
|
||||
FUNC(_class :: _member), _class_tag);
|
||||
|
||||
#define MCFG_NETLIST_LOGIC_OUTPUT(_basetag, _tag, _IN, _class, _member, _class_tag) \
|
||||
MCFG_DEVICE_ADD(_basetag ":" _tag, NETLIST_LOGIC_OUTPUT, 0) \
|
||||
@ -66,7 +65,7 @@ namespace netlist {
|
||||
|
||||
#define MCFG_NETLIST_RAM_POINTER(_basetag, _tag, _name) \
|
||||
MCFG_DEVICE_ADD(_basetag ":" _tag, NETLIST_RAM_POINTER, 0) \
|
||||
downcast<netlist_mame_ram_pointer_device &>(*device).set_params(_name ".m_RAM");
|
||||
downcast<netlist_mame_ram_pointer_device &>(*device).set_params(_name);
|
||||
|
||||
#define MCFG_NETLIST_STREAM_INPUT(_basetag, _chan, _name) \
|
||||
MCFG_DEVICE_ADD(_basetag ":cin" # _chan, NETLIST_STREAM_INPUT, 0) \
|
||||
@ -75,6 +74,7 @@ namespace netlist {
|
||||
#define MCFG_NETLIST_STREAM_OUTPUT(_basetag, _chan, _name) \
|
||||
MCFG_DEVICE_ADD(_basetag ":cout" # _chan, NETLIST_STREAM_OUTPUT, 0) \
|
||||
downcast<netlist_mame_stream_output_device &>(*device).set_params(_chan, _name);
|
||||
#endif
|
||||
|
||||
#define NETLIST_LOGIC_PORT_CHANGED(_base, _tag) \
|
||||
PORT_CHANGED_MEMBER(_base ":" _tag, netlist_mame_logic_input_device, input_changed, 0)
|
||||
@ -345,7 +345,14 @@ public:
|
||||
// construction/destruction
|
||||
netlist_mame_analog_output_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
|
||||
|
||||
void set_params(const char *in_name, output_delegate &&adelegate);
|
||||
template <class FC>
|
||||
void set_params(const char *in_name, void (FC::*callback)(const double, const attotime &),
|
||||
const char *name, const char *tag)
|
||||
{
|
||||
m_in = in_name;
|
||||
m_delegate = std::move(output_delegate(callback, name, tag, (FC *)nullptr));
|
||||
}
|
||||
|
||||
|
||||
protected:
|
||||
// device-level overrides
|
||||
@ -475,6 +482,7 @@ class netlist_mame_ram_pointer_device : public device_t, public netlist_mame_sub
|
||||
public:
|
||||
// construction/destruction
|
||||
netlist_mame_ram_pointer_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
|
||||
netlist_mame_ram_pointer_device(const machine_config &mconfig, const char *tag, device_t *owner, const char *pname);
|
||||
|
||||
uint8_t* ptr() const { return m_data; }
|
||||
|
||||
|
@ -40,22 +40,23 @@ WRITE_LINE_MEMBER(cheekyms_audio_device::coin_extra_w) { m_coin_extra->write_li
|
||||
MACHINE_CONFIG_START(cheekyms_audio_device::device_add_mconfig)
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
||||
MCFG_DEVICE_ADD("sound_nl", NETLIST_SOUND, 48000)
|
||||
MCFG_NETLIST_SETUP(cheekyms)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
auto &sound_nl(NETLIST_SOUND(config, "sound_nl", 48000));
|
||||
sound_nl.set_constructor(NETLIST_NAME(cheekyms));
|
||||
sound_nl.add_route(ALL_OUTPUTS, "mono", 1.0);
|
||||
|
||||
MCFG_NETLIST_LOGIC_INPUT("sound_nl", "mute", "I_MUTE.IN", 0)
|
||||
MCFG_NETLIST_LOGIC_INPUT("sound_nl", "cheese", "I_CHEESE.IN", 0)
|
||||
MCFG_NETLIST_LOGIC_INPUT("sound_nl", "music", "I_MUSIC.IN", 0)
|
||||
MCFG_NETLIST_LOGIC_INPUT("sound_nl", "mouse", "I_MOUSE.IN", 0)
|
||||
MCFG_NETLIST_LOGIC_INPUT("sound_nl", "hammer", "I_HAMMER.IN", 0)
|
||||
MCFG_NETLIST_LOGIC_INPUT("sound_nl", "pest", "I_PEST.IN", 0)
|
||||
MCFG_NETLIST_LOGIC_INPUT("sound_nl", "mouse_dies", "I_MOUSE_DIES.IN", 0)
|
||||
MCFG_NETLIST_LOGIC_INPUT("sound_nl", "pest_dies", "I_PEST_DIES.IN", 0)
|
||||
MCFG_NETLIST_LOGIC_INPUT("sound_nl", "coin_extra", "I_COIN_EXTRA.IN", 0)
|
||||
|
||||
MCFG_NETLIST_STREAM_OUTPUT("sound_nl", 0, "VR1.2")
|
||||
MCFG_NETLIST_ANALOG_MULT_OFFSET(30000.0 * 10.0, 0.0) // FIXME: no clue what numbers to use here
|
||||
NETLIST_LOGIC_INPUT(config, "sound_nl:mute", "I_MUTE.IN", 0);
|
||||
NETLIST_LOGIC_INPUT(config, "sound_nl:cheese", "I_CHEESE.IN", 0);
|
||||
NETLIST_LOGIC_INPUT(config, "sound_nl:music", "I_MUSIC.IN", 0);
|
||||
NETLIST_LOGIC_INPUT(config, "sound_nl:mouse", "I_MOUSE.IN", 0);
|
||||
NETLIST_LOGIC_INPUT(config, "sound_nl:hammer", "I_HAMMER.IN", 0);
|
||||
NETLIST_LOGIC_INPUT(config, "sound_nl:pest", "I_PEST.IN", 0);
|
||||
NETLIST_LOGIC_INPUT(config, "sound_nl:mouse_dies", "I_MOUSE_DIES.IN", 0);
|
||||
NETLIST_LOGIC_INPUT(config, "sound_nl:pest_dies", "I_PEST_DIES.IN", 0);
|
||||
NETLIST_LOGIC_INPUT(config, "sound_nl:coin_extra", "I_COIN_EXTRA.IN", 0);
|
||||
|
||||
NETLIST_STREAM_OUTPUT(config, "sound_nl", 0, "VR1.2").set_mult_offset(30000.0 * 10.0, 0.0);
|
||||
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
|
@ -611,19 +611,18 @@ MACHINE_CONFIG_START(_1942_state::_1942)
|
||||
/* NETLIST configuration using internal AY8910 resistor values */
|
||||
|
||||
/* Minimize resampling between ay8910 and netlist */
|
||||
MCFG_DEVICE_ADD("snd_nl", NETLIST_SOUND, AUDIO_CLOCK / 8 / 2)
|
||||
MCFG_NETLIST_SETUP(nl_1942)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 5.0)
|
||||
MCFG_NETLIST_STREAM_INPUT("snd_nl", 0, "R_AY1_1.R")
|
||||
MCFG_NETLIST_STREAM_INPUT("snd_nl", 1, "R_AY1_2.R")
|
||||
MCFG_NETLIST_STREAM_INPUT("snd_nl", 2, "R_AY1_3.R")
|
||||
MCFG_NETLIST_STREAM_INPUT("snd_nl", 3, "R_AY2_1.R")
|
||||
MCFG_NETLIST_STREAM_INPUT("snd_nl", 4, "R_AY2_2.R")
|
||||
MCFG_NETLIST_STREAM_INPUT("snd_nl", 5, "R_AY2_3.R")
|
||||
auto &snd_nl(NETLIST_SOUND(config, "snd_nl", AUDIO_CLOCK / 8 / 2));
|
||||
snd_nl.set_constructor(NETLIST_NAME(nl_1942));
|
||||
snd_nl.add_route(ALL_OUTPUTS, "mono", 5.0);
|
||||
NETLIST_STREAM_INPUT(config, "snd_nl", 0, "R_AY1_1.R");
|
||||
NETLIST_STREAM_INPUT(config, "snd_nl", 1, "R_AY1_2.R");
|
||||
NETLIST_STREAM_INPUT(config, "snd_nl", 2, "R_AY1_3.R");
|
||||
NETLIST_STREAM_INPUT(config, "snd_nl", 3, "R_AY2_1.R");
|
||||
NETLIST_STREAM_INPUT(config, "snd_nl", 4, "R_AY2_2.R");
|
||||
NETLIST_STREAM_INPUT(config, "snd_nl", 5, "R_AY2_3.R");
|
||||
|
||||
MCFG_NETLIST_STREAM_OUTPUT("snd_nl", 0, "R1.1")
|
||||
NETLIST_STREAM_OUTPUT(config, "snd_nl", 0, "R1.1").set_mult_offset(70000.0, 0.0);
|
||||
//MCFG_NETLIST_STREAM_OUTPUT("snd_nl", 0, "VR.2")
|
||||
MCFG_NETLIST_ANALOG_MULT_OFFSET(70000.0, 0.0)
|
||||
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
@ -350,14 +350,14 @@ MACHINE_CONFIG_START(stuntcyc_state::stuntcyc)
|
||||
m_maincpu->set_constructor(netlist_stuntcyc);
|
||||
|
||||
//MCFG_NETLIST_ANALOG_OUTPUT("maincpu", "vid0", "VIDEO_OUT", fixedfreq_device, update_vid, "fixfreq")
|
||||
MCFG_NETLIST_LOGIC_OUTPUT("maincpu", "probe_bit0", "probe_bit0", stuntcyc_state, probe_bit0_cb, "")
|
||||
MCFG_NETLIST_LOGIC_OUTPUT("maincpu", "probe_bit1", "probe_bit1", stuntcyc_state, probe_bit1_cb, "")
|
||||
MCFG_NETLIST_LOGIC_OUTPUT("maincpu", "probe_bit2", "probe_bit2", stuntcyc_state, probe_bit2_cb, "")
|
||||
MCFG_NETLIST_LOGIC_OUTPUT("maincpu", "probe_bit3", "probe_bit3", stuntcyc_state, probe_bit3_cb, "")
|
||||
MCFG_NETLIST_LOGIC_OUTPUT("maincpu", "probe_bit4", "probe_bit4", stuntcyc_state, probe_bit4_cb, "")
|
||||
MCFG_NETLIST_LOGIC_OUTPUT("maincpu", "probe_bit5", "probe_bit5", stuntcyc_state, probe_bit5_cb, "")
|
||||
MCFG_NETLIST_LOGIC_OUTPUT("maincpu", "probe_bit6", "probe_bit6", stuntcyc_state, probe_bit6_cb, "")
|
||||
MCFG_NETLIST_LOGIC_OUTPUT("maincpu", "probe_clock", "probe_clock", stuntcyc_state, probe_clock_cb, "")
|
||||
NETLIST_LOGIC_OUTPUT(config, "maincpu:probe_bit0", 0).set_params("probe_bit0", FUNC(stuntcyc_state::probe_bit0_cb));
|
||||
NETLIST_LOGIC_OUTPUT(config, "maincpu:probe_bit1", 0).set_params("probe_bit1", FUNC(stuntcyc_state::probe_bit1_cb));
|
||||
NETLIST_LOGIC_OUTPUT(config, "maincpu:probe_bit2", 0).set_params("probe_bit2", FUNC(stuntcyc_state::probe_bit2_cb));
|
||||
NETLIST_LOGIC_OUTPUT(config, "maincpu:probe_bit3", 0).set_params("probe_bit3", FUNC(stuntcyc_state::probe_bit3_cb));
|
||||
NETLIST_LOGIC_OUTPUT(config, "maincpu:probe_bit4", 0).set_params("probe_bit4", FUNC(stuntcyc_state::probe_bit4_cb));
|
||||
NETLIST_LOGIC_OUTPUT(config, "maincpu:probe_bit5", 0).set_params("probe_bit5", FUNC(stuntcyc_state::probe_bit5_cb));
|
||||
NETLIST_LOGIC_OUTPUT(config, "maincpu:probe_bit6", 0).set_params("probe_bit6", FUNC(stuntcyc_state::probe_bit6_cb));
|
||||
NETLIST_LOGIC_OUTPUT(config, "maincpu:probe_clock", 0).set_params("probe_clock", FUNC(stuntcyc_state::probe_clock_cb));
|
||||
|
||||
/* video hardware */
|
||||
SCREEN(config, m_probe_screen, SCREEN_TYPE_RASTER);
|
||||
@ -375,7 +375,7 @@ MACHINE_CONFIG_START(gtrak10_state::gtrak10)
|
||||
/* basic machine hardware */
|
||||
NETLIST_CPU(config, "maincpu", NETLIST_CLOCK).set_constructor(netlist_gtrak10);
|
||||
|
||||
MCFG_NETLIST_ANALOG_OUTPUT("maincpu", "vid0", "VIDEO_OUT", fixedfreq_device, update_composite_monochrome, "fixfreq")
|
||||
NETLIST_ANALOG_OUTPUT(config, "maincpu:vid0", 0).set_params("VIDEO_OUT", FUNC(fixedfreq_device::update_composite_monochrome), "fixfreq");
|
||||
|
||||
/* video hardware */
|
||||
|
||||
|
@ -722,43 +722,42 @@ MACHINE_CONFIG_START(hazl1500_state::hazl1500)
|
||||
AY51013(config, m_uart);
|
||||
m_uart->write_dav_callback().set("mainint", FUNC(input_merger_device::in_w<0>));
|
||||
|
||||
MCFG_DEVICE_ADD(NETLIST_TAG, NETLIST_CPU, VIDEOBRD_CLOCK)
|
||||
MCFG_NETLIST_SETUP(hazelvid)
|
||||
NETLIST_CPU(config, NETLIST_TAG, VIDEOBRD_CLOCK).set_constructor(NETLIST_NAME(hazelvid));
|
||||
|
||||
// First 1K
|
||||
MCFG_NETLIST_RAM_POINTER(NETLIST_TAG, "u22", "u22")
|
||||
MCFG_NETLIST_RAM_POINTER(NETLIST_TAG, "u23", "u23")
|
||||
MCFG_NETLIST_RAM_POINTER(NETLIST_TAG, "u24", "u24")
|
||||
MCFG_NETLIST_RAM_POINTER(NETLIST_TAG, "u25", "u25")
|
||||
MCFG_NETLIST_RAM_POINTER(NETLIST_TAG, "u26", "u26")
|
||||
MCFG_NETLIST_RAM_POINTER(NETLIST_TAG, "u27", "u27")
|
||||
MCFG_NETLIST_RAM_POINTER(NETLIST_TAG, "u28", "u28")
|
||||
MCFG_NETLIST_RAM_POINTER(NETLIST_TAG, "u29", "u29")
|
||||
NETLIST_RAM_POINTER(config, NETLIST_TAG ":u22", "u22.m_RAM");
|
||||
NETLIST_RAM_POINTER(config, NETLIST_TAG ":u23", "u23.m_RAM");
|
||||
NETLIST_RAM_POINTER(config, NETLIST_TAG ":u24", "u24.m_RAM");
|
||||
NETLIST_RAM_POINTER(config, NETLIST_TAG ":u25", "u25.m_RAM");
|
||||
NETLIST_RAM_POINTER(config, NETLIST_TAG ":u26", "u26.m_RAM");
|
||||
NETLIST_RAM_POINTER(config, NETLIST_TAG ":u27", "u27.m_RAM");
|
||||
NETLIST_RAM_POINTER(config, NETLIST_TAG ":u28", "u28.m_RAM");
|
||||
NETLIST_RAM_POINTER(config, NETLIST_TAG ":u29", "u29.m_RAM");
|
||||
|
||||
// Second 1K
|
||||
MCFG_NETLIST_RAM_POINTER(NETLIST_TAG, "u9", "u9")
|
||||
MCFG_NETLIST_RAM_POINTER(NETLIST_TAG, "u10", "u10")
|
||||
MCFG_NETLIST_RAM_POINTER(NETLIST_TAG, "u11", "u11")
|
||||
MCFG_NETLIST_RAM_POINTER(NETLIST_TAG, "u12", "u12")
|
||||
MCFG_NETLIST_RAM_POINTER(NETLIST_TAG, "u13", "u13")
|
||||
MCFG_NETLIST_RAM_POINTER(NETLIST_TAG, "u14", "u14")
|
||||
MCFG_NETLIST_RAM_POINTER(NETLIST_TAG, "u15", "u15")
|
||||
MCFG_NETLIST_RAM_POINTER(NETLIST_TAG, "u16", "u16")
|
||||
NETLIST_RAM_POINTER(config, NETLIST_TAG ":u9", "u9.m_RAM");
|
||||
NETLIST_RAM_POINTER(config, NETLIST_TAG ":u10", "u10.m_RAM");
|
||||
NETLIST_RAM_POINTER(config, NETLIST_TAG ":u11", "u11.m_RAM");
|
||||
NETLIST_RAM_POINTER(config, NETLIST_TAG ":u12", "u12.m_RAM");
|
||||
NETLIST_RAM_POINTER(config, NETLIST_TAG ":u13", "u13.m_RAM");
|
||||
NETLIST_RAM_POINTER(config, NETLIST_TAG ":u14", "u14.m_RAM");
|
||||
NETLIST_RAM_POINTER(config, NETLIST_TAG ":u15", "u15.m_RAM");
|
||||
NETLIST_RAM_POINTER(config, NETLIST_TAG ":u16", "u16.m_RAM");
|
||||
|
||||
MCFG_NETLIST_LOGIC_INPUT(NETLIST_TAG, "cpu_iowq", "cpu_iowq.IN", 0)
|
||||
MCFG_NETLIST_LOGIC_INPUT(NETLIST_TAG, "cpu_ba4", "cpu_ba4.IN", 0)
|
||||
MCFG_NETLIST_LOGIC_INPUT(NETLIST_TAG, "cpu_db0", "cpu_db0.IN", 0)
|
||||
MCFG_NETLIST_LOGIC_INPUT(NETLIST_TAG, "cpu_db1", "cpu_db1.IN", 0)
|
||||
MCFG_NETLIST_LOGIC_INPUT(NETLIST_TAG, "cpu_db2", "cpu_db2.IN", 0)
|
||||
MCFG_NETLIST_LOGIC_INPUT(NETLIST_TAG, "cpu_db3", "cpu_db3.IN", 0)
|
||||
MCFG_NETLIST_LOGIC_INPUT(NETLIST_TAG, "cpu_db4", "cpu_db4.IN", 0)
|
||||
MCFG_NETLIST_LOGIC_INPUT(NETLIST_TAG, "cpu_db5", "cpu_db5.IN", 0)
|
||||
MCFG_NETLIST_LOGIC_INPUT(NETLIST_TAG, "cpu_db6", "cpu_db6.IN", 0)
|
||||
MCFG_NETLIST_LOGIC_INPUT(NETLIST_TAG, "cpu_db7", "cpu_db7.IN", 0)
|
||||
NETLIST_LOGIC_INPUT(config, NETLIST_TAG ":cpu_iowq", "cpu_iowq.IN", 0);
|
||||
NETLIST_LOGIC_INPUT(config, NETLIST_TAG ":cpu_ba4", "cpu_ba4.IN", 0);
|
||||
NETLIST_LOGIC_INPUT(config, NETLIST_TAG ":cpu_db0", "cpu_db0.IN", 0);
|
||||
NETLIST_LOGIC_INPUT(config, NETLIST_TAG ":cpu_db1", "cpu_db1.IN", 0);
|
||||
NETLIST_LOGIC_INPUT(config, NETLIST_TAG ":cpu_db2", "cpu_db2.IN", 0);
|
||||
NETLIST_LOGIC_INPUT(config, NETLIST_TAG ":cpu_db3", "cpu_db3.IN", 0);
|
||||
NETLIST_LOGIC_INPUT(config, NETLIST_TAG ":cpu_db4", "cpu_db4.IN", 0);
|
||||
NETLIST_LOGIC_INPUT(config, NETLIST_TAG ":cpu_db5", "cpu_db5.IN", 0);
|
||||
NETLIST_LOGIC_INPUT(config, NETLIST_TAG ":cpu_db6", "cpu_db6.IN", 0);
|
||||
NETLIST_LOGIC_INPUT(config, NETLIST_TAG ":cpu_db7", "cpu_db7.IN", 0);
|
||||
|
||||
MCFG_NETLIST_ANALOG_OUTPUT(NETLIST_TAG, "video_out", "video_out", hazl1500_state, video_out_cb, "")
|
||||
MCFG_NETLIST_ANALOG_OUTPUT(NETLIST_TAG, "vblank", "vblank", hazl1500_state, vblank_cb, "")
|
||||
MCFG_NETLIST_ANALOG_OUTPUT(NETLIST_TAG, "tvinterq", "tvinterq", hazl1500_state, tvinterq_cb, "")
|
||||
NETLIST_ANALOG_OUTPUT(config, NETLIST_TAG ":video_out", 0).set_params("video_out", FUNC(hazl1500_state::video_out_cb), "");
|
||||
NETLIST_ANALOG_OUTPUT(config, NETLIST_TAG ":vblank", 0).set_params("vblank", FUNC(hazl1500_state::vblank_cb), "");
|
||||
NETLIST_ANALOG_OUTPUT(config, NETLIST_TAG ":tvinterq", 0).set_params("tvinterq", FUNC(hazl1500_state::tvinterq_cb), "");
|
||||
|
||||
/* keyboard controller */
|
||||
AY3600(config, m_kbdc, 0);
|
||||
|
@ -466,23 +466,23 @@ INPUT_PORTS_END
|
||||
MACHINE_CONFIG_START(pong_state::pong)
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK)
|
||||
//MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK)
|
||||
//MCFG_NETLIST_SETUP(pong)
|
||||
MCFG_NETLIST_SETUP_MEMBER(this, &pong_state::NETLIST_NAME(pong))
|
||||
//MCFG_NETLIST_SETUP_MEMBER(this, &pong_state::NETLIST_NAME(pong))
|
||||
|
||||
MCFG_NETLIST_ANALOG_INPUT("maincpu", "vr0", "ic_b9_R.R")
|
||||
MCFG_NETLIST_ANALOG_MULT_OFFSET(1.0 / 100.0 * RES_K(50), RES_K(56) )
|
||||
MCFG_NETLIST_ANALOG_INPUT("maincpu", "vr1", "ic_a9_R.R")
|
||||
MCFG_NETLIST_ANALOG_MULT_OFFSET(1.0 / 100.0 * RES_K(50), RES_K(56) )
|
||||
MCFG_NETLIST_ANALOG_INPUT("maincpu", "pot0", "ic_b9_POT.DIAL")
|
||||
MCFG_NETLIST_ANALOG_INPUT("maincpu", "pot1", "ic_a9_POT.DIAL")
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "sw1a", "sw1a.POS", 0)
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "sw1b", "sw1b.POS", 0)
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "coinsw", "coinsw.POS", 0)
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "antenna", "antenna.IN", 0)
|
||||
NETLIST_CPU(config, "maincpu", NETLIST_CLOCK).set_constructor(this, &pong_state::NETLIST_NAME(pong));
|
||||
|
||||
MCFG_NETLIST_ANALOG_OUTPUT("maincpu", "snd0", "sound", pong_state, sound_cb, "")
|
||||
MCFG_NETLIST_ANALOG_OUTPUT("maincpu", "vid0", "videomix", fixedfreq_device, update_composite_monochrome, "fixfreq")
|
||||
NETLIST_ANALOG_INPUT(config, "maincpu:vr0", "ic_b9_R.R").set_mult_offset(1.0 / 100.0 * RES_K(50), RES_K(56) );
|
||||
NETLIST_ANALOG_INPUT(config, "maincpu:vr1", "ic_a9_R.R").set_mult_offset(1.0 / 100.0 * RES_K(50), RES_K(56) );
|
||||
NETLIST_ANALOG_INPUT(config, "maincpu:pot0", "ic_b9_POT.DIAL");
|
||||
NETLIST_ANALOG_INPUT(config, "maincpu:pot1", "ic_a9_POT.DIAL");
|
||||
NETLIST_LOGIC_INPUT(config, "maincpu:sw1a", "sw1a.POS", 0);
|
||||
NETLIST_LOGIC_INPUT(config, "maincpu:sw1b", "sw1b.POS", 0);
|
||||
NETLIST_LOGIC_INPUT(config, "maincpu:coinsw", "coinsw.POS", 0);
|
||||
NETLIST_LOGIC_INPUT(config, "maincpu:antenna", "antenna.IN", 0);
|
||||
|
||||
NETLIST_ANALOG_OUTPUT(config, "maincpu:snd0", 0).set_params("sound", FUNC(pong_state::sound_cb), "");
|
||||
NETLIST_ANALOG_OUTPUT(config, "maincpu:vid0", 0).set_params("videomix", FUNC(fixedfreq_device::update_composite_monochrome), "fixfreq");
|
||||
|
||||
/* video hardware */
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
@ -504,36 +504,35 @@ MACHINE_CONFIG_END
|
||||
MACHINE_CONFIG_START(breakout_state::breakout)
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK)
|
||||
MCFG_NETLIST_SETUP(breakout)
|
||||
NETLIST_CPU(config, "maincpu", NETLIST_CLOCK).set_constructor(NETLIST_NAME(breakout));
|
||||
|
||||
MCFG_NETLIST_ANALOG_INPUT("maincpu", "pot1", "POTP1.DIAL")
|
||||
MCFG_NETLIST_ANALOG_INPUT("maincpu", "pot2", "POTP2.DIAL")
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "coinsw1", "COIN1.POS", 0)
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "coinsw2", "COIN2.POS", 0)
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "startsw1", "START1.POS", 0)
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "startsw2", "START2.POS", 0)
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "servesw", "SERVE.POS", 0)
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "sw4", "S4.POS", 0)
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "sw3", "S3.POS", 0)
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "sw2", "S2.POS", 0)
|
||||
NETLIST_ANALOG_INPUT(config, "maincpu:pot1", "POTP1.DIAL");
|
||||
NETLIST_ANALOG_INPUT(config, "maincpu:pot2", "POTP2.DIAL");
|
||||
NETLIST_LOGIC_INPUT(config, "maincpu:coinsw1", "COIN1.POS", 0);
|
||||
NETLIST_LOGIC_INPUT(config, "maincpu:coinsw2", "COIN2.POS", 0);
|
||||
NETLIST_LOGIC_INPUT(config, "maincpu:startsw1", "START1.POS", 0);
|
||||
NETLIST_LOGIC_INPUT(config, "maincpu:startsw2", "START2.POS", 0);
|
||||
NETLIST_LOGIC_INPUT(config, "maincpu:servesw", "SERVE.POS", 0);
|
||||
NETLIST_LOGIC_INPUT(config, "maincpu:sw4", "S4.POS", 0);
|
||||
NETLIST_LOGIC_INPUT(config, "maincpu:sw3", "S3.POS", 0);
|
||||
NETLIST_LOGIC_INPUT(config, "maincpu:sw2", "S2.POS", 0);
|
||||
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "sw1_1", "S1_1.POS", 0)
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "sw1_2", "S1_2.POS", 0)
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "sw1_3", "S1_3.POS", 0)
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "sw1_4", "S1_4.POS", 0)
|
||||
NETLIST_LOGIC_INPUT(config, "maincpu:sw1_1", "S1_1.POS", 0);
|
||||
NETLIST_LOGIC_INPUT(config, "maincpu:sw1_2", "S1_2.POS", 0);
|
||||
NETLIST_LOGIC_INPUT(config, "maincpu:sw1_3", "S1_3.POS", 0);
|
||||
NETLIST_LOGIC_INPUT(config, "maincpu:sw1_4", "S1_4.POS", 0);
|
||||
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "antenna", "antenna.IN", 0)
|
||||
NETLIST_LOGIC_INPUT(config, "maincpu:antenna", "antenna.IN", 0);
|
||||
|
||||
MCFG_NETLIST_ANALOG_OUTPUT("maincpu", "snd0", "sound", breakout_state, sound_cb, "")
|
||||
MCFG_NETLIST_ANALOG_OUTPUT("maincpu", "vid0", "videomix", fixedfreq_device, update_composite_monochrome, "fixfreq")
|
||||
NETLIST_ANALOG_OUTPUT(config, "maincpu:snd0", 0).set_params("sound", FUNC(breakout_state::sound_cb), "");
|
||||
NETLIST_ANALOG_OUTPUT(config, "maincpu:vid0", 0).set_params("videomix", FUNC(fixedfreq_device::update_composite_monochrome), "fixfreq");
|
||||
|
||||
// Leds and lamps
|
||||
|
||||
MCFG_NETLIST_ANALOG_OUTPUT("maincpu", "led_serve", "CON_P", breakout_state, serve_cb, "")
|
||||
MCFG_NETLIST_ANALOG_OUTPUT("maincpu", "lamp_credit1", "CON_CREDIT1", breakout_state, credit1_cb, "")
|
||||
MCFG_NETLIST_ANALOG_OUTPUT("maincpu", "lamp_credit2", "CON_CREDIT2", breakout_state, credit2_cb, "")
|
||||
MCFG_NETLIST_ANALOG_OUTPUT("maincpu", "coin_counter", "CON_T", breakout_state, coin_counter_cb, "")
|
||||
NETLIST_ANALOG_OUTPUT(config, "maincpu:led_serve", 0).set_params("CON_P", FUNC(breakout_state::serve_cb), "");
|
||||
NETLIST_ANALOG_OUTPUT(config, "maincpu:lamp_credit1", 0).set_params("CON_CREDIT1", FUNC(breakout_state::credit1_cb), "");
|
||||
NETLIST_ANALOG_OUTPUT(config, "maincpu:lamp_credit2", 0).set_params("CON_CREDIT2", FUNC(breakout_state::credit2_cb), "");
|
||||
NETLIST_ANALOG_OUTPUT(config, "maincpu:coin_counter", 0).set_params("CON_T", FUNC(breakout_state::coin_counter_cb), "");
|
||||
|
||||
/* video hardware */
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
@ -560,6 +559,7 @@ MACHINE_CONFIG_START(pong_state::pongf)
|
||||
pong(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
|
||||
MCFG_DEVICE_MODIFY("maincpu")
|
||||
MCFG_NETLIST_SETUP(pong_fast)
|
||||
|
||||
@ -568,24 +568,23 @@ MACHINE_CONFIG_END
|
||||
MACHINE_CONFIG_START(pong_state::pongd)
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK)
|
||||
MCFG_NETLIST_SETUP(pongdoubles)
|
||||
NETLIST_CPU(config, "maincpu", NETLIST_CLOCK).set_constructor(NETLIST_NAME(pongdoubles));
|
||||
|
||||
MCFG_NETLIST_ANALOG_INPUT("maincpu", "pot0", "A10_POT.DIAL")
|
||||
MCFG_NETLIST_ANALOG_INPUT("maincpu", "pot1", "B10_POT.DIAL")
|
||||
MCFG_NETLIST_ANALOG_INPUT("maincpu", "pot2", "B9B_POT.DIAL")
|
||||
MCFG_NETLIST_ANALOG_INPUT("maincpu", "pot3", "B9A_POT.DIAL")
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "sw1a", "DIPSW1.POS", 0)
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "sw1b", "DIPSW2.POS", 0)
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "coinsw", "COIN_SW.POS", 0)
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "startsw", "START_SW.POS", 0)
|
||||
NETLIST_ANALOG_INPUT(config, "maincpu:pot0", "A10_POT.DIAL");
|
||||
NETLIST_ANALOG_INPUT(config, "maincpu:pot1", "B10_POT.DIAL");
|
||||
NETLIST_ANALOG_INPUT(config, "maincpu:pot2", "B9B_POT.DIAL");
|
||||
NETLIST_ANALOG_INPUT(config, "maincpu:pot3", "B9A_POT.DIAL");
|
||||
NETLIST_LOGIC_INPUT(config, "maincpu:sw1a", "DIPSW1.POS", 0);
|
||||
NETLIST_LOGIC_INPUT(config, "maincpu:sw1b", "DIPSW2.POS", 0);
|
||||
NETLIST_LOGIC_INPUT(config, "maincpu:coinsw", "COIN_SW.POS", 0);
|
||||
NETLIST_LOGIC_INPUT(config, "maincpu:startsw", "START_SW.POS", 0);
|
||||
|
||||
#if 0
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "antenna", "antenna.IN", 0, 0x01)
|
||||
NETLIST_LOGIC_INPUT(config, "maincpu:antenna", "antenna.IN", 0, 0x01)
|
||||
#endif
|
||||
|
||||
MCFG_NETLIST_ANALOG_OUTPUT("maincpu", "snd0", "AUDIO", pong_state, sound_cb, "")
|
||||
MCFG_NETLIST_ANALOG_OUTPUT("maincpu", "vid0", "videomix", fixedfreq_device, update_composite_monochrome, "fixfreq")
|
||||
NETLIST_ANALOG_OUTPUT(config, "maincpu:snd0", 0).set_params("AUDIO", FUNC(pong_state::sound_cb), "");
|
||||
NETLIST_ANALOG_OUTPUT(config, "maincpu:vid0", 0).set_params("videomix", FUNC(fixedfreq_device::update_composite_monochrome), "fixfreq");
|
||||
|
||||
/* video hardware */
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
@ -607,27 +606,24 @@ MACHINE_CONFIG_END
|
||||
MACHINE_CONFIG_START(rebound_state::rebound)
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK)
|
||||
MCFG_NETLIST_SETUP(rebound_schematics)
|
||||
//FIXME: doesn't work - segmentation fault
|
||||
//MCFG_NETLIST_SETUP_MEMBER(this, &rebound_state::NETLIST_NAME(rebound))
|
||||
NETLIST_CPU(config, "maincpu", NETLIST_CLOCK).set_constructor(NETLIST_NAME(rebound_schematics));
|
||||
|
||||
// FIXME: Later
|
||||
MCFG_NETLIST_ANALOG_INPUT("maincpu", "pot1", "POTP1.DIAL")
|
||||
MCFG_NETLIST_ANALOG_INPUT("maincpu", "pot2", "POTP2.DIAL")
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "antenna", "antenna.IN", 0)
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "coinsw", "COIN1_SW.POS", 0)
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "startsw", "START_SW.POS", 0)
|
||||
NETLIST_ANALOG_INPUT(config, "maincpu:pot1", "POTP1.DIAL");
|
||||
NETLIST_ANALOG_INPUT(config, "maincpu:pot2", "POTP2.DIAL");
|
||||
NETLIST_LOGIC_INPUT(config, "maincpu:antenna", "antenna.IN", 0);
|
||||
NETLIST_LOGIC_INPUT(config, "maincpu:coinsw", "COIN1_SW.POS", 0);
|
||||
NETLIST_LOGIC_INPUT(config, "maincpu:startsw", "START_SW.POS", 0);
|
||||
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "dsw1a", "DSW1a.POS", 0)
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "dsw1b", "DSW1b.POS", 0)
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "dsw2", "DSW2.POS", 0)
|
||||
NETLIST_LOGIC_INPUT(config, "maincpu:dsw1a", "DSW1a.POS", 0);
|
||||
NETLIST_LOGIC_INPUT(config, "maincpu:dsw1b", "DSW1b.POS", 0);
|
||||
NETLIST_LOGIC_INPUT(config, "maincpu:dsw2", "DSW2.POS", 0);
|
||||
|
||||
MCFG_NETLIST_ANALOG_OUTPUT("maincpu", "snd0", "sound", rebound_state, sound_cb, "")
|
||||
MCFG_NETLIST_ANALOG_OUTPUT("maincpu", "vid0", "videomix", fixedfreq_device, update_composite_monochrome, "fixfreq")
|
||||
NETLIST_ANALOG_OUTPUT(config, "maincpu:snd0", 0).set_params("sound", FUNC(rebound_state::sound_cb), "");
|
||||
NETLIST_ANALOG_OUTPUT(config, "maincpu:vid0", 0).set_params("videomix", FUNC(fixedfreq_device::update_composite_monochrome), "fixfreq");
|
||||
|
||||
MCFG_NETLIST_ANALOG_OUTPUT("maincpu", "led_credit", "CON11", rebound_state, led_credit_cb, "")
|
||||
MCFG_NETLIST_ANALOG_OUTPUT("maincpu", "coin_counter", "CON10", rebound_state, coin_counter_cb, "")
|
||||
NETLIST_ANALOG_OUTPUT(config, "maincpu:led_credit", 0).set_params("CON11", FUNC(rebound_state::led_credit_cb), "");
|
||||
NETLIST_ANALOG_OUTPUT(config, "maincpu:coin_counter", 0).set_params("CON10", FUNC(rebound_state::coin_counter_cb), "");
|
||||
|
||||
/* video hardware */
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
|
@ -11,7 +11,7 @@
|
||||
|
||||
//render a white square with the shape of the car window
|
||||
//instead of drawing the actual car sprite graphics
|
||||
#define CAR_WINDOW_HACK
|
||||
//#define CAR_WINDOW_HACK
|
||||
|
||||
//generate a regular pattern of squares
|
||||
// instead of the race track
|
||||
|
Loading…
Reference in New Issue
Block a user