summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Osso13 <mesgnet@yahoo.it>2015-01-16 18:16:35 +0100
committer Osso13 <mesgnet@yahoo.it>2015-01-16 18:16:35 +0100
commit8fc526c463c23794dde611702561a3de0b5f637e (patch)
tree8253b8815a5aa9168f5ec4dc31f82ece7454aff8
parent54cb118b59c26cdee314890ffd781413b9274697 (diff)
tiasound.c: added save state support (nw)
-rw-r--r--src/emu/sound/tiaintf.c2
-rw-r--r--src/emu/sound/tiasound.c20
-rw-r--r--src/emu/sound/tiasound.h2
3 files changed, 21 insertions, 3 deletions
diff --git a/src/emu/sound/tiaintf.c b/src/emu/sound/tiaintf.c
index 64285ff10b5..26ee206a7a0 100644
--- a/src/emu/sound/tiaintf.c
+++ b/src/emu/sound/tiaintf.c
@@ -30,7 +30,7 @@ tia_device::tia_device(const machine_config &mconfig, const char *tag, device_t
void tia_device::device_start()
{
m_channel = stream_alloc(0, 1, clock());
- m_chip = tia_sound_init(clock(), clock(), 16);
+ m_chip = tia_sound_init(this, clock(), clock(), 16);
assert_always(m_chip != NULL, "Error creating TIA chip");
}
diff --git a/src/emu/sound/tiasound.c b/src/emu/sound/tiasound.c
index 5c4296371af..e5934767536 100644
--- a/src/emu/sound/tiasound.c
+++ b/src/emu/sound/tiasound.c
@@ -526,6 +526,22 @@ static void poly_init(UINT8 *poly, int size, int f0, int f1)
}
}
+static void tia_save_state(device_t *device, tia *tia)
+{
+ device->save_item(NAME(tia->AUDC));
+ device->save_item(NAME(tia->AUDF));
+ device->save_item(NAME(tia->AUDV));
+ device->save_item(NAME(tia->Outvol));
+ device->save_item(NAME(tia->P4));
+ device->save_item(NAME(tia->P5));
+ device->save_item(NAME(tia->P9));
+ device->save_item(NAME(tia->Div_n_cnt));
+ device->save_item(NAME(tia->Div_n_max));
+ device->save_item(NAME(tia->Div_3_cnt));
+ device->save_item(NAME(tia->Samp_n_cnt));
+ device->save_item(NAME(tia->oversampling));
+}
+
/*****************************************************************************/
/* Module: tia_sh_start() */
/* Purpose: to handle the power-up initialization functions */
@@ -541,7 +557,7 @@ static void poly_init(UINT8 *poly, int size, int f0, int f1)
/* */
/*****************************************************************************/
-void *tia_sound_init(int clock, int sample_rate, int gain)
+void *tia_sound_init(device_t *device, int clock, int sample_rate, int gain)
{
struct tia *chip;
int chan;
@@ -581,6 +597,8 @@ void *tia_sound_init(int clock, int sample_rate, int gain)
chip->P5[chan] = 0;
chip->P9[chan] = 0;
}
+
+ tia_save_state(device, chip);
return chip;
}
diff --git a/src/emu/sound/tiasound.h b/src/emu/sound/tiasound.h
index 9733d8dc1d7..9ca92a2bfd1 100644
--- a/src/emu/sound/tiasound.h
+++ b/src/emu/sound/tiasound.h
@@ -37,7 +37,7 @@
#ifndef __TIASOUND_H__
#define __TIASOUND_H__
-void *tia_sound_init(int clock, int sample_rate, int gain);
+void *tia_sound_init(device_t *device, int clock, int sample_rate, int gain);
void tia_sound_free(void *chip);
void tia_process (void *chip, stream_sample_t *buffer, int length);
void tia_write(void *chip, offs_t offset, UINT8 data);