converted sn76477 to use inline config. nw.

This commit is contained in:
Fabio Priuli 2014-10-16 07:18:15 +00:00
parent da877c2917
commit b3d3d02cef
25 changed files with 658 additions and 1100 deletions

View File

@ -32,7 +32,6 @@
#include "sn76477.h"
/*****************************************************************************
*
* Debugging
@ -79,54 +78,16 @@
*
* Test Mode
*
* in test mode, the interface structure
* passed in by the driver is not used.
* Instead, the values for all the inputs
* can be specified by modifing the structure
* below. Calls by the driver to the input
* setter functions are ignored. Use the
* space bar to enable/disable the chip.
* in test mode, calls by the driver to
* the input setter functions are ignored.
* Interface values can be set in device_start
* to any desired test value.
* Use the space bar to enable/disable the chip.
*
*****************************************************************************/
#define TEST_MODE 0
#if TEST_MODE
static const sn76477_interface empty_interface =
{
0, /* 4 noise_clock_res */
0, /* 5 filter_res */
0, /* 6 filter_cap */
0, /* 7 decay_res */
0, /* 8 attack_decay_cap */
0, /* 10 attack_res */
0, /* 11 amplitude_res */
0, /* 12 feedback_res */
0, /* 16 vco_voltage */
0, /* 17 vco_cap */
0, /* 18 vco_res */
0, /* 19 pitch_voltage */
0, /* 20 slf_res */
0, /* 21 slf_cap */
0, /* 23 oneshot_cap */
0, /* 24 oneshot_res */
0, /* 22 vco */
0, /* 26 mixer A */
0, /* 25 mixer B */
0, /* 27 mixer C */
0, /* 1 envelope 1 */
0, /* 28 envelope 2 */
0 /* 9 enable */
};
#define test_interface empty_interface
#endif
/*****************************************************************************
*
* Constants
@ -231,58 +192,17 @@ sn76477_device::sn76477_device(const machine_config &mconfig, const char *tag, d
m_noise_gen_count(0),
m_attack_decay_cap_voltage(0),
m_rng(0),
m_mixer_a(0),
m_mixer_b(0),
m_mixer_c(0),
m_envelope_1(0),
m_envelope_2(0),
m_channel(NULL),
m_our_sample_rate(0),
m_file(NULL)
{
}
//-------------------------------------------------
// device_config_complete - perform any
// operations now that the configuration is
// complete
//-------------------------------------------------
void sn76477_device::device_config_complete()
{
// inherit a copy of the static data
const sn76477_interface *intf = reinterpret_cast<const sn76477_interface *>(static_config());
if (intf != NULL)
#if TEST_MODE == 0
*static_cast<sn76477_interface *>(this) = *intf;
// or initialize to defaults if none provided
else
{
m_intf_noise_clock_res = 0.0;
m_intf_noise_filter_res = 0.0;
m_intf_noise_filter_cap = 0.0;
m_intf_decay_res = 0.0;
m_intf_attack_decay_cap = 0.0;
m_intf_attack_res = 0.0;
m_intf_amplitude_res = 0.0;
m_intf_feedback_res = 0.0;
m_intf_vco_voltage = 0.0;
m_intf_vco_cap = 0.0;
m_intf_vco_res = 0.0;
m_intf_pitch_voltage = 0.0;
m_intf_slf_res = 0.0;
m_intf_slf_cap = 0.0;
m_intf_one_shot_cap = 0.0;
m_intf_one_shot_res = 0.0;
m_intf_vco = 0;
m_intf_mixer_a = 0;
m_intf_mixer_b = 0;
m_intf_mixer_c = 0;
m_intf_envelope_1 = 0;
m_intf_envelope_2 = 0;
m_intf_enable = 0;
}
#else
intf = &test_interface;
#endif
}
//-------------------------------------------------
// device_start - device-specific startup
//-------------------------------------------------
@ -302,30 +222,12 @@ void sn76477_device::device_start()
intialize_noise();
/* set up interface values */
_SN76477_enable_w(m_intf_enable);
_SN76477_vco_w(m_intf_vco);
_SN76477_mixer_a_w(m_intf_mixer_a);
_SN76477_mixer_b_w(m_intf_mixer_b);
_SN76477_mixer_c_w(m_intf_mixer_c);
_SN76477_envelope_1_w(m_intf_envelope_1);
_SN76477_envelope_2_w(m_intf_envelope_2);
_SN76477_one_shot_res_w(m_intf_one_shot_res);
_SN76477_one_shot_cap_w(m_intf_one_shot_cap);
_SN76477_slf_res_w(m_intf_slf_res);
_SN76477_slf_cap_w(m_intf_slf_cap);
_SN76477_vco_res_w(m_intf_vco_res);
_SN76477_vco_cap_w(m_intf_vco_cap);
_SN76477_vco_voltage_w(m_intf_vco_voltage);
_SN76477_noise_clock_res_w(m_intf_noise_clock_res);
_SN76477_noise_filter_res_w(m_intf_noise_filter_res);
_SN76477_noise_filter_cap_w(m_intf_noise_filter_cap);
_SN76477_decay_res_w(m_intf_decay_res);
_SN76477_attack_res_w(m_intf_attack_res);
_SN76477_attack_decay_cap_w(m_intf_attack_decay_cap);
_SN76477_amplitude_res_w(m_intf_amplitude_res);
_SN76477_feedback_res_w(m_intf_feedback_res);
_SN76477_pitch_voltage_w(m_intf_pitch_voltage);
// set up mixer and envelope modes, based on interface values
_SN76477_mixer_a_w(m_mixer_a);
_SN76477_mixer_b_w(m_mixer_b);
_SN76477_mixer_c_w(m_mixer_c);
_SN76477_envelope_1_w(m_envelope_1);
_SN76477_envelope_2_w(m_envelope_2);
m_one_shot_cap_voltage = ONE_SHOT_CAP_VOLTAGE_MIN;
m_slf_cap_voltage = SLF_CAP_VOLTAGE_MIN;

View File

@ -41,48 +41,112 @@
#include "machine/rescap.h"
/*****************************************************************************
*
* Interface definition
*
*****************************************************************************/
struct sn76477_interface
{
double m_intf_noise_clock_res;
double m_intf_noise_filter_res;
double m_intf_noise_filter_cap;
double m_intf_decay_res;
double m_intf_attack_decay_cap;
double m_intf_attack_res;
double m_intf_amplitude_res;
double m_intf_feedback_res;
double m_intf_vco_voltage;
double m_intf_vco_cap;
double m_intf_vco_res;
double m_intf_pitch_voltage;
double m_intf_slf_res;
double m_intf_slf_cap;
double m_intf_one_shot_cap;
double m_intf_one_shot_res;
UINT32 m_intf_vco;
UINT32 m_intf_mixer_a;
UINT32 m_intf_mixer_b;
UINT32 m_intf_mixer_c;
UINT32 m_intf_envelope_1;
UINT32 m_intf_envelope_2;
UINT32 m_intf_enable;
};
#define MCFG_SN76477_NOISE_PARAMS(_clock_res, _filter_res, _filter_cap) \
sn76477_device::set_noise_params(*device, _clock_res, _filter_res, _filter_cap);
#define MCFG_SN76477_DECAY_RES(_decay_res) \
sn76477_device::set_decay_res(*device, _decay_res);
#define MCFG_SN76477_ATTACK_PARAMS(_decay_cap, _res) \
sn76477_device::set_attack_params(*device, _decay_cap, _res);
#define MCFG_SN76477_AMP_RES(_amp_res) \
sn76477_device::set_amp_res(*device, _amp_res);
#define MCFG_SN76477_FEEDBACK_RES(_feedback_res) \
sn76477_device::set_feedack_res(*device, _feedback_res);
#define MCFG_SN76477_VCO_PARAMS(_volt, _cap, _res) \
sn76477_device::set_vco_params(*device, _volt, _cap, _res);
#define MCFG_SN76477_PITCH_VOLTAGE(_volt) \
sn76477_device::set_pitch_voltage(*device, _volt);
#define MCFG_SN76477_SLF_PARAMS(_cap, _res) \
sn76477_device::set_slf_params(*device, _cap, _res);
#define MCFG_SN76477_ONESHOT_PARAMS(_cap, _res) \
sn76477_device::set_oneshot_params(*device, _cap, _res);
#define MCFG_SN76477_VCO_MODE(_mode) \
sn76477_device::set_vco_mode(*device, _mode);
#define MCFG_SN76477_MIXER_PARAMS(_a, _b, _c) \
sn76477_device::set_mixer_params(*device, _a, _b, _c);
#define MCFG_SN76477_ENVELOPE_PARAMS(_env1, _env2) \
sn76477_device::set_envelope_params(*device, _env1, _env2);
#define MCFG_SN76477_ENABLE(_enable) \
sn76477_device::set_enable(*device, _enable);
class sn76477_device : public device_t,
public device_sound_interface,
public sn76477_interface
public device_sound_interface
{
public:
sn76477_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
~sn76477_device() {}
static void set_noise_params(device_t &device, double clock_res, double filter_res, double filter_cap)
{
sn76477_device &dev = downcast<sn76477_device &>(device);
dev.m_noise_clock_res = clock_res;
dev.m_noise_filter_res = filter_res;
dev.m_noise_filter_cap = filter_cap;
}
static void set_decay_res(device_t &device, double decay_res) { downcast<sn76477_device &>(device).m_decay_res = decay_res; }
static void set_attack_params(device_t &device, double decay_cap, double res)
{
sn76477_device &dev = downcast<sn76477_device &>(device);
dev.m_attack_decay_cap = decay_cap;
dev.m_attack_res = res;
}
static void set_amp_res(device_t &device, double amp_res) { downcast<sn76477_device &>(device).m_amplitude_res = amp_res; }
static void set_feedack_res(device_t &device, double feedback_res) { downcast<sn76477_device &>(device).m_feedback_res = feedback_res; }
static void set_vco_params(device_t &device, double volt, double cap, double res)
{
sn76477_device &dev = downcast<sn76477_device &>(device);
dev.m_vco_voltage = volt;
dev.m_vco_cap = cap;
dev.m_vco_res = res;
}
static void set_pitch_voltage(device_t &device, double volt) { downcast<sn76477_device &>(device).m_pitch_voltage = volt; }
static void set_slf_params(device_t &device, double cap, double res)
{
sn76477_device &dev = downcast<sn76477_device &>(device);
dev.m_slf_cap = cap;
dev.m_slf_res = res;
}
static void set_oneshot_params(device_t &device, double cap, double res)
{
sn76477_device &dev = downcast<sn76477_device &>(device);
dev.m_one_shot_cap = cap;
dev.m_one_shot_res = res;
}
static void set_vco_mode(device_t &device, UINT32 mode) { downcast<sn76477_device &>(device).m_vco_mode = mode; }
static void set_mixer_params(device_t &device, UINT32 a, UINT32 b, UINT32 c)
{
sn76477_device &dev = downcast<sn76477_device &>(device);
dev.m_mixer_a = a;
dev.m_mixer_b = b;
dev.m_mixer_c = c;
}
static void set_envelope_params(device_t &device, UINT32 env1, UINT32 env2)
{
sn76477_device &dev = downcast<sn76477_device &>(device);
dev.m_envelope_1 = env1;
dev.m_envelope_2 = env2;
}
static void set_enable(device_t &device, UINT32 enable) { downcast<sn76477_device &>(device).m_enable = enable; }
/* these functions take 0 or 1 as a logic input */
WRITE_LINE_MEMBER( enable_w ); /* active LO, 0 = enabled, 1 = disabled */
WRITE_LINE_MEMBER( mixer_a_w );
@ -125,7 +189,6 @@ public:
protected:
// device-level overrides
virtual void device_config_complete();
virtual void device_start();
virtual void device_stop();
@ -188,6 +251,13 @@ private:
UINT32 m_rng; /* current value of the random number generator */
// configured by the drivers and used to setup m_mixer_mode & m_envelope_mode at start
UINT32 m_mixer_a;
UINT32 m_mixer_b;
UINT32 m_mixer_c;
UINT32 m_envelope_1;
UINT32 m_envelope_2;
/* others */
sound_stream *m_channel; /* returned by stream_create() */
int m_our_sample_rate; /* from machine.sample_rate() */

View File

@ -761,32 +761,6 @@ WRITE8_MEMBER(_8080bw_state::polaris_sh_port_3_w)
#define SCHASER_4V SCHASER_HSYNC /2 /4
#define SCHASER_8V SCHASER_HSYNC /2 /8
const sn76477_interface schaser_sn76477_interface =
{
RES_K( 47), /* 4 noise_res */
RES_K(330), /* 5 filter_res */
CAP_P(470), /* 6 filter_cap */
RES_M(2.2), /* 7 decay_res */
CAP_U(1.0), /* 8 attack_decay_cap */
RES_K(4.7), /* 10 attack_res */
0, /* 11 amplitude_res (variable) */
RES_K(33), /* 12 feedback_res */
0, /* 16 vco_voltage */
CAP_U(0.1), /* 17 vco_cap */
RES_K(39), /* 18 vco_res */
5.0, /* 19 pitch_voltage */
RES_K(120), /* 20 slf_res */
CAP_U(1.0), /* 21 slf_cap */
CAP_U(0.1), /* 23 oneshot_cap */
RES_K(220), /* 24 oneshot_res */
1, /* 22 vco */
0, /* 26 mixer A */
0, /* 25 mixer B */
0, /* 27 mixer C */
1, /* 1 envelope 1 */
0, /* 28 envelope 2 */
1 /* 9 enable (variable) */
};
/* Nodes - Inputs */
#define SCHASER_DOT_EN NODE_01
@ -1068,33 +1042,6 @@ WRITE8_MEMBER(_8080bw_state::rollingc_sh_port_w)
/* Correct samples not available */
/*****************************************/
const sn76477_interface lupin3_sn76477_interface =
{
0, /* 4 noise_res (N/C) */
0, /* 5 filter_res (N/C) */
0, /* 6 filter_cap (N/C) */
0, /* 7 decay_res (N/C) */
0, /* 8 attack_decay_cap (N/C) */
RES_K(100), /* 10 attack_res */
RES_K(56), /* 11 amplitude_res */
RES_K(10), /* 12 feedback_res */
0, /* 16 vco_voltage (N/C) */
CAP_U(0.1), /* 17 vco_cap */
RES_K(8.2), /* 18 vco_res */
5.0, /* 19 pitch_voltage */
RES_K(120), /* 20 slf_res */
CAP_U(1.0), /* 21 slf_cap */
0, /* 23 oneshot_cap (N/C) */
0, /* 24 oneshot_res (N/C) */
1, /* 22 vco */
0, /* 26 mixer A */
0, /* 25 mixer B */
0, /* 27 mixer C */
1, /* 1 envelope 1 */
0, /* 28 envelope 2 */
1 /* 9 enable (variable) */
};
const char *const lupin3_sample_names[] =
{
"*lupin3",

View File

@ -192,37 +192,21 @@ WRITE8_MEMBER(astrof_state::tomahawk_audio_w)
}
static const sn76477_interface tomahawk_sn76477_interface =
{
0, /* 4 noise_res (N/C) */
0, /* 5 filter_res (N/C) */
0, /* 6 filter_cap (N/C) */
0, /* 7 decay_res (N/C) */
0, /* 8 attack_decay_cap (N/C) */
0, /* 10 attack_res (N/C) */
RES_K(47), /* 11 amplitude_res */
RES_K(47), /* 12 feedback_res */
0, /* 16 vco_voltage (N/C) */
CAP_U(0.033), /* 17 vco_cap */
RES_K(33), /* 18 vco_res */
5.0, /* 19 pitch_voltage */
RES_K(47), /* 20 slf_res */
CAP_U(2.2), /* 21 slf_cap */
0, /* 23 oneshot_cap (N/C) */
0, /* 24 oneshot_res (N/C) */
1, /* 22 vco */
0, /* 26 mixer A */
0, /* 25 mixer B */
0, /* 27 mixer C */
0, /* 1 envelope 1 */
0, /* 28 envelope 2 */
1 /* 9 enable (variable) */
};
MACHINE_CONFIG_FRAGMENT( tomahawk_audio )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("snsnd", SN76477, 0)
MCFG_SOUND_CONFIG(tomahawk_sn76477_interface)
MCFG_SN76477_NOISE_PARAMS(0, 0, 0) // noise + filter: N/C
MCFG_SN76477_DECAY_RES(0) // decay_res N/C
MCFG_SN76477_ATTACK_PARAMS(0, 0) // attack_decay_cap + attack_res: N/C
MCFG_SN76477_AMP_RES(RES_K(47)) // amplitude_res
MCFG_SN76477_FEEDBACK_RES(RES_K(47)) // feedback_res
MCFG_SN76477_VCO_PARAMS(0, CAP_U(0.033), RES_K(33)) // VCO volt + cap + res
MCFG_SN76477_PITCH_VOLTAGE(5.0) // pitch_voltage
MCFG_SN76477_SLF_PARAMS(CAP_U(2.2), RES_K(47)) // slf caps + res
MCFG_SN76477_ONESHOT_PARAMS(0, 0) // oneshot caps + res: N/C
MCFG_SN76477_VCO_MODE(1) // VCO mode
MCFG_SN76477_MIXER_PARAMS(0, 0, 0) // mixer A, B, C
MCFG_SN76477_ENVELOPE_PARAMS(0, 0) // envelope 1, 2
MCFG_SN76477_ENABLE(1) // enable
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END

View File

@ -135,42 +135,24 @@ static DISCRETE_SOUND_START(crbaloon)
DISCRETE_SOUND_END
static const sn76477_interface crbaloon_sn76477_interface =
{
RES_K( 47), /* 4 noise_res */
RES_K(330), /* 5 filter_res */
CAP_P(470), /* 6 filter_cap */
RES_K(220), /* 7 decay_res */
CAP_U(1.0), /* 8 attack_decay_cap */
RES_K(4.7), /* 10 attack_res */
RES_M( 1), /* 11 amplitude_res */
RES_K(200), /* 12 feedback_res */
5.0, /* 16 vco_voltage */
CAP_P(470), /* 17 vco_cap */
RES_K(330), /* 18 vco_res */
5.0, /* 19 pitch_voltage */
RES_K( 20), /* 20 slf_res (variable) */
CAP_P(420), /* 21 slf_cap */
CAP_U(1.0), /* 23 oneshot_cap */
RES_K( 47), /* 24 oneshot_res */
0, /* 22 vco */
0, /* 26 mixer A */
0, /* 25 mixer B (variable) */
1, /* 27 mixer C */
1, /* 1 envelope 1 */
0, /* 28 envelope 2 */
0 /* 9 enable (variable) */
};
MACHINE_CONFIG_FRAGMENT( crbaloon_audio )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("snsnd", SN76477, 0)
MCFG_SOUND_CONFIG(crbaloon_sn76477_interface)
MCFG_SN76477_NOISE_PARAMS(RES_K(47), RES_K(330), CAP_P(470)) // noise + filter
MCFG_SN76477_DECAY_RES(RES_K(220)) // decay_res
MCFG_SN76477_ATTACK_PARAMS(CAP_U(1.0), RES_K(4.7)) // attack_decay_cap + attack_res
MCFG_SN76477_AMP_RES(RES_M(1)) // amplitude_res
MCFG_SN76477_FEEDBACK_RES(RES_K(200)) // feedback_res
MCFG_SN76477_VCO_PARAMS(5.0, CAP_P(470), RES_K(330)) // VCO volt + cap + res
MCFG_SN76477_PITCH_VOLTAGE(5.0) // pitch_voltage
MCFG_SN76477_SLF_PARAMS(CAP_P(420), RES_K(20)) // slf caps + res
MCFG_SN76477_ONESHOT_PARAMS(CAP_U(1.0), RES_K(47)) // oneshot caps + res
MCFG_SN76477_VCO_MODE(0) // VCO mode
MCFG_SN76477_MIXER_PARAMS(0, 0, 1) // mixer A, B, C
MCFG_SN76477_ENVELOPE_PARAMS(1, 0) // envelope 1, 2
MCFG_SN76477_ENABLE(0) // enable
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 2.0)
MCFG_SOUND_ADD("discrete", DISCRETE, 0)

View File

@ -2708,34 +2708,6 @@ WRITE8_MEMBER(mw8080bw_state::dogpatch_audio_w)
* Apr 2007, D.R.
*************************************/
static const sn76477_interface spcenctr_sn76477_interface =
{
0, /* 4 noise_res (N/C) */
0, /* 5 filter_res (N/C) */
0, /* 6 filter_cap (N/C) */
0, /* 7 decay_res (N/C) */
0, /* 8 attack_decay_cap (N/C) */
RES_K(100), /* 10 attack_res */
RES_K(56), /* 11 amplitude_res */
RES_K(10), /* 12 feedback_res */
0, /* 16 vco_voltage (N/C) */
CAP_U(0.047), /* 17 vco_cap */
RES_K(56), /* 18 vco_res */
5.0, /* 19 pitch_voltage */
RES_K(150), /* 20 slf_res */
CAP_U(1.0), /* 21 slf_cap */
0, /* 23 oneshot_cap (N/C) */
0, /* 24 oneshot_res (N/C) */
1, /* 22 vco */
0, /* 26 mixer A */
0, /* 25 mixer B */
0, /* 27 mixer C */
1, /* 1 envelope 1 */
0, /* 28 envelope 2 */
1 /* 9 enable (variable) */
};
/* nodes - inputs */
#define SPCENCTR_ENEMY_SHIP_SHOT_EN NODE_01
#define SPCENCTR_PLAYER_SHOT_EN NODE_02
@ -3210,7 +3182,19 @@ MACHINE_CONFIG_FRAGMENT( spcenctr_audio )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("snsnd", SN76477, 0)
MCFG_SOUND_CONFIG(spcenctr_sn76477_interface)
MCFG_SN76477_NOISE_PARAMS(0, 0, 0) // noise + filter: N/C
MCFG_SN76477_DECAY_RES(0) // decay_res: N/C
MCFG_SN76477_ATTACK_PARAMS(0, RES_K(100)) // attack_decay_cap + attack_res
MCFG_SN76477_AMP_RES(RES_K(56)) // amplitude_res
MCFG_SN76477_FEEDBACK_RES(RES_K(10)) // feedback_res
MCFG_SN76477_VCO_PARAMS(0, CAP_U(0.047), RES_K(56)) // VCO volt + cap + res
MCFG_SN76477_PITCH_VOLTAGE(5.0) // pitch_voltage
MCFG_SN76477_SLF_PARAMS(CAP_U(1.0), RES_K(150)) // slf caps + res
MCFG_SN76477_ONESHOT_PARAMS(0, 0) // oneshot caps + res: N/C
MCFG_SN76477_VCO_MODE(1) // VCO mode
MCFG_SN76477_MIXER_PARAMS(0, 0, 0) // mixer A, B, C
MCFG_SN76477_ENVELOPE_PARAMS(1, 0) // envelope 1, 2
MCFG_SN76477_ENABLE(1) // enable
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20)
MCFG_SOUND_ADD("discrete", DISCRETE, 0)
@ -3508,35 +3492,6 @@ WRITE8_MEMBER(mw8080bw_state::bowler_audio_6_w)
*
*************************************/
static const sn76477_interface invaders_sn76477_interface =
{
0, /* 4 noise_res (N/C) */
0, /* 5 filter_res (N/C) */
0, /* 6 filter_cap (N/C) */
0, /* 7 decay_res (N/C) */
0, /* 8 attack_decay_cap (N/C) */
RES_K(100), /* 10 attack_res */
RES_K(56), /* 11 amplitude_res */
RES_K(10), /* 12 feedback_res */
0, /* 16 vco_voltage (N/C) */
CAP_U(0.1), /* 17 vco_cap */
RES_K(8.2), /* 18 vco_res */
5.0, /* 19 pitch_voltage */
RES_K(120), /* 20 slf_res */
CAP_U(1.0), /* 21 slf_cap */
0, /* 23 oneshot_cap (N/C) */
0, /* 24 oneshot_res (N/C) */
1, /* 22 vco */
0, /* 26 mixer A */
0, /* 25 mixer B */
0, /* 27 mixer C */
1, /* 1 envelope 1 */
0, /* 28 envelope 2 */
1 /* 9 enable (variable) */
};
static const char *const invaders_sample_names[] =
{
"*invaders",
@ -3560,7 +3515,19 @@ MACHINE_CONFIG_FRAGMENT( invaders_samples_audio )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("snsnd", SN76477, 0)
MCFG_SOUND_CONFIG(invaders_sn76477_interface)
MCFG_SN76477_NOISE_PARAMS(0, 0, 0) // noise + filter: N/C
MCFG_SN76477_DECAY_RES(0) // decay_res: N/C
MCFG_SN76477_ATTACK_PARAMS(0, RES_K(100)) // attack_decay_cap + attack_res
MCFG_SN76477_AMP_RES(RES_K(56)) // amplitude_res
MCFG_SN76477_FEEDBACK_RES(RES_K(10)) // feedback_res
MCFG_SN76477_VCO_PARAMS(0, CAP_U(0.1), RES_K(8.2)) // VCO volt + cap + res
MCFG_SN76477_PITCH_VOLTAGE(5.0) // pitch_voltage
MCFG_SN76477_SLF_PARAMS(CAP_U(1.0), RES_K(120)) // slf caps + res
MCFG_SN76477_ONESHOT_PARAMS(0, 0) // oneshot caps + res: N/C
MCFG_SN76477_VCO_MODE(1) // VCO mode
MCFG_SN76477_MIXER_PARAMS(0, 0, 0) // mixer A, B, C
MCFG_SN76477_ENVELOPE_PARAMS(1, 0) // envelope 1, 2
MCFG_SN76477_ENABLE(1) // enable
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
MCFG_SOUND_ADD("samples", SAMPLES, 0)
@ -4128,7 +4095,19 @@ MACHINE_CONFIG_FRAGMENT( invaders_audio )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("snsnd", SN76477, 0)
MCFG_SOUND_CONFIG(invaders_sn76477_interface)
MCFG_SN76477_NOISE_PARAMS(0, 0, 0) // noise + filter: N/C
MCFG_SN76477_DECAY_RES(0) // decay_res: N/C
MCFG_SN76477_ATTACK_PARAMS(0, RES_K(100)) // attack_decay_cap + attack_res
MCFG_SN76477_AMP_RES(RES_K(56)) // amplitude_res
MCFG_SN76477_FEEDBACK_RES(RES_K(10)) // feedback_res
MCFG_SN76477_VCO_PARAMS(0, CAP_U(0.1), RES_K(8.2)) // VCO volt + cap + res
MCFG_SN76477_PITCH_VOLTAGE(5.0) // pitch_voltage
MCFG_SN76477_SLF_PARAMS(CAP_U(1.0), RES_K(120)) // slf caps + res
MCFG_SN76477_ONESHOT_PARAMS(0, 0) // oneshot caps + res: N/C
MCFG_SN76477_VCO_MODE(1) // VCO mode
MCFG_SN76477_MIXER_PARAMS(0, 0, 0) // mixer A, B, C
MCFG_SN76477_ENVELOPE_PARAMS(1, 0) // envelope 1, 2
MCFG_SN76477_ENABLE(1) // enable
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
MCFG_SOUND_ADD("discrete", DISCRETE, 0)
@ -4564,62 +4543,6 @@ WRITE8_MEMBER(mw8080bw_state::blueshrk_audio_w)
*
*************************************/
static const sn76477_interface invad2ct_p1_sn76477_interface =
{
0, /* 4 noise_res (N/C) */
0, /* 5 filter_res (N/C) */
0, /* 6 filter_cap (N/C) */
0, /* 7 decay_res (N/C) */
0, /* 8 attack_decay_cap (N/C) */
RES_K(100), /* 10 attack_res */
RES_K(56), /* 11 amplitude_res */
RES_K(10), /* 12 feedback_res */
0, /* 16 vco_voltage (N/C) */
CAP_U(0.1), /* 17 vco_cap */
RES_K(8.2), /* 18 vco_res */
5.0, /* 19 pitch_voltage */
RES_K(120), /* 20 slf_res */
CAP_U(1.0), /* 21 slf_cap */
0, /* 23 oneshot_cap (N/C) */
0, /* 24 oneshot_res (N/C) */
1, /* 22 vco */
0, /* 26 mixer A */
0, /* 25 mixer B */
0, /* 27 mixer C */
1, /* 1 envelope 1 */
0, /* 28 envelope 2 */
1 /* 9 enable (variable) */
};
static const sn76477_interface invad2ct_p2_sn76477_interface =
{
0, /* 4 noise_res (N/C) */
0, /* 5 filter_res (N/C) */
0, /* 6 filter_cap (N/C) */
0, /* 7 decay_res (N/C) */
0, /* 8 attack_decay_cap (N/C) */
RES_K(100), /* 10 attack_res */
RES_K(56), /* 11 amplitude_res */
RES_K(10), /* 12 feedback_res */
0, /* 16 vco_voltage (N/C) */
CAP_U(0.047), /* 17 vco_cap */
RES_K(39), /* 18 vco_res */
5.0, /* 19 pitch_voltage */
RES_K(120), /* 20 slf_res */
CAP_U(1.0), /* 21 slf_cap */
0, /* 23 oneshot_cap (N/C) */
0, /* 24 oneshot_res (N/C) */
1, /* 22 vco */
0, /* 26 mixer A */
0, /* 25 mixer B */
0, /* 27 mixer C */
1, /* 1 envelope 1 */
0, /* 28 envelope 2 */
1 /* 9 enable (variable) */
};
static const discrete_op_amp_1sht_info invad2ct_invader_hit_1sht =
{
DISC_OP_AMP_1SHT_1 | DISC_OP_AMP_IS_NORTON,
@ -4757,11 +4680,35 @@ MACHINE_CONFIG_FRAGMENT( invad2ct_audio )
MCFG_SOUND_ROUTE(1, "spk2", 0.5)
MCFG_SOUND_ADD("sn1", SN76477, 0)
MCFG_SOUND_CONFIG(invad2ct_p1_sn76477_interface)
MCFG_SN76477_NOISE_PARAMS(0, 0, 0) // noise + filter: N/C
MCFG_SN76477_DECAY_RES(0) // decay_res: N/C
MCFG_SN76477_ATTACK_PARAMS(0, RES_K(100)) // attack_decay_cap + attack_res
MCFG_SN76477_AMP_RES(RES_K(56)) // amplitude_res
MCFG_SN76477_FEEDBACK_RES(RES_K(10)) // feedback_res
MCFG_SN76477_VCO_PARAMS(0, CAP_U(0.1), RES_K(8.2)) // VCO volt + cap + res
MCFG_SN76477_PITCH_VOLTAGE(5.0) // pitch_voltage
MCFG_SN76477_SLF_PARAMS(CAP_U(1.0), RES_K(120)) // slf caps + res
MCFG_SN76477_ONESHOT_PARAMS(0, 0) // oneshot caps + res: N/C
MCFG_SN76477_VCO_MODE(1) // VCO mode
MCFG_SN76477_MIXER_PARAMS(0, 0, 0) // mixer A, B, C
MCFG_SN76477_ENVELOPE_PARAMS(1, 0) // envelope 1, 2
MCFG_SN76477_ENABLE(1) // enable
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "spk1", 0.3)
MCFG_SOUND_ADD("sn2", SN76477, 0)
MCFG_SOUND_CONFIG(invad2ct_p2_sn76477_interface)
MCFG_SN76477_NOISE_PARAMS(0, 0, 0) // noise + filter: N/C
MCFG_SN76477_DECAY_RES(0) // decay_res: N/C
MCFG_SN76477_ATTACK_PARAMS(0, RES_K(100)) // attack_decay_cap + attack_res
MCFG_SN76477_AMP_RES(RES_K(56)) // amplitude_res
MCFG_SN76477_FEEDBACK_RES(RES_K(10)) // feedback_res
MCFG_SN76477_VCO_PARAMS(0, CAP_U(0.047), RES_K(39)) // VCO volt + cap + res
MCFG_SN76477_PITCH_VOLTAGE(5.0) // pitch_voltage
MCFG_SN76477_SLF_PARAMS(CAP_U(1.0), RES_K(120)) // slf caps + res
MCFG_SN76477_ONESHOT_PARAMS(0, 0) // oneshot caps + res: N/C
MCFG_SN76477_VCO_MODE(1) // VCO mode
MCFG_SN76477_MIXER_PARAMS(0, 0, 0) // mixer A, B, C
MCFG_SN76477_ENVELOPE_PARAMS(1, 0) // envelope 1, 2
MCFG_SN76477_ENABLE(1) // enable
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "spk2", 0.3)
MACHINE_CONFIG_END

View File

@ -10,61 +10,6 @@
static const double ATTACK_RATE = 10e-6 * 500;
static const double DECAY_RATE = 10e-6 * 16000;
static const sn76477_interface sheriff_sn76477_interface =
{
RES_K(36) , /* 04 */
RES_K(100) , /* 05 */
CAP_N(1) , /* 06 */
RES_K(620) , /* 07 */
CAP_U(1) , /* 08 */
RES_K(20) , /* 10 */
RES_K(150) , /* 11 */
RES_K(47) , /* 12 */
0 , /* 16 */
CAP_N(1) , /* 17 */
RES_M(1.5) , /* 18 */
0 , /* 19 */
RES_M(1.5) , /* 20 */
CAP_N(47) , /* 21 */
CAP_N(47) , /* 23 */
RES_K(560) , /* 24 */
0, /* 22 vco */
0, /* 26 mixer A */
0, /* 25 mixer B */
0, /* 27 mixer C */
1, /* 1 envelope 1 */
0, /* 28 envelope 2 */
1 /* 9 enable */
};
static const sn76477_interface spacefev_sn76477_interface =
{
RES_K(36) , /* 04 */
RES_K(150) , /* 05 */
CAP_N(1) , /* 06 */
RES_M(1) , /* 07 */
CAP_U(1) , /* 08 */
RES_K(20) , /* 10 */
RES_K(150) , /* 11 */
RES_K(47) , /* 12 */
0 , /* 16 */
CAP_N(1) , /* 17 */
RES_M(1.5) , /* 18 */
0 , /* 19 */
RES_M(1) , /* 20 */
CAP_N(47) , /* 21 */
CAP_N(47) , /* 23 */
RES_K(820) , /* 24 */
0, /* 22 vco */
0, /* 26 mixer A */
0, /* 25 mixer B */
0, /* 27 mixer C */
1, /* 1 envelope 1 */
0, /* 28 envelope 2 */
1 /* 9 enable */
};
void n8080_state::spacefev_update_SN76477_status()
{
@ -564,7 +509,19 @@ MACHINE_CONFIG_FRAGMENT( spacefev_sound )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MCFG_SOUND_ADD("snsnd", SN76477, 0)
MCFG_SOUND_CONFIG(spacefev_sn76477_interface)
MCFG_SN76477_NOISE_PARAMS(RES_K(36), RES_K(150), CAP_N(1)) // noise + filter
MCFG_SN76477_DECAY_RES(RES_M(1)) // decay_res
MCFG_SN76477_ATTACK_PARAMS(CAP_U(1.0), RES_K(20)) // attack_decay_cap + attack_res
MCFG_SN76477_AMP_RES(RES_K(150)) // amplitude_res
MCFG_SN76477_FEEDBACK_RES(RES_K(47)) // feedback_res
MCFG_SN76477_VCO_PARAMS(0, CAP_N(1), RES_M(1.5)) // VCO volt + cap + res
MCFG_SN76477_PITCH_VOLTAGE(0) // pitch_voltage
MCFG_SN76477_SLF_PARAMS(CAP_N(47), RES_M(1)) // slf caps + res
MCFG_SN76477_ONESHOT_PARAMS(CAP_N(47), RES_K(820)) // oneshot caps + res
MCFG_SN76477_VCO_MODE(0) // VCO mode
MCFG_SN76477_MIXER_PARAMS(0, 0, 0) // mixer A, B, C
MCFG_SN76477_ENVELOPE_PARAMS(1, 0) // envelope 1, 2
MCFG_SN76477_ENABLE(1) // enable
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.35)
MACHINE_CONFIG_END
@ -586,7 +543,19 @@ MACHINE_CONFIG_FRAGMENT( sheriff_sound )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MCFG_SOUND_ADD("snsnd", SN76477, 0)
MCFG_SOUND_CONFIG(sheriff_sn76477_interface)
MCFG_SN76477_NOISE_PARAMS(RES_K(36), RES_K(100), CAP_N(1)) // noise + filter
MCFG_SN76477_DECAY_RES(RES_K(620)) // decay_res
MCFG_SN76477_ATTACK_PARAMS(CAP_U(1.0), RES_K(20)) // attack_decay_cap + attack_res
MCFG_SN76477_AMP_RES(RES_K(150)) // amplitude_res
MCFG_SN76477_FEEDBACK_RES(RES_K(47)) // feedback_res
MCFG_SN76477_VCO_PARAMS(0, CAP_N(1), RES_M(1.5)) // VCO volt + cap + res
MCFG_SN76477_PITCH_VOLTAGE(0) // pitch_voltage
MCFG_SN76477_SLF_PARAMS(CAP_N(47), RES_M(1.5)) // slf caps + res
MCFG_SN76477_ONESHOT_PARAMS(CAP_N(47), RES_K(560)) // oneshot caps + res
MCFG_SN76477_VCO_MODE(0) // VCO mode
MCFG_SN76477_MIXER_PARAMS(0, 0, 0) // mixer A, B, C
MCFG_SN76477_ENVELOPE_PARAMS(1, 0) // envelope 1, 2
MCFG_SN76477_ENABLE(1) // enable
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.35)
MACHINE_CONFIG_END

View File

@ -92,212 +92,6 @@ const char *const fantasy_sample_names[] =
};
const sn76477_interface sasuke_sn76477_intf_1 =
{
RES_K(470), /* 4 noise_res */
RES_K(150), /* 5 filter_res */
CAP_P(4700), /* 6 filter_cap */
RES_K(22), /* 7 decay_res */
CAP_U(10), /* 8 attack_decay_cap */
RES_K(10), /* 10 attack_res */
RES_K(100), /* 11 amplitude_res */
RES_K(47), /* 12 feedback_res */
0 /* NC */, /* 16 vco_voltage */
0 /* NC */, /* 17 vco_cap */
0 /* NC */, /* 18 vco_res */
0 /* NC */, /* 19 pitch_voltage */
RES_K(10), /* 20 slf_res */
0 /* NC */, /* 21 slf_cap */
CAP_U(2.2), /* 23 oneshot_cap */
RES_K(100), /* 24 oneshot_res */
0, /* 22 vco */
0, /* 26 mixer A */
1, /* 25 mixer B */
0, /* 27 mixer C */
1, /* 1 envelope 1 */
0, /* 28 envelope 2 */
1 /* 9 enable (variable) */
// ic48 GND: 2,22,26,27,28 +5V: 1,15,25
};
const sn76477_interface sasuke_sn76477_intf_2 =
{
RES_K(340), /* 4 noise_res */
RES_K(47), /* 5 filter_res */
CAP_P(100), /* 6 filter_cap */
RES_K(470), /* 7 decay_res */
CAP_U(4.7), /* 8 attack_decay_cap */
RES_K(10), /* 10 attack_res */
RES_K(100), /* 11 amplitude_res */
RES_K(47), /* 12 feedback_res */
0 /* NC */, /* 16 vco_voltage */
CAP_P(220), /* 17 vco_cap */
RES_K(1000), /* 18 vco_res */
0 /* NC */, /* 19 pitch_voltage */
RES_K(220), /* 20 slf_res */
0 /* NC */, /* 21 slf_cap */
CAP_U(22), /* 23 oneshot_cap */
RES_K(47), /* 24 oneshot_res */
1, /* 22 vco */
0, /* 26 mixer A */
1, /* 25 mixer B */
0, /* 27 mixer C */
1, /* 1 envelope 1 */
1, /* 28 envelope 2 */
1 /* 9 enable (variable) */
// ic51 GND: 2,26,27 +5V: 1,15,22,25,28
};
const sn76477_interface sasuke_sn76477_intf_3 =
{
RES_K(330), /* 4 noise_res */
RES_K(47), /* 5 filter_res */
CAP_P(100), /* 6 filter_cap */
RES_K(1), /* 7 decay_res */
0 /* NC */, /* 8 attack_decay_cap */
RES_K(1), /* 10 attack_res */
RES_K(100), /* 11 amplitude_res */
RES_K(47), /* 12 feedback_res */
0 /* NC */, /* 16 vco_voltage */
CAP_P(1000), /* 17 vco_cap */
RES_K(1000), /* 18 vco_res */
0 /* NC */, /* 19 pitch_voltage */
RES_K(10), /* 20 slf_res */
CAP_U(1), /* 21 slf_cap */
CAP_U(2.2), /* 23 oneshot_cap */
RES_K(150), /* 24 oneshot_res */
0, /* 22 vco */
1, /* 26 mixer A */
1, /* 25 mixer B */
0, /* 27 mixer C */
1, /* 1 envelope 1 */
0, /* 28 envelope 2 */
1 /* 9 enable (variable) */
// ic52 GND: 2,22,27,28 +5V: 1,15,25,26
};
const sn76477_interface satansat_sn76477_intf =
{
RES_K(470), /* 4 noise_res */
RES_M(1.5), /* 5 filter_res */
CAP_P(220), /* 6 filter_cap */
0, /* 7 decay_res */
0, /* 8 attack_decay_cap */
0, /* 10 attack_res */
RES_K(47), /* 11 amplitude_res */
RES_K(47), /* 12 feedback_res */
0, /* 16 vco_voltage */
0, /* 17 vco_cap */
0, /* 18 vco_res */
0, /* 19 pitch_voltage */
0, /* 20 slf_res */
0, /* 21 slf_cap */
0, /* 23 oneshot_cap */
0, /* 24 oneshot_res */
0, /* 22 vco */
0, /* 26 mixer A */
1, /* 25 mixer B */
0, /* 27 mixer C */
1, /* 1 envelope 1 */
1, /* 28 envelope 2 */
1 /* 9 enable (variable) */
// ??? GND: 2,26,27 +5V: 15,25
};
const sn76477_interface vanguard_sn76477_intf_1 =
{
RES_K(470), /* 4 noise_res */
RES_M(1.5), /* 5 filter_res */
CAP_P(220), /* 6 filter_cap */
0, /* 7 decay_res */
0, /* 8 attack_decay_cap */
0, /* 10 attack_res */
RES_K(47), /* 11 amplitude_res */
RES_K(4.7), /* 12 feedback_res */
0, /* 16 vco_voltage */
0, /* 17 vco_cap */
0, /* 18 vco_res */
0, /* 19 pitch_voltage */
0, /* 20 slf_res */
0, /* 21 slf_cap */
0, /* 23 oneshot_cap */
0, /* 24 oneshot_res */
0, /* 22 vco */
0, /* 26 mixer A */
1, /* 25 mixer B */
0, /* 27 mixer C */
1, /* 1 envelope 1 */
1, /* 28 envelope 2 */
1 /* 9 enable (variable) */
// SHOT A GND: 2,9,26,27 +5V: 15,25
};
const sn76477_interface vanguard_sn76477_intf_2 =
{
RES_K(10), /* 4 noise_res */
RES_K(30), /* 5 filter_res */
0, /* 6 filter_cap */
0, /* 7 decay_res */
0, /* 8 attack_decay_cap */
0, /* 10 attack_res */
RES_K(47), /* 11 amplitude_res */
RES_K(4.7), /* 12 feedback_res */
0, /* 16 vco_voltage */
0, /* 17 vco_cap */
0, /* 18 vco_res */
0, /* 19 pitch_voltage */
0, /* 20 slf_res */
0, /* 21 slf_cap */
0, /* 23 oneshot_cap */
0, /* 24 oneshot_res */
0, /* 22 vco */
0, /* 26 mixer A */
1, /* 25 mixer B */
0, /* 27 mixer C */
0, /* 1 envelope 1 */
1, /* 28 envelope 2 */
1 /* 9 enable (variable) */
// SHOT B GND: 1,2,26,27 +5V: 15,25,28
};
const sn76477_interface fantasy_sn76477_intf =
{
RES_K(470), /* 4 noise_res */
RES_M(1.5), /* 5 filter_res */
CAP_P(220), /* 6 filter_cap */
0, /* 7 decay_res */
0, /* 8 attack_decay_cap */
0, /* 10 attack_res */
RES_K(470), /* 11 amplitude_res */
RES_K(4.7), /* 12 feedback_res */
0, /* 16 vco_voltage */
0, /* 17 vco_cap */
0, /* 18 vco_res */
0, /* 19 pitch_voltage */
0, /* 20 slf_res */
0, /* 21 slf_cap */
0, /* 23 oneshot_cap */
0, /* 24 oneshot_res */
0, /* 22 vco */
0, /* 26 mixer A */
1, /* 25 mixer B */
0, /* 27 mixer C */
/* schematic does not show pin 1 grounded, but it must be. */
/* otherwise it is using the VCO for the envelope, but the VCO is not hooked up */
0, /* 1 envelope 1 */
1, /* 28 envelope 2 */
0 /* 9 enable (variable) */
// BOMB GND: 2,9,26,27 +5V: 15,25
};
/************************************************************************
* fantasy Sound System Analog emulation
* July 2008, D. Renaud

View File

@ -1389,7 +1389,19 @@ static MACHINE_CONFIG_DERIVED_CLASS( schaser, mw8080bw_root, _8080bw_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("snsnd", SN76477, 0)
MCFG_SOUND_CONFIG(schaser_sn76477_interface)
MCFG_SN76477_NOISE_PARAMS(RES_K(47), RES_K(330), CAP_P(470)) // noise + filter
MCFG_SN76477_DECAY_RES(RES_M(2.2)) // decay_res
MCFG_SN76477_ATTACK_PARAMS(CAP_U(1.0), RES_K(4.7)) // attack_decay_cap + attack_res
MCFG_SN76477_AMP_RES(0) // amplitude_res
MCFG_SN76477_FEEDBACK_RES(RES_K(33)) // feedback_res
MCFG_SN76477_VCO_PARAMS(0, CAP_U(0.1), RES_K(39)) // VCO volt + cap + res
MCFG_SN76477_PITCH_VOLTAGE(5.0) // pitch_voltage
MCFG_SN76477_SLF_PARAMS(CAP_U(1.0), RES_K(120)) // slf caps + res
MCFG_SN76477_ONESHOT_PARAMS(CAP_U(0.1), RES_K(220)) // oneshot caps + res
MCFG_SN76477_VCO_MODE(1) // VCO mode
MCFG_SN76477_MIXER_PARAMS(0, 0, 0) // mixer A, B, C
MCFG_SN76477_ENVELOPE_PARAMS(1, 0) // envelope 1, 2
MCFG_SN76477_ENABLE(1) // enable
MCFG_SOUND_ROUTE_EX(0, "discrete", 1.0, 0)
MCFG_SOUND_ADD("discrete", DISCRETE, 0)
@ -1662,7 +1674,19 @@ static MACHINE_CONFIG_DERIVED_CLASS( lupin3, mw8080bw_root, _8080bw_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("snsnd", SN76477, 0)
MCFG_SOUND_CONFIG(lupin3_sn76477_interface)
MCFG_SN76477_NOISE_PARAMS(0, 0, 0) // noise + filter: N/C
MCFG_SN76477_DECAY_RES(0) // decay_res: N/C
MCFG_SN76477_ATTACK_PARAMS(0, RES_K(100)) // attack_decay_cap + attack_res
MCFG_SN76477_AMP_RES(RES_K(56)) // amplitude_res
MCFG_SN76477_FEEDBACK_RES(RES_K(10)) // feedback_res
MCFG_SN76477_VCO_PARAMS(0, CAP_U(0.1), RES_K(8.2)) // VCO volt + cap + res
MCFG_SN76477_PITCH_VOLTAGE(5.0) // pitch_voltage
MCFG_SN76477_SLF_PARAMS(CAP_U(1.0), RES_K(120)) // slf caps + res
MCFG_SN76477_ONESHOT_PARAMS(0, 0) // oneshot caps + res: N/C
MCFG_SN76477_VCO_MODE(1) // VCO mode
MCFG_SN76477_MIXER_PARAMS(0, 0, 0) // mixer A, B, C
MCFG_SN76477_ENVELOPE_PARAMS(1, 0) // envelope 1, 2
MCFG_SN76477_ENABLE(1) // enable
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
MCFG_SOUND_ADD("samples", SAMPLES, 0)
@ -1694,7 +1718,19 @@ static MACHINE_CONFIG_DERIVED_CLASS( lupin3a, mw8080bw_root, _8080bw_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("snsnd", SN76477, 0)
MCFG_SOUND_CONFIG(lupin3_sn76477_interface)
MCFG_SN76477_NOISE_PARAMS(0, 0, 0) // noise + filter: N/C
MCFG_SN76477_DECAY_RES(0) // decay_res: N/C
MCFG_SN76477_ATTACK_PARAMS(0, RES_K(100)) // attack_decay_cap + attack_res
MCFG_SN76477_AMP_RES(RES_K(56)) // amplitude_res
MCFG_SN76477_FEEDBACK_RES(RES_K(10)) // feedback_res
MCFG_SN76477_VCO_PARAMS(0, CAP_U(0.1), RES_K(8.2)) // VCO volt + cap + res
MCFG_SN76477_PITCH_VOLTAGE(5.0) // pitch_voltage
MCFG_SN76477_SLF_PARAMS(CAP_U(1.0), RES_K(120)) // slf caps + res
MCFG_SN76477_ONESHOT_PARAMS(0, 0) // oneshot caps + res: N/C
MCFG_SN76477_VCO_MODE(1) // VCO mode
MCFG_SN76477_MIXER_PARAMS(0, 0, 0) // mixer A, B, C
MCFG_SN76477_ENVELOPE_PARAMS(1, 0) // envelope 1, 2
MCFG_SN76477_ENABLE(1) // enable
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
MCFG_SOUND_ADD("samples", SAMPLES, 0)

View File

@ -321,184 +321,9 @@ WRITE8_MEMBER(dai3wksi_state::dai3wksi_audio_3_w)
m_ic81->vco_w((~data >> 3) & 0x01); /* player shoot vco control */
}
/* Invader Hit */
static const sn76477_interface dai3wksi_sn76477_ic76 =
{
0, /* 4 noise_res (N/C) */
0, /* 5 filter_res (N/C) */
0, /* 6 filter_cap (N/C) */
RES_K(4.7), /* 7 decay_res */
CAP_U(0.1), /* 8 attack_decay_cap */
RES_K(4.7), /* 10 attack_res */
RES_K(150), /* 11 amplitude_res */
RES_K(47), /* 12 feedback_res */
0, /* 16 vco_voltage (variable) */
CAP_U(0.022), /* 17 vco_cap */
RES_K(33), /* 18 vco_res */
5.0, /* 19 pitch_voltage */
0, /* 20 slf_res (N/C) */
0, /* 21 slf_cap (N/C) */
0, /* 23 oneshot_cap (N/C) */
0, /* 24 oneshot_res (N/C) */
0, /* 22 vco */
0, /* 26 mixer A */
0, /* 25 mixer B */
0, /* 27 mixer C */
0, /* 1 envelope 1 */
0, /* 28 envelope 2 */
0 /* 9 enable */
};
/* Ship Movement */
static const sn76477_interface dai3wksi_sn76477_ic77 =
{
0, /* 4 noise_res (N/C) */
0, /* 5 filter_res (N/C) */
0, /* 6 filter_cap (N/C) */
RES_K(4.7), /* 7 decay_res */
CAP_U(0.1), /* 8 attack_decay_cap */
RES_K(4.7), /* 10 attack_res */
RES_K(150), /* 11 amplitude_res */
RES_K(47), /* 12 feedback_res */
0, /* 16 vco_voltage (N/C) */
0, /* 17 vco_cap (N/C) */
0, /* 18 vco_res (N/C) */
0, /* 19 pitch_voltage */
RES_K(200), /* 20 slf_res */
CAP_U(0.0022), /* 21 slf_cap */
CAP_U(10), /* 23 oneshot_cap */
RES_K(4.7), /* 24 oneshot_res */
5, /* 22 vco */
5, /* 26 mixer A */
0, /* 25 mixer B */
0, /* 27 mixer C */
5, /* 1 envelope 1 */
0, /* 28 envelope 2 */
1 /* 9 enable (variable) */
};
/* Danger */
static const sn76477_interface dai3wksi_sn76477_ic78 =
{
RES_K(47), /* 4 noise_res */
0, /* 5 filter_res (N/C) */
0, /* 6 filter_cap (N/C) */
RES_K(200), /* 7 decay_res */
CAP_U(0.1), /* 8 attack_decay_cap */
RES_K(4.7), /* 10 attack_res */
RES_K(150), /* 11 amplitude_res */
RES_K(47), /* 12 feedback_res */
0, /* 16 vco_voltage (N/C) */
CAP_U(0.47), /* 17 vco_cap */
RES_K(75), /* 18 vco_res */
5.0, /* 19 pitch_voltage */
RES_K(47), /* 20 slf_res */
CAP_N(1), /* 21 slf_cap */
CAP_U(10), /* 23 oneshot_cap */
RES_K(22), /* 24 oneshot_res */
5, /* 22 vco */
0, /* 26 mixer A */
0, /* 25 mixer B */
0, /* 27 mixer C */
5, /* 1 envelope 1 */
0, /* 28 envelope 2 */
1 /* 9 enable (variable) */
};
/* Invader Marching Noise */
static const sn76477_interface dai3wksi_sn76477_ic79 =
{
0, /* 4 noise_res (N/C) */
0, /* 5 filter_res (N/C) */
0, /* 6 filter_cap (N/C) */
RES_K(56), /* 7 decay_res */
CAP_U(0.1), /* 8 attack_decay_cap */
RES_K(4.7), /* 10 attack_res */
RES_K(150), /* 11 amplitude_res */
RES_K(47), /* 12 feedback_res */
0, /* 16 vco_voltage (N/C) */
CAP_U(0.01), /* 17 vco_cap */
RES_K(100), /* 18 vco_res */
5.0, /* 19 pitch_voltage */
RES_K(150), /* 20 slf_res */
CAP_N(1), /* 21 slf_cap */
CAP_U(10), /* 23 oneshot_cap */
RES_K(22), /* 24 oneshot_res */
5, /* 22 vco */
0, /* 26 mixer A */
0, /* 25 mixer B */
0, /* 27 mixer C */
5, /* 1 envelope 1 (variable)*/
5, /* 28 envelope 2 */
1 /* 9 enable (variable) */
};
/* Big Planet Explosion */
static const sn76477_interface dai3wksi_sn76477_ic80 =
{
RES_K(47), /* 4 noise_res */
RES_K(330), /* 5 filter_res */
CAP_P(470), /* 6 filter_cap */
RES_M(2), /* 7 decay_res */
CAP_U(1), /* 8 attack_decay_cap */
RES_K(4.7), /* 10 attack_res */
RES_K(150), /* 11 amplitude_res */
RES_K(47), /* 12 feedback_res */
0, /* 16 vco_voltage (N/C) */
0, /* 17 vco_cap (N/C) */
0, /* 18 vco_res (N/C) */
5.0, /* 19 pitch_voltage */
0, /* 20 slf_res (N/C) */
0, /* 21 slf_cap (N/C) */
CAP_U(10), /* 23 oneshot_cap */
RES_K(55), /* 24 oneshot_res */
5, /* 22 vco */
0, /* 26 mixer A */
5, /* 25 mixer B */
0, /* 27 mixer C */
5, /* 1 envelope 1 */
0, /* 28 envelope 2 */
1 /* 9 enable (variable) */
};
/* Plane Shoot noise */
static const sn76477_interface dai3wksi_sn76477_ic81 =
{
0, /* 4 noise_res (N/C) */
0, /* 5 filter_res (N/C) */
0, /* 6 filter_cap (N/C) */
RES_K(200), /* 7 decay_res */
CAP_U(10), /* 8 attack_decay_cap */
RES_K(4.7), /* 10 attack_res */
RES_K(150), /* 11 amplitude_res */
RES_K(47), /* 12 feedback_res */
2.5, /* 16 vco_voltage */
CAP_U(0.01), /* 17 vco_cap */
RES_K(100), /* 18 vco_res */
5.0, /* 19 pitch_voltage */
RES_K(100), /* 20 slf_res */
CAP_N(0.47), /* 21 slf_cap */
CAP_U(10), /* 23 oneshot_cap */
RES_K(6.8), /* 24 oneshot_res */
0, /* 22 vco (variable) */
0, /* 26 mixer A */
5, /* 25 mixer B */
5, /* 27 mixer C */
5, /* 1 envelope 1 */
0, /* 28 envelope 2 */
1 /* 9 enable (variable) */
};
#endif
/*************************************
*
* Memory handlers
@ -609,28 +434,106 @@ static MACHINE_CONFIG_START( dai3wksi, dai3wksi_state )
MCFG_SAMPLES_NAMES(dai3wksi_sample_names)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
#else
// Invader Hit
MCFG_SOUND_ADD("ic76", SN76477, 0)
MCFG_SOUND_CONFIG(dai3wksi_sn76477_ic76)
MCFG_SN76477_NOISE_PARAMS(0, 0, 0) // noise + filter: N/C
MCFG_SN76477_DECAY_RES(RES_K(4.7)) // decay_res
MCFG_SN76477_ATTACK_PARAMS(CAP_U(0.1), RES_K(4.7)) // attack_decay_cap + attack_res
MCFG_SN76477_AMP_RES(RES_K(150)) // amplitude_res
MCFG_SN76477_FEEDBACK_RES(RES_K(47)) // feedback_res
MCFG_SN76477_VCO_PARAMS(0, CAP_U(0.022), RES_K(33)) // VCO volt + cap + res
MCFG_SN76477_PITCH_VOLTAGE(5.0) // pitch_voltage
MCFG_SN76477_SLF_PARAMS(0, 0) // slf caps + res: N/C
MCFG_SN76477_ONESHOT_PARAMS(0, 0) // oneshot caps + res: N/C
MCFG_SN76477_VCO_MODE(0) // VCO mode
MCFG_SN76477_MIXER_PARAMS(0, 0, 0) // mixer A, B, C
MCFG_SN76477_ENVELOPE_PARAMS(0, 0) // envelope 1, 2
MCFG_SN76477_ENABLE(0) // enable
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.4)
// Ship Movement
MCFG_SOUND_ADD("ic77", SN76477, 0)
MCFG_SOUND_CONFIG(dai3wksi_sn76477_ic77)
MCFG_SN76477_NOISE_PARAMS(0, 0, 0) // noise + filter: N/C
MCFG_SN76477_DECAY_RES(RES_K(4.7)) // decay_res
MCFG_SN76477_ATTACK_PARAMS(CAP_U(0.1), RES_K(4.7)) // attack_decay_cap + attack_res
MCFG_SN76477_AMP_RES(RES_K(150)) // amplitude_res
MCFG_SN76477_FEEDBACK_RES(RES_K(47)) // feedback_res
MCFG_SN76477_VCO_PARAMS(0, 0, 0) // VCO volt + cap + res: N/C
MCFG_SN76477_PITCH_VOLTAGE(0) // pitch_voltage
MCFG_SN76477_SLF_PARAMS(CAP_U(0.0022), RES_K(200)) // slf caps + res
MCFG_SN76477_ONESHOT_PARAMS(CAP_U(10), RES_K(4.7)) // oneshot caps + res
MCFG_SN76477_VCO_MODE(5) // VCO mode
MCFG_SN76477_MIXER_PARAMS(5, 0, 0) // mixer A, B, C
MCFG_SN76477_ENVELOPE_PARAMS(5, 0) // envelope 1, 2
MCFG_SN76477_ENABLE(1) // enable
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.4)
// Danger
MCFG_SOUND_ADD("ic78", SN76477, 0)
MCFG_SOUND_CONFIG(dai3wksi_sn76477_ic78)
MCFG_SN76477_NOISE_PARAMS(RES_K(47), 0, 0) // noise + filter
MCFG_SN76477_DECAY_RES(RES_K(200)) // decay_res
MCFG_SN76477_ATTACK_PARAMS(CAP_U(0.1), RES_K(4.7)) // attack_decay_cap + attack_res
MCFG_SN76477_AMP_RES(RES_K(150)) // amplitude_res
MCFG_SN76477_FEEDBACK_RES(RES_K(47)) // feedback_res
MCFG_SN76477_VCO_PARAMS(0, CAP_U(0.47), RES_K(75)) // VCO volt + cap + res
MCFG_SN76477_PITCH_VOLTAGE(5.0) // pitch_voltage
MCFG_SN76477_SLF_PARAMS(CAP_N(1), RES_K(47)) // slf caps + res
MCFG_SN76477_ONESHOT_PARAMS(CAP_U(10), RES_K(22)) // oneshot caps + res
MCFG_SN76477_VCO_MODE(5) // VCO mode
MCFG_SN76477_MIXER_PARAMS(0, 0, 0) // mixer A, B, C
MCFG_SN76477_ENVELOPE_PARAMS(5, 0) // envelope 1, 2
MCFG_SN76477_ENABLE(1) // enable
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.4)
// Invader Marching Noise
MCFG_SOUND_ADD("ic79", SN76477, 0)
MCFG_SOUND_CONFIG(dai3wksi_sn76477_ic79)
MCFG_SN76477_NOISE_PARAMS(0, 0, 0) // noise + filter: N/C
MCFG_SN76477_DECAY_RES(RES_K(56)) // decay_res
MCFG_SN76477_ATTACK_PARAMS(CAP_U(0.1), RES_K(4.7)) // attack_decay_cap + attack_res
MCFG_SN76477_AMP_RES(RES_K(150)) // amplitude_res
MCFG_SN76477_FEEDBACK_RES(RES_K(47)) // feedback_res
MCFG_SN76477_VCO_PARAMS(0, CAP_U(0.01), RES_K(100)) // VCO volt + cap + res
MCFG_SN76477_PITCH_VOLTAGE(5.0) // pitch_voltage
MCFG_SN76477_SLF_PARAMS(CAP_N(1), RES_K(150)) // slf caps + res
MCFG_SN76477_ONESHOT_PARAMS(CAP_U(10), RES_K(22)) // oneshot caps + res
MCFG_SN76477_VCO_MODE(5) // VCO mode
MCFG_SN76477_MIXER_PARAMS(0, 0, 0) // mixer A, B, C
MCFG_SN76477_ENVELOPE_PARAMS(5, 5) // envelope 1, 2
MCFG_SN76477_ENABLE(1) // enable
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.4)
// Big Planet Explosion
MCFG_SOUND_ADD("ic80", SN76477, 0)
MCFG_SOUND_CONFIG(dai3wksi_sn76477_ic80)
MCFG_SN76477_NOISE_PARAMS(RES_K(47), RES_K(330), CAP_P(470)) // noise + filter
MCFG_SN76477_DECAY_RES(RES_M(2)) // decay_res
MCFG_SN76477_ATTACK_PARAMS(CAP_U(1.0), RES_K(4.7)) // attack_decay_cap + attack_res
MCFG_SN76477_AMP_RES(RES_K(150)) // amplitude_res
MCFG_SN76477_FEEDBACK_RES(RES_K(47)) // feedback_res
MCFG_SN76477_VCO_PARAMS(0, 0, 0) // VCO volt + cap + res: N/C
MCFG_SN76477_PITCH_VOLTAGE(5.0) // pitch_voltage
MCFG_SN76477_SLF_PARAMS(0, 0) // slf caps + res: N/C
MCFG_SN76477_ONESHOT_PARAMS(CAP_U(10), RES_K(55)) // oneshot caps + res
MCFG_SN76477_VCO_MODE(5) // VCO mode
MCFG_SN76477_MIXER_PARAMS(0, 5, 0) // mixer A, B, C
MCFG_SN76477_ENVELOPE_PARAMS(5, 0) // envelope 1, 2
MCFG_SN76477_ENABLE(1) // enable
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.4)
// Plane Shoot noise
MCFG_SOUND_ADD("ic81", SN76477, 0)
MCFG_SOUND_CONFIG(dai3wksi_sn76477_ic81)
MCFG_SN76477_NOISE_PARAMS(0, 0, 0) // noise + filter: N/C
MCFG_SN76477_DECAY_RES(RES_K(200)) // decay_res
MCFG_SN76477_ATTACK_PARAMS(CAP_U(10), RES_K(4.7)) // attack_decay_cap + attack_res
MCFG_SN76477_AMP_RES(RES_K(150)) // amplitude_res
MCFG_SN76477_FEEDBACK_RES(RES_K(47)) // feedback_res
MCFG_SN76477_VCO_PARAMS(2.5, CAP_U(0.01), RES_K(100)) // VCO volt + cap + res
MCFG_SN76477_PITCH_VOLTAGE(5.0) // pitch_voltage
MCFG_SN76477_SLF_PARAMS(CAP_N(0.47), RES_K(100)) // slf caps + res
MCFG_SN76477_ONESHOT_PARAMS(CAP_U(10), RES_K(6.8)) // oneshot caps + res
MCFG_SN76477_VCO_MODE(0) // VCO mode
MCFG_SN76477_MIXER_PARAMS(0, 5, 5) // mixer A, B, C
MCFG_SN76477_ENVELOPE_PARAMS(5, 0) // envelope 1, 2
MCFG_SN76477_ENABLE(1) // enable
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.4)
#endif
MACHINE_CONFIG_END

View File

@ -442,37 +442,22 @@ static MACHINE_CONFIG_START( gp_1, gp_1_state )
MCFG_TIMER_DRIVER_ADD_PERIODIC("gp1", gp_1_state, zero_timer, attotime::from_hz(120)) // mains freq*2
MACHINE_CONFIG_END
static const sn76477_interface sn76477_intf =
{
0, /* 4 noise_res (N/C) */
0, /* 5 filter_res (N/C) */
0, /* 6 filter_cap (N/C) */
0, /* 7 decay_res (N/C) */
0, /* 8 attack_decay_cap (N/C) */
0, /* 10 attack_res (nc) */
RES_K(220), /* 11 amplitude_res */
RES_K(47), /* 12 feedback_res */
0, /* 16 vco_voltage (N/C) */
CAP_U(0.1), /* 17 vco_cap */
RES_K(56), /* 18 vco_res */
5.0, /* 19 pitch_voltage */
RES_K(220), /* 20 slf_res */
CAP_U(1.0), /* 21 slf_cap */
0, /* 23 oneshot_cap (N/C) */
0, /* 24 oneshot_res (N/C) */
0, /* 22 vco (nc) */
0, /* 26 mixer A (nc) */
0, /* 25 mixer B (nc) */
0, /* 27 mixer C (nc) */
0, /* 1 envelope 1 (nc) */
1, /* 28 envelope 2 */
1 /* 9 enable (variable) 1=off */
};
static MACHINE_CONFIG_DERIVED( gp_1s, gp_1 )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("snsnd", SN76477, 0)
MCFG_SOUND_CONFIG(sn76477_intf)
MCFG_SN76477_NOISE_PARAMS(0, 0, 0) // noise + filter: N/C
MCFG_SN76477_DECAY_RES(0) // decay_res: N/C
MCFG_SN76477_ATTACK_PARAMS(0, 0) // attack_decay_cap + attack_res: N/C
MCFG_SN76477_AMP_RES(RES_K(220)) // amplitude_res
MCFG_SN76477_FEEDBACK_RES(RES_K(47)) // feedback_res
MCFG_SN76477_VCO_PARAMS(0, CAP_U(0.1), RES_K(56)) // VCO volt + cap + res
MCFG_SN76477_PITCH_VOLTAGE(5.0) // pitch_voltage
MCFG_SN76477_SLF_PARAMS(CAP_U(1.0), RES_K(220)) // slf caps + res
MCFG_SN76477_ONESHOT_PARAMS(0, 0) // oneshot caps + res: N/C
MCFG_SN76477_VCO_MODE(0) // VCO mode: N/C
MCFG_SN76477_MIXER_PARAMS(0, 0, 0) // mixer A, B, C: N/C
MCFG_SN76477_ENVELOPE_PARAMS(0, 1) // envelope 1, 2
MCFG_SN76477_ENABLE(1) // enable
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MCFG_DEVICE_REMOVE("ppi")

View File

@ -530,34 +530,6 @@ UINT32 laserbat_state::screen_update_laserbat(screen_device &screen, bitmap_ind1
return 0;
}
/* Laser Battle sound **********************************/
static const sn76477_interface laserbat_sn76477_interface =
{
RES_K(47), /* 4 noise_res R21 47K */
0, /* 5 filter_res (variable) */
CAP_P(1000), /* 6 filter_cap C21 1000 pF */
0, /* 7 decay_res */
0, /* 8 attack_decay_cap */
0, /* 10 attack_res */
RES_K(47), /* 11 amplitude_res R26 47K */
0, /* 12 feedback_res (variable) */
5.0 * RES_K(2.2) / (RES_K(2.2) + RES_K(4.7)), /* 16 vco_voltage */
0, /* 17 vco_cap */
0, /* 18 vco_res (variable) */
5.0, /* 19 pitch_voltage */
0, /* 20 slf_res (variable) */
CAP_U(4.7), /* 21 slf_cap C24 4.7 uF */
0, /* 23 oneshot_cap */
0, /* 24 oneshot_res */
0, /* 22 vco (variable) */
0, /* 26 mixer A */
0, /* 25 mixer B (variable) */
0, /* 27 mixer C */
0, /* 1 envelope 1 */
1, /* 28 envelope 2 */
1 /* 9 enable (variable) */
};
/* Cat'N Mouse sound ***********************************/
@ -683,7 +655,6 @@ static MACHINE_CONFIG_START( laserbat, laserbat_state )
MCFG_CPU_IO_MAP(laserbat_io_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", laserbat_state, laserbat_interrupt)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(50)
@ -712,7 +683,19 @@ static MACHINE_CONFIG_START( laserbat, laserbat_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("snsnd", SN76477, 0) // output not connected
MCFG_SOUND_CONFIG(laserbat_sn76477_interface)
MCFG_SN76477_NOISE_PARAMS(RES_K(47), 0, CAP_P(1000)) // noise + filter: R21 47K + N/C + C21 1000 pF
MCFG_SN76477_DECAY_RES(0) // decay_res
MCFG_SN76477_ATTACK_PARAMS(0, 0) // attack_decay_cap + attack_res
MCFG_SN76477_AMP_RES(RES_K(47)) // amplitude_res: R26 47K
MCFG_SN76477_FEEDBACK_RES(RES_K(200)) // feedback_res
MCFG_SN76477_VCO_PARAMS(5.0 * RES_K(2.2) / (RES_K(2.2) + RES_K(4.7)), 0, 0) // VCO volt + cap + res
MCFG_SN76477_PITCH_VOLTAGE(5.0) // pitch_voltage
MCFG_SN76477_SLF_PARAMS(CAP_U(4.7), 0) // slf caps + res: C24 4.7 uF + (variable)
MCFG_SN76477_ONESHOT_PARAMS(0,0) // oneshot caps + res
MCFG_SN76477_VCO_MODE(0) // VCO mode
MCFG_SN76477_MIXER_PARAMS(0, 0, 0) // mixer A, B, C
MCFG_SN76477_ENVELOPE_PARAMS(0, 1) // envelope 1, 2
MCFG_SN76477_ENABLE(1) // enable
MCFG_TMS3615_ADD("tms1", 4000000/8/2) // 250 kHz, from second chip's clock out
MCFG_SOUND_ROUTE(TMS3615_FOOTAGE_8, "mono", 1.0)

View File

@ -271,33 +271,6 @@ PALETTE_INIT_MEMBER(malzak_state, malzak)
}
static const sn76477_interface sn76477_intf =
{
0, /* N/C */ /* 4 noise_res */
0, /* N/C */ /* 5 filter_res */
0, /* N/C */ /* 6 filter_cap */
0, /* N/C */ /* 7 decay_res */
0, /* N/C */ /* 8 attack_decay_cap */
RES_K(100), /* 10 attack_res */
RES_K(56), /* 11 amplitude_res */
RES_K(10), /* 12 feedback_res */
0, /* N/C */ /* 16 vco_voltage */
CAP_U(0.1), /* 17 vco_cap */
RES_K(8.2), /* 18 vco_res */
5.0, /* 19 pitch_voltage */
RES_K(120), /* 20 slf_res */
CAP_U(1.0), /* 21 slf_cap */
0, /* N/C */ /* 23 oneshot_cap */
0, /* N/C */ /* 24 oneshot_res */
0, /* 22 vco */
1, /* 26 mixer A */
1, /* 25 mixer B */
1, /* 27 mixer C */
1, /* 1 envelope 1 */
1, /* 28 envelope 2 */
1 /* 9 enable */
};
READ8_MEMBER(malzak_state::videoram_r)
{
return m_videoram[offset];
@ -359,11 +332,35 @@ static MACHINE_CONFIG_START( malzak, malzak_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("sn1", SN76477, 0)
MCFG_SOUND_CONFIG(sn76477_intf)
MCFG_SN76477_NOISE_PARAMS(0, 0, 0) // noise + filter: N/C
MCFG_SN76477_DECAY_RES(0) // decay_res: N/C
MCFG_SN76477_ATTACK_PARAMS(0, RES_K(100)) // attack_decay_cap + attack_res
MCFG_SN76477_AMP_RES(RES_K(56)) // amplitude_res
MCFG_SN76477_FEEDBACK_RES(RES_K(10)) // feedback_res
MCFG_SN76477_VCO_PARAMS(0, CAP_U(0.1), RES_K(8.2)) // VCO volt + cap + res
MCFG_SN76477_PITCH_VOLTAGE(5.0) // pitch_voltage
MCFG_SN76477_SLF_PARAMS(CAP_U(1.0), RES_K(120)) // slf caps + res
MCFG_SN76477_ONESHOT_PARAMS(0, 0) // oneshot caps + res: N/C
MCFG_SN76477_VCO_MODE(0) // VCO mode
MCFG_SN76477_MIXER_PARAMS(1, 1, 1) // mixer A, B, C
MCFG_SN76477_ENVELOPE_PARAMS(1, 1) // envelope 1, 2
MCFG_SN76477_ENABLE(1) // enable
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_SOUND_ADD("sn2", SN76477, 0)
MCFG_SOUND_CONFIG(sn76477_intf)
MCFG_SN76477_NOISE_PARAMS(0, 0, 0) // noise + filter: N/C
MCFG_SN76477_DECAY_RES(0) // decay_res: N/C
MCFG_SN76477_ATTACK_PARAMS(0, RES_K(100)) // attack_decay_cap + attack_res
MCFG_SN76477_AMP_RES(RES_K(56)) // amplitude_res
MCFG_SN76477_FEEDBACK_RES(RES_K(10)) // feedback_res
MCFG_SN76477_VCO_PARAMS(0, CAP_U(0.1), RES_K(8.2)) // VCO volt + cap + res
MCFG_SN76477_PITCH_VOLTAGE(5.0) // pitch_voltage
MCFG_SN76477_SLF_PARAMS(CAP_U(1.0), RES_K(120)) // slf caps + res
MCFG_SN76477_ONESHOT_PARAMS(0, 0) // oneshot caps + res: N/C
MCFG_SN76477_VCO_MODE(0) // VCO mode
MCFG_SN76477_MIXER_PARAMS(1, 1, 1) // mixer A, B, C
MCFG_SN76477_ENVELOPE_PARAMS(1, 1) // envelope 1, 2
MCFG_SN76477_ENABLE(1) // enable
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END

View File

@ -41,34 +41,6 @@ public:
TIMER_DEVICE_CALLBACK_MEMBER(rotaryf_interrupt);
};
static const sn76477_interface rotaryf_sn76477_interface =
{
0, /* 4 noise_res (N/C) */
0, /* 5 filter_res (N/C) */
0, /* 6 filter_cap (N/C) */
0, /* 7 decay_res (N/C) */
0, /* 8 attack_decay_cap (N/C) */
RES_K(100), /* 10 attack_res */
RES_K(56), /* 11 amplitude_res */
RES_K(10), /* 12 feedback_res */
0, /* 16 vco_voltage (N/C) */
CAP_U(0.1), /* 17 vco_cap */
RES_K(8.2), /* 18 vco_res */
5.0, /* 19 pitch_voltage */
RES_K(120), /* 20 slf_res */
CAP_U(1.0), /* 21 slf_cap */
0, /* 23 oneshot_cap (N/C) */
0, /* 24 oneshot_res (N/C) */
1, /* 22 vco */
0, /* 26 mixer A */
0, /* 25 mixer B */
0, /* 27 mixer C */
1, /* 1 envelope 1 */
0, /* 28 envelope 2 */
1 /* 9 enable (variable) */
};
static const char *const rotaryf_sample_names[] =
{
@ -269,9 +241,23 @@ static MACHINE_CONFIG_START( rotaryf, rotaryf_state )
MCFG_SCREEN_UPDATE_DRIVER(rotaryf_state, screen_update_rotaryf)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("snsnd", SN76477, 0)
MCFG_SOUND_CONFIG(rotaryf_sn76477_interface)
MCFG_SN76477_NOISE_PARAMS(0, 0, 0) // noise + filter: N/C
MCFG_SN76477_DECAY_RES(0) // decay_res: N/C
MCFG_SN76477_ATTACK_PARAMS(0, RES_K(100)) // attack_decay_cap + attack_res
MCFG_SN76477_AMP_RES(RES_K(56)) // amplitude_res
MCFG_SN76477_FEEDBACK_RES(RES_K(10)) // feedback_res
MCFG_SN76477_VCO_PARAMS(0, CAP_U(0.1), RES_K(8.2)) // VCO volt + cap + res
MCFG_SN76477_PITCH_VOLTAGE(5.0) // pitch_voltage
MCFG_SN76477_SLF_PARAMS(CAP_U(1.0), RES_K(120)) // slf caps + res
MCFG_SN76477_ONESHOT_PARAMS(0, 0) // oneshot caps + res: N/C
MCFG_SN76477_VCO_MODE(1) // VCO mode
MCFG_SN76477_MIXER_PARAMS(0, 0, 0) // mixer A, B, C
MCFG_SN76477_ENVELOPE_PARAMS(1, 0) // envelope 1, 2
MCFG_SN76477_ENABLE(1) // enable
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
MCFG_SOUND_ADD("samples", SAMPLES, 0)
MCFG_SAMPLES_CHANNELS(6)
MCFG_SAMPLES_NAMES(rotaryf_sample_names)

View File

@ -553,34 +553,6 @@ static INPUT_PORTS_START( ttmahjng )
INPUT_PORTS_END
static const sn76477_interface sn76477_intf =
{
RES_K(47), /* 4 noise_res */
RES_K(150), /* 5 filter_res */
CAP_U(0.001), /* 6 filter_cap */
RES_M(3.3), /* 7 decay_res */
CAP_U(1), /* 8 attack_decay_cap */
RES_K(4.7), /* 10 attack_res */
RES_K(200), /* 11 amplitude_res */
RES_K(55), /* 12 feedback_res (5k + 100k pot) */
5.0*2/(2+10), /* 16 vco_voltage */
CAP_U(0.022), /* 17 vco_cap */
RES_K(100), /* 18 vco_res */
5.0, /* 19 pitch_voltage */
RES_K(75), /* 20 slf_res */
CAP_U(1.0), /* 21 slf_cap */
CAP_U(2.2), /* 23 oneshot_cap */
RES_K(4.7), /* 24 oneshot_res */
0, /* 22 vco (variable) */
0, /* 26 mixer A (variable) */
0, /* 25 mixer B (variable) */
0, /* 27 mixer C (variable) */
0, /* 1 envelope 1 (variable) */
0, /* 28 envelope 2 (variable) */
1 /* 9 enable (variable) */
};
static MACHINE_CONFIG_START( route16, route16_state )
/* basic machine hardware */
@ -633,7 +605,19 @@ static MACHINE_CONFIG_DERIVED( stratvox, route16 )
MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(route16_state, stratvox_sn76477_w)) /* SN76477 commands (not used in Route 16?) */
MCFG_SOUND_ADD("snsnd", SN76477, 0)
MCFG_SOUND_CONFIG(sn76477_intf)
MCFG_SN76477_NOISE_PARAMS(RES_K(47), RES_K(150), CAP_U(0.001)) // noise + filter
MCFG_SN76477_DECAY_RES(RES_M(3.3)) // decay_res
MCFG_SN76477_ATTACK_PARAMS(CAP_U(1), RES_K(4.7)) // attack_decay_cap + attack_res
MCFG_SN76477_AMP_RES(RES_K(200)) // amplitude_res
MCFG_SN76477_FEEDBACK_RES(RES_K(55)) // feedback_res
MCFG_SN76477_VCO_PARAMS(5.0 * 2/ (2 + 10), CAP_U(0.022), RES_K(100)) // VCO volt + cap + res
MCFG_SN76477_PITCH_VOLTAGE(5.0) // pitch_voltage
MCFG_SN76477_SLF_PARAMS(CAP_U(1.0), RES_K(75)) // slf caps + res
MCFG_SN76477_ONESHOT_PARAMS(CAP_U(2.2), RES_K(4.7)) // oneshot caps + res
MCFG_SN76477_VCO_MODE(0) // VCO mode
MCFG_SN76477_MIXER_PARAMS(0, 0, 0) // mixer A, B, C
MCFG_SN76477_ENVELOPE_PARAMS(0, 0) // envelope 1, 2
MCFG_SN76477_ENABLE(1) // enable
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MCFG_DAC_ADD("dac")

View File

@ -834,15 +834,54 @@ static MACHINE_CONFIG_START( sasuke, snk6502_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.12)
MCFG_SOUND_ADD("sn76477.1", SN76477, 0)
MCFG_SOUND_CONFIG(sasuke_sn76477_intf_1)
// ic48 GND: 2,22,26,27,28 +5V: 1,15,25
MCFG_SN76477_NOISE_PARAMS(RES_K(470), RES_K(150), CAP_P(4700)) // noise + filter
MCFG_SN76477_DECAY_RES(RES_K(22)) // decay_res
MCFG_SN76477_ATTACK_PARAMS(CAP_U(10), RES_K(10)) // attack_decay_cap + attack_res
MCFG_SN76477_AMP_RES(RES_K(100)) // amplitude_res
MCFG_SN76477_FEEDBACK_RES(RES_K(47)) // feedback_res
MCFG_SN76477_VCO_PARAMS(0, 0, 0) // VCO volt + cap + res: N/C
MCFG_SN76477_PITCH_VOLTAGE(0) // pitch_voltage: N/C
MCFG_SN76477_SLF_PARAMS(0, RES_K(10)) // slf caps + res
MCFG_SN76477_ONESHOT_PARAMS(CAP_U(2.2), RES_K(100)) // oneshot caps + res
MCFG_SN76477_VCO_MODE(0) // VCO mode
MCFG_SN76477_MIXER_PARAMS(0, 1, 0) // mixer A, B, C
MCFG_SN76477_ENVELOPE_PARAMS(1, 0) // envelope 1, 2
MCFG_SN76477_ENABLE(1) // enable
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MCFG_SOUND_ADD("sn76477.2", SN76477, 0)
MCFG_SOUND_CONFIG(sasuke_sn76477_intf_2)
// ic51 GND: 2,26,27 +5V: 1,15,22,25,28
MCFG_SN76477_NOISE_PARAMS(RES_K(340), RES_K(47), CAP_P(100)) // noise + filter
MCFG_SN76477_DECAY_RES(RES_K(470)) // decay_res
MCFG_SN76477_ATTACK_PARAMS(CAP_U(4.7), RES_K(10)) // attack_decay_cap + attack_res
MCFG_SN76477_AMP_RES(RES_K(100)) // amplitude_res
MCFG_SN76477_FEEDBACK_RES(RES_K(47)) // feedback_res
MCFG_SN76477_VCO_PARAMS(0, CAP_P(220), RES_K(1000)) // VCO volt + cap + res
MCFG_SN76477_PITCH_VOLTAGE(0) // pitch_voltage: N/C
MCFG_SN76477_SLF_PARAMS(0, RES_K(220)) // slf caps + res
MCFG_SN76477_ONESHOT_PARAMS(CAP_U(22), RES_K(47)) // oneshot caps + res
MCFG_SN76477_VCO_MODE(1) // VCO mode
MCFG_SN76477_MIXER_PARAMS(0, 1, 0) // mixer A, B, C
MCFG_SN76477_ENVELOPE_PARAMS(1, 1) // envelope 1, 2
MCFG_SN76477_ENABLE(1) // enable
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MCFG_SOUND_ADD("sn76477.3", SN76477, 0)
MCFG_SOUND_CONFIG(sasuke_sn76477_intf_3)
// ic52 GND: 2,22,27,28 +5V: 1,15,25,26
MCFG_SN76477_NOISE_PARAMS(RES_K(330), RES_K(47), CAP_P(100)) // noise + filter
MCFG_SN76477_DECAY_RES(RES_K(1)) // decay_res
MCFG_SN76477_ATTACK_PARAMS(0, RES_K(1)) // attack_decay_cap + attack_res
MCFG_SN76477_AMP_RES(RES_K(100)) // amplitude_res
MCFG_SN76477_FEEDBACK_RES(RES_K(47)) // feedback_res
MCFG_SN76477_VCO_PARAMS(0, CAP_P(1000), RES_K(1000)) // VCO volt + cap + res
MCFG_SN76477_PITCH_VOLTAGE(0) // pitch_voltage: N/C
MCFG_SN76477_SLF_PARAMS(CAP_U(1), RES_K(10)) // slf caps + res
MCFG_SN76477_ONESHOT_PARAMS(CAP_U(2.2), RES_K(150)) // oneshot caps + res
MCFG_SN76477_VCO_MODE(0) // VCO mode
MCFG_SN76477_MIXER_PARAMS(1, 1, 0) // mixer A, B, C
MCFG_SN76477_ENVELOPE_PARAMS(1, 0) // envelope 1, 2
MCFG_SN76477_ENABLE(1) // enable
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
@ -863,7 +902,20 @@ static MACHINE_CONFIG_DERIVED( satansat, sasuke )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_SOUND_REPLACE("sn76477.1", SN76477, 0)
MCFG_SOUND_CONFIG(satansat_sn76477_intf)
// ??? GND: 2,26,27 +5V: 15,25
MCFG_SN76477_NOISE_PARAMS(RES_K(470), RES_M(1.5), CAP_P(220)) // noise + filter
MCFG_SN76477_DECAY_RES(0) // decay_res
MCFG_SN76477_ATTACK_PARAMS(0, 0) // attack_decay_cap + attack_res
MCFG_SN76477_AMP_RES(RES_K(47)) // amplitude_res
MCFG_SN76477_FEEDBACK_RES(RES_K(47)) // feedback_res
MCFG_SN76477_VCO_PARAMS(0, 0, 0) // VCO volt + cap + res
MCFG_SN76477_PITCH_VOLTAGE(0) // pitch_voltage
MCFG_SN76477_SLF_PARAMS(0, 0) // slf caps + res
MCFG_SN76477_ONESHOT_PARAMS(0, 0) // oneshot caps + res
MCFG_SN76477_VCO_MODE(0) // VCO mode
MCFG_SN76477_MIXER_PARAMS(0, 1, 0) // mixer A, B, C
MCFG_SN76477_ENVELOPE_PARAMS(1, 1) // envelope 1, 2
MCFG_SN76477_ENABLE(1) // enable
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MCFG_DEVICE_REMOVE("sn76477.2")
@ -912,11 +964,37 @@ static MACHINE_CONFIG_START( vanguard, snk6502_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_SOUND_ADD("sn76477.1", SN76477, 0)
MCFG_SOUND_CONFIG(vanguard_sn76477_intf_1)
// SHOT A GND: 2,9,26,27 +5V: 15,25
MCFG_SN76477_NOISE_PARAMS(RES_K(470), RES_M(1.5), CAP_P(220)) // noise + filter
MCFG_SN76477_DECAY_RES(0) // decay_res
MCFG_SN76477_ATTACK_PARAMS(0, 0) // attack_decay_cap + attack_res
MCFG_SN76477_AMP_RES(RES_K(47)) // amplitude_res
MCFG_SN76477_FEEDBACK_RES(RES_K(4.7)) // feedback_res
MCFG_SN76477_VCO_PARAMS(0, 0, 0) // VCO volt + cap + res
MCFG_SN76477_PITCH_VOLTAGE(0) // pitch_voltage
MCFG_SN76477_SLF_PARAMS(0, 0) // slf caps + res
MCFG_SN76477_ONESHOT_PARAMS(0, 0) // oneshot caps + res
MCFG_SN76477_VCO_MODE(0) // VCO mode
MCFG_SN76477_MIXER_PARAMS(0, 1, 0) // mixer A, B, C
MCFG_SN76477_ENVELOPE_PARAMS(1, 1) // envelope 1, 2
MCFG_SN76477_ENABLE(1) // enable
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MCFG_SOUND_ADD("sn76477.2", SN76477, 0)
MCFG_SOUND_CONFIG(vanguard_sn76477_intf_2)
// SHOT B GND: 1,2,26,27 +5V: 15,25,28
MCFG_SN76477_NOISE_PARAMS(RES_K(10), RES_K(30), 0) // noise + filter
MCFG_SN76477_DECAY_RES(0) // decay_res
MCFG_SN76477_ATTACK_PARAMS(0, 0) // attack_decay_cap + attack_res
MCFG_SN76477_AMP_RES(RES_K(47)) // amplitude_res
MCFG_SN76477_FEEDBACK_RES(RES_K(4.7)) // feedback_res
MCFG_SN76477_VCO_PARAMS(0, 0, 0) // VCO volt + cap + res
MCFG_SN76477_PITCH_VOLTAGE(0) // pitch_voltage
MCFG_SN76477_SLF_PARAMS(0, 0) // slf caps + res
MCFG_SN76477_ONESHOT_PARAMS(0, 0) // oneshot caps + res
MCFG_SN76477_VCO_MODE(0) // VCO mode
MCFG_SN76477_MIXER_PARAMS(0, 1, 0) // mixer A, B, C
MCFG_SN76477_ENVELOPE_PARAMS(0, 1) // envelope 1, 2
MCFG_SN76477_ENABLE(1) // enable
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
@ -932,7 +1010,22 @@ static MACHINE_CONFIG_DERIVED( fantasy, vanguard )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
MCFG_SOUND_REPLACE("sn76477.1", SN76477, 0)
MCFG_SOUND_CONFIG(fantasy_sn76477_intf)
// BOMB GND: 2,9,26,27 +5V: 15,25
MCFG_SN76477_NOISE_PARAMS(RES_K(470), RES_M(1.5), CAP_P(220)) // noise + filter
MCFG_SN76477_DECAY_RES(0) // decay_res
MCFG_SN76477_ATTACK_PARAMS(0, 0) // attack_decay_cap + attack_res
MCFG_SN76477_AMP_RES(RES_K(470)) // amplitude_res
MCFG_SN76477_FEEDBACK_RES(RES_K(4.7)) // feedback_res
MCFG_SN76477_VCO_PARAMS(0, 0, 0) // VCO volt + cap + res
MCFG_SN76477_PITCH_VOLTAGE(0) // pitch_voltage
MCFG_SN76477_SLF_PARAMS(0, 0) // slf caps + res
MCFG_SN76477_ONESHOT_PARAMS(0, 0) // oneshot caps + res
MCFG_SN76477_VCO_MODE(0) // VCO mode
MCFG_SN76477_MIXER_PARAMS(0, 1, 0) // mixer A, B, C
// schematic does not show pin 1 grounded, but it must be.
// otherwise it is using the VCO for the envelope, but the VCO is not hooked up
MCFG_SN76477_ENVELOPE_PARAMS(0, 1) // envelope 1, 2
MCFG_SN76477_ENABLE(0) // enable
MCFG_SOUND_ROUTE_EX(0, "discrete", 1.0, 0)
MCFG_SOUND_ADD("discrete", DISCRETE, 0)

View File

@ -218,33 +218,6 @@ TIMER_DEVICE_CALLBACK_MEMBER( spectra_state::outtimer)
m_out_offs = 0xff;
}
static const sn76477_interface sn76477_intf =
{
RES_M(1000), /* 4 noise_res */
RES_M(1000), /* 5 filter_res */
CAP_N(0), /* 6 filter_cap */
RES_K(470), /* 7 decay_res */
CAP_N(1), /* 8 attack_decay_cap */
RES_K(22), /* 10 attack_res */
RES_K(100), /* 11 amplitude_res */
RES_K(52), /* 12 feedback_res */
5.0, /* 16 vco_voltage */
CAP_U(0.01), /* 17 vco_cap */
RES_K(390), /* 18 vco_res */
0.0, /* 19 pitch_voltage */
RES_M(1), /* 20 slf_res */
CAP_U(0.1), /* 21 slf_cap */
CAP_U(0.47), /* 23 oneshot_cap */
RES_K(470), /* 24 oneshot_res */
0, /* 22 vco (variable) */
0, /* 26 mixer A (grounded) */
0, /* 25 mixer B (variable) */
0, /* 27 mixer C (variable) */
0, /* 1 envelope 1 (variable) */
0, /* 28 envelope 2 (grounded) */
1 /* 9 enable (variable) */
};
static MACHINE_CONFIG_START( spectra, spectra_state )
/* basic machine hardware */
@ -268,9 +241,22 @@ static MACHINE_CONFIG_START( spectra, spectra_state )
/* Sound */
MCFG_FRAGMENT_ADD( genpin_audio )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("snsnd", SN76477, 0)
MCFG_SOUND_CONFIG(sn76477_intf)
MCFG_SN76477_NOISE_PARAMS(RES_M(1000), RES_M(1000), CAP_N(0)) // noise + filter
MCFG_SN76477_DECAY_RES(RES_K(470)) // decay_res
MCFG_SN76477_ATTACK_PARAMS(CAP_N(1), RES_K(22)) // attack_decay_cap + attack_res
MCFG_SN76477_AMP_RES(RES_K(100)) // amplitude_res
MCFG_SN76477_FEEDBACK_RES(RES_K(52)) // feedback_res
MCFG_SN76477_VCO_PARAMS(5.0, CAP_U(0.01), RES_K(390)) // VCO volt + cap + res
MCFG_SN76477_PITCH_VOLTAGE(0.0) // pitch_voltage
MCFG_SN76477_SLF_PARAMS(CAP_U(0.1), RES_M(1)) // slf caps + res
MCFG_SN76477_ONESHOT_PARAMS(CAP_U(0.47), RES_K(470)) // oneshot caps + res
MCFG_SN76477_VCO_MODE(0) // VCO mode
MCFG_SN76477_MIXER_PARAMS(0, 0, 0) // mixer A, B, C
MCFG_SN76477_ENVELOPE_PARAMS(0, 0) // envelope 1, 2
MCFG_SN76477_ENABLE(1) // enable
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MACHINE_CONFIG_END

View File

@ -192,34 +192,6 @@ WRITE8_MEMBER(toratora_state::clear_timer_w)
*
*************************************/
static const sn76477_interface sn76477_intf =
{
RES_K(47), /* 4 noise_res */
// RES_K(120), /* 5 filter_res */
RES_M(1.2), /* 5 filter_res */
CAP_P(470), /* 6 filter_cap */
RES_K(680), /* 7 decay_res */
CAP_U(0.2), /* 8 attack_decay_cap */
RES_K(3.3), /* 10 attack_res */
0, /* 11 amplitude_res (variable) */
RES_K(50), /* 12 feedback_res */
0, /* 16 vco_voltage (variable) */
CAP_U(0.1), /* 17 vco_cap */
RES_K(51), /* 18 vco_res */
5.0, /* 19 pitch_voltage (N/C) */
RES_K(470), /* 20 slf_res */
CAP_U(0.1), /* 21 slf_cap */
CAP_U(0.1), /* 23 oneshot_cap */
RES_M(1), /* 24 oneshot_res */
0, /* 22 vco (variable) */
0, /* 26 mixer A (variable) */
0, /* 25 mixer B (variable) */
0, /* 27 mixer C (variable) */
0, /* 1 envelope 1 (variable) */
0, /* 28 envelope 2 (variable) */
1 /* 9 enable (variable) */
};
WRITE8_MEMBER(toratora_state::sn1_port_a_u2_u3_w)
{
@ -415,11 +387,35 @@ static MACHINE_CONFIG_START( toratora, toratora_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("sn1", SN76477, 0)
MCFG_SOUND_CONFIG(sn76477_intf)
MCFG_SN76477_NOISE_PARAMS(RES_K(47), RES_M(1.2) /* RES_K(120) */, CAP_P(470)) // noise + filter
MCFG_SN76477_DECAY_RES(RES_K(680)) // decay_res
MCFG_SN76477_ATTACK_PARAMS(CAP_U(0.2), RES_K(3.3)) // attack_decay_cap + attack_res
MCFG_SN76477_AMP_RES(0) // amplitude_res
MCFG_SN76477_FEEDBACK_RES(RES_K(50)) // feedback_res
MCFG_SN76477_VCO_PARAMS(0, CAP_U(0.1), RES_K(51)) // VCO volt + cap + res
MCFG_SN76477_PITCH_VOLTAGE(5.0) // pitch_voltage
MCFG_SN76477_SLF_PARAMS(CAP_U(0.1), RES_K(470)) // slf caps + res
MCFG_SN76477_ONESHOT_PARAMS(CAP_U(0.1), RES_M(1)) // oneshot caps + res
MCFG_SN76477_VCO_MODE(0) // VCO mode
MCFG_SN76477_MIXER_PARAMS(0, 0, 0) // mixer A, B, C
MCFG_SN76477_ENVELOPE_PARAMS(0, 0) // envelope 1, 2
MCFG_SN76477_ENABLE(1) // enable
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MCFG_SOUND_ADD("sn2", SN76477, 0)
MCFG_SOUND_CONFIG(sn76477_intf)
MCFG_SN76477_NOISE_PARAMS(RES_K(47), RES_M(1.2) /* RES_K(120) */, CAP_P(470)) // noise + filter
MCFG_SN76477_DECAY_RES(RES_K(680)) // decay_res
MCFG_SN76477_ATTACK_PARAMS(CAP_U(0.2), RES_K(3.3)) // attack_decay_cap + attack_res
MCFG_SN76477_AMP_RES(0) // amplitude_res
MCFG_SN76477_FEEDBACK_RES(RES_K(50)) // feedback_res
MCFG_SN76477_VCO_PARAMS(0, CAP_U(0.1), RES_K(51)) // VCO volt + cap + res
MCFG_SN76477_PITCH_VOLTAGE(5.0) // pitch_voltage
MCFG_SN76477_SLF_PARAMS(CAP_U(0.1), RES_K(470)) // slf caps + res
MCFG_SN76477_ONESHOT_PARAMS(CAP_U(0.1), RES_M(1)) // oneshot caps + res
MCFG_SN76477_VCO_MODE(0) // VCO mode
MCFG_SN76477_MIXER_PARAMS(0, 0, 0) // mixer A, B, C
MCFG_SN76477_ENVELOPE_PARAMS(0, 0) // envelope 1, 2
MCFG_SN76477_ENABLE(1) // enable
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END

View File

@ -165,7 +165,4 @@ extern const char *const lupin3_sample_names[];
DISCRETE_SOUND_EXTERN( ballbomb );
DISCRETE_SOUND_EXTERN( indianbt );
DISCRETE_SOUND_EXTERN( polaris );
extern const sn76477_interface lupin3_sn76477_interface;
extern const sn76477_interface schaser_sn76477_interface;
DISCRETE_SOUND_EXTERN( schaser );

View File

@ -149,10 +149,3 @@ DISCRETE_SOUND_EXTERN( fantasy );
extern const char *const sasuke_sample_names[];
extern const char *const vanguard_sample_names[];
extern const char *const fantasy_sample_names[];
extern const sn76477_interface sasuke_sn76477_intf_1;
extern const sn76477_interface sasuke_sn76477_intf_2;
extern const sn76477_interface sasuke_sn76477_intf_3;
extern const sn76477_interface satansat_sn76477_intf;
extern const sn76477_interface vanguard_sn76477_intf_1;
extern const sn76477_interface vanguard_sn76477_intf_2;
extern const sn76477_interface fantasy_sn76477_intf;

View File

@ -245,31 +245,6 @@ INPUT_PORTS_END
// DEVICE CONFIGURATION
//**************************************************************************
//-------------------------------------------------
// sn76477_interface csg_intf
//-------------------------------------------------
static const sn76477_interface csg_intf =
{
RES_K(47), // 4 noise_res R26 47k
RES_K(330), // 5 filter_res R24 330k
CAP_P(390), // 6 filter_cap C52 390p
RES_K(47), // 7 decay_res R23 47k
CAP_U(10), // 8 attack_decay_cap C50 10u/35V
RES_K(2.2), // 10 attack_res R21 2.2k
RES_K(33), // 11 amplitude_res R19 33k
RES_K(10), // 12 feedback_res R18 10k
0, // 16 vco_voltage 0V or 2.5V
CAP_N(10) , // 17 vco_cap C48 10n
RES_K(100), // 18 vco_res R20 100k
0, // 19 pitch_voltage N/C
RES_K(220), // 20 slf_res R22 220k
CAP_U(1), // 21 slf_cap C51 1u/35V
CAP_U(0.1), // 23 oneshot_cap C53 0.1u
RES_K(330) // 24 oneshot_res R25 330k
};
//-------------------------------------------------
// Z80PIO
//-------------------------------------------------
@ -523,7 +498,15 @@ static MACHINE_CONFIG_START( abc80, abc80_state )
// sound hardware
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD(SN76477_TAG, SN76477, 0)
MCFG_SOUND_CONFIG(csg_intf)
MCFG_SN76477_NOISE_PARAMS(RES_K(47), RES_K(330), CAP_P(390)) // noise + filter: R26 47k - R24 330k - C52 390p
MCFG_SN76477_DECAY_RES(RES_K(47)) // decay_res: R23 47k
MCFG_SN76477_ATTACK_PARAMS(CAP_U(10), RES_K(2.2)) // attack_decay_cap + attack_res: C50 10u/35V - R21 2.2k
MCFG_SN76477_AMP_RES(RES_K(33)) // amplitude_res: R19 33k
MCFG_SN76477_FEEDBACK_RES(RES_K(10)) // feedback_res: R18 10k
MCFG_SN76477_VCO_PARAMS(0, CAP_N(10), RES_K(100)) // VCO volt + cap + res: 0V or 2.5V - C48 10n - R20 100k
MCFG_SN76477_PITCH_VOLTAGE(0) // pitch_voltage: N/C
MCFG_SN76477_SLF_PARAMS(CAP_U(1), RES_K(220)) // slf caps + res: C51 1u/35V - R22 220k
MCFG_SN76477_ONESHOT_PARAMS(CAP_U(0.1), RES_K(330)) // oneshot caps + res: C53 0.1u - R25 330k
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
// devices

View File

@ -425,7 +425,15 @@ static MACHINE_CONFIG_START( hec2hr, hec2hrp_state )
MCFG_SOUND_ROUTE(0, "mono", 0.25)
MCFG_SOUND_ADD("sn76477", SN76477, 0)
MCFG_SOUND_CONFIG(hector_sn76477_interface)
MCFG_SN76477_NOISE_PARAMS(RES_K(47), RES_K(330), CAP_P(390)) // noise + filter
MCFG_SN76477_DECAY_RES(RES_K(680)) // decay_res
MCFG_SN76477_ATTACK_PARAMS(CAP_U(47), RES_K(180)) // attack_decay_cap + attack_res
MCFG_SN76477_AMP_RES(RES_K(33)) // amplitude_res
MCFG_SN76477_FEEDBACK_RES(RES_K(100)) // feedback_res
MCFG_SN76477_VCO_PARAMS(2, CAP_N(47), RES_K(1000)) // VCO volt + cap + res
MCFG_SN76477_PITCH_VOLTAGE(2) // pitch_voltage
MCFG_SN76477_SLF_PARAMS(CAP_U(0.1), RES_K(180)) // slf caps + res
MCFG_SN76477_ONESHOT_PARAMS(CAP_U(1.00001), RES_K(10000)) // oneshot caps + res
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.1)
MCFG_SOUND_ADD("discrete", DISCRETE, 0) /* Son 1bit*/
@ -471,11 +479,19 @@ static MACHINE_CONFIG_START( hec2hrp, hec2hrp_state )
MCFG_SOUND_ROUTE(0, "mono", 0.25)// Sound level for cassette, as it is in mono => output channel=0
MCFG_SOUND_ADD("sn76477", SN76477, 0)
MCFG_SOUND_CONFIG(hector_sn76477_interface)
MCFG_SN76477_NOISE_PARAMS(RES_K(47), RES_K(330), CAP_P(390)) // noise + filter
MCFG_SN76477_DECAY_RES(RES_K(680)) // decay_res
MCFG_SN76477_ATTACK_PARAMS(CAP_U(47), RES_K(180)) // attack_decay_cap + attack_res
MCFG_SN76477_AMP_RES(RES_K(33)) // amplitude_res
MCFG_SN76477_FEEDBACK_RES(RES_K(100)) // feedback_res
MCFG_SN76477_VCO_PARAMS(2, CAP_N(47), RES_K(1000)) // VCO volt + cap + res
MCFG_SN76477_PITCH_VOLTAGE(2) // pitch_voltage
MCFG_SN76477_SLF_PARAMS(CAP_U(0.1), RES_K(180)) // slf caps + res
MCFG_SN76477_ONESHOT_PARAMS(CAP_U(1.00001), RES_K(10000)) // oneshot caps + res
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.1)
MCFG_SOUND_ADD("discrete", DISCRETE, 0) // Son 1bit
MCFG_DISCRETE_INTF( hec2hrp )
MCFG_DISCRETE_INTF(hec2hrp)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
/* Gestion cassette*/
@ -531,7 +547,15 @@ static MACHINE_CONFIG_START( hec2mx40, hec2hrp_state )
MCFG_SOUND_ROUTE(0, "mono", 0.25)// Sound level for cassette, as it is in mono => output channel=0
MCFG_SOUND_ADD("sn76477", SN76477, 0)
MCFG_SOUND_CONFIG(hector_sn76477_interface)
MCFG_SN76477_NOISE_PARAMS(RES_K(47), RES_K(330), CAP_P(390)) // noise + filter
MCFG_SN76477_DECAY_RES(RES_K(680)) // decay_res
MCFG_SN76477_ATTACK_PARAMS(CAP_U(47), RES_K(180)) // attack_decay_cap + attack_res
MCFG_SN76477_AMP_RES(RES_K(33)) // amplitude_res
MCFG_SN76477_FEEDBACK_RES(RES_K(100)) // feedback_res
MCFG_SN76477_VCO_PARAMS(2, CAP_N(47), RES_K(1000)) // VCO volt + cap + res
MCFG_SN76477_PITCH_VOLTAGE(2) // pitch_voltage
MCFG_SN76477_SLF_PARAMS(CAP_U(0.1), RES_K(180)) // slf caps + res
MCFG_SN76477_ONESHOT_PARAMS(CAP_U(1.00001), RES_K(10000)) // oneshot caps + res
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.1)
MCFG_SOUND_ADD("discrete", DISCRETE, 0) // Son 1bit
@ -586,7 +610,15 @@ static MACHINE_CONFIG_START( hec2hrx, hec2hrp_state )
MCFG_SOUND_ROUTE(0, "mono", 0.25)// Sound level for cassette, as it is in mono => output channel=0
MCFG_SOUND_ADD("sn76477", SN76477, 0)
MCFG_SOUND_CONFIG(hector_sn76477_interface)
MCFG_SN76477_NOISE_PARAMS(RES_K(47), RES_K(330), CAP_P(390)) // noise + filter
MCFG_SN76477_DECAY_RES(RES_K(680)) // decay_res
MCFG_SN76477_ATTACK_PARAMS(CAP_U(47), RES_K(180)) // attack_decay_cap + attack_res
MCFG_SN76477_AMP_RES(RES_K(33)) // amplitude_res
MCFG_SN76477_FEEDBACK_RES(RES_K(100)) // feedback_res
MCFG_SN76477_VCO_PARAMS(2, CAP_N(47), RES_K(1000)) // VCO volt + cap + res
MCFG_SN76477_PITCH_VOLTAGE(2) // pitch_voltage
MCFG_SN76477_SLF_PARAMS(CAP_U(0.1), RES_K(180)) // slf caps + res
MCFG_SN76477_ONESHOT_PARAMS(CAP_U(1.00001), RES_K(10000)) // oneshot caps + res
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.1)
MCFG_SOUND_ADD("discrete", DISCRETE, 0) // Son 1bit
@ -639,7 +671,15 @@ static MACHINE_CONFIG_START( hec2mdhrx, hec2hrp_state )
MCFG_SOUND_ROUTE(0, "mono", 0.25)// Sound level for cassette, as it is in mono => output channel=0
MCFG_SOUND_ADD("sn76477", SN76477, 0)
MCFG_SOUND_CONFIG(hector_sn76477_interface)
MCFG_SN76477_NOISE_PARAMS(RES_K(47), RES_K(330), CAP_P(390)) // noise + filter
MCFG_SN76477_DECAY_RES(RES_K(680)) // decay_res
MCFG_SN76477_ATTACK_PARAMS(CAP_U(47), RES_K(180)) // attack_decay_cap + attack_res
MCFG_SN76477_AMP_RES(RES_K(33)) // amplitude_res
MCFG_SN76477_FEEDBACK_RES(RES_K(100)) // feedback_res
MCFG_SN76477_VCO_PARAMS(2, CAP_N(47), RES_K(1000)) // VCO volt + cap + res
MCFG_SN76477_PITCH_VOLTAGE(2) // pitch_voltage
MCFG_SN76477_SLF_PARAMS(CAP_U(0.1), RES_K(180)) // slf caps + res
MCFG_SN76477_ONESHOT_PARAMS(CAP_U(1.00001), RES_K(10000)) // oneshot caps + res
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.1)
MCFG_SOUND_ADD("discrete", DISCRETE, 0) // Son 1bit
@ -695,7 +735,15 @@ static MACHINE_CONFIG_START( hec2mx80, hec2hrp_state )
MCFG_SOUND_ROUTE(0, "mono", 0.25)// Sound level for cassette, as it is in mono => output channel=0
MCFG_SOUND_ADD("sn76477", SN76477, 0)
MCFG_SOUND_CONFIG(hector_sn76477_interface)
MCFG_SN76477_NOISE_PARAMS(RES_K(47), RES_K(330), CAP_P(390)) // noise + filter
MCFG_SN76477_DECAY_RES(RES_K(680)) // decay_res
MCFG_SN76477_ATTACK_PARAMS(CAP_U(47), RES_K(180)) // attack_decay_cap + attack_res
MCFG_SN76477_AMP_RES(RES_K(33)) // amplitude_res
MCFG_SN76477_FEEDBACK_RES(RES_K(100)) // feedback_res
MCFG_SN76477_VCO_PARAMS(2, CAP_N(47), RES_K(1000)) // VCO volt + cap + res
MCFG_SN76477_PITCH_VOLTAGE(2) // pitch_voltage
MCFG_SN76477_SLF_PARAMS(CAP_U(0.1), RES_K(180)) // slf caps + res
MCFG_SN76477_ONESHOT_PARAMS(CAP_U(1.00001), RES_K(10000)) // oneshot caps + res
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.1)
MCFG_SOUND_ADD("discrete", DISCRETE, 0) // Son 1bit

View File

@ -149,7 +149,15 @@ static MACHINE_CONFIG_START( interact, interact_state )
MCFG_SOUND_ROUTE(0, "mono", 0.25) /* Sound level for cassette, as it is in mono => output channel=0*/
MCFG_SOUND_ADD("sn76477", SN76477, 0)
MCFG_SOUND_CONFIG(hector_sn76477_interface)
MCFG_SN76477_NOISE_PARAMS(RES_K(47), RES_K(330), CAP_P(390)) // noise + filter
MCFG_SN76477_DECAY_RES(RES_K(680)) // decay_res
MCFG_SN76477_ATTACK_PARAMS(CAP_U(47), RES_K(180)) // attack_decay_cap + attack_res
MCFG_SN76477_AMP_RES(RES_K(33)) // amplitude_res
MCFG_SN76477_FEEDBACK_RES(RES_K(100)) // feedback_res
MCFG_SN76477_VCO_PARAMS(2, CAP_N(47), RES_K(1000)) // VCO volt + cap + res
MCFG_SN76477_PITCH_VOLTAGE(2) // pitch_voltage
MCFG_SN76477_SLF_PARAMS(CAP_U(0.1), RES_K(180)) // slf caps + res
MCFG_SN76477_ONESHOT_PARAMS(CAP_U(1.00001), RES_K(10000)) // oneshot caps + res
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.1)
MCFG_SOUND_ADD("discrete", DISCRETE, 0) /* Son 1bit*/
@ -196,7 +204,15 @@ static MACHINE_CONFIG_START( hector1, interact_state )
MCFG_SOUND_ROUTE(0, "mono", 0.25)/* Sound level for cassette, as it is in mono => output channel=0*/
MCFG_SOUND_ADD("sn76477", SN76477, 0)
MCFG_SOUND_CONFIG(hector_sn76477_interface)
MCFG_SN76477_NOISE_PARAMS(RES_K(47), RES_K(330), CAP_P(390)) // noise + filter
MCFG_SN76477_DECAY_RES(RES_K(680)) // decay_res
MCFG_SN76477_ATTACK_PARAMS(CAP_U(47), RES_K(180)) // attack_decay_cap + attack_res
MCFG_SN76477_AMP_RES(RES_K(33)) // amplitude_res
MCFG_SN76477_FEEDBACK_RES(RES_K(100)) // feedback_res
MCFG_SN76477_VCO_PARAMS(2, CAP_N(47), RES_K(1000)) // VCO volt + cap + res
MCFG_SN76477_PITCH_VOLTAGE(2) // pitch_voltage
MCFG_SN76477_SLF_PARAMS(CAP_U(0.1), RES_K(180)) // slf caps + res
MCFG_SN76477_ONESHOT_PARAMS(CAP_U(1.00001), RES_K(10000)) // oneshot caps + res
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.1)
MCFG_SOUND_ADD("discrete", DISCRETE, 0) /* Son 1bit*/

View File

@ -186,7 +186,4 @@ public:
void hector_disc2_reset();
};
/* Sound function*/
extern const sn76477_interface hector_sn76477_interface;
extern const floppy_interface minidisc_floppy_interface;

View File

@ -818,26 +818,6 @@ void hec2hrp_state::Update_Sound(address_space &space, UINT8 data)
m_sn->enable_w(m_Pin_Value[9][m_AU[14]]);
}
const sn76477_interface hector_sn76477_interface =
{
RES_K(47), /* 4 noise_res*/
RES_K(330), /* 5 filter_res*/
CAP_P(390), /* 6 filter_cap*/
RES_K(680), /* 7 decay_res*/
CAP_U(47), /* 8 attack_decay_cap*/
RES_K(180), /* 10 attack_res*/
RES_K(33), /* 11 amplitude_res*/
RES_K(100), /* 12 feedback_res*/
2, /* 16 vco_voltage*/
CAP_N(47) , /* 17 vco_cap*/
RES_K(1000), /* 18 vco_res*/
2, /* 19 pitch_voltage*/
RES_K(180), /* 20 slf_res*/
CAP_U(0.1), /* 21 slf_cap*/
CAP_U(1.00001), /* 23 oneshot_cap*/
RES_K(10000) /* 24 oneshot_res*/
};
void hec2hrp_state::hector_reset(int hr, int with_D2 )
{
// Initialization Hector