diff options
author | Couriersud <couriersud@users.noreply.github.com> | 2014-05-12 22:31:22 +0000 |
---|---|---|
committer | Couriersud <couriersud@users.noreply.github.com> | 2014-05-12 22:31:22 +0000 |
commit | 6b0b281570ed3db42eaacd63c84a6427a354438d (patch) | |
tree | 2c5aca909f92bbce6e72b27936559ef9623a1e35 /src | |
parent | 3ee013fa3d403b37b1fcfecced5172cdabf395ee (diff) |
Changed cocoloco to netlist output. Emulation ends at amplifier input.
Diffstat (limited to 'src')
-rw-r--r-- | src/mame/drivers/cocoloco.c | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/src/mame/drivers/cocoloco.c b/src/mame/drivers/cocoloco.c index 3ea90582816..3d8eed3c492 100644 --- a/src/mame/drivers/cocoloco.c +++ b/src/mame/drivers/cocoloco.c @@ -77,6 +77,8 @@ #include "emu.h" #include "cpu/m6502/m6502.h" #include "sound/ay8910.h" +#include "machine/netlist.h" +#include "netlist/devices/net_lib.h" class cocoloco_state : public driver_device @@ -102,6 +104,52 @@ public: required_device<palette_device> m_palette; }; +/*********************************** +* Sound Hardware * +***********************************/ + +static NETLIST_START(nl_cocoloco) + + /* Standard stuff */ + + SOLVER(Solver, 48000) + PARAM(Solver.ACCURACY, 1e-5) + ANALOG_INPUT(V5, 5) + + /* AY 8910 internal resistors */ + + RES(R_AY1_1, 1000); + RES(R_AY1_2, 1000); + RES(R_AY1_3, 1000); + + RES(R1, 4700) + RES(R2, 4700) + RES(R3, 4700) + RES(RAMP, 150000) + //RES(RAMP, 150) + POT(P1, 5000) + PARAM(P1.DIAL, 0.5) // 50% + + CAP(C1, 10e-6) + + NET_C(V5, R_AY1_1.1, R_AY1_2.1, R_AY1_3.1) + + NET_C(R_AY1_1.2, R1.1) + NET_C(R_AY1_2.2, R2.1) + NET_C(R_AY1_3.2, R3.1) + + NET_C(R1.2, R2.2, R3.2, P1.1) + + NET_C(P1.3, RAMP.2, GND) + NET_C(P1.2, C1.1) + NET_C(C1.2, RAMP.1) +#if 0 + CAP(C2, 0.1e-6) + NET_C(C2.2, GND) + NET_C(C2.1, RAMP.1) +#endif +NETLIST_END() + /*********************************** * Video Hardware * @@ -328,7 +376,25 @@ static MACHINE_CONFIG_START( cocoloco, cocoloco_state ) MCFG_SOUND_ADD("ay8910", AY8910, SND_CLOCK) /* confirmed */ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1")) MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW2")) + MCFG_AY8910_OUTPUT_TYPE(AY8910_RESISTOR_OUTPUT) + MCFG_SOUND_ROUTE_EX(0, "snd_nl", 1.0, 0) + MCFG_SOUND_ROUTE_EX(1, "snd_nl", 1.0, 1) + MCFG_SOUND_ROUTE_EX(2, "snd_nl", 1.0, 2) + + /* NETLIST configuration using internal AY8910 resistor values */ + + MCFG_SOUND_ADD("snd_nl", NETLIST_SOUND, 48000) + MCFG_NETLIST_SETUP(nl_cocoloco) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.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_OUTPUT("snd_nl", 0, "RAMP.1") + MCFG_NETLIST_ANALOG_MULT_OFFSET(30000.0 * 1.5, 0) +#if 0 // MCFG_SOUND_ROUTE(0, "mono", 0.75) // MCFG_SOUND_ROUTE(1, "mono", 1.40) // MCFG_SOUND_ROUTE(2, "mono", 0.75) @@ -337,6 +403,7 @@ static MACHINE_CONFIG_START( cocoloco, cocoloco_state ) MCFG_SOUND_ROUTE(0, "mono", 1.50) MCFG_SOUND_ROUTE(1, "mono", 4.50) MCFG_SOUND_ROUTE(2, "mono", 1.50) +#endif MACHINE_CONFIG_END |