zaccaria: Add frontiers to netlist audio and fix AY8910 interfacing.

The setup needs AY8910_RESISTOR_OUTPUT. Frontiers boosted performance.
This commit is contained in:
couriersud 2019-04-12 00:39:27 +02:00
parent bd365f5eab
commit 1a3b85c781
2 changed files with 19 additions and 7 deletions

View File

@ -9,6 +9,7 @@
#endif
#define USE_FRONTIERS 1
NETLIST_START(zac1b11142_schematics)
@ -279,22 +280,19 @@ NETLIST_END()
NETLIST_START(zac1b11142)
//SOLVER(Solver, 48000)
SOLVER(Solver, 48000)
//PARAM(Solver.ACCURACY, 1e-10)
PARAM(Solver.ACCURACY, 1e-6)
PARAM(Solver.NR_LOOPS, 3000)
PARAM(Solver.ACCURACY, 1e-7)
PARAM(Solver.NR_LOOPS, 300)
PARAM(Solver.METHOD, "MAT_CR")
PARAM(Solver.PARALLEL, 2)
PARAM(Solver.PARALLEL, 4)
PARAM(Solver.DYNAMIC_TS, 0)
PARAM(Solver.DYNAMIC_LTE, 5e-4)
PARAM(Solver.DYNAMIC_LTE, 5e-2)
PARAM(Solver.DYNAMIC_MIN_TIMESTEP, 1e-7)
LOCAL_SOURCE(zac1b11142_schematics)
ANALOG_INPUT(I_P12, 11.3) // +12V dropped with a 1N4004
ANALOG_INPUT(I_P5, 5)
//ANALOG_INPUT(I_V0, 0)
ANALOG_INPUT(I_M5, -5)
ALIAS(VCC, I_P5.Q)
ALIAS(I_V0.Q, GND)
@ -347,4 +345,16 @@ NETLIST_START(zac1b11142)
// FIXME: connect other sounds to netlist as well for proper mixing
// FIXME: make P1 controllable by mame ui (see pong for an example)
#if (USE_FRONTIERS)
OPTIMIZE_FRONTIER(R124.1, RES_K(39), 50)
OPTIMIZE_FRONTIER(R105.1, RES_K(56), 50)
OPTIMIZE_FRONTIER(R106.1, RES_K(68), 50)
// R80 not connected
//OPTIMIZE_FRONTIER(R80.1, RES_K(10), 50)
OPTIMIZE_FRONTIER(R90.1, RES_K(68), 50)
OPTIMIZE_FRONTIER(R96.1, RES_K(4.7), 50)
#endif
NETLIST_END()

View File

@ -413,12 +413,14 @@ void zac1b11142_audio_device::device_add_mconfig(machine_config &config)
m_melodypsg1->add_route(0, "sound_nl", 1.0, 0);
m_melodypsg1->add_route(1, "sound_nl", 1.0, 1);
m_melodypsg1->add_route(2, "sound_nl", 1.0, 2);
m_melodypsg1->set_flags(AY8910_RESISTOR_OUTPUT);
m_melodypsg2->port_a_write_callback().set(FUNC(zac1b11142_audio_device::ay_4h_porta_w));
m_melodypsg2->port_b_write_callback().set(FUNC(zac1b11142_audio_device::ay_4h_portb_w));
m_melodypsg2->add_route(0, "sound_nl", 1.0, 3);
m_melodypsg2->add_route(1, "sound_nl", 1.0, 4);
m_melodypsg2->add_route(2, "sound_nl", 1.0, 5);
m_melodypsg2->set_flags(AY8910_RESISTOR_OUTPUT);
M6802(config, m_audiocpu, XTAL(3'579'545)); // verified on pcb
m_audiocpu->set_addrmap(AS_PROGRAM, &zac1b11142_audio_device::zac1b11142_audio_map);