summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--src/mame/drivers/gottlieb.cpp6
-rw-r--r--src/mame/includes/gottlieb.h46
2 files changed, 28 insertions, 24 deletions
diff --git a/src/mame/drivers/gottlieb.cpp b/src/mame/drivers/gottlieb.cpp
index 71688beda09..24980ed7fb9 100644
--- a/src/mame/drivers/gottlieb.cpp
+++ b/src/mame/drivers/gottlieb.cpp
@@ -226,6 +226,7 @@ VBlank duration: 1/VSYNC * (16/256) = 1017.6 us
void gottlieb_state::machine_start()
{
m_leds.resolve();
+ m_knockers.resolve();
/* register for save states */
save_item(NAME(m_joystick_select));
save_item(NAME(m_track));
@@ -338,7 +339,7 @@ void gottlieb_state::qbert_output_w(u8 data)
general_output_w(data & ~0x20);
// bit 5 controls the knocker
- qbert_knocker(data >> 5 & 1);
+ qbert_knocker(BIT(data, 5));
}
void gottlieb_state::qbertqub_output_w(u8 data)
@@ -658,7 +659,8 @@ void gottlieb_state::laserdisc_audio_process(int samplerate, int samples, const
void gottlieb_state::qbert_knocker(u8 knock)
{
- output().set_value("knocker0", knock);
+ //output().set_value("knocker0", knock);
+ m_knockers[0] = knock ? 1 : 0;
// start sound on rising edge
if (knock & ~m_knocker_prev)
diff --git a/src/mame/includes/gottlieb.h b/src/mame/includes/gottlieb.h
index 0d81689e83e..19cd926cbf4 100644
--- a/src/mame/includes/gottlieb.h
+++ b/src/mame/includes/gottlieb.h
@@ -47,6 +47,7 @@ public:
, m_track_x(*this, "TRACKX")
, m_track_y(*this, "TRACKY")
, m_leds(*this, "led%u", 0U)
+ , m_knockers(*this, "knocker%d", 0U)
{ }
void gottlieb_core(machine_config &config);
@@ -146,28 +147,29 @@ private:
optional_ioport m_track_x;
optional_ioport m_track_y;
output_finder<3> m_leds; // only used by reactor
-
- u8 m_knocker_prev;
- u8 m_joystick_select;
- u8 m_track[2];
- emu_timer *m_laserdisc_bit_timer;
- emu_timer *m_laserdisc_philips_timer;
- u8 m_laserdisc_select;
- u8 m_laserdisc_status;
- uint16_t m_laserdisc_philips_code;
- std::unique_ptr<u8[]> m_laserdisc_audio_buffer;
- uint16_t m_laserdisc_audio_address;
- int16_t m_laserdisc_last_samples[2];
+ output_finder<1> m_knockers; // only used by qbert
+
+ u8 m_knocker_prev = 0U;
+ u8 m_joystick_select = 0U;
+ u8 m_track[2]{};
+ emu_timer *m_laserdisc_bit_timer = 0;
+ emu_timer *m_laserdisc_philips_timer = 0;
+ u8 m_laserdisc_select = 0U;
+ u8 m_laserdisc_status = 0U;
+ uint16_t m_laserdisc_philips_code = 0U;
+ std::unique_ptr<u8[]> m_laserdisc_audio_buffer{};
+ uint16_t m_laserdisc_audio_address = 0U;
+ int16_t m_laserdisc_last_samples[2]{};
attotime m_laserdisc_last_time;
attotime m_laserdisc_last_clock;
- u8 m_laserdisc_zero_seen;
- u8 m_laserdisc_audio_bits;
- u8 m_laserdisc_audio_bit_count;
- u8 m_gfxcharlo;
- u8 m_gfxcharhi;
- u8 m_background_priority;
- u8 m_spritebank;
- u8 m_transparent0;
- tilemap_t *m_bg_tilemap;
- double m_weights[4];
+ u8 m_laserdisc_zero_seen = 0U;
+ u8 m_laserdisc_audio_bits = 0U;
+ u8 m_laserdisc_audio_bit_count = 0U;
+ u8 m_gfxcharlo = 0U;
+ u8 m_gfxcharhi = 0U;
+ u8 m_background_priority = 0U;
+ u8 m_spritebank = 0U;
+ u8 m_transparent0 = 0U;
+ tilemap_t *m_bg_tilemap = 0;
+ double m_weights[4]{};
};