multipcm.cpp: Corrected clock divider and clocks for users of YMW-258-F to match schematics. [R. Belmont]

This commit is contained in:
arbee 2020-11-16 09:23:07 -05:00
parent d6fbd53d2b
commit a17b844979
4 changed files with 9 additions and 8 deletions

View File

@ -481,7 +481,7 @@ multipcm_device::multipcm_device(const machine_config &mconfig, const char *tag,
void multipcm_device::device_start()
{
const float clock_divider = 180.0f;
const float clock_divider = 224.0f;
m_rate = (float)clock() / clock_divider;
m_stream = stream_alloc(0, 2, m_rate);
@ -622,7 +622,7 @@ void multipcm_device::device_start()
void multipcm_device::device_clock_changed()
{
const float clock_divider = 180.0f;
const float clock_divider = 224.0f;
m_rate = (float)clock() / clock_divider;
m_stream->set_sample_rate(m_rate);

View File

@ -154,6 +154,7 @@ const double XTAL::known_xtals[] = {
8'960'000, /* 8.96_MHz_XTAL Casio CZ-101 (divided by 2 for Music LSI) */
9'000'000, /* 9_MHz_XTAL Homedata PCBs */
9'216'000, /* 9.216_MHz_XTAL Univac UTS 20 */
9'400'000, /* 9.4_MHz_XTAL Yamaha MU-5 and TG-100 */
9'600'000, /* 9.6_MHz_XTAL WD37C65 second clock (for 300 KB/sec rate) */
9'732'000, /* 9.732_MHz_XTAL CTA Invader */
9'828'000, /* 9.828_MHz_XTAL Universal PCBs */

View File

@ -58,21 +58,21 @@ void segam1audio_device::device_add_mconfig(machine_config &config)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
YM3438(config, m_ym, 8000000);
YM3438(config, m_ym, 8_MHz_XTAL);
m_ym->add_route(0, "lspeaker", 0.60);
m_ym->add_route(1, "rspeaker", 0.60);
MULTIPCM(config, m_multipcm_1, 8000000);
MULTIPCM(config, m_multipcm_1, 10_MHz_XTAL);
m_multipcm_1->set_addrmap(0, &segam1audio_device::mpcm1_map);
m_multipcm_1->add_route(0, "lspeaker", 1.0);
m_multipcm_1->add_route(1, "rspeaker", 1.0);
MULTIPCM(config, m_multipcm_2, 8000000);
MULTIPCM(config, m_multipcm_2, 10_MHz_XTAL);
m_multipcm_2->set_addrmap(0, &segam1audio_device::mpcm2_map);
m_multipcm_2->add_route(0, "lspeaker", 1.0);
m_multipcm_2->add_route(1, "rspeaker", 1.0);
I8251(config, m_uart, 8000000); // T82C51, clock unknown
I8251(config, m_uart, 8_MHz_XTAL); // T82C51, clock unknown
m_uart->rxrdy_handler().set_inputline(m_audiocpu, M68K_IRQ_2);
m_uart->txd_handler().set(FUNC(segam1audio_device::output_txd));

View File

@ -218,14 +218,14 @@ INPUT_PORTS_END
void mu5_state::mu5(machine_config &config)
{
/* basic machine hardware */
H83002(config, m_maincpu, 10_MHz_XTAL);
H83002(config, m_maincpu, 10_MHz_XTAL); // clock verified by schematics
m_maincpu->set_addrmap(AS_PROGRAM, &mu5_state::mu5_map);
m_maincpu->set_addrmap(AS_IO, &mu5_state::mu5_io_map);
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
MULTIPCM(config, m_ymw258, 7500000);
MULTIPCM(config, m_ymw258, 9.4_MHz_XTAL); // clock verified by schematics
m_ymw258->set_addrmap(0, &mu5_state::ymw258_map);
m_ymw258->add_route(0, "lspeaker", 1.0);
m_ymw258->add_route(1, "rspeaker", 1.0);