Path: blob/master/libsnes/bsnes/snes/ppu/serialization.cpp
2 views
#ifdef PPU_CPP12void PPUcounter::serialize(serializer &s) {3s.integer(status.interlace);4s.integer(status.field);5s.integer(status.vcounter);6s.integer(status.hcounter);78s.array(history.field);9s.array(history.vcounter);10s.array(history.hcounter);11s.integer(history.index);12}1314void PPU::serialize(serializer &s) {15Processor::serialize(s);16PPUcounter::serialize(s);1718s.array(vram);19s.array(oam);20s.array(cgram);2122s.integer(ppu1_version);23s.integer(ppu2_version);2425s.integer(display.interlace);26s.integer(display.overscan);2728s.integer(regs.ppu1_mdr);29s.integer(regs.ppu2_mdr);3031s.integer(regs.vram_readbuffer);32s.integer(regs.oam_latchdata);33s.integer(regs.cgram_latchdata);34s.integer(regs.bgofs_latchdata);35s.integer(regs.mode7_latchdata);36s.integer(regs.counters_latched);37s.integer(regs.latch_hcounter);38s.integer(regs.latch_vcounter);3940s.integer(regs.oam_iaddr);41s.integer(regs.cgram_iaddr);4243s.integer(regs.display_disable);44s.integer(regs.display_brightness);4546s.integer(regs.oam_baseaddr);47s.integer(regs.oam_addr);48s.integer(regs.oam_priority);4950s.integer(regs.bg3_priority);51s.integer(regs.bgmode);5253s.integer(regs.mode7_hoffset);54s.integer(regs.mode7_voffset);5556s.integer(regs.vram_incmode);57s.integer(regs.vram_mapping);58s.integer(regs.vram_incsize);5960s.integer(regs.vram_addr);6162s.integer(regs.mode7_repeat);63s.integer(regs.mode7_vflip);64s.integer(regs.mode7_hflip);6566s.integer(regs.m7a);67s.integer(regs.m7b);68s.integer(regs.m7c);69s.integer(regs.m7d);70s.integer(regs.m7x);71s.integer(regs.m7y);7273s.integer(regs.cgram_addr);7475s.integer(regs.mode7_extbg);76s.integer(regs.pseudo_hires);77s.integer(regs.overscan);78s.integer(regs.interlace);7980s.integer(regs.hcounter);81s.integer(regs.vcounter);8283bg1.serialize(s);84bg2.serialize(s);85bg3.serialize(s);86bg4.serialize(s);87sprite.serialize(s);88window.serialize(s);89screen.serialize(s);90}9192void PPU::Background::serialize(serializer &s) {93s.integer(id);9495s.integer(regs.tiledata_addr);96s.integer(regs.screen_addr);97s.integer(regs.screen_size);98s.integer(regs.mosaic);99s.integer(regs.tile_size);100101s.integer(regs.mode);102s.integer(regs.priority0);103s.integer(regs.priority1);104105s.integer(regs.main_enable);106s.integer(regs.sub_enable);107108s.integer(regs.hoffset);109s.integer(regs.voffset);110111s.integer(cache.hoffset);112s.integer(cache.voffset);113114s.integer(output.main.priority);115s.integer(output.main.palette);116s.integer(output.main.tile);117118s.integer(output.sub.priority);119s.integer(output.sub.palette);120s.integer(output.sub.tile);121122s.integer(x);123s.integer(y);124125s.integer(mosaic.priority);126s.integer(mosaic.palette);127s.integer(mosaic.tile);128129s.integer(mosaic.vcounter);130s.integer(mosaic.voffset);131s.integer(mosaic.hcounter);132s.integer(mosaic.hoffset);133134s.integer(tile_counter);135s.integer(tile);136s.integer(priority);137s.integer(palette_number);138s.integer(palette_index);139s.array(data);140}141142void PPU::Sprite::serialize(serializer &s) {143for(unsigned i = 0; i < 128; i++) {144s.integer(list[i].x);145s.integer(list[i].y);146s.integer(list[i].character);147s.integer(list[i].nameselect);148s.integer(list[i].vflip);149s.integer(list[i].hflip);150s.integer(list[i].priority);151s.integer(list[i].palette);152s.integer(list[i].size);153}154155s.integer(t.x);156s.integer(t.y);157158s.integer(t.item_count);159s.integer(t.tile_count);160161s.integer(t.active);162for(unsigned n = 0; n < 2; n++) {163s.array(t.item[n]);164for(unsigned i = 0; i < 34; i++) {165s.integer(t.tile[n][i].x);166s.integer(t.tile[n][i].priority);167s.integer(t.tile[n][i].palette);168s.integer(t.tile[n][i].hflip);169s.integer(t.tile[n][i].d0);170s.integer(t.tile[n][i].d1);171s.integer(t.tile[n][i].d2);172s.integer(t.tile[n][i].d3);173}174}175176s.integer(regs.main_enable);177s.integer(regs.sub_enable);178s.integer(regs.interlace);179180s.integer(regs.base_size);181s.integer(regs.nameselect);182s.integer(regs.tiledata_addr);183s.integer(regs.first_sprite);184185s.integer(regs.priority0);186s.integer(regs.priority1);187s.integer(regs.priority2);188s.integer(regs.priority3);189190s.integer(regs.time_over);191s.integer(regs.range_over);192193s.integer(output.main.priority);194s.integer(output.main.palette);195196s.integer(output.sub.priority);197s.integer(output.sub.palette);198}199200void PPU::Window::serialize(serializer &s) {201s.integer(regs.bg1_one_enable);202s.integer(regs.bg1_one_invert);203s.integer(regs.bg1_two_enable);204s.integer(regs.bg1_two_invert);205206s.integer(regs.bg2_one_enable);207s.integer(regs.bg2_one_invert);208s.integer(regs.bg2_two_enable);209s.integer(regs.bg2_two_invert);210211s.integer(regs.bg3_one_enable);212s.integer(regs.bg3_one_invert);213s.integer(regs.bg3_two_enable);214s.integer(regs.bg3_two_invert);215216s.integer(regs.bg4_one_enable);217s.integer(regs.bg4_one_invert);218s.integer(regs.bg4_two_enable);219s.integer(regs.bg4_two_invert);220221s.integer(regs.oam_one_enable);222s.integer(regs.oam_one_invert);223s.integer(regs.oam_two_enable);224s.integer(regs.oam_two_invert);225226s.integer(regs.col_one_enable);227s.integer(regs.col_one_invert);228s.integer(regs.col_two_enable);229s.integer(regs.col_two_invert);230231s.integer(regs.one_left);232s.integer(regs.one_right);233s.integer(regs.two_left);234s.integer(regs.two_right);235236s.integer(regs.bg1_mask);237s.integer(regs.bg2_mask);238s.integer(regs.bg3_mask);239s.integer(regs.bg4_mask);240s.integer(regs.oam_mask);241s.integer(regs.col_mask);242243s.integer(regs.bg1_main_enable);244s.integer(regs.bg1_sub_enable);245s.integer(regs.bg2_main_enable);246s.integer(regs.bg2_sub_enable);247s.integer(regs.bg3_main_enable);248s.integer(regs.bg3_sub_enable);249s.integer(regs.bg4_main_enable);250s.integer(regs.bg4_sub_enable);251s.integer(regs.oam_main_enable);252s.integer(regs.oam_sub_enable);253254s.integer(regs.col_main_mask);255s.integer(regs.col_sub_mask);256257s.integer(output.main.color_enable);258s.integer(output.sub.color_enable);259260s.integer(x);261s.integer(one);262s.integer(two);263}264265void PPU::Screen::serialize(serializer &s) {266s.integer(regs.addsub_mode);267s.integer(regs.direct_color);268269s.integer(regs.color_mode);270s.integer(regs.color_halve);271s.integer(regs.bg1_color_enable);272s.integer(regs.bg2_color_enable);273s.integer(regs.bg3_color_enable);274s.integer(regs.bg4_color_enable);275s.integer(regs.oam_color_enable);276s.integer(regs.back_color_enable);277278s.integer(regs.color_b);279s.integer(regs.color_g);280s.integer(regs.color_r);281}282283#endif284285286