|author||Robbbert <Robbbert@users.noreply.github.com>||2021-03-05 00:17:16 +1100|
|committer||Robbbert <Robbbert@users.noreply.github.com>||2021-03-05 00:17:16 +1100|
crashrd: Coverity 315390 (unused code). Also added notes.
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
@@ -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)
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);
- /* 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_last_effect = effect;
m_schaser_explosion = BIT(data, 2);
m_sn->amplitude_res_w(1.0 / (1.0/RES_K(200) + 1.0/RES_K(68)));
- 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->one_shot_cap_voltage_w(!m_schaser_explosion ? 0 : sn76477_device::EXTERNAL_VOLTAGE_DISCONNECT);
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
@@ -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