summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/cocoloco.c
diff options
context:
space:
mode:
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
commit6b0b281570ed3db42eaacd63c84a6427a354438d (patch)
tree2c5aca909f92bbce6e72b27936559ef9623a1e35 /src/mame/drivers/cocoloco.c
parent3ee013fa3d403b37b1fcfecced5172cdabf395ee (diff)
Changed cocoloco to netlist output. Emulation ends at amplifier input.
Diffstat (limited to 'src/mame/drivers/cocoloco.c')
-rw-r--r--src/mame/drivers/cocoloco.c67
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