mirror of
https://github.com/holub/mame
synced 2025-10-06 17:08:28 +03:00
Popeye now has netlist filtering and amplification. [Couriersud]
This commit is contained in:
parent
c21bc4a756
commit
b41f17c83e
@ -22,6 +22,9 @@ static NETLIST_START(base)
|
|||||||
NET_MODEL(".model 1N4148 D(Is=2.52n Rs=.568 N=1.752 Cjo=4p M=.4 tt=20n Iave=200m Vpk=75 mfg=OnSemi type=silicon)")
|
NET_MODEL(".model 1N4148 D(Is=2.52n Rs=.568 N=1.752 Cjo=4p M=.4 tt=20n Iave=200m Vpk=75 mfg=OnSemi type=silicon)")
|
||||||
NET_MODEL(".MODEL BC237B NPN(IS=1.8E-14 ISE=5.0E-14 ISC=1.72E-13 XTI=3 BF=400 BR=35.5 IKF=0.14 IKR=0.03 XTB=1.5 VAF=80 VAR=12.5 VJE=0.58 VJC=0.54 RE=0.6 RC=0.25 RB=0.56 CJE=13E-12 CJC=4E-12 XCJC=0.75 FC=0.5 NF=0.9955 NR=1.005 NE=1.46 NC=1.27 MJE=0.33 MJC=0.33 TF=0.64E-9 TR=50.72E-9 EG=1.11 KF=0 AF=1 VCEO=45V ICRATING=100M MFG=ZETEX)")
|
NET_MODEL(".MODEL BC237B NPN(IS=1.8E-14 ISE=5.0E-14 ISC=1.72E-13 XTI=3 BF=400 BR=35.5 IKF=0.14 IKR=0.03 XTB=1.5 VAF=80 VAR=12.5 VJE=0.58 VJC=0.54 RE=0.6 RC=0.25 RB=0.56 CJE=13E-12 CJC=4E-12 XCJC=0.75 FC=0.5 NF=0.9955 NR=1.005 NE=1.46 NC=1.27 MJE=0.33 MJC=0.33 TF=0.64E-9 TR=50.72E-9 EG=1.11 KF=0 AF=1 VCEO=45V ICRATING=100M MFG=ZETEX)")
|
||||||
NET_MODEL(".model BC556B PNP(IS=3.83E-14 NF=1.008 ISE=1.22E-14 NE=1.528 BF=344.4 IKF=0.08039 VAF=21.11 NR=1.005 ISC=2.85E-13 NC=1.28 BR=14.84 IKR=0.047 VAR=32.02 RB=1 IRB=1.00E-06 RBM=1 RE=0.6202 RC=0.5713 XTB=0 EG=1.11 XTI=3 CJE=1.23E-11 VJE=0.6106 MJE=0.378 TF=5.60E-10 XTF=3.414 VTF=5.23 ITF=0.1483 PTF=0 CJC=1.08E-11 VJC=0.1022 MJC=0.3563 XCJC=0.6288 TR=1.00E-32 CJS=0 VJS=0.75 MJS=0.333 FC=0.8027 Vceo=65 Icrating=100m mfg=Philips)")
|
NET_MODEL(".model BC556B PNP(IS=3.83E-14 NF=1.008 ISE=1.22E-14 NE=1.528 BF=344.4 IKF=0.08039 VAF=21.11 NR=1.005 ISC=2.85E-13 NC=1.28 BR=14.84 IKR=0.047 VAR=32.02 RB=1 IRB=1.00E-06 RBM=1 RE=0.6202 RC=0.5713 XTB=0 EG=1.11 XTI=3 CJE=1.23E-11 VJE=0.6106 MJE=0.378 TF=5.60E-10 XTF=3.414 VTF=5.23 ITF=0.1483 PTF=0 CJC=1.08E-11 VJC=0.1022 MJC=0.3563 XCJC=0.6288 TR=1.00E-32 CJS=0 VJS=0.75 MJS=0.333 FC=0.8027 Vceo=65 Icrating=100m mfg=Philips)")
|
||||||
|
NET_MODEL(".model 2SA1015 PNP(Is=295.1E-18 Xti=3 Eg=1.11 Vaf=100 Bf=110 Xtb=1.5 Br=10.45 Rc=15 Cjc=66.2p Mjc=1.054 Vjc=.75 Fc=.5 Cje=5p Mje=.3333 Vje=.75 Tr=10n Tf=1.661n VCEO=45V ICrating=150M MFG=Toshiba)")
|
||||||
|
NET_MODEL(".model 2SC1815 NPN(Is=2.04f Xti=3 Eg=1.11 Vaf=6 Bf=400 Ikf=20m Xtb=1.5 Br=3.377 Rc=1 Cjc=1p Mjc=.3333 Vjc=.75 Fc=.5 Cje=25p Mje=.3333 Vje=.75 Tr=450n Tf=20n Itf=0 Vtf=0 Xtf=0 VCEO=45V ICrating=150M MFG=Toshiba)")
|
||||||
|
|
||||||
NETLIST_END()
|
NETLIST_END()
|
||||||
|
|
||||||
|
|
||||||
|
@ -21,6 +21,92 @@ Notes:
|
|||||||
#include "sound/ay8910.h"
|
#include "sound/ay8910.h"
|
||||||
#include "sound/flt_rc.h"
|
#include "sound/flt_rc.h"
|
||||||
#include "includes/popeye.h"
|
#include "includes/popeye.h"
|
||||||
|
#include "machine/netlist.h"
|
||||||
|
#include "netlist/devices/net_lib.h"
|
||||||
|
|
||||||
|
/* This is the output stage of the audio circuit.
|
||||||
|
* It is solely an impedance changer and could be left away
|
||||||
|
*/
|
||||||
|
|
||||||
|
static NETLIST_START(nl_popeye_imp_changer)
|
||||||
|
RES(R62, 510000)
|
||||||
|
RES(R63, 100)
|
||||||
|
RES(R64, 510000)
|
||||||
|
RES(R65, 2100)
|
||||||
|
RES(R66, 330)
|
||||||
|
RES(R67, 51)
|
||||||
|
|
||||||
|
QBJT_EB(Q8, "2SC1815")
|
||||||
|
QBJT_EB(Q9, "2SA1015")
|
||||||
|
|
||||||
|
NET_C(V5, R62.1, Q8.C, R66.1)
|
||||||
|
NET_C(R62.2, R64.1, R63.1, C7.2)
|
||||||
|
NET_C(R63.2, Q8.B)
|
||||||
|
NET_C(Q8.E, R65.1, Q9.B)
|
||||||
|
NET_C(R66.2, Q9.E, R67.1)
|
||||||
|
|
||||||
|
NET_C(GND, Q9.C, R65.2, R64.2)
|
||||||
|
NETLIST_END()
|
||||||
|
|
||||||
|
static NETLIST_START(nl_popeye)
|
||||||
|
|
||||||
|
/* 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(R52, 2000)
|
||||||
|
RES(R55, 2000)
|
||||||
|
RES(R58, 2000)
|
||||||
|
RES(R53, 2000)
|
||||||
|
RES(R56, 2000)
|
||||||
|
RES(R59, 2000)
|
||||||
|
RES(R51, 20000)
|
||||||
|
RES(R57, 30000)
|
||||||
|
RES(R60, 30000)
|
||||||
|
|
||||||
|
RES(R61, 120000)
|
||||||
|
|
||||||
|
RES(ROUT, 5000)
|
||||||
|
|
||||||
|
CAP(C4, 0.047e-6)
|
||||||
|
CAP(C5, 330e-12)
|
||||||
|
CAP(C6, 330e-12)
|
||||||
|
CAP(C7, 3.3e-6)
|
||||||
|
CAP(C40, 680e-12)
|
||||||
|
|
||||||
|
NET_C(V5, R_AY1_1.1, R_AY1_2.1, R_AY1_3.1)
|
||||||
|
|
||||||
|
NET_C(R_AY1_1.2, R52.1, R53.1)
|
||||||
|
NET_C(R_AY1_2.2, R55.1, R56.1)
|
||||||
|
NET_C(R_AY1_3.2, R58.1, R59.1)
|
||||||
|
|
||||||
|
NET_C(R53.2, R51.1, C4.1)
|
||||||
|
NET_C(R56.2, R57.1, C5.1)
|
||||||
|
NET_C(R59.2, R60.1, C6.1)
|
||||||
|
|
||||||
|
NET_C(R51.2, R57.2, R60.2, R61.1, C40.1, C7.1)
|
||||||
|
|
||||||
|
NET_C(GND, R52.2, R55.2, R58.2, C4.2, C5.2, C6.2, R61.2, C40.2)
|
||||||
|
|
||||||
|
INCLUDE(nl_popeye_imp_changer)
|
||||||
|
|
||||||
|
/* output resistor (actually located in TV */
|
||||||
|
|
||||||
|
NET_C(R67.2, ROUT.1)
|
||||||
|
|
||||||
|
NET_C(GND, ROUT.2)
|
||||||
|
|
||||||
|
NETLIST_END()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
INTERRUPT_GEN_MEMBER(popeye_state::popeye_interrupt)
|
INTERRUPT_GEN_MEMBER(popeye_state::popeye_interrupt)
|
||||||
{
|
{
|
||||||
@ -371,16 +457,16 @@ static const ay8910_interface ay8910_config =
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* Does Sky Skipper have the same filtering? */
|
/* Does Sky Skipper have the same filtering? */
|
||||||
static const flt_rc_config filter_config =
|
static const ay8910_interface ay8910_nl_config =
|
||||||
{
|
{
|
||||||
FLT_RC_LOWPASS,
|
AY8910_RESISTOR_OUTPUT,
|
||||||
2000,
|
AY8910_DEFAULT_LOADS,
|
||||||
20000,
|
DEVCB_INPUT_PORT("DSW0"),
|
||||||
0,
|
DEVCB_NULL,
|
||||||
CAP_N(47)
|
DEVCB_NULL,
|
||||||
|
DEVCB_DRIVER_MEMBER(popeye_state,popeye_portB_w)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
static MACHINE_CONFIG_START( skyskipr, popeye_state )
|
static MACHINE_CONFIG_START( skyskipr, popeye_state )
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
MCFG_CPU_ADD("maincpu", Z80, XTAL_8MHz/2) /* 4 MHz */
|
MCFG_CPU_ADD("maincpu", Z80, XTAL_8MHz/2) /* 4 MHz */
|
||||||
@ -415,13 +501,23 @@ static MACHINE_CONFIG_DERIVED( popeye, skyskipr )
|
|||||||
|
|
||||||
MCFG_SOUND_MODIFY("aysnd")
|
MCFG_SOUND_MODIFY("aysnd")
|
||||||
MCFG_SOUND_ROUTES_RESET()
|
MCFG_SOUND_ROUTES_RESET()
|
||||||
MCFG_SOUND_ROUTE(0, "filter", 1.0)
|
MCFG_SOUND_CONFIG(ay8910_nl_config)
|
||||||
MCFG_SOUND_ROUTE(1, "mono", 0.40)
|
MCFG_SOUND_ROUTE_EX(0, "snd_nl", 1.0, 0)
|
||||||
MCFG_SOUND_ROUTE(2, "mono", 0.40)
|
MCFG_SOUND_ROUTE_EX(1, "snd_nl", 1.0, 1)
|
||||||
|
MCFG_SOUND_ROUTE_EX(2, "snd_nl", 1.0, 2)
|
||||||
|
|
||||||
MCFG_FILTER_RC_ADD("filter", 0)
|
/* NETLIST configuration using internal AY8910 resistor values */
|
||||||
MCFG_SOUND_CONFIG(filter_config)
|
|
||||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
|
MCFG_SOUND_ADD("snd_nl", NETLIST_SOUND, 48000)
|
||||||
|
MCFG_NETLIST_SETUP(nl_popeye)
|
||||||
|
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, "ROUT.1")
|
||||||
|
MCFG_NETLIST_ANALOG_MULT_OFFSET(30000.0, -65000.0)
|
||||||
|
|
||||||
MCFG_VIDEO_START_OVERRIDE(popeye_state,popeye)
|
MCFG_VIDEO_START_OVERRIDE(popeye_state,popeye)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
Loading…
Reference in New Issue
Block a user