summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author smf- <smf-@users.noreply.github.com>2018-08-06 11:42:12 +0100
committer smf- <smf-@users.noreply.github.com>2018-08-06 11:42:12 +0100
commit48283f09eeebc18830fa9d8a661b0d2ba44ab805 (patch)
tree678fdc715248540539c303d8fde5c1d149be5963
parent9aaaa55fc9bebe0e333dfcd92fe5cea8ee34588c (diff)
don't create a c6280 now there is a one inside the huc6280 (nw)
-rw-r--r--src/mame/drivers/vgmplay.cpp40
1 files changed, 19 insertions, 21 deletions
diff --git a/src/mame/drivers/vgmplay.cpp b/src/mame/drivers/vgmplay.cpp
index b3a260865b9..e6de1a518c0 100644
--- a/src/mame/drivers/vgmplay.cpp
+++ b/src/mame/drivers/vgmplay.cpp
@@ -427,8 +427,7 @@ private:
required_device_array<okim6295_device, 2> m_okim6295;
required_device_array<k051649_device, 2> m_k051649;
required_device_array<k054539_device, 2> m_k054539;
- required_device_array<c6280_device, 2> m_c6280;
- required_device_array<h6280_device, 2> m_h6280;
+ required_device_array<h6280_device, 2> m_huc6280;
required_device_array<c140_device, 2> m_c140;
required_device_array<k053260_device, 2> m_k053260;
required_device_array<pokey_device, 2> m_pokey;
@@ -2085,8 +2084,7 @@ vgmplay_state::vgmplay_state(const machine_config &mconfig, device_type type, co
, m_okim6295(*this, "okim6295.%d", 0)
, m_k051649(*this, "k051649.%d", 0)
, m_k054539(*this, "k054539.%d", 0)
- , m_c6280(*this, "c6280.%d", 0)
- , m_h6280(*this, "h6280.%d", 0)
+ , m_huc6280(*this, "huc6280.%d", 0)
, m_c140(*this, "c140.%d", 0)
, m_k053260(*this, "k053260.%d", 0)
, m_pokey(*this, "pokey.%d", 0)
@@ -2334,8 +2332,12 @@ QUICKLOAD_LOAD_MEMBER(vgmplay_state, load_file)
m_k054539[0]->set_unscaled_clock(version >= 0x161 && header_size >= 0xa4 ? r32(0xa0) & ~0x40000000 : 0);
m_k054539[1]->set_unscaled_clock(version >= 0x161 && header_size >= 0xa4 && (r32(0xa0) & 0x40000000) ? r32(0xa0) & ~0x40000000 : 0);
- m_c6280[0]->set_unscaled_clock(version >= 0x161 && header_size >= 0xa8 ? r32(0xa4) & ~0x40000000 : 0);
- m_c6280[1]->set_unscaled_clock(version >= 0x161 && header_size >= 0xa8 && (r32(0xa4) & 0x40000000) ? r32(0xa4) & ~0x40000000 : 0);
+ // HACK: VGM contain the halved clock speed of the sound core inside the HUC6280
+ m_huc6280[0]->set_clock_scale(2);
+ m_huc6280[1]->set_clock_scale(2);
+
+ m_huc6280[0]->set_unscaled_clock(version >= 0x161 && header_size >= 0xa8 ? r32(0xa4) & ~0x40000000 : 0);
+ m_huc6280[1]->set_unscaled_clock(version >= 0x161 && header_size >= 0xa8 && (r32(0xa4) & 0x40000000) ? r32(0xa4) & ~0x40000000 : 0);
m_c140[0]->set_unscaled_clock(version >= 0x161 && header_size >= 0xac ? r32(0xa8) & ~0x40000000 : 0);
m_c140[1]->set_unscaled_clock(version >= 0x161 && header_size >= 0xac && (r32(0xa8) & 0x40000000) ? r32(0xa8) & ~0x40000000 : 0);
@@ -2633,8 +2635,8 @@ void vgmplay_state::soundchips_map(address_map &map)
map(vgmplay_device::A_K051649_1, vgmplay_device::A_K051649_1 + 0xf).w(FUNC(vgmplay_state::scc_w<1>));
map(vgmplay_device::A_K054539_0, vgmplay_device::A_K054539_0 + 0x22f).w(m_k054539[0], FUNC(k054539_device::write));
map(vgmplay_device::A_K054539_1, vgmplay_device::A_K054539_1 + 0x22f).w(m_k054539[1], FUNC(k054539_device::write));
- map(vgmplay_device::A_C6280_0, vgmplay_device::A_C6280_0 + 0xf).w(m_c6280[0], FUNC(c6280_device::c6280_w));
- map(vgmplay_device::A_C6280_1, vgmplay_device::A_C6280_1 + 0xf).w(m_c6280[1], FUNC(c6280_device::c6280_w));
+ map(vgmplay_device::A_C6280_0, vgmplay_device::A_C6280_0 + 0xf).w("huc6280.0:psg", FUNC(c6280_device::c6280_w));
+ map(vgmplay_device::A_C6280_1, vgmplay_device::A_C6280_1 + 0xf).w("huc6280.0:psg", FUNC(c6280_device::c6280_w));
// TODO: c140
map(vgmplay_device::A_K053260_0, vgmplay_device::A_K053260_0 + 0x2f).w(m_k053260[0], FUNC(k053260_device::write));
map(vgmplay_device::A_K053260_1, vgmplay_device::A_K053260_1 + 0x2f).w(m_k053260[1], FUNC(k053260_device::write));
@@ -3035,19 +3037,15 @@ MACHINE_CONFIG_START(vgmplay_state::vgmplay)
m_k054539[1]->add_route(1, "rspeaker", 1);
// TODO: prevent error.log spew
- H6280(config, m_h6280[0], 0);
- m_h6280[0]->set_disable();
-
- C6280(config, m_c6280[0], 0);
- m_c6280[0]->add_route(0, "lspeaker", 1);
- m_c6280[0]->add_route(1, "rspeaker", 1);
-
- H6280(config, m_h6280[1], 0);
- m_h6280[1]->set_disable();
-
- C6280(config, m_c6280[1], 0);
- m_c6280[1]->add_route(0, "lspeaker", 1);
- m_c6280[1]->add_route(1, "rspeaker", 1);
+ H6280(config, m_huc6280[0], 0);
+ m_huc6280[0]->set_disable();
+ m_huc6280[0]->add_route(0, "lspeaker", 1);
+ m_huc6280[0]->add_route(1, "rspeaker", 1);
+
+ H6280(config, m_huc6280[1], 0);
+ m_huc6280[1]->set_disable();
+ m_huc6280[1]->add_route(0, "lspeaker", 1);
+ m_huc6280[1]->add_route(1, "rspeaker", 1);
C140(config, m_c140[0], 0);
m_c140[0]->add_route(0, "lspeaker", 0.50);