diff options
author | 2021-09-12 15:43:04 -0700 | |
---|---|---|
committer | 2021-09-12 15:43:04 -0700 | |
commit | 93752fbd05d72899fca4b18f009ed077897607dd (patch) | |
tree | 309adbe9ad13898449b4615a6d5c63e0a4c2abc7 | |
parent | 67c0575d9e8c502bed8bea65d26bc7a583725775 (diff) |
Stop memsetting structures.time-experiments2
-rw-r--r-- | src/mame/audio/dcs.cpp | 10 | ||||
-rw-r--r-- | src/mame/audio/dcs.h | 26 |
2 files changed, 20 insertions, 16 deletions
diff --git a/src/mame/audio/dcs.cpp b/src/mame/audio/dcs.cpp index f1cbcfd94d7..e2c2f3529bd 100644 --- a/src/mame/audio/dcs.cpp +++ b/src/mame/audio/dcs.cpp @@ -575,6 +575,7 @@ void dcs_audio_device::dcs_reset() /* initialize the ADSP control regs */ memset(m_control_regs, 0, sizeof(m_control_regs)); + /* clear all interrupts */ m_cpu->set_input_line(ADSP2105_IRQ0, CLEAR_LINE); m_cpu->set_input_line(ADSP2105_IRQ1, CLEAR_LINE); @@ -736,9 +737,6 @@ dcs_audio_device::dcs_audio_device(const machine_config &mconfig, device_type ty { m_dmadac[0] = m_dmadac[1] = m_dmadac[2] = m_dmadac[3] = m_dmadac[4] = m_dmadac[5] = nullptr; memset(m_control_regs, 0, sizeof(m_control_regs)); - memset(&m_sdrc, 0, sizeof(m_sdrc)); - memset(&m_dsio, 0, sizeof(m_dsio)); - memset(&m_transfer, 0, sizeof(m_transfer)); } void dcs_audio_device::device_reset() @@ -1087,7 +1085,7 @@ void dcs_audio_device::sdrc_remap_memory() void dcs_audio_device::sdrc_reset() { - memset(m_sdrc.reg, 0, sizeof(m_sdrc.reg)); + m_sdrc.reset(); sdrc_remap_memory(); } @@ -1225,7 +1223,7 @@ void dcs_audio_device::sdrc_w(offs_t offset, uint16_t data) void dcs_audio_device::dsio_reset() { - memset(&m_dsio, 0, sizeof(m_dsio)); + m_dsio.reset(); m_dmovlay_val = 0; dmovlay_remap_memory(); } @@ -1284,7 +1282,7 @@ void dcs_audio_device::dsio_w(offs_t offset, uint16_t data) void dcs_audio_device::denver_reset() { - memset(&m_dsio, 0, sizeof(m_dsio)); + m_dsio.reset(); m_dmovlay_val = 0; dmovlay_remap_memory(); dmadac_enable(&m_dmadac[0], m_channels, 0); diff --git a/src/mame/audio/dcs.h b/src/mame/audio/dcs.h index a066323d277..a6165f4b0dc 100644 --- a/src/mame/audio/dcs.h +++ b/src/mame/audio/dcs.h @@ -139,6 +139,9 @@ protected: struct sdrc_state { + sdrc_state() : seed(0) { reset(); } + void reset() { reg[0] = reg[1] = reg[2] = reg[3] = 0; } + uint16_t reg[4]; uint8_t seed; }; @@ -146,6 +149,9 @@ protected: struct dsio_state { + dsio_state() { reset(); } + void reset() { reg[0] = reg[1] = reg[2] = reg[3] = 0; start_on_next_write = 0; channelbits = 0; } + uint16_t reg[4]; uint8_t start_on_next_write; uint16_t channelbits; @@ -154,16 +160,16 @@ protected: struct hle_transfer_state { - uint8_t hle_enabled; - int32_t dcs_state; - int32_t state; - int32_t start; - int32_t stop; - int32_t type; - int32_t temp; - int32_t writes_left; - uint16_t sum; - int32_t fifo_entries; + uint8_t hle_enabled = 0; + int32_t dcs_state = 0; + int32_t state = 0; + int32_t start = 0; + int32_t stop = 0; + int32_t type = 0; + int32_t temp = 0; + int32_t writes_left = 0; + uint16_t sum = 0; + int32_t fifo_entries = 0; persistent_timer watchdog; }; |