summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/sound/qsoundhle.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/sound/qsoundhle.cpp')
-rw-r--r--src/devices/sound/qsoundhle.cpp92
1 files changed, 43 insertions, 49 deletions
diff --git a/src/devices/sound/qsoundhle.cpp b/src/devices/sound/qsoundhle.cpp
index 7cfe01391f4..a917728ed1f 100644
--- a/src/devices/sound/qsoundhle.cpp
+++ b/src/devices/sound/qsoundhle.cpp
@@ -70,29 +70,25 @@ void qsound_hle_device::device_start()
// state save
// PCM registers
- for (int j = 0; j < 16; j++) // PCM voices
- {
- save_item(NAME(m_voice[j].m_bank), j);
- save_item(NAME(m_voice[j].m_addr), j);
- save_item(NAME(m_voice[j].m_phase), j);
- save_item(NAME(m_voice[j].m_rate), j);
- save_item(NAME(m_voice[j].m_loop_len), j);
- save_item(NAME(m_voice[j].m_end_addr), j);
- save_item(NAME(m_voice[j].m_volume), j);
- save_item(NAME(m_voice[j].m_echo), j);
- }
-
- for (int j = 0; j < 3; j++) // ADPCM voices
- {
- save_item(NAME(m_adpcm[j].m_start_addr), j);
- save_item(NAME(m_adpcm[j].m_end_addr), j);
- save_item(NAME(m_adpcm[j].m_bank), j);
- save_item(NAME(m_adpcm[j].m_volume), j);
- save_item(NAME(m_adpcm[j].m_flag), j);
- save_item(NAME(m_adpcm[j].m_cur_vol), j);
- save_item(NAME(m_adpcm[j].m_step_size), j);
- save_item(NAME(m_adpcm[j].m_cur_addr), j);
- }
+ // PCM voices
+ save_item(STRUCT_MEMBER(m_voice, m_bank));
+ save_item(STRUCT_MEMBER(m_voice, m_addr));
+ save_item(STRUCT_MEMBER(m_voice, m_phase));
+ save_item(STRUCT_MEMBER(m_voice, m_rate));
+ save_item(STRUCT_MEMBER(m_voice, m_loop_len));
+ save_item(STRUCT_MEMBER(m_voice, m_end_addr));
+ save_item(STRUCT_MEMBER(m_voice, m_volume));
+ save_item(STRUCT_MEMBER(m_voice, m_echo));
+
+ // ADPCM voices
+ save_item(STRUCT_MEMBER(m_adpcm, m_start_addr));
+ save_item(STRUCT_MEMBER(m_adpcm, m_end_addr));
+ save_item(STRUCT_MEMBER(m_adpcm, m_bank));
+ save_item(STRUCT_MEMBER(m_adpcm, m_volume));
+ save_item(STRUCT_MEMBER(m_adpcm, m_flag));
+ save_item(STRUCT_MEMBER(m_adpcm, m_cur_vol));
+ save_item(STRUCT_MEMBER(m_adpcm, m_step_size));
+ save_item(STRUCT_MEMBER(m_adpcm, m_cur_addr));
// PCM voices
save_item(NAME(m_voice_pan));
@@ -105,32 +101,30 @@ void qsound_hle_device::device_start()
save_item(NAME(m_echo.m_delay_line));
save_item(NAME(m_echo.m_delay_pos));
- for (int j = 0; j < 2; j++) // left, right
- {
- save_item(NAME(m_filter[j].m_tap_count), j);
- save_item(NAME(m_filter[j].m_delay_pos), j);
- save_item(NAME(m_filter[j].m_table_pos), j);
- save_item(NAME(m_filter[j].m_taps), j);
- save_item(NAME(m_filter[j].m_delay_line), j);
-
- save_item(NAME(m_alt_filter[j].m_tap_count), j);
- save_item(NAME(m_alt_filter[j].m_delay_pos), j);
- save_item(NAME(m_alt_filter[j].m_table_pos), j);
- save_item(NAME(m_alt_filter[j].m_taps), j);
- save_item(NAME(m_alt_filter[j].m_delay_line), j);
-
- save_item(NAME(m_wet[j].m_delay), j);
- save_item(NAME(m_wet[j].m_volume), j);
- save_item(NAME(m_wet[j].m_write_pos), j);
- save_item(NAME(m_wet[j].m_read_pos), j);
- save_item(NAME(m_wet[j].m_delay_line), j);
-
- save_item(NAME(m_dry[j].m_delay), j);
- save_item(NAME(m_dry[j].m_volume), j);
- save_item(NAME(m_dry[j].m_write_pos), j);
- save_item(NAME(m_dry[j].m_read_pos), j);
- save_item(NAME(m_dry[j].m_delay_line), j);
- }
+ // left, right
+ save_item(STRUCT_MEMBER(m_filter, m_tap_count));
+ save_item(STRUCT_MEMBER(m_filter, m_delay_pos));
+ save_item(STRUCT_MEMBER(m_filter, m_table_pos));
+ save_item(STRUCT_MEMBER(m_filter, m_taps));
+ save_item(STRUCT_MEMBER(m_filter, m_delay_line));
+
+ save_item(STRUCT_MEMBER(m_alt_filter, m_tap_count));
+ save_item(STRUCT_MEMBER(m_alt_filter, m_delay_pos));
+ save_item(STRUCT_MEMBER(m_alt_filter, m_table_pos));
+ save_item(STRUCT_MEMBER(m_alt_filter, m_taps));
+ save_item(STRUCT_MEMBER(m_alt_filter, m_delay_line));
+
+ save_item(STRUCT_MEMBER(m_wet, m_delay));
+ save_item(STRUCT_MEMBER(m_wet, m_volume));
+ save_item(STRUCT_MEMBER(m_wet, m_write_pos));
+ save_item(STRUCT_MEMBER(m_wet, m_read_pos));
+ save_item(STRUCT_MEMBER(m_wet, m_delay_line));
+
+ save_item(STRUCT_MEMBER(m_dry, m_delay));
+ save_item(STRUCT_MEMBER(m_dry, m_volume));
+ save_item(STRUCT_MEMBER(m_dry, m_write_pos));
+ save_item(STRUCT_MEMBER(m_dry, m_read_pos));
+ save_item(STRUCT_MEMBER(m_dry, m_delay_line));
save_item(NAME(m_state));
save_item(NAME(m_next_state));