summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Aaron Giles <aaron@aarongiles.com>2021-09-12 15:43:04 -0700
committer Aaron Giles <aaron@aarongiles.com>2021-09-12 15:43:04 -0700
commit93752fbd05d72899fca4b18f009ed077897607dd (patch)
tree309adbe9ad13898449b4615a6d5c63e0a4c2abc7
parent67c0575d9e8c502bed8bea65d26bc7a583725775 (diff)
Stop memsetting structures.time-experiments2
-rw-r--r--src/mame/audio/dcs.cpp10
-rw-r--r--src/mame/audio/dcs.h26
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;
};