Example #1
0
void msx_cart_msx_audio_hxmu900_device::device_add_mconfig(machine_config &config)
{
	// This is actually incorrect. The sound output is passed back into the MSX machine where it is mixed internally and output through the system 'speaker'.
	SPEAKER(config, "mono").front_center();
	Y8950(config, m_y8950, XTAL(3'579'545)); // Not verified
	m_y8950->add_route(ALL_OUTPUTS, "mono", 0.40);
	m_y8950->keyboard_write().set("kbdc", FUNC(msx_audio_kbdc_port_device::write));
	m_y8950->keyboard_read().set("kbdc", FUNC(msx_audio_kbdc_port_device::read));

	MSX_AUDIO_KBDC_PORT(config, "kbdc", msx_audio_keyboards, nullptr);
}
Example #2
0
void msx_cart_msx_audio_nms1205_device::device_add_mconfig(machine_config &config)
{
	// This is actually incorrect. The sound output is passed back into the MSX machine where it is mixed internally and output through the system 'speaker'.
	// At the same time the sound is also output on two output on the nms1205 cartridge itself
	SPEAKER(config, "mono").front_center();
	Y8950(config, m_y8950, XTAL(3'579'545));
	m_y8950->add_route(ALL_OUTPUTS, "mono", 0.40);
	m_y8950->keyboard_write().set("kbdc", FUNC(msx_audio_kbdc_port_device::write));
	m_y8950->keyboard_read().set("kbdc", FUNC(msx_audio_kbdc_port_device::read));
	m_y8950->irq().set(FUNC(msx_cart_msx_audio_nms1205_device::irq_write));

	MSX_AUDIO_KBDC_PORT(config, "kbdc", msx_audio_keyboards, nullptr);

	// There is a 2 MHz crystal on the PCB, the 6850 TX and RX clocks are derived from it
	ACIA6850(config, m_acia6850, 0);
	m_acia6850->txd_handler().set("mdout", FUNC(midi_port_device::write_txd));

	MIDI_PORT(config, "mdin", midiin_slot, "midiin").rxd_handler().set(FUNC(msx_cart_msx_audio_nms1205_device::midi_in));
	MIDI_PORT(config, m_mdthru, midiout_slot, "midiout");
	MIDI_PORT(config, m_mdout, midiout_slot, "midiout");
}
Example #3
0
void msx_cart_sfg_device::device_add_mconfig(machine_config &config)
{
	// YM2151 (OPM)
	// YM3012 (DAC)
	// YM2148 (MKS)

	SPEAKER(config, "lspeaker").front_left();
	SPEAKER(config, "rspeaker").front_right();
	YM2151(config, m_ym2151, XTAL(3'579'545));  // The SFG01 uses a YM2151, the SFG05 uses a YM2164, input clock comes from the main cpu frequency
	m_ym2151->irq_handler().set(FUNC(msx_cart_sfg_device::ym2151_irq_w));
	m_ym2151->add_route(0, "lspeaker", 0.80);
	m_ym2151->add_route(1, "rspeaker", 0.80);

	YM2148(config, m_ym2148, XTAL(4'000'000));
	m_ym2148->txd_handler().set("mdout", FUNC(midi_port_device::write_txd));
	m_ym2148->port_write_handler().set("kbdc", FUNC(msx_audio_kbdc_port_device::write));
	m_ym2148->port_read_handler().set("kbdc", FUNC(msx_audio_kbdc_port_device::read));
	m_ym2148->irq_handler().set(FUNC(msx_cart_sfg_device::ym2148_irq_w));

	MSX_AUDIO_KBDC_PORT(config, m_kbdc, msx_audio_keyboards, nullptr);

	MIDI_PORT(config, "mdout", midiout_slot, "midiout");
	MIDI_PORT(config, "mdin", midiin_slot, "midiin").rxd_handler().set("ym2148", FUNC(ym2148_device::write_rxd));
}