bsnes/higan/gba/ppu/serialization.cpp

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);
}