diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/netlist/macro/nlm_opamp.cpp | 15 | ||||
-rw-r--r-- | src/mame/audio/nl_zac1b11142.cpp | 19 | ||||
-rw-r--r-- | src/mame/audio/zaccaria.cpp | 6 |
3 files changed, 26 insertions, 14 deletions
diff --git a/src/lib/netlist/macro/nlm_opamp.cpp b/src/lib/netlist/macro/nlm_opamp.cpp index 886345ec6c3..d671847abb0 100644 --- a/src/lib/netlist/macro/nlm_opamp.cpp +++ b/src/lib/netlist/macro/nlm_opamp.cpp @@ -290,18 +290,19 @@ NETLIST_END() static NETLIST_START(LM3900) OPAMP(A, "LM3900") - DIODE(D1, "D") - DIODE(D2, "D") + DIODE(D1, "D(IS=1e-14 N=1)") + CCCS(CS1) // Current Mirror ALIAS(VCC, A.VCC) ALIAS(GND, A.GND) - ALIAS(MINUS, A.MINUS) ALIAS(PLUS, A.PLUS) + ALIAS(MINUS, A.MINUS) ALIAS(OUT, A.OUT) - NET_C(D1.A, A.PLUS) - NET_C(D2.A, A.MINUS) - NET_C(D1.K, D2.K, A.MINUS) + NET_C(A.PLUS, CS1.IP) + NET_C(D1.A, CS1.IN) + NET_C(CS1.OP, A.MINUS) + NET_C(CS1.ON, A.GND, D1.K) NETLIST_END() #endif @@ -320,7 +321,7 @@ NETLIST_START(OPAMP_lib) NET_MODEL("UA741 OPAMP(TYPE=3 VLH=1.0 VLL=1.0 FPF=5 UGF=1000k SLEW=0.5M RI=2000k RO=75 DAB=0.0017)") NET_MODEL("LM747 OPAMP(TYPE=3 VLH=1.0 VLL=1.0 FPF=5 UGF=1000k SLEW=0.5M RI=2000k RO=50 DAB=0.0017)") NET_MODEL("LM747A OPAMP(TYPE=3 VLH=2.0 VLL=2.0 FPF=5 UGF=1000k SLEW=0.7M RI=6000k RO=50 DAB=0.0015)") - NET_MODEL("LM3900 OPAMP(TYPE=3 VLH=2.0 VLL=0.2 FPF=2k UGF=4M SLEW=0.5M RI=1M RO=2k DAB=0.0015)") + NET_MODEL("LM3900 OPAMP(TYPE=3 VLH=1.0 VLL=0.03 FPF=2k UGF=4M SLEW=0.5M RI=10M RO=2k DAB=0.0015)") #if USE_LM3900_MODEL == 1 NET_MODEL("LM3900_NPN1 NPN(IS=1E-14 BF=150 TF=1E-9 CJC=1E-12 CJE=1E-12 VAF=150 RB=100 RE=5 IKF=0.002)") diff --git a/src/mame/audio/nl_zac1b11142.cpp b/src/mame/audio/nl_zac1b11142.cpp index de45936f346..ff4a4174dfc 100644 --- a/src/mame/audio/nl_zac1b11142.cpp +++ b/src/mame/audio/nl_zac1b11142.cpp @@ -282,13 +282,13 @@ NETLIST_START(zac1b11142) //SOLVER(Solver, 48000) SOLVER(Solver, 48000) //PARAM(Solver.ACCURACY, 1e-10) - PARAM(Solver.ACCURACY, 1e-7) - PARAM(Solver.NR_LOOPS, 300) + PARAM(Solver.ACCURACY, 1e-6) + PARAM(Solver.NR_LOOPS, 3000) PARAM(Solver.METHOD, "MAT_CR") - PARAM(Solver.PARALLEL, 0) + PARAM(Solver.PARALLEL, 2) PARAM(Solver.DYNAMIC_TS, 0) PARAM(Solver.DYNAMIC_LTE, 5e-4) - PARAM(Solver.DYNAMIC_MIN_TIMESTEP, 20e-6) + PARAM(Solver.DYNAMIC_MIN_TIMESTEP, 1e-7) LOCAL_SOURCE(zac1b11142_schematics) @@ -336,4 +336,15 @@ NETLIST_START(zac1b11142) INCLUDE(zac1b11142_schematics) + RES(R1, RES_K(100)) + RES(R3, RES_K(10)) + CAP(C7, CAP_U(0.1)) + + NET_C(P1.2, R3.1) + NET_C(R3.2, C7.1) + NET_C(C7.2, R1.1) // Connect to Pin 2 - also other sounds are mixed in here <- sound out + NET_C(R1.2, GND) // Actually connected to ~6V from pin 3 of TDA1510 + + // FIXME: connect other sounds to netlist as well for proper mixing + // FIXME: make P1 controllable by mame ui (see pong for an example) NETLIST_END() diff --git a/src/mame/audio/zaccaria.cpp b/src/mame/audio/zaccaria.cpp index da94bae6ce1..cc2a102ee72 100644 --- a/src/mame/audio/zaccaria.cpp +++ b/src/mame/audio/zaccaria.cpp @@ -428,7 +428,7 @@ void zac1b11142_audio_device::device_add_mconfig(machine_config &config) m_pia_1i->writepa_handler().set(m_speech, FUNC(tms5220_device::data_w)); m_pia_1i->writepb_handler().set(FUNC(zac1b11142_audio_device::pia_1i_portb_w)); - MC1408(config, "dac", 0).add_route(ALL_OUTPUTS, *this, 0.40, AUTO_ALLOC_INPUT, 0); // mc1408.1f + MC1408(config, "dac", 0).add_route(ALL_OUTPUTS, *this, 0.30, AUTO_ALLOC_INPUT, 0); // mc1408.1f voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0)); vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); @@ -438,7 +438,7 @@ void zac1b11142_audio_device::device_add_mconfig(machine_config &config) TMS5200(config, m_speech, 649200); // ROMCLK pin measured at 162.3Khz, OSC is exactly *4 of that) m_speech->irq_cb().set(m_pia_1i, FUNC(pia6821_device::cb1_w)); m_speech->ready_cb().set(m_pia_1i, FUNC(pia6821_device::ca2_w)); - m_speech->add_route(ALL_OUTPUTS, *this, 0.80, AUTO_ALLOC_INPUT, 0); + m_speech->add_route(ALL_OUTPUTS, *this, 0.60, AUTO_ALLOC_INPUT, 0); netlist_mame_sound_device &sound_nl(NETLIST_SOUND(config, "sound_nl", 48000)); sound_nl.set_constructor(netlist_zac1b11142); @@ -460,7 +460,7 @@ void zac1b11142_audio_device::device_add_mconfig(machine_config &config) NETLIST_STREAM_INPUT(config, "sound_nl:cin4", 4, "R_AY4H_B.R"); NETLIST_STREAM_INPUT(config, "sound_nl:cin5", 5, "R_AY4H_C.R"); - NETLIST_STREAM_OUTPUT(config, "sound_nl:cout0", 0, "P1.2").set_mult_offset(3000.0 * 10.0, 0.0); // FIXME: no clue what numbers to use here + NETLIST_STREAM_OUTPUT(config, "sound_nl:cout0", 0, "C7.2").set_mult_offset(3000.0 * 10.0, 0.0); // FIXME: no clue what numbers to use here } ioport_constructor zac1b11142_audio_device::device_input_ports() const |