bsnes/higan/md/ym2612/serialization.cpp

84 lines
1.8 KiB
C++

auto YM2612::serialize(serializer& s) -> void {
Thread::serialize(s);
s.integer(io.address);
s.integer(lfo.enable);
s.integer(lfo.rate);
s.integer(lfo.clock);
s.integer(lfo.divider);
s.integer(dac.enable);
s.integer(dac.sample);
s.integer(envelope.clock);
s.integer(envelope.divider);
s.integer(timerA.enable);
s.integer(timerA.irq);
s.integer(timerA.line);
s.integer(timerA.period);
s.integer(timerA.counter);
s.integer(timerB.enable);
s.integer(timerB.irq);
s.integer(timerB.line);
s.integer(timerB.period);
s.integer(timerB.counter);
s.integer(timerB.divider);
for(auto n : range(6)) channels[n].serialize(s);
}
auto YM2612::Channel::serialize(serializer& s) -> void {
s.integer(leftEnable);
s.integer(rightEnable);
s.integer(algorithm);
s.integer(feedback);
s.integer(vibrato);
s.integer(tremolo);
s.integer(mode);
for(auto n : range(4)) operators[n].serialize(s);
}
auto YM2612::Channel::Operator::serialize(serializer& s) -> void {
s.integer(keyOn);
s.integer(lfoEnable);
s.integer(detune);
s.integer(multiple);
s.integer(totalLevel);
s.integer(outputLevel);
s.integer(output);
s.integer(prior);
s.integer(pitch.value);
s.integer(pitch.reload);
s.integer(pitch.latch);
s.integer(octave.value);
s.integer(octave.reload);
s.integer(octave.latch);
s.integer(phase.value);
s.integer(phase.delta);
s.integer(envelope.state);
s.integer(envelope.rate);
s.integer(envelope.divider);
s.integer(envelope.steps);
s.integer(envelope.value);
s.integer(envelope.keyScale);
s.integer(envelope.attackRate);
s.integer(envelope.decayRate);
s.integer(envelope.sustainRate);
s.integer(envelope.sustainLevel);
s.integer(envelope.releaseRate);
s.integer(ssg.enable);
s.integer(ssg.attack);
s.integer(ssg.alternate);
s.integer(ssg.hold);
s.integer(ssg.invert);
}