Path: blob/master/libsnes/bsnes/snes/alt/ppu-compatibility/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,128 * 1024);19s.array(oam,544);20s.array(cgram,512);2122s.integer(ppu1_version);23s.integer(ppu2_version);2425s.integer(region);26s.integer(line);2728s.integer(display.interlace);29s.integer(display.overscan);3031s.integer(cache.oam_basesize);32s.integer(cache.oam_nameselect);33s.integer(cache.oam_tdaddr);3435s.integer(regs.ppu1_mdr);36s.integer(regs.ppu2_mdr);37for(unsigned n = 0; n < 4; n++) s.integer(regs.bg_y[n]);3839s.integer(regs.ioamaddr);40s.integer(regs.icgramaddr);4142s.integer(regs.display_disabled);43s.integer(regs.display_brightness);4445s.integer(regs.oam_basesize);46s.integer(regs.oam_nameselect);47s.integer(regs.oam_tdaddr);4849s.integer(regs.oam_baseaddr);50s.integer(regs.oam_addr);51s.integer(regs.oam_priority);52s.integer(regs.oam_firstsprite);5354s.integer(regs.oam_latchdata);5556for(unsigned n = 0; n < 4; n++) s.integer(regs.bg_tilesize[n]);57s.integer(regs.bg3_priority);58s.integer(regs.bg_mode);5960s.integer(regs.mosaic_size);61for(unsigned n = 0; n < 4; n++) s.integer(regs.mosaic_enabled[n]);62s.integer(regs.mosaic_countdown);6364for(unsigned n = 0; n < 4; n++) s.integer(regs.bg_scaddr[n]);65for(unsigned n = 0; n < 4; n++) s.integer(regs.bg_scsize[n]);6667for(unsigned n = 0; n < 4; n++) s.integer(regs.bg_tdaddr[n]);6869s.integer(regs.bg_ofslatch);70s.integer(regs.m7_hofs);71s.integer(regs.m7_vofs);72for(unsigned n = 0; n < 4; n++) s.integer(regs.bg_hofs[n]);73for(unsigned n = 0; n < 4; n++) s.integer(regs.bg_vofs[n]);7475s.integer(regs.vram_incmode);76s.integer(regs.vram_mapping);77s.integer(regs.vram_incsize);7879s.integer(regs.vram_addr);8081s.integer(regs.mode7_repeat);82s.integer(regs.mode7_vflip);83s.integer(regs.mode7_hflip);8485s.integer(regs.m7_latch);86s.integer(regs.m7a);87s.integer(regs.m7b);88s.integer(regs.m7c);89s.integer(regs.m7d);90s.integer(regs.m7x);91s.integer(regs.m7y);9293s.integer(regs.cgram_addr);9495s.integer(regs.cgram_latchdata);9697for(unsigned n = 0; n < 6; n++) s.integer(regs.window1_enabled[n]);98for(unsigned n = 0; n < 6; n++) s.integer(regs.window1_invert [n]);99for(unsigned n = 0; n < 6; n++) s.integer(regs.window2_enabled[n]);100for(unsigned n = 0; n < 6; n++) s.integer(regs.window2_invert [n]);101102s.integer(regs.window1_left);103s.integer(regs.window1_right);104s.integer(regs.window2_left);105s.integer(regs.window2_right);106107for(unsigned n = 0; n < 6; n++) s.integer(regs.window_mask[n]);108for(unsigned n = 0; n < 5; n++) s.integer(regs.bg_enabled[n]);109for(unsigned n = 0; n < 5; n++) s.integer(regs.bgsub_enabled[n]);110for(unsigned n = 0; n < 5; n++) s.integer(regs.window_enabled[n]);111for(unsigned n = 0; n < 5; n++) s.integer(regs.sub_window_enabled[n]);112113s.integer(regs.color_mask);114s.integer(regs.colorsub_mask);115s.integer(regs.addsub_mode);116s.integer(regs.direct_color);117118s.integer(regs.color_mode);119s.integer(regs.color_halve);120for(unsigned n = 0; n < 6; n++) s.integer(regs.color_enabled[n]);121122s.integer(regs.color_r);123s.integer(regs.color_g);124s.integer(regs.color_b);125s.integer(regs.color_rgb);126127s.integer(regs.mode7_extbg);128s.integer(regs.pseudo_hires);129s.integer(regs.overscan);130s.integer(regs.scanlines);131s.integer(regs.oam_interlace);132s.integer(regs.interlace);133134s.integer(regs.hcounter);135s.integer(regs.vcounter);136s.integer(regs.latch_hcounter);137s.integer(regs.latch_vcounter);138s.integer(regs.counters_latched);139140s.integer(regs.vram_readbuffer);141142s.integer(regs.time_over);143s.integer(regs.range_over);144s.integer(regs.oam_itemcount);145s.integer(regs.oam_tilecount);146147for(unsigned n = 0; n < 256; n++) {148s.integer(pixel_cache[n].src_main);149s.integer(pixel_cache[n].src_sub);150s.integer(pixel_cache[n].bg_main);151s.integer(pixel_cache[n].bg_sub);152s.integer(pixel_cache[n].ce_main);153s.integer(pixel_cache[n].ce_sub);154s.integer(pixel_cache[n].pri_main);155s.integer(pixel_cache[n].pri_sub);156}157158//zero TODO - only on load159//better to just take a small speed hit than store all of bg_tiledata[3][] ...160flush_tiledata_cache();161162for(unsigned n = 0; n < 6; n++) {163s.array(window[n].main, 256);164s.array(window[n].sub, 256);165}166167for(unsigned n = 0; n < 4; n++) {168s.integer(bg_info[n].tw);169s.integer(bg_info[n].th);170s.integer(bg_info[n].mx);171s.integer(bg_info[n].my);172s.integer(bg_info[n].scx);173s.integer(bg_info[n].scy);174}175176for(unsigned n = 0; n < 128; n++) {177s.integer(sprite_list[n].width);178s.integer(sprite_list[n].height);179s.integer(sprite_list[n].x);180s.integer(sprite_list[n].y);181s.integer(sprite_list[n].character);182s.integer(sprite_list[n].use_nameselect);183s.integer(sprite_list[n].vflip);184s.integer(sprite_list[n].hflip);185s.integer(sprite_list[n].palette);186s.integer(sprite_list[n].priority);187s.integer(sprite_list[n].size);188}189s.integer(sprite_list_valid);190s.integer(active_sprite);191192s.array(oam_itemlist, 32);193194for(unsigned n = 0; n < 34; n++) {195s.integer(oam_tilelist[n].x);196s.integer(oam_tilelist[n].y);197s.integer(oam_tilelist[n].pri);198s.integer(oam_tilelist[n].pal);199s.integer(oam_tilelist[n].tile);200s.integer(oam_tilelist[n].hflip);201}202203s.array(oam_line_pal, 256);204s.array(oam_line_pri, 256);205206s.integer(uindex);207}208209#endif210211212