namcos21.cpp: Derive clocks from known XTALs; have C140 provide sound FIRQ (nw)

This commit is contained in:
AJR 2019-09-05 23:14:01 -04:00
parent fd882987e0
commit 8475a8ffab

View File

@ -855,24 +855,23 @@ void namcos21_state::configure_c148_standard(machine_config &config)
void namcos21_state::winrun(machine_config &config) void namcos21_state::winrun(machine_config &config)
{ {
M68000(config, m_maincpu, 12288000); /* Master */ M68000(config, m_maincpu, 49.152_MHz_XTAL / 4); /* Master */
m_maincpu->set_addrmap(AS_PROGRAM, &namcos21_state::winrun_master_map); m_maincpu->set_addrmap(AS_PROGRAM, &namcos21_state::winrun_master_map);
TIMER(config, "scantimer").configure_scanline(FUNC(namcos21_state::screen_scanline), "screen", 0, 1); TIMER(config, "scantimer").configure_scanline(FUNC(namcos21_state::screen_scanline), "screen", 0, 1);
M68000(config, m_slave, 12288000); /* Slave */ M68000(config, m_slave, 49.152_MHz_XTAL / 4); /* Slave */
m_slave->set_addrmap(AS_PROGRAM, &namcos21_state::winrun_slave_map); m_slave->set_addrmap(AS_PROGRAM, &namcos21_state::winrun_slave_map);
MC6809E(config, m_audiocpu, 3072000); /* Sound */ MC6809E(config, m_audiocpu, 49.152_MHz_XTAL / 24); /* Sound */
m_audiocpu->set_addrmap(AS_PROGRAM, &namcos21_state::sound_map); m_audiocpu->set_addrmap(AS_PROGRAM, &namcos21_state::sound_map);
m_audiocpu->set_periodic_int(FUNC(namcos21_state::irq0_line_hold), attotime::from_hz(2*60)); m_audiocpu->set_periodic_int(FUNC(namcos21_state::irq0_line_hold), attotime::from_hz(2*60));
m_audiocpu->set_periodic_int(FUNC(namcos21_state::irq1_line_hold), attotime::from_hz(120));
configure_c65_namcos21(config); configure_c65_namcos21(config);
NAMCOS21_DSP(config, m_namcos21_dsp, 0); NAMCOS21_DSP(config, m_namcos21_dsp, 0);
m_namcos21_dsp->set_renderer_tag("namcos21_3d"); m_namcos21_dsp->set_renderer_tag("namcos21_3d");
m68000_device &gpu(M68000(config, "gpu", 12288000)); /* graphics coprocessor */ m68000_device &gpu(M68000(config, "gpu", 49.152_MHz_XTAL / 4)); /* graphics coprocessor */
gpu.set_addrmap(AS_PROGRAM, &namcos21_state::winrun_gpu_map); gpu.set_addrmap(AS_PROGRAM, &namcos21_state::winrun_gpu_map);
configure_c148_standard(config); configure_c148_standard(config);
@ -885,7 +884,7 @@ void namcos21_state::winrun(machine_config &config)
SCREEN(config, m_screen, SCREEN_TYPE_RASTER); SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
// TODO: basic parameters to get 60.606060 Hz, x2 is for interlace // TODO: basic parameters to get 60.606060 Hz, x2 is for interlace
m_screen->set_raw(12288000*2, 768, 0, 496, 264*2, 0, 480); m_screen->set_raw(49.152_MHz_XTAL / 2, 768, 0, 496, 264*2, 0, 480);
m_screen->set_screen_update(FUNC(namcos21_state::screen_update)); m_screen->set_screen_update(FUNC(namcos21_state::screen_update));
m_screen->set_palette(m_palette); m_screen->set_palette(m_palette);
@ -902,10 +901,11 @@ void namcos21_state::winrun(machine_config &config)
C140(config, m_c140, 8000000/374); C140(config, m_c140, 8000000/374);
m_c140->set_bank_type(c140_device::C140_TYPE::SYSTEM21); m_c140->set_bank_type(c140_device::C140_TYPE::SYSTEM21);
m_c140->int1_callback().set_inputline(m_audiocpu, M6809_FIRQ_LINE);
m_c140->add_route(0, "lspeaker", 0.50); m_c140->add_route(0, "lspeaker", 0.50);
m_c140->add_route(1, "rspeaker", 0.50); m_c140->add_route(1, "rspeaker", 0.50);
YM2151(config, "ymsnd", 3579580).add_route(0, "lspeaker", 0.30).add_route(1, "rspeaker", 0.30); YM2151(config, "ymsnd", 3.579545_MHz_XTAL).add_route(0, "lspeaker", 0.30).add_route(1, "rspeaker", 0.30);
} }