diff --git a/src/emu/sound/k054539.c b/src/emu/sound/k054539.c index e05e92d18eb..dc21a8caf75 100644 --- a/src/emu/sound/k054539.c +++ b/src/emu/sound/k054539.c @@ -459,7 +459,7 @@ WRITE8_MEMBER(k054539_device::write) regs[offset] = data; } -void k054539_device::reset_zones() +void k054539_device::device_post_load() { int data = regs[0x22e]; cur_zone = data == 0x80 ? ram : rom + 0x20000*data; @@ -516,8 +516,6 @@ void k054539_device::device_start() pantab[i] = sqrt((double)i) / sqrt((double)0xe); init_chip(); - - machine().save().register_postload(save_prepost_delegate(FUNC(k054539_device::reset_zones), this)); } void k054539_device::device_reset() diff --git a/src/emu/sound/k054539.h b/src/emu/sound/k054539.h index dbfefba2f12..45aed982c91 100644 --- a/src/emu/sound/k054539.h +++ b/src/emu/sound/k054539.h @@ -70,6 +70,7 @@ protected: // device-level overrides virtual void device_start(); virtual void device_reset(); + virtual void device_post_load(); virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr); // device_sound_interface overrides @@ -108,7 +109,6 @@ private: void keyon(int channel); void keyoff(int channel); void init_chip(); - void reset_zones(); }; extern const device_type K054539;