From 6dc8689ffd402981811608570dcbf5c54ed14bd5 Mon Sep 17 00:00:00 2001 From: couriersud Date: Sat, 13 Apr 2019 21:28:11 +0200 Subject: netlist: modernize interface. (nw) --- src/devices/machine/netlist.cpp | 15 +++-- src/devices/machine/netlist.h | 18 +++-- src/mame/audio/cheekyms.cpp | 33 +++++----- src/mame/drivers/1942.cpp | 23 ++++--- src/mame/drivers/atarittl.cpp | 18 ++--- src/mame/drivers/hazeltin.cpp | 65 +++++++++--------- src/mame/drivers/pong.cpp | 142 +++++++++++++++++++--------------------- src/mame/machine/nl_gtrak10.cpp | 2 +- 8 files changed, 161 insertions(+), 155 deletions(-) diff --git a/src/devices/machine/netlist.cpp b/src/devices/machine/netlist.cpp index 83e5fd295b3..f78b072d421 100644 --- a/src/devices/machine/netlist.cpp +++ b/src/devices/machine/netlist.cpp @@ -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"); diff --git a/src/devices/machine/netlist.h b/src/devices/machine/netlist.h index b5844eed057..23a27b36e34 100644 --- a/src/devices/machine/netlist.h +++ b/src/devices/machine/netlist.h @@ -30,10 +30,10 @@ namespace netlist { // MAME specific configuration - #define MCFG_NETLIST_SETUP(_setup) \ downcast(*device).set_constructor(NETLIST_NAME(_setup)); +#if 0 #define MCFG_NETLIST_SETUP_MEMBER(_obj, _setup) \ downcast(*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(*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(*device).set_params(_name ".m_RAM"); + downcast(*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(*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 + 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; } diff --git a/src/mame/audio/cheekyms.cpp b/src/mame/audio/cheekyms.cpp index 85359b96afb..b05dd31fbff 100644 --- a/src/mame/audio/cheekyms.cpp +++ b/src/mame/audio/cheekyms.cpp @@ -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) - - 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 + 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); + + + 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 diff --git a/src/mame/drivers/1942.cpp b/src/mame/drivers/1942.cpp index 505da280cec..fc3048e3d72 100644 --- a/src/mame/drivers/1942.cpp +++ b/src/mame/drivers/1942.cpp @@ -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") - - MCFG_NETLIST_STREAM_OUTPUT("snd_nl", 0, "R1.1") + 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"); + + 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 diff --git a/src/mame/drivers/atarittl.cpp b/src/mame/drivers/atarittl.cpp index beeae807a92..2f93684fb17 100644 --- a/src/mame/drivers/atarittl.cpp +++ b/src/mame/drivers/atarittl.cpp @@ -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 */ diff --git a/src/mame/drivers/hazeltin.cpp b/src/mame/drivers/hazeltin.cpp index df405e038b0..4eeed687073 100644 --- a/src/mame/drivers/hazeltin.cpp +++ b/src/mame/drivers/hazeltin.cpp @@ -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") - - 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) - - 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_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"); + + 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); + + 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); diff --git a/src/mame/drivers/pong.cpp b/src/mame/drivers/pong.cpp index 515789872e3..82ffa7ffd44 100644 --- a/src/mame/drivers/pong.cpp +++ b/src/mame/drivers/pong.cpp @@ -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_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) - - MCFG_NETLIST_ANALOG_OUTPUT("maincpu", "snd0", "sound", pong_state, sound_cb, "") - MCFG_NETLIST_ANALOG_OUTPUT("maincpu", "vid0", "videomix", fixedfreq_device, update_composite_monochrome, "fixfreq") + //MCFG_NETLIST_SETUP_MEMBER(this, &pong_state::NETLIST_NAME(pong)) + + NETLIST_CPU(config, "maincpu", NETLIST_CLOCK).set_constructor(this, &pong_state::NETLIST_NAME(pong)); + + 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) - - 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) - - 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) - - MCFG_NETLIST_LOGIC_INPUT("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_CPU(config, "maincpu", NETLIST_CLOCK).set_constructor(NETLIST_NAME(breakout)); + + 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); + + 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); + + NETLIST_LOGIC_INPUT(config, "maincpu:antenna", "antenna.IN", 0); + + 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) - - 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_CPU(config, "maincpu", NETLIST_CLOCK).set_constructor(NETLIST_NAME(pongdoubles)); + + 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); diff --git a/src/mame/machine/nl_gtrak10.cpp b/src/mame/machine/nl_gtrak10.cpp index cb9e693d619..ba83b32abc5 100644 --- a/src/mame/machine/nl_gtrak10.cpp +++ b/src/mame/machine/nl_gtrak10.cpp @@ -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 -- cgit v1.2.3