mirror of https://github.com/bsnes-emu/bsnes.git
98 lines
2.6 KiB
C++
98 lines
2.6 KiB
C++
auto PPU::serialize(serializer& s) -> void {
|
|
Thread::serialize(s);
|
|
|
|
s.integer(this->s.field);
|
|
s.integer(this->s.vclk);
|
|
s.integer(this->s.hclk);
|
|
s.integer((uint&)this->s.pixel.source);
|
|
s.integer(this->s.pixel.color);
|
|
|
|
s.integer(l.backColor);
|
|
s.integer(l.screenOneEnable);
|
|
s.integer(l.screenOneMapBase);
|
|
s.integer(l.scrollOneX);
|
|
s.integer(l.scrollOneY);
|
|
s.integer(l.screenTwoEnable);
|
|
s.integer(l.screenTwoMapBase);
|
|
s.integer(l.scrollTwoX);
|
|
s.integer(l.scrollTwoY);
|
|
s.integer(l.screenTwoWindowEnable);
|
|
s.integer(l.screenTwoWindowInvert);
|
|
s.integer(l.screenTwoWindowX0);
|
|
s.integer(l.screenTwoWindowY0);
|
|
s.integer(l.screenTwoWindowX1);
|
|
s.integer(l.screenTwoWindowY1);
|
|
s.integer(l.spriteEnable);
|
|
s.integer(l.spriteWindowEnable);
|
|
s.integer(l.spriteWindowX0);
|
|
s.integer(l.spriteWindowY0);
|
|
s.integer(l.spriteWindowX1);
|
|
s.integer(l.spriteWindowY1);
|
|
|
|
for(uint n : range(32)) {
|
|
s.integer(l.sprite[n].x);
|
|
s.integer(l.sprite[n].y);
|
|
s.integer(l.sprite[n].vflip);
|
|
s.integer(l.sprite[n].hflip);
|
|
s.integer(l.sprite[n].priority);
|
|
s.integer(l.sprite[n].window);
|
|
s.integer(l.sprite[n].palette);
|
|
s.integer(l.sprite[n].tile);
|
|
}
|
|
s.integer(l.spriteCount);
|
|
|
|
for(uint n : range(2)) {
|
|
s.array(l.oam[n]);
|
|
}
|
|
s.integer(l.oamCount);
|
|
|
|
s.integer(r.screenOneEnable);
|
|
s.integer(r.screenTwoEnable);
|
|
s.integer(r.spriteEnable);
|
|
s.integer(r.spriteWindowEnable);
|
|
s.integer(r.screenTwoWindowInvert);
|
|
s.integer(r.screenTwoWindowEnable);
|
|
s.integer(r.backColor);
|
|
s.integer(r.lineCompare);
|
|
s.integer(r.spriteBase);
|
|
s.integer(r.spriteFirst);
|
|
s.integer(r.spriteCount);
|
|
s.integer(r.screenOneMapBase);
|
|
s.integer(r.screenTwoMapBase);
|
|
s.integer(r.screenTwoWindowX0);
|
|
s.integer(r.screenTwoWindowY0);
|
|
s.integer(r.screenTwoWindowX1);
|
|
s.integer(r.screenTwoWindowY1);
|
|
s.integer(r.spriteWindowX0);
|
|
s.integer(r.spriteWindowY0);
|
|
s.integer(r.spriteWindowX1);
|
|
s.integer(r.spriteWindowY1);
|
|
s.integer(r.scrollOneX);
|
|
s.integer(r.scrollOneY);
|
|
s.integer(r.scrollTwoX);
|
|
s.integer(r.scrollTwoY);
|
|
s.integer(r.lcdEnable);
|
|
s.integer(r.lcdContrast);
|
|
s.integer(r.lcdUnknown);
|
|
s.integer(r.iconSleep);
|
|
s.integer(r.iconVertical);
|
|
s.integer(r.iconHorizontal);
|
|
s.integer(r.iconAux1);
|
|
s.integer(r.iconAux2);
|
|
s.integer(r.iconAux3);
|
|
s.integer(r.vtotal);
|
|
s.integer(r.vblank);
|
|
s.array(r.pool);
|
|
for(uint n : range(16)) {
|
|
s.array(r.palette[n].color);
|
|
}
|
|
s.integer(r.htimerEnable);
|
|
s.integer(r.htimerRepeat);
|
|
s.integer(r.vtimerEnable);
|
|
s.integer(r.vtimerRepeat);
|
|
s.integer(r.htimerFrequency);
|
|
s.integer(r.vtimerFrequency);
|
|
s.integer(r.htimerCounter);
|
|
s.integer(r.vtimerCounter);
|
|
}
|