summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/devices/cpu/i960/i960.cpp2
-rw-r--r--src/emu/sound.cpp29
-rw-r--r--src/mame/phoenix/phoenix.cpp9
3 files changed, 28 insertions, 12 deletions
diff --git a/src/devices/cpu/i960/i960.cpp b/src/devices/cpu/i960/i960.cpp
index 7d31ad031bf..738037e60b5 100644
--- a/src/devices/cpu/i960/i960.cpp
+++ b/src/devices/cpu/i960/i960.cpp
@@ -469,7 +469,7 @@ void i960_cpu_device::take_interrupt(int vector, int lvl)
}
SP = (SP + 63) & ~63;
- SP += 128; // emulate ElSemi's core, this fixes the crash in sonic the fighters
+ SP += 64; // add padding to prevent buffer underflow when saving processor state
do_call(IRQV, 7, SP);
diff --git a/src/emu/sound.cpp b/src/emu/sound.cpp
index dade6ed3479..e64941f558c 100644
--- a/src/emu/sound.cpp
+++ b/src/emu/sound.cpp
@@ -637,7 +637,7 @@ void sound_stream::reprime_sync_timer()
u64 next_sample = m_output_buffer.write_sample() + 1;
attotime next_time = sample_to_time(next_sample);
- next_time.m_attoseconds += 1'000'000'000; // Go to the next nanosecond
+ next_time.m_attoseconds += 1'000'000'000; // Go to the next nanosecond '
m_sync_timer->adjust(next_time - m_device.machine().time());
}
@@ -1122,11 +1122,22 @@ void sound_manager::config_load(config_type cfg_type, config_level cfg_level, ut
// In the global config, get the default effect chain configuration
util::xml::data_node const *efl_node = parentnode->get_child("default_audio_effects");
- for(util::xml::data_node const *ef_node = efl_node->get_child("effect"); ef_node != nullptr; ef_node = ef_node->get_next_sibling("effect")) {
- unsigned int id = ef_node->get_attribute_int("step", 0);
- std::string type = ef_node->get_attribute_string("type", "");
- if(id >= 1 && id <= m_default_effects.size() && audio_effect::effect_names[m_default_effects[id-1]->type()] == type)
- m_default_effects[id-1]->config_load(ef_node);
+ if(efl_node) {
+ for(util::xml::data_node const *ef_node = efl_node->get_child("effect"); ef_node != nullptr; ef_node = ef_node->get_next_sibling("effect")) {
+ unsigned int id = ef_node->get_attribute_int("step", 0);
+ std::string type = ef_node->get_attribute_string("type", "");
+ if(id >= 1 && id <= m_default_effects.size() && audio_effect::effect_names[m_default_effects[id-1]->type()] == type)
+ m_default_effects[id-1]->config_load(ef_node);
+ }
+ }
+
+ // and the resampler configuration
+ util::xml::data_node const *rs_node = parentnode->get_child("resampler");
+ if(rs_node) {
+ m_resampler_type = rs_node->get_attribute_int("type", RESAMPLER_LOFI);
+ m_resampler_hq_latency = rs_node->get_attribute_float("hq_latency", 0.0050);
+ m_resampler_hq_length = rs_node->get_attribute_int("hq_length", 400);
+ m_resampler_hq_phases = rs_node->get_attribute_int("hq_phases", 200);
}
break;
}
@@ -1217,6 +1228,12 @@ void sound_manager::config_save(config_type cfg_type, util::xml::data_node *pare
ef_node->set_attribute("type", audio_effect::effect_names[e->type()]);
e->config_save(ef_node);
}
+
+ util::xml::data_node *const rs_node = parentnode->add_child("resampler", nullptr);
+ rs_node->set_attribute_int("type", m_resampler_type);
+ rs_node->set_attribute_float("hq_latency", m_resampler_hq_latency);
+ rs_node->set_attribute_int("hq_length", m_resampler_hq_length);
+ rs_node->set_attribute_int("hq_phases", m_resampler_hq_phases);
break;
}
diff --git a/src/mame/phoenix/phoenix.cpp b/src/mame/phoenix/phoenix.cpp
index b169b73c689..63e62fec3dc 100644
--- a/src/mame/phoenix/phoenix.cpp
+++ b/src/mame/phoenix/phoenix.cpp
@@ -1349,17 +1349,16 @@ ROM_START( nextfase )
ROM_LOAD( "7910cg", 0x000, 0x800, NO_DUMP ) // actual size unknown, needs decapping
ROM_REGION( 0x1000, "bgtiles", 0 )
- ROM_LOAD( "nf11.bin", 0x0000, 0x0800, CRC(3c7e623f) SHA1(e7ff5fc371664af44785c079e92eeb2d8530187b) )
- ROM_LOAD( "nf12.bin", 0x0800, 0x0800, CRC(59916d3b) SHA1(71aec70a8e096ed1f0c2297b3ae7dca1b8ecc38d) )
+ ROM_LOAD( "nf11.bin", 0x0000, 0x0800, CRC(3c7e623f) SHA1(e7ff5fc371664af44785c079e92eeb2d8530187b) )
+ ROM_LOAD( "nf12.bin", 0x0800, 0x0800, CRC(59916d3b) SHA1(71aec70a8e096ed1f0c2297b3ae7dca1b8ecc38d) )
ROM_REGION( 0x1000, "fgtiles", 0 )
ROM_LOAD( "nf09.bin", 0x0000, 0x0800, CRC(bacbfa88) SHA1(bf378a729726db01448f2cc4820f06e17659d674) )
ROM_LOAD( "nf10.bin", 0x0800, 0x0800, CRC(3143a9ee) SHA1(371bb314dc9e4ec6ed469eb81391061296c547ec) )
- // PROMs were missing from this dump, these might not be correct
ROM_REGION( 0x0200, "proms", 0 )
- ROM_LOAD( "mmi6301.ic40", 0x0000, 0x0100, CRC(79350b25) SHA1(57411be4c1d89677f7919ae295446da90612c8a8) ) // palette low bits
- ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) ) // palette high bits
+ ROM_LOAD( "nf.ic40", 0x0000, 0x0100, CRC(725747be) SHA1(c8a4cc47149230ac859c19a24d2860d7d58885f2) ) // palette low bits
+ ROM_LOAD( "nf.ic41", 0x0100, 0x0100, CRC(a91055ab) SHA1(14273bde9e05b7e2e14e77cac400ffda0ce7e71f) ) // palette high bits
ROM_END
ROM_START( phoenixs )