mirror of https://github.com/bsnes-emu/bsnes.git
125 lines
2.7 KiB
C++
125 lines
2.7 KiB
C++
auto PPU::serialize(serializer& s) -> void {
|
|
Thread::serialize(s);
|
|
|
|
s.array(vram, 96 * 1024);
|
|
s.array(pram, 512);
|
|
|
|
s.integer(io.gameBoyColorMode);
|
|
s.integer(io.forceBlank);
|
|
s.integer(io.greenSwap);
|
|
s.integer(io.vblank);
|
|
s.integer(io.hblank);
|
|
s.integer(io.vcoincidence);
|
|
s.integer(io.irqvblank);
|
|
s.integer(io.irqhblank);
|
|
s.integer(io.irqvcoincidence);
|
|
s.integer(io.vcompare);
|
|
s.integer(io.vcounter);
|
|
|
|
s.integer(Background::IO::mode);
|
|
s.integer(Background::IO::frame);
|
|
s.integer(Background::IO::mosaicWidth);
|
|
s.integer(Background::IO::mosaicHeight);
|
|
bg0.serialize(s);
|
|
bg1.serialize(s);
|
|
bg2.serialize(s);
|
|
bg3.serialize(s);
|
|
objects.serialize(s);
|
|
window0.serialize(s);
|
|
window1.serialize(s);
|
|
window2.serialize(s);
|
|
window3.serialize(s);
|
|
screen.serialize(s);
|
|
for(auto& object : this->object) object.serialize(s);
|
|
for(auto& param : this->objectParam) param.serialize(s);
|
|
}
|
|
|
|
auto PPU::Background::serialize(serializer& s) -> void {
|
|
s.integer(id);
|
|
|
|
s.integer(io.enable);
|
|
s.integer(io.priority);
|
|
s.integer(io.characterBase);
|
|
s.integer(io.unused);
|
|
s.integer(io.mosaic);
|
|
s.integer(io.colorMode);
|
|
s.integer(io.screenBase);
|
|
s.integer(io.affineWrap);
|
|
s.integer(io.screenSize);
|
|
s.integer(io.hoffset);
|
|
s.integer(io.voffset);
|
|
s.integer(io.pa);
|
|
s.integer(io.pb);
|
|
s.integer(io.pc);
|
|
s.integer(io.pd);
|
|
s.integer(io.x);
|
|
s.integer(io.y);
|
|
s.integer(io.lx);
|
|
s.integer(io.ly);
|
|
|
|
s.integer(mosaicOffset);
|
|
s.integer(hmosaic);
|
|
s.integer(vmosaic);
|
|
s.integer(fx);
|
|
s.integer(fy);
|
|
}
|
|
|
|
auto PPU::Objects::serialize(serializer& s) -> void {
|
|
s.integer(io.enable);
|
|
s.integer(io.hblank);
|
|
s.integer(io.mapping);
|
|
s.integer(io.mosaicWidth);
|
|
s.integer(io.mosaicHeight);
|
|
|
|
s.integer(mosaicOffset);
|
|
}
|
|
|
|
auto PPU::Window::serialize(serializer& s) -> void {
|
|
s.integer(id);
|
|
|
|
s.integer(io.enable);
|
|
s.array(io.active);
|
|
s.integer(io.x1);
|
|
s.integer(io.x2);
|
|
s.integer(io.y1);
|
|
s.integer(io.y2);
|
|
|
|
s.integer(output);
|
|
}
|
|
|
|
auto PPU::Screen::serialize(serializer& s) -> void {
|
|
s.integer(io.blendMode);
|
|
s.array(io.blendAbove);
|
|
s.array(io.blendBelow);
|
|
s.integer(io.blendEVA);
|
|
s.integer(io.blendEVB);
|
|
s.integer(io.blendEVY);
|
|
}
|
|
|
|
auto PPU::Object::serialize(serializer& s) -> void {
|
|
s.integer(y);
|
|
s.integer(affine);
|
|
s.integer(affineSize);
|
|
s.integer(mode);
|
|
s.integer(mosaic);
|
|
s.integer(colors);
|
|
s.integer(shape);
|
|
s.integer(x);
|
|
s.integer(affineParam);
|
|
s.integer(hflip);
|
|
s.integer(vflip);
|
|
s.integer(size);
|
|
s.integer(character);
|
|
s.integer(priority);
|
|
s.integer(palette);
|
|
s.integer(width);
|
|
s.integer(height);
|
|
}
|
|
|
|
auto PPU::ObjectParam::serialize(serializer& s) -> void {
|
|
s.integer(pa);
|
|
s.integer(pb);
|
|
s.integer(pc);
|
|
s.integer(pd);
|
|
}
|