Example #1
0
	TTL_7404_INVERT(ic_c4a, ic_b6a)

	TTL_7483(ic_b4, ic_a4c, ic_a4b, ic_b6a, low, ic_c4a, high, high, low, low)
	ALIAS(a6, ic_b4.S1)
	ALIAS(b6, ic_b4.S2)
	ALIAS(c6, ic_b4.S3)
	ALIAS(d6, ic_b4.S4)

	// ----------------------------------------------------------------------------------------
	// serve monoflop
	// ----------------------------------------------------------------------------------------

	TTL_7404_INVERT(f4_trig, rstspeed)

	RES(ic_f4_serve_R, RES_K(330))
	CAP(ic_f4_serve_C, CAP_U(4.7))
	NE555(ic_f4_serve)

	NET_C(ic_f4_serve.VCC, V5)
	NET_C(ic_f4_serve.GND, GND)
	NET_C(ic_f4_serve.RESET, V5)
	NET_C(ic_f4_serve_R.1, V5)
	NET_C(ic_f4_serve_R.2, ic_f4_serve.THRESH)
	NET_C(ic_f4_serve_R.2, ic_f4_serve.DISCH)
	NET_C(f4_trig, ic_f4_serve.TRIG)
	NET_C(ic_f4_serve_R.2, ic_f4_serve_C.1)
	NET_C(GND, ic_f4_serve_C.2)

	TTL_7427_NOR(ic_e5a, ic_f4_serve.OUT, StopG, runQ)
	TTL_7474(ic_b5b_serve, pad1, ic_e5a, ic_e5a, high)
Example #2
0
	SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER);

	/* sound hardware */
	SPEAKER(config, "mono").front_center();

	SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25);

	CDP1864(config, m_cti, 1.75_MHz_XTAL).set_screen(SCREEN_TAG);
	m_cti->inlace_cb().set_constant(0);
	m_cti->int_cb().set_inputline(m_maincpu, COSMAC_INPUT_LINE_INT);
	m_cti->dma_out_cb().set(FUNC(cosmicos_state::dmaout_w));
	m_cti->efx_cb().set(FUNC(cosmicos_state::efx_w));
	m_cti->rdata_cb().set_constant(1);
	m_cti->gdata_cb().set_constant(1);
	m_cti->bdata_cb().set_constant(1);
	m_cti->set_chrominance(RES_K(2), 0, 0, 0); // R2
	m_cti->add_route(ALL_OUTPUTS, "mono", 0.25);

	/* devices */
	MCFG_QUICKLOAD_ADD("quickload", cosmicos_state, cosmicos, "bin")
	CASSETTE(config, m_cassette);
	m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED);

	/* internal ram */
	RAM(config, RAM_TAG).set_default_size("256").set_extra_options("4K,48K");
MACHINE_CONFIG_END

/* ROMs */

ROM_START( cosmicos )
	ROM_REGION( 0x1000, CDP1802_TAG, 0 )
Example #3
0
    if (rising_bits & 0x10) sample_start(state->m_samples, 2, 2, 0);		/* Balloon hit and bomb drops */

    state->m_c8080bw_flip_screen = data & 0x20;

    state->m_port_2_last_extra = data;
}



/*******************************************************/
/*                                                     */
/* Taito "Indian Battle"                               */
/* Sept 2005, D.R.                                     */
/*******************************************************/
static const discrete_dac_r1_ladder indianbt_music_dac =
{3, {0, RES_K(47), RES_K(12)}, 0, 0, 0, CAP_U(0.1)};

#define INDIANBT_MUSIC_CLK		(7680.0*2*2*2)

/* Nodes - Inputs */
#define INDIANBT_MUSIC_DATA		NODE_01
/* Nodes - Sounds */
#define INDIANBT_MUSIC			NODE_11

DISCRETE_SOUND_START(indianbt)

DISCRETE_INPUT_DATA (INDIANBT_MUSIC_DATA)

/******************************************************************************
 *
 * Music Generator
Example #4
0
{
	m_efx = state;
}

static CDP1864_INTERFACE( cosmicos_cdp1864_intf )
{
	CDP1802_TAG,
	SCREEN_TAG,
	CDP1864_INTERLACED,
	DEVCB_LINE_VCC,
	DEVCB_LINE_VCC,
	DEVCB_LINE_VCC,
	DEVCB_CPU_INPUT_LINE(CDP1802_TAG, COSMAC_INPUT_LINE_INT),
	DEVCB_DRIVER_LINE_MEMBER(cosmicos_state, dmaout_w),
	DEVCB_DRIVER_LINE_MEMBER(cosmicos_state, efx_w),
	RES_K(2), // R2
	0, // not connected
	0, // not connected
	0  // not connected
};

bool cosmicos_state::screen_update(screen_device &screen, bitmap_t &bitmap, const rectangle &cliprect)
{
	cdp1864_update(m_cti, &bitmap, &cliprect);

	return 0;
}

/* CDP1802 Configuration */

READ_LINE_MEMBER( cosmicos_state::wait_r )
Example #5
0

MACHINE_RESET(malzak)
{
//  val++;
//  mame_printf_debug("val = %X\n",val);
}

static struct SN76477interface 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        */
Example #6
0
static MACHINE_RESET( nitedrvr )
{
	timer_pulse(PERIOD_OF_555_ASTABLE(RES_K(180), 330, CAP_U(1)), NULL, 0, nitedrvr_crash_toggle_callback);
	nitedrvr_register_machine_vars();
}
Example #7
0
	16,         /* Bit Length */
	0,          /* Reset Value */
	6,          /* Use Bit 6 as XOR input 0 */
	14,         /* Use Bit 14 as XOR input 1 */
	DISC_LFSR_XNOR,     /* Feedback stage1 is XNOR */
	DISC_LFSR_OR,       /* Feedback stage2 is just stage 1 output OR with external feed */
	DISC_LFSR_REPLACE,  /* Feedback stage3 replaces the shifted register contents */
	0x000001,       /* Everything is shifted into the first bit only */
	0,          /* Output is already inverted by XNOR */
	16          /* Output bit is feedback bit */
};

static const discrete_dac_r1_ladder asteroid_thump_dac1 =
{
	4,          // size of ladder
	{RES_K(220), RES_K(100), RES_K(47), RES_K(22)}, //R44-R47
	4.3,        // 5v - diode junction
	RES_K(6.8), // R49
	RES_K(47),  // R44
	CAP_U(0.01) // C27
};

static const discrete_555_cc_desc asteroid_thump_555cc =
{
	DISC_555_OUT_SQW | DISC_555_OUT_AC | DISCRETE_555_CC_TO_CAP,
	5,      // B+ voltage of 555
	DEFAULT_555_VALUES,
	0.8     // VBE 2N3906 (Si)
};

#define ASTEROID_SAUCER_SND_EN      NODE_01
Example #8
0
	TTL_7474_DIP(U3A) // FIXME: need 74LS family model (higher input impedance, half the sink capability)
	CD4016_DIP(U5D)

	NET_C(VCC, /*U3A.14,*/ U5D.14) // 7474 model doesn't have Vcc pin
	NET_C(GND, /*U3A.7,*/ U5D.7) // 7474 model doesn't have GND pin

	NET_C(VCC, U3A.10, U3A.11, U3A.12, U3A.13) // only half of this chip is used in this audio section - tie up the other inputs


	// ANAL1/IOA3/IOA4 -> RULLANTE/CASSA

	CAP(C61, CAP_U(10))
	CAP(C62, CAP_P(1000))
	CAP(C63, CAP_U(0.01))
	CAP(C68, CAP_U(0.1))
	RES(R84, RES_K(1.5))
	RES(R102, RES_K(10))
	RES(R103, RES_K(10))
	RES(R104, RES_K(120))
	RES(R105, RES_K(56))
	RES(R120, RES_K(47))
	RES(R121, 680) // incorrectly labelled R128 on schematic
	RES(R122, RES_K(33))
	RES(R123, RES_K(1))
	RES(R124, RES_K(39))
	RES(R125, RES_K(560))
	RES(R126, RES_K(470))
	RES(R127, RES_K(100))
	RES(R128, RES_K(56))
	RES(R129, RES_K(1))
	RES(R130, RES_K(33))
Example #9
0
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", "palette", ccastles)
MCFG_PALETTE_ADD("palette", 32)

MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, 0, HTOTAL - 1, VTOTAL, 0, VTOTAL - 1)   /* will be adjusted later */
MCFG_SCREEN_UPDATE_DRIVER(ccastles_state, screen_update_ccastles)
MCFG_SCREEN_PALETTE("palette")

/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")

MCFG_SOUND_ADD("pokey1", POKEY, MASTER_CLOCK/8)
/* NOTE: 1k + 0.2k is not 100% exact, but should not make an audible difference */
MCFG_POKEY_OUTPUT_OPAMP(RES_K(1) + RES_K(0.2), CAP_U(0.01), 5.0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)

MCFG_SOUND_ADD("pokey2", POKEY, MASTER_CLOCK/8)
/* NOTE: 1k + 0.2k is not 100% exact, but should not make an audible difference */
MCFG_POKEY_OUTPUT_OPAMP(RES_K(1) + RES_K(0.2), CAP_U(0.01), 5.0)
MCFG_POKEY_ALLPOT_R_CB(IOPORT("IN1"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END



/*************************************
 *
 *  ROM definitions
 *
Example #10
0
void gyruss_state::gyruss(machine_config &config)
{
	/* basic machine hardware */
	Z80(config, m_maincpu, MASTER_CLOCK/6);    /* 3.072 MHz */
	m_maincpu->set_addrmap(AS_PROGRAM, &gyruss_state::main_cpu1_map);

	KONAMI1(config, m_subcpu, MASTER_CLOCK/12);     /* 1.536 MHz */
	m_subcpu->set_addrmap(AS_PROGRAM, &gyruss_state::main_cpu2_map);

	Z80(config, m_audiocpu, SOUND_CLOCK/4);    /* 3.579545 MHz */
	m_audiocpu->set_addrmap(AS_PROGRAM, &gyruss_state::audio_cpu1_map);
	m_audiocpu->set_addrmap(AS_IO, &gyruss_state::audio_cpu1_io_map);

	I8039(config, m_audiocpu_2, XTAL(8'000'000));
	m_audiocpu_2->set_addrmap(AS_PROGRAM, &gyruss_state::audio_cpu2_map);
	m_audiocpu_2->set_addrmap(AS_IO, &gyruss_state::audio_cpu2_io_map);
	m_audiocpu_2->p1_out_cb().set(FUNC(gyruss_state::gyruss_dac_w));
	m_audiocpu_2->p2_out_cb().set(FUNC(gyruss_state::gyruss_irq_clear_w));

	config.m_minimum_quantum = attotime::from_hz(6000);

	ls259_device &mainlatch(LS259(config, "mainlatch")); // 3C
	mainlatch.q_out_cb<0>().set(FUNC(gyruss_state::master_nmi_mask_w));
	mainlatch.q_out_cb<2>().set(FUNC(gyruss_state::coin_counter_1_w));
	mainlatch.q_out_cb<3>().set(FUNC(gyruss_state::coin_counter_2_w));
	mainlatch.q_out_cb<5>().set(FUNC(gyruss_state::flipscreen_w));

	/* video hardware */
	SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
	m_screen->set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART);
	m_screen->set_screen_update(FUNC(gyruss_state::screen_update_gyruss));
	m_screen->set_palette(m_palette);
	m_screen->screen_vblank().set(FUNC(gyruss_state::vblank_irq));

	GFXDECODE(config, m_gfxdecode, m_palette, gfx_gyruss);
	PALETTE(config, m_palette, FUNC(gyruss_state::gyruss_palette), 16*4+16*16, 32);

	/* sound hardware */
	SPEAKER(config, "lspeaker").front_left();
	SPEAKER(config, "rspeaker").front_right();

	GENERIC_LATCH_8(config, "soundlatch");
	GENERIC_LATCH_8(config, "soundlatch2");

	ay8910_device &ay1(AY8910(config, "ay1", SOUND_CLOCK/8));
	ay1.set_flags(AY8910_DISCRETE_OUTPUT);
	ay1.set_resistors_load(RES_K(3.3), RES_K(3.3), RES_K(3.3));
	ay1.port_b_write_callback().set(FUNC(gyruss_state::gyruss_filter0_w));
	ay1.add_route(0, "discrete", 1.0, 0);
	ay1.add_route(1, "discrete", 1.0, 1);
	ay1.add_route(2, "discrete", 1.0, 2);

	ay8910_device &ay2(AY8910(config, "ay2", SOUND_CLOCK/8));
	ay2.set_flags(AY8910_DISCRETE_OUTPUT);
	ay2.set_resistors_load(RES_K(3.3), RES_K(3.3), RES_K(3.3));
	ay2.port_b_write_callback().set(FUNC(gyruss_state::gyruss_filter1_w));
	ay2.add_route(0, "discrete", 1.0, 3);
	ay2.add_route(1, "discrete", 1.0, 4);
	ay2.add_route(2, "discrete", 1.0, 5);

	ay8910_device &ay3(AY8910(config, "ay3", SOUND_CLOCK/8));
	ay3.set_flags(AY8910_DISCRETE_OUTPUT);
	ay3.set_resistors_load(RES_K(3.3), RES_K(3.3), RES_K(3.3));
	ay3.port_a_read_callback().set(FUNC(gyruss_state::gyruss_portA_r));
	ay3.add_route(0, "discrete", 1.0, 6);
	ay3.add_route(1, "discrete", 1.0, 7);
	ay3.add_route(2, "discrete", 1.0, 8);

	ay8910_device &ay4(AY8910(config, "ay4", SOUND_CLOCK/8));
	ay4.set_flags(AY8910_DISCRETE_OUTPUT);
	ay4.set_resistors_load(RES_K(3.3), RES_K(3.3), RES_K(3.3));
	ay4.add_route(0, "discrete", 1.0, 9);
	ay4.add_route(1, "discrete", 1.0, 10);
	ay4.add_route(2, "discrete", 1.0, 11);

	ay8910_device &ay5(AY8910(config, "ay5", SOUND_CLOCK/8));
	ay5.set_flags(AY8910_DISCRETE_OUTPUT);
	ay5.set_resistors_load(RES_K(3.3), RES_K(3.3), RES_K(3.3));
	ay5.add_route(0, "discrete", 1.0, 12);
	ay5.add_route(1, "discrete", 1.0, 13);
	ay5.add_route(2, "discrete", 1.0, 14);

	DISCRETE(config, m_discrete, gyruss_sound_discrete);
	m_discrete->add_route(0, "rspeaker", 1.0);
	m_discrete->add_route(1, "lspeaker", 1.0);
}
Example #11
0
INPUT_PORTS_END



//**************************************************************************
//  SOUND
//**************************************************************************

//-------------------------------------------------
//  DISCRETE_SOUND( vidbrain )
//-------------------------------------------------

static const discrete_dac_r1_ladder vidbrain_dac =
{
	2,
	{ RES_K(120), RES_K(120) }, // R=56K, 2R=120K
	0, 0, RES_K(120), 0
};

static DISCRETE_SOUND_START( vidbrain )
	DISCRETE_INPUT_DATA(NODE_01)
	DISCRETE_DAC_R1(NODE_02, NODE_01, DEFAULT_TTL_V_LOGIC_1, &vidbrain_dac)
	DISCRETE_OUTPUT(NODE_02, 5000)
DISCRETE_SOUND_END



//**************************************************************************
//  DEVICE CONFIGURATION
//**************************************************************************
Example #12
0
	/************************************************/
	/* Note sound is created by a divider circuit.  */
	/* The master clock is the 93681.5 Hz, from the */
	/* 555 oscillator.  This is then sent to a      */
	/* preloadable 8 bit counter, which loads the   */
	/* value from OUT02 when overflowing from 0xFF  */
	/* to 0x00.  Therefore it divides by 2 (OUT02   */
	/* = FE) to 256 (OUT02 = 00).                   */
	/* There is also a final /2 stage.              */
	/* Note that there is no music disable line.    */
	/* When there is no music, the game sets the    */
	/* oscillator to 0Hz.  (OUT02 = FF)             */
	/************************************************/
	DISCRETE_NOTE(BLOCKADE_NOTE, 1, 93681.5, BLOCKADE_NOTE_DATA, 255, 1, DISC_CLK_IS_FREQ | DISC_OUT_IS_ENERGY)
	DISCRETE_CRFILTER(NODE_10, BLOCKADE_NOTE, RES_K(35), CAP_U(.01))

	DISCRETE_OUTPUT(NODE_10, 7500)
DISCRETE_SOUND_END

WRITE8_MEMBER(blockade_state::blockade_sound_freq_w)
{
	m_discrete->write(space,BLOCKADE_NOTE_DATA, data);
	return;
}

WRITE8_MEMBER(blockade_state::blockade_env_on_w)
{
	if (BLOCKADE_LOG) mame_printf_debug("Boom Start\n");
	m_samples->start(0,0);
	return;
Example #13
0
	{ 0, 1, 2, 3 },        /* the bitplanes are packed */
	{ 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4,
			8*4, 9*4, 10*4, 11*4, 12*4, 13*4, 14*4, 15*4 },
	{ 0*4*16, 1*4*16, 2*4*16, 3*4*16, 4*4*16, 5*4*16, 6*4*16, 7*4*16,
			8*4*16, 9*4*16, 10*4*16, 11*4*16, 12*4*16, 13*4*16, 14*4*16, 15*4*16 },
	32*4*8    /* every sprite takes 128 consecutive bytes */
};

static GFXDECODE_START( circusc )
	GFXDECODE_ENTRY( "gfx1", 0, charlayout,       0, 16 )
	GFXDECODE_ENTRY( "gfx2", 0, spritelayout, 16*16, 16 )
GFXDECODE_END

static const discrete_mixer_desc circusc_mixer_desc =
	{DISC_MIXER_IS_RESISTOR,
		{RES_K(2.2), RES_K(2.2), RES_K(10)},
		{0,0,0},	// no variable resistors
		{0,0,0},  // no node capacitors
		0, RES_K(1),
		CAP_U(0.1),
		CAP_U(0.47),
		0, 1};

static DISCRETE_SOUND_START( circusc )

	DISCRETE_INPUTX_STREAM(NODE_01, 0, 1.0, 0)
	DISCRETE_INPUTX_STREAM(NODE_02, 1, 1.0, 0)
	DISCRETE_INPUTX_STREAM(NODE_03, 2, 2.0, 0) // DAC 0..32767, multiply by 2

	DISCRETE_INPUT_DATA(NODE_05)
	DISCRETE_INPUT_DATA(NODE_06)
Example #14
0
	0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8,
	0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x0, 0x0, 0x0, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8,
};


static struct DACinterface n8080_dac_interface =
{
	1, { 30 }
};


struct SN76477interface sheriff_sn76477_interface =
{
	1,
	{ 35 },
	{ 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 */
Example #15
0
/* Nodes - Inputs */
#define CIRCUS_MUSIC_BIT    NODE_01
/* Nodes - Sounds */
#define CIRCUS_MUSIC_SND    NODE_10

DISCRETE_SOUND_START(circus)
	/************************************************/
	/* Input register mapping for circus            */
	/************************************************/
	DISCRETE_INPUTX_NOT(CIRCUS_MUSIC_BIT,    20000,  0,      1)

	/************************************************/
	/* Music is just a 1 bit DAC                    */
	/************************************************/
	DISCRETE_CRFILTER(CIRCUS_MUSIC_SND, CIRCUS_MUSIC_BIT, RES_K(50), CAP_U(.1)) /* 50K is just an average value */

	DISCRETE_OUTPUT(CIRCUS_MUSIC_SND, 1)
DISCRETE_SOUND_END

static const discrete_mixer_desc crash_mixer =
{
	DISC_MIXER_IS_RESISTOR,
	{RES_K(22), RES_K(5)},
	{0},
	{CAP_U(.1), CAP_U(.1)},
	0, RES_K(100), 0, CAP_U(.1), 0, 10000
};

static const discrete_555_desc crash_beeper_555m =
{
Example #16
0
	PARAM(Solver.DYNAMIC_TS, 1)
	PARAM(Solver.LTE, 1e-1)
	#endif
	//FIXME proper models!
	NET_MODEL(".model 2SC945 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)")
	NET_MODEL(".model 1S1588 D(Is=2.52n Rs=.568 N=1.752 Cjo=4p M=.4 tt=20n Iave=200m Vpk=75 mfg=OnSemi type=silicon)")

	//NET_C(R44.1, XU1.7)

	/*
	 * Workaround: The simplified opamp model does not correctly
	 * model the internals of the inputs.
	 */

	ANALOG_INPUT(VWORKAROUND, 2.061)
	RES(RWORKAROUND, RES_K(27))
	NET_C(VWORKAROUND.Q, RWORKAROUND.1)
	NET_C(XU1.6, RWORKAROUND.2)

	ANALOG_INPUT(I_V5, 5)
	//ANALOG_INPUT(I_V0, 0)
	ALIAS(I_V0.Q, GND)
	#if 0
	ANALOG_INPUT(I_SD0, 0)
	ANALOG_INPUT(I_BD0, 0)
	ANALOG_INPUT(I_CH0, 0)
	ANALOG_INPUT(I_OH0, 0)
	ANALOG_INPUT(I_SOUNDIC0, 0)
	ANALOG_INPUT(I_OKI0, 0)
	ANALOG_INPUT(I_SOUND0, 0)
	ANALOG_INPUT(I_SINH0, 0)
Example #17
0
	0,                  /* Output is not inverted */
	15                  /* Output bit */
};

static const discrete_555_desc starshp1_556_c10 =
{
	DISC_555_OUT_ENERGY,
	5,      /* B+ voltage of 555 */
	DEFAULT_555_VALUES
};

/* effect of 556 internal CV resistors at pin 3 */
static const discrete_mixer_desc starshp1_556_c10_cv =
{
	DISC_MIXER_IS_RESISTOR,
	{STARSHP1_R61, RES_K(5)},
	{0}, {0}, 0, RES_K(10), 0, 0, 0, 1
};

static const discrete_mixer_desc starshp1_566_a9_mix_r =
{
	DISC_MIXER_IS_RESISTOR,
	{STARSHP1_R54, STARSHP1_R55},
	{0}, {0}, 0, 0, 0, 0, 0, 1
};

static const discrete_mixer_desc starshp1_555_b10_mix_r =
{
	DISC_MIXER_IS_RESISTOR,
	{STARSHP1_R65, STARSHP1_R68},
	{0}, {0}, 0, 0, 0, 0, 0, 1
Example #18
0
	{0,0,0,0},  /* no node capacitors */
	0, 0,
	DK_C29,
	0,
	0, 1
};
#endif

static const discrete_mixer_desc dkong_mixer_desc =
{
	DISC_MIXER_IS_RESISTOR,
	{DK_R2, DK_R24, DK_R1, DK_R14},
	{0,0,0},  /* no variable resistors */
	{0,0,0},  /* no node capacitors */
#if DK_REVIEW
	0, RES_K(10),
#else
	0, 0,
#endif
	DK_C159,
	DK_C12,
	0, 1
};

/* There is no load on the output for the jump circuit
 * For the walk circuit, the voltage does not matter */

static const discrete_555_desc dkong_555_vco_desc =
{
	DISC_555_OUT_ENERGY | DISC_555_OUT_DC,
	DK_SUP_V,
Example #19
0
GFXDECODE_END

/* Machine Initialization */

/* Machine Driver */

static MACHINE_CONFIG_START( nitedrvr, nitedrvr_state )

	/* basic machine hardware */
	MCFG_CPU_ADD("maincpu", M6502, XTAL_12_096MHz/12) // 1 MHz
	MCFG_CPU_PROGRAM_MAP(nitedrvr_map)
	MCFG_CPU_VBLANK_INT_DRIVER("screen", nitedrvr_state,  irq0_line_hold)
	MCFG_WATCHDOG_VBLANK_INIT(3)


	MCFG_TIMER_DRIVER_ADD_PERIODIC("crash_timer", nitedrvr_state, nitedrvr_crash_toggle_callback, PERIOD_OF_555_ASTABLE(RES_K(180), 330, CAP_U(1)))

	/* video hardware */
	MCFG_SCREEN_ADD("screen", RASTER)
	MCFG_SCREEN_REFRESH_RATE(57) // how is this derived?
	MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
	MCFG_SCREEN_SIZE(32*8, 32*8)
	MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
	MCFG_SCREEN_UPDATE_DRIVER(nitedrvr_state, screen_update_nitedrvr)
	MCFG_SCREEN_PALETTE("palette")

	MCFG_GFXDECODE_ADD("gfxdecode", "palette", nitedrvr)

	MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette")

	/* sound hardware */
Example #20
0
	DISC_CLK_IS_FREQ,
	16,			/* Bit Length */
	0,			/* Reset Value */
	10,			/* Use Bit 10 as F0 input 0 */
	15,			/* Use Bit 15 as F0 input 1 */
	DISC_LFSR_XOR,		/* F0 is XOR */
	DISC_LFSR_XOR,		/* F1 is F0 XOR with external feed. External feed is (address line) A2 */
	DISC_LFSR_REPLACE,	/* F2 replaces the shifted register contents */
	0x000001,		/* Everything is shifted into the first bit only */
	1,			/* Output is inverted by Q20 */
	12			/* Output bit */
};

const struct discrete_integrate_info tank8_op1_integrate_info = {
	DISC_INTEGRATE_OP_AMP_1,
	RES_K(27),		/* R98 */
	RES_K(2.2),		/* R97 */
	RES_K(47),		/* R96 */
	CAP_U(0.22),	/* C60 */
	5,
	12,				/* B+ is 12V, not 15V shown in the schematic. */
	0,
	0,
	0,
};

const struct discrete_integrate_info tank8_op2_integrate_info = {
	DISC_INTEGRATE_OP_AMP_1,
	RES_K(27),		/* R99 */
	RES_K(2.2),		/* R97 */
	RES_K(47),		/* R96 */
Example #21
0
    if (state->m_sprite_enable)
        drawgfx_transpen(bitmap,cliprect,screen->machine().gfx[1],
                         state->m_sprite_code,
                         state->m_sprite_color,
                         0,0,
                         state->m_sprite_x - 6,state->m_sprite_y,0);

    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       */
Example #22
0
			32*8, 33*8, 34*8, 35*8, 36*8, 37*8, 38*8, 39*8 },
	64*8	/* every sprite takes 64 consecutive bytes */
};


static GFXDECODE_START( gyruss )
	GFXDECODE_ENTRY( "gfx1", 0x0000, spritelayout, 0, 16 )	/* upper half */
	GFXDECODE_ENTRY( "gfx1", 0x0010, spritelayout, 0, 16 )	/* lower half */
	GFXDECODE_ENTRY( "gfx2", 0x0000, charlayout,   16*16, 16 )
GFXDECODE_END


static const ay8910_interface ay8910_interface_1 =
{
	AY8910_DISCRETE_OUTPUT,
	{ RES_K(3.3), RES_K(3.3), RES_K(3.3) },
	DEVCB_NULL,
	DEVCB_NULL,
	DEVCB_NULL,
	DEVCB_DRIVER_MEMBER(gyruss_state,gyruss_filter0_w)
};

static const ay8910_interface ay8910_interface_2 =
{
	AY8910_DISCRETE_OUTPUT,
	{ RES_K(3.3), RES_K(3.3), RES_K(3.3) },
	DEVCB_NULL,
	DEVCB_NULL,
	DEVCB_NULL,
	DEVCB_DRIVER_MEMBER(gyruss_state,gyruss_filter1_w)
};
Example #23
0
	m_maincpu->set_input_line(0, !data ? CLEAR_LINE : ASSERT_LINE);
}

WRITE8_MEMBER(m10_state::ic8j2_output_changed)
{
	/* written from /Q to A with slight delight */
	LOG(("ic8j2: %d\n", data));
	ttl74123_a_w(m_ic8j2, space, 0, data);
	ttl74123_a_w(m_ic8j1, space, 0, data);
}

static const ttl74123_interface ic8j1_intf =
{
	/* completely illegible */
	TTL74123_NOT_GROUNDED_DIODE,    /* the hook up type */
	RES_K(1),               /* resistor connected to RCext */
	CAP_U(1),               /* capacitor connected to Cext and RCext */
	1,                  /* A pin - driven by the CRTC */
	1,                  /* B pin - pulled high */
	1,                  /* Clear pin - pulled high */
	DEVCB_DRIVER_MEMBER(m10_state,ic8j1_output_changed)
};

static const ttl74123_interface ic8j2_intf =
{
	TTL74123_NOT_GROUNDED_DIODE,    /* the hook up type */
	/* 10k + 20k variable resistor */
	RES_K(22),              /* resistor connected to RCext */
	CAP_U(2.2),             /* capacitor connected to Cext and RCext */
	1,                  /* A pin - driven by the CRTC */
	1,                  /* B pin - pulled high */
Example #24
0
#define SPIDERS_SOUND_CLK 6000000 /* 6 MHZ*/


/************************************************************************/
/* Spiders Sound System Analog emulation                                */
/* Written by Hans Andersson,  Aug 2005                                 */
/* Schematics by Don Maeby                                              */
/*                                                                      */
/* Todo - Add proper sound mixer                                        */
/************************************************************************/

static const discrete_dac_r1_ladder spiders_sound_dac =
{
	4,			// size of ladder
	{RES_K(68), RES_K(47), RES_K(33), RES_K(33)}, // R21, R31, R30, R50
	DEFAULT_TTL_V_LOGIC_1,
	0,			// no rBias
	0,			// no rGnd
	0			// no cap
};

/* The noice generator consists of two LS164 plus a LS74, so the lenght is 8+8+1 */
static const discrete_lfsr_desc spiders_lfsr =
{
	DISC_CLK_IS_FREQ,
	17,			          /* Bit Length */
	0,			          /* Reset Value */
	4,			          /* Use Bit 4 (QE of first LS164) as F0 input 0 */
	16,			          /* Use Bit 16 (LS74) as F0 input 1 */
	DISC_LFSR_XOR_INV_IN1,/* F0 is XOR with input 1 inverted */
Example #25
0
	{ 0, 1, 2, 3,  8*8, 8*8+1, 8*8+2, 8*8+3 },
	{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
			32*8, 33*8, 34*8, 35*8, 36*8, 37*8, 38*8, 39*8 },
	64*8    /* every sprite takes 64 consecutive bytes */
};


static GFXDECODE_START( gyruss )
	GFXDECODE_ENTRY( "gfx1", 0x0000, spritelayout, 0, 16 )  /* upper half */
	GFXDECODE_ENTRY( "gfx1", 0x0010, spritelayout, 0, 16 )  /* lower half */
	GFXDECODE_ENTRY( "gfx2", 0x0000, charlayout,   16*16, 16 )
GFXDECODE_END

static const discrete_mixer_desc konami_right_mixer_desc =
	{DISC_MIXER_IS_RESISTOR,
	{RES_K(2.2), RES_K(2.2), RES_K(2.2), RES_K(3.3)/3, RES_K(3.3)/3 },
	{0,0,0,0,0,0},  /* no variable resistors   */
	{0,0,0,0,0,0},  /* no node capacitors      */
	0, 200,
	CAP_U(0.1),
	CAP_U(1),       /* DC - Removal, not in schematics */
	0, 1};

static const discrete_mixer_desc konami_left_mixer_desc =
	{DISC_MIXER_IS_RESISTOR,
	{RES_K(2.2), RES_K(2.2), RES_K(2.2), RES_K(3.3)/3, RES_K(4.7) },
	{0,0,0,0,0,0},  /* no variable resistors   */
	{0,0,0,0,0,0},  /* no node capacitors      */
	0, 200,
	CAP_U(0.1),
	CAP_U(1),       /* DC - Removal, not in schematics */
Example #26
0
	MCFG_CPU_IO_MAP(rotaryf_io_map)
	MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", rotaryf_state, rotaryf_interrupt, "screen", 0, 1)

	/* video hardware */
	MCFG_SCREEN_ADD("screen", RASTER)
	MCFG_SCREEN_SIZE(32*8, 262)     /* vert size is a guess, taken from mw8080bw */
	MCFG_SCREEN_VISIBLE_AREA(1*8, 30*8-1, 0*8, 32*8-1)
	MCFG_SCREEN_REFRESH_RATE(60)
	MCFG_SCREEN_UPDATE_DRIVER(rotaryf_state, screen_update)

	MCFG_SPEAKER_STANDARD_MONO("mono")

	MCFG_SOUND_ADD("snsnd", SN76477, 0)
	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)
Example #27
0
	MCFG_SCREEN_VISIBLE_AREA(MIN_X, MAX_X, MIN_Y, MAX_Y)
	MCFG_SCREEN_REFRESH_RATE(FRAME_RATE_60HZ)
	MCFG_SCREEN_SIZE(HWIDTH*8, TOTAL_LINES_60HZ)
	MCFG_SCREEN_UPDATE_DEVICE("antic", antic_device, screen_update)
	MCFG_SCREEN_PALETTE("palette")

	MCFG_PALETTE_ADD("palette", 256)
	MCFG_PALETTE_INIT_OWNER(atari_common_state, atari)
	MCFG_DEFAULT_LAYOUT(layout_maxaflex)

	/* sound hardware */
	MCFG_SPEAKER_STANDARD_MONO("mono")

	MCFG_SOUND_ADD("pokey", POKEY, FREQ_17_EXACT)
	MCFG_POKEY_INTERRUPT_CB(atari_common_state, interrupt_cb)
	MCFG_POKEY_OUTPUT_RC(RES_K(1), CAP_U(0.0), 5.0)

	MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)

	MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
	MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END


ROM_START(maxaflex)
	ROM_REGION(0x10000,"maincpu",0) /* 64K for the CPU */
	ROM_LOAD("atarixl.rom", 0xc000, 0x4000, CRC(1f9cd270) SHA1(ae4f523ba08b6fd59f3cae515a2b2410bbd98f55))

	ROM_REGION( 0x0800, "mcu", 0 )  /* 2k for the microcontroller */
	ROM_LOAD("maxaflex.uc",  0x0000, 0x0800, CRC(fe9cf53c) SHA1(4b02bc2f0c8a1eab799814fac82d5812c0160206))
Example #28
0
	else
	if (m_out_offs < 0x77)
	{
		if (m_p_ram[m_out_offs])
			m_samples->start(1, 0); // bumpers
	}
	else
		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)           */
Example #29
0
File: jedi.c Project: Eduardop/mame
/*************************************
 *
 *  Machine driver
 *
 *************************************/

MACHINE_CONFIG_FRAGMENT( jedi_audio )

	MCFG_CPU_ADD("audiocpu", M6502, JEDI_AUDIO_CPU_CLOCK)
	MCFG_CPU_PROGRAM_MAP(audio_map)

	MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")

	MCFG_SOUND_ADD("pokey1", POKEY, JEDI_POKEY_CLOCK)
	MCFG_POKEY_OUTPUT_OPAMP(RES_K(1), 0.0, 5.0)
	MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.30)
	MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.30)

	MCFG_SOUND_ADD("pokey2", POKEY, JEDI_POKEY_CLOCK)
	MCFG_POKEY_OUTPUT_OPAMP(RES_K(1), 0.0, 5.0)
	MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.30)
	MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.30)

	MCFG_SOUND_ADD("pokey3", POKEY, JEDI_POKEY_CLOCK)
	MCFG_POKEY_OUTPUT_OPAMP(RES_K(1), 0.0, 5.0)
	MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.30)

	MCFG_SOUND_ADD("pokey4", POKEY, JEDI_POKEY_CLOCK)
	MCFG_POKEY_OUTPUT_OPAMP(RES_K(1), 0.0, 5.0)
	MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.30)
Example #30
0
	CAP(C2, CAP_U(0.1))
	QBJT_SW(Q11, "2N3644")

	NET_C(D2.A, R8.1, Q10.C)
	ALIAS(COIN_Q, D2.K)

	NET_C(R8.2, R7.2, C2.2, Q11.B)
	NET_C(R7.1, C2.1, Q11.E, V5)
	NET_C(R9.2, Q11.C)

	TTL_7486_XOR(C8_4, Q11.C, P)
	ALIAS(QQ, C8_4.Q)

	/* Start buttons, etc. */
	SWITCH(START1)
	RES(R11, RES_K(1))
	NET_C(START1.2, GND)
	NET_C(R11.1, V5)
	NET_C(START1.1, R11.2)
	TTL_7410_NAND(H9_1, 2_PLAYER_CREDIT, START, R11.2)

	SWITCH(START2)
	RES(R12, RES_K(1))
	NET_C(START2.2, GND)
	NET_C(R12.1, V5)
	NET_C(START2.1, R12.2)
	TTL_7410_NAND(H9_2, H9_1.Q, START, R12.2)

	TTL_7400_NAND(J8_2, FREE_COIN_Q, H8_2.QQ)
	TTL_74107(J9_2, 64V, J8_2.Q, J9_1.QQ, J8_2.Q)
	TTL_7450_ANDORINVERT(K9_2, creditsw.Q, K8_5.Q, FREE_COIN, 2_PLAYER_MODE_Q)