bsnes/higan/sfc/dsp/serialization.cpp

60 lines
1.5 KiB
C++

void DSP::serialize(serializer& s) {
Thread::serialize(s);
s.array(state.regs, 128);
state.echoHistory[0].serialize(s);
state.echoHistory[1].serialize(s);
s.integer(state.echoHistoryOffset);
s.integer(state.everyOtherSample);
s.integer(state.kon);
s.integer(state.noise);
s.integer(state.counter);
s.integer(state.echoOffset);
s.integer(state.echoLength);
s.integer(state.konBuffer);
s.integer(state.endxBuffer);
s.integer(state.envxBuffer);
s.integer(state.outxBuffer);
s.integer(state._pmon);
s.integer(state._non);
s.integer(state._eon);
s.integer(state._dir);
s.integer(state._koff);
s.integer(state._brrNextAddress);
s.integer(state._adsr0);
s.integer(state._brrHeader);
s.integer(state._brrByte);
s.integer(state._srcn);
s.integer(state._esa);
s.integer(state._echoDisabled);
s.integer(state._dirAddress);
s.integer(state._pitch);
s.integer(state._output);
s.integer(state._looped);
s.integer(state._echoPointer);
s.array(state._mainOut, 2);
s.array(state._echoOut, 2);
s.array(state._echoIn, 2);
for(auto n : range(8)) {
voice[n].buffer.serialize(s);
s.integer(voice[n].bufferOffset);
s.integer(voice[n].gaussianOffset);
s.integer(voice[n].brrAddress);
s.integer(voice[n].brrOffset);
s.integer(voice[n].vbit);
s.integer(voice[n].vidx);
s.integer(voice[n].konDelay);
s.integer(voice[n].envelopeMode);
s.integer(voice[n].envelope);
s.integer(voice[n].hiddenEnvelope);
s.integer(voice[n]._envxOut);
}
}