summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/audio/mario.cpp
diff options
context:
space:
mode:
author couriersud <couriersud@arcor.de>2016-12-31 03:18:04 +0100
committer couriersud <couriersud@arcor.de>2016-12-31 15:21:05 +0100
commit3a4bc804c0b39537ede76f7b2d9c939ab8fdcd09 (patch)
treebfa2f2e75f207adafebc94f9d4dee05213d584f9 /src/mame/audio/mario.cpp
parent6787cd3bb81b5696ceabd048a6c2f88c2d633e7a (diff)
Hook up luigi walking sound in netlist mario sound implementation.
Mario driver now uses netlist audio implementation instead of discrete implementation. The previous discrete sound emulation has not been removed yet because it still contains a lot of documentation. [Couriersud]
Diffstat (limited to 'src/mame/audio/mario.cpp')
-rw-r--r--src/mame/audio/mario.cpp244
1 files changed, 5 insertions, 239 deletions
diff --git a/src/mame/audio/mario.cpp b/src/mame/audio/mario.cpp
index 7ef691acc68..28f0ca4f1fe 100644
--- a/src/mame/audio/mario.cpp
+++ b/src/mame/audio/mario.cpp
@@ -6,7 +6,7 @@
#include "sound/ay8910.h"
#include "includes/mario.h"
-
+#include "audio/nl_mario.h"
/****************************************************************
*
@@ -43,243 +43,6 @@
#if !OLD_SOUND
-/* ---------------------------------------------------------------------- */
-/* mario sound */
-/* ---------------------------------------------------------------------- */
-static NETLIST_START(nl_mario_snd0)
-
- RES(R17, RES_K(27)) /* 20 according to parts list */
- /* 27 verified, 30K in schematics */
- CAP(C14, CAP_U(4.7)) /* verified */
-
- TTL_74123(2H_A)
- NET_C(2H_A.VCC, V5)
- NET_C(2H_A.GND, GND)
- NET_C(SOUND0.Q, 2H_A.B)
- NET_C(GND, 2H_A.A)
- NET_C(2H_A.CLRQ, ttlhigh) /* NOT IN SCHEMATICS */
- DIODE(D1, "1N4148") /* FIXME: try to identify */
- TTL_7404_INVERT(1H_A, 2H_A.QQ)
- NET_C(R17.1, V5)
- NET_C(R17.2, D1.A, C14.1)
- NET_C(D1.K, 2H_A.RC)
- NET_C(C14.2, 2H_A.C)
-
- RES(R6, RES_K(4.7)) /* verified */
- CAP(C3, CAP_U(10)) /* verified */
-
- NET_C(1H_A.Q, R6.1)
- NET_C(R6.2, C3.1, 1J_A.FC)
- NET_C(R6.2, 2J_A.FC)
- NET_C(C3.2, GND)
-
- //#define MR_C6 CAP_N(3.9) /* verified */
-
- SN74LS629(1J_A, CAP_N(3.9))
- NET_C(1J_A.RNG, V5)
- NET_C(1J_A.ENQ, ttllow)
- NET_C(GND, 1J_A.GND)
-
- //#define MR_C17 CAP_N(22) /* verified */
-
- SN74LS629(2J_A, CAP_N(22))
- NET_C(2J_A.RNG, V5)
- NET_C(2J_A.ENQ, ttllow)
- NET_C(GND, 2J_A.GND)
-
- TTL_7486_XOR(1K_A, 1J_A.Y, 2J_A.Y)
- TTL_7408_AND(2K_A, 2H_A.Q, 1K_A)
-NETLIST_END()
-
-/* ---------------------------------------------------------------------- */
-/* skid sound */
-/* ---------------------------------------------------------------------- */
-
-// FIXME: Diodes are 1S953
-static NETLIST_START(nl_mario_snd7)
-
- RES(R61, RES_K(47))
- CAP(C41, CAP_U(4.7)) /* verified */
-
- TTL_74123(4L_A)
- NET_C(4L_A.VCC, V5)
- NET_C(4L_A.GND, GND)
- NET_C(SOUND7.Q, 4L_A.B)
- NET_C(GND, 4L_A.A)
- NET_C(4L_A.CLRQ, ttlhigh) /* NOT IN SCHEMATICS */
- DIODE(D10, "1N4148") /* FIXME: try to identify */
- TTL_7404_INVERT(4J_A, 4L_A.Q)
- NET_C(R61.1, V5)
- NET_C(R61.2, D10.A, C41.1)
- NET_C(D10.K, 4L_A.RC)
- NET_C(C41.2, 4L_A.C)
-
- RES(R65, RES_K(10))
- CAP(C44, CAP_U(3.3)) /* verified */
-
- SN74LS629(4K_A, CAP_U(0.022))
- NET_C(4K_A.RNG, V5)
- NET_C(4K_A.ENQ, ttllow)
- NET_C(GND, 4K_A.GND)
- NET_C(R65.1, 4J_A.Q)
- NET_C(R65.2, 4K_A.FC, C44.1)
- NET_C(C44.2, GND)
-
- CD4020_WI(3H, 4K_B.Y, ttllow, V5, GND)
- TTL_7404_INVERT(4J_B, 3H.Q12)
-
- RES(R64, RES_K(20))
- CAP(C43, CAP_U(3.3)) /* verified */
-
- SN74LS629(4K_B, CAP_U(0.0047))
- NET_C(4K_B.RNG, V5)
- NET_C(4K_B.ENQ, ttllow)
- NET_C(GND, 4K_B.GND)
- NET_C(R64.1, 4J_B.Q)
- NET_C(R64.2, 4K_B.FC, C43.1)
- NET_C(C43.2, GND)
-
- TTL_7486_XOR(1K_C, 3H.Q4, 4K_A.Y)
- TTL_7408_AND(2K_C, 4L_A.Q, 1K_C)
-
-NETLIST_END()
-
-/* ---------------------------------------------------------------------- */
-/* DAC sound */
-/* ---------------------------------------------------------------------- */
-static NETLIST_START(nl_mario_dac)
- RES(R34, RES_M(2))
- RES(R35, RES_M(1))
- RES(R36, RES_M(1.8))
- LM3900(3M_1)
- NET_C(3M_1.VM, GND)
- NET_C(3M_1.VP, V5)
-
- NET_C(DAC.VOUT, R34.1)
- NET_C(3M_1.MINUS, R34.2, R35.2)
- NET_C(3M_1.OUT, R35.1)
- NET_C(3M_1.PLUS, R36.1)
- NET_C(R36.2, GND)
-
- RES(R21, RES_M(1.8))
- RES(R23, RES_K(10))
- RES(R25, RES_K(10))
- RES(R37, RES_K(750))
- RES(R38, RES_K(360))
- RES(R39, RES_K(750))
-
- CAP(C18, CAP_P(100))
- CAP(C19, CAP_U(10))
- CAP(C20, CAP_U(1))
- CAP(C30, CAP_P(100))
-
- LM3900(3M_2)
- NET_C(3M_2.VM, GND)
- NET_C(3M_2.VP, V5)
-
- NET_C(R35.1, C20.1)
- NET_C(C20.2, R37.1)
- NET_C(R37.2, R38.2, C18.1, R39.2)
-
- NET_C(C18.2, GND)
- NET_C(R38.1, C30.2, 3M_2.MINUS)
- NET_C(3M_2.OUT, R39.1, C30.1)
-
- NET_C(R21.1, 3M_2.PLUS)
- NET_C(R21.2, C19.1, R25.2, R23.1)
- NET_C(C19.2, R23.2, GND)
- NET_C(R25.1, V5)
-NETLIST_END()
-
-static NETLIST_START(nl_mario)
-
- LOCAL_SOURCE(nl_mario_snd0)
- LOCAL_SOURCE(nl_mario_snd7)
- LOCAL_SOURCE(nl_mario_dac)
-
- SOLVER(Solver, 48000)
- PARAM(Solver.ACCURACY, 1e-6)
- PARAM(Solver.SOR_FACTOR, 1.0)
- PARAM(Solver.GS_THRESHOLD, 5)
- PARAM(Solver.GS_LOOPS, 1)
- //PARAM(Solver.LTE, 5e-2)
- PARAM(Solver.DYNAMIC_TS, 0)
- ANALOG_INPUT(V5, 5)
-
- TTL_INPUT(SOUND0, 1)
- INCLUDE(nl_mario_snd0)
-
- TTL_INPUT(SOUND7, 1)
- INCLUDE(nl_mario_snd7)
-
- R2R_DAC(DAC, 3.4, 10000.0, 8)
- NET_C(DAC.VGND, GND)
-
- INCLUDE(nl_mario_dac)
-
- /* ---------------------------------------------------------------------- */
- /* mixing */
- /* ---------------------------------------------------------------------- */
-
- RES(R20, RES_K(22)) /* verified */
- RES(R19, RES_K(22)) /* verified */
- RES(R40, RES_K(22)) /* verified */
- RES(R41, RES_K(100)) /* verified */
- CAP(C31, CAP_U(0.022)) /* */
-
- NET_C(2K_A.Q, R20.1)
- NET_C(GND, R19.1) //FIXME
- NET_C(2K_C.Q, R41.1)
-
- NET_C(R39.1, R40.1)
-
- NET_C(R20.2, R19.2, R40.2, R41.2, C31.1)
- NET_C(C31.2, GND)
-
- CAP(C32, CAP_U(1)) /* verified */
- RES(R42, RES_K(43)) /* verified */
- RES(R43, RES_K(100)) /* verified */
-
- NET_C(C31.1, C32.1)
- NET_C(C32.2, R42.1, R43.2, Q10.B)
- //NET_C(C32.2, R42.1, R43.2)
- NET_C(R43.1, V5)
- NET_C(R42.2, GND)
-#if 1
- RES(R63, RES_K(1)) /* */
- RES(R62, 150) /* */
-
- QBJT_EB(Q10, "2SC1815")
-
- NET_C(R62.2, GND)
- NET_C(R62.1, Q10.E)
-
- NET_C(R63.1, V5)
- NET_C(R63.2, Q10.C)
-
- CAP(C42, CAP_U(0.1))
- CAP(C47, CAP_U(4.7))
- RES(VR1, RES_K(10))
-
- NET_C(C42.1, C47.1, R62.1)
- NET_C(C42.2, GND)
- NET_C(C47.2, VR1.1)
- NET_C(VR1.2, GND)
-#endif
- /* ---------------------------------------------------------------------- */
- /* Output */
- /* ---------------------------------------------------------------------- */
-
- RES(ROUT, 1000000)
-
- //NET_C(Q10.C, ROUT.1)
- //NET_C(R43.2, ROUT.1)
- NET_C(VR1.1, ROUT.1)
-
- NET_C(GND, ROUT.2)
-
- OPTIMIZE_FRONTIER(R40.1, RES_K(22), 50)
-NETLIST_END()
#else
/****************************************************************
@@ -797,6 +560,8 @@ WRITE8_MEMBER(mario_state::mario_sh2_w)
{
#if OLD_SOUND
m_discrete->write(space, DS_SOUND1_INP, 0);
+#else
+ m_audio_snd1->write(data);
#endif
}
@@ -895,10 +660,11 @@ MACHINE_CONFIG_FRAGMENT( mario_audio )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1)
#else
MCFG_SOUND_ADD("snd_nl", NETLIST_SOUND, 48000)
- MCFG_NETLIST_SETUP(nl_mario)
+ MCFG_NETLIST_SETUP(mario)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MCFG_NETLIST_LOGIC_INPUT("snd_nl", "snd0", "SOUND0.IN", 0)
+ MCFG_NETLIST_LOGIC_INPUT("snd_nl", "snd1", "SOUND1.IN", 0)
MCFG_NETLIST_LOGIC_INPUT("snd_nl", "snd7", "SOUND7.IN", 0)
MCFG_NETLIST_INT_INPUT("snd_nl", "dac", "DAC.VAL", 0, 255)