From 196d329c294846976c52b8a195594937bb062734 Mon Sep 17 00:00:00 2001 From: Robbbert Date: Fri, 5 Mar 2021 00:17:16 +1100 Subject: crashrd: Coverity 315390 (unused code). Also added notes. --- src/mame/audio/8080bw.cpp | 52 ++++++--------------------------------------- src/mame/drivers/8080bw.cpp | 11 ++++++++++ 2 files changed, 17 insertions(+), 46 deletions(-) diff --git a/src/mame/audio/8080bw.cpp b/src/mame/audio/8080bw.cpp index 0c29da35891..9f2df3d840b 100644 --- a/src/mame/audio/8080bw.cpp +++ b/src/mame/audio/8080bw.cpp @@ -1223,8 +1223,6 @@ void _8080bw_state::schasercv_sh_port_2_w(uint8_t data) void _8080bw_state::crashrd_port03_w(uint8_t data) { - int effect; - /* bit 0 - Dot Sound Pitch (SX1) bit 2 - Explosion (SX5) bit 4 - Dot Sound Enable (SX0) @@ -1234,61 +1232,23 @@ void _8080bw_state::crashrd_port03_w(uint8_t data) machine().sound().system_mute(!BIT(data, 5)); m_discrete->write(SCHASER_DOT_EN, BIT(data, 4)); m_discrete->write(SCHASER_DOT_SEL, BIT(data, 0)); - - /* The effect is a variable rate 555 timer. A diode/resistor array is used to - * select the frequency. Because of the diode voltage drop, we can not use the - * standard 555 time formulas. Also, when effect=0, the charge resistor - * is disconnected. This causes the charge on the cap to slowly bleed off, but - * but the bleed time is so long, that we can just cheat and put the time on hold - * when effect = 0. */ - effect = 0; //(data >> 2) & 0x07; - if (m_schaser_last_effect != effect) - { - if (effect) - { - if (m_schaser_effect_555_time_remain != attotime::zero) - { - /* timer re-enabled, use up remaining 555 high time */ - m_schaser_effect_555_timer->adjust(m_schaser_effect_555_time_remain, effect); - } - else if (!m_schaser_effect_555_is_low) - { - /* set 555 high time */ - attotime new_time = attotime(0, ATTOSECONDS_PER_SECOND * .8873 * schaser_effect_rc[effect]); - m_schaser_effect_555_timer->adjust(new_time, effect); - } - } - else - { - /* disable effect - stops at end of low cycle */ - if (!m_schaser_effect_555_is_low) - { - m_schaser_effect_555_time_remain = m_schaser_effect_555_timer->time_left(); - m_schaser_effect_555_time_remain_savable = m_schaser_effect_555_time_remain.as_double(); - m_schaser_effect_555_timer->adjust(attotime::never); - } - } - m_schaser_last_effect = effect; - } - m_schaser_explosion = BIT(data, 2); + if (m_schaser_explosion) - { m_sn->amplitude_res_w(1.0 / (1.0/RES_K(200) + 1.0/RES_K(68))); - } else - { m_sn->amplitude_res_w(RES_K(200)); - } - m_sn->enable_w(!(m_schaser_effect_555_is_low || m_schaser_explosion)); - m_sn->one_shot_cap_voltage_w(!(m_schaser_effect_555_is_low || m_schaser_explosion) ? 0 : sn76477_device::EXTERNAL_VOLTAGE_DISCONNECT); + + m_sn->enable_w(!m_schaser_explosion); + m_sn->one_shot_cap_voltage_w(!m_schaser_explosion ? 0 : sn76477_device::EXTERNAL_VOLTAGE_DISCONNECT); m_sn->mixer_b_w(m_schaser_explosion); } void _8080bw_state::crashrd_port05_w(uint8_t data) { // bit 0 = bitstream audio - // bit 4 = not sure + // bit 4 = indicates when enemy goes faster toward end of level + // bit 5 = pulses once when flipscreen needed m_discrete->write(SCHASER_MUSIC_BIT, BIT(data, 0)); } diff --git a/src/mame/drivers/8080bw.cpp b/src/mame/drivers/8080bw.cpp index 54153690e6b..8950b9d889c 100644 --- a/src/mame/drivers/8080bw.cpp +++ b/src/mame/drivers/8080bw.cpp @@ -175,6 +175,17 @@ Hold down the 1P START (the 1 key) while it says INSERT COIN. Then insert a coin and play. You will start at level 5. + - Crash Road (crashrd) + * Seems slightly buggy. On the odd occasion it can freeze followed by watchdog reset. + * The "hard" level has the same bugs as noted for schaser. It should not be used. + * The cocktail mode doesn't work correctly and also should not be used. The directional + controls are not scanned during play. The flipscreen signal occurs once at the start + of player 2's level, then turns off. + * The enemy never goes faster in the inner loop, so the game is much easier to play. + It also means that the missing yellow band is never needed. + * The "effect" sound (the continuous clunking noise) doesn't seem to be supported, but + we'd need a schematic or real machine to find out for sure. + - Space War (Sanritsu) * I seem to recall that the flashing ufo had its own sample sound, a sort of rattling noise. Unable to find evidence -- cgit v1.2.3