From 3a9a71ccb7b6f86a71cbbf863afe7b0549113eac Mon Sep 17 00:00:00 2001 From: AJR Date: Sun, 10 Jan 2021 17:38:56 -0500 Subject: [PATCH] metro.cpp: VDP clock is not so standard on some PCBs --- src/emu/xtal.cpp | 2 +- src/mame/drivers/metro.cpp | 29 ++++------------------------- 2 files changed, 5 insertions(+), 26 deletions(-) diff --git a/src/emu/xtal.cpp b/src/emu/xtal.cpp index 191af34db68..3d49fd23081 100644 --- a/src/emu/xtal.cpp +++ b/src/emu/xtal.cpp @@ -345,7 +345,7 @@ const double XTAL::known_xtals[] = { 26'590'906, /* 26.590906_MHz_XTAL Atari Jaguar NTSC */ 26'593'900, /* 26.5939_MHz_XTAL Atari Jaguar PAL */ 26'601'712, /* 26.601712_MHz_XTAL Astro Corp.'s Show Hand, PAL Vtech/Yeno Socrates (6x PAL subcarrier) */ - 26'666'000, /* 26.666_MHz_XTAL Imagetek I4100/I4220/I4300 */ + 26'666'000, /* 26.666_MHz_XTAL Imagetek I4220/I4300 */ 26'666'666, /* 26.666666_MHz_XTAL Irem M92 but most use 27MHz */ 26'686'000, /* 26.686_MHz_XTAL Typically used on 90's Taito PCBs to drive the custom chips */ 26'880'000, /* 26.88_MHz_XTAL Roland RF5C36/SA-16 clock (30000 * 896) */ diff --git a/src/mame/drivers/metro.cpp b/src/mame/drivers/metro.cpp index 8cc7bbe8cf6..8a4b3b24543 100644 --- a/src/mame/drivers/metro.cpp +++ b/src/mame/drivers/metro.cpp @@ -2802,7 +2802,7 @@ void metro_state::machine_start() void metro_state::i4100_config(machine_config &config) { - I4100(config, m_vdp, 26.666_MHz_XTAL); + I4100(config, m_vdp, 24_MHz_XTAL); m_vdp->set_vblank_irq_level(0); m_vdp->set_blit_irq_level(2); @@ -2870,6 +2870,7 @@ void metro_state::i4220_config_304x224(machine_config &config) void metro_state::i4300_config_384x224(machine_config &config) { i4300_config(config); + m_vdp3->set_clock(32_MHz_XTAL); m_screen->set_size(384, 240); m_screen->set_visarea(0, 384-1, 0, 224-1); @@ -3196,7 +3197,7 @@ void metro_state::dokyusp(machine_config &config) void metro_state::gakusai(machine_config &config) { /* basic machine hardware */ - M68000(config, m_maincpu, 16000000); /* 26.6660MHz/2?, OSCs listed are 26.6660MHz & 3.579545MHz */ + M68000(config, m_maincpu, 26.666_MHz_XTAL/2); // OSCs are 26.6660MHz & 3.579545MHz m_maincpu->set_addrmap(AS_PROGRAM, &metro_state::gakusai_map); m_maincpu->set_addrmap(m68000_device::AS_CPU_SPACE, &metro_state::cpu_space_map); @@ -3223,30 +3224,8 @@ void metro_state::gakusai(machine_config &config) void metro_state::gakusai2(machine_config &config) { - /* basic machine hardware */ - M68000(config, m_maincpu, 16000000); /* 26.6660MHz/2?, OSCs listed are 26.6660MHz & 3.579545MHz */ + gakusai(config); m_maincpu->set_addrmap(AS_PROGRAM, &metro_state::gakusai2_map); - m_maincpu->set_addrmap(m68000_device::AS_CPU_SPACE, &metro_state::cpu_space_map); - - EEPROM_93C46_16BIT(config, "eeprom"); - - WATCHDOG_TIMER(config, "watchdog"); - - /* video hardware */ - i4300_config_320x240(config); - m_vdp3->irq_cb().set(FUNC(metro_state::ipl_w)); - m_vdp3->set_blit_irq_level(3); - - m_screen->screen_vblank().set(FUNC(metro_state::vblank_irq)); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - - OKIM6295(config, m_oki, 2112000, okim6295_device::PIN7_HIGH); // clock frequency & pin 7 not verified - m_oki->add_route(ALL_OUTPUTS, "mono", 0.25); - - ym2413_device &ymsnd(YM2413(config, m_ymsnd, 3.579545_MHz_XTAL)); - ymsnd.add_route(ALL_OUTPUTS, "mono", 2.00); } void metro_state::pangpoms(machine_config &config)