Path: blob/master/libsnes/bsnes/snes/ppu/sprite/sprite.hpp
2 views
struct Sprite {1struct SpriteItem {2uint16 x;3uint16 y;4uint8 character;5bool nameselect;6bool vflip;7bool hflip;8uint8 priority;9uint8 palette;10bool size;11unsigned width() const;12unsigned height() const;13} list[128];1415struct TileItem {16uint16 x;17uint16 priority;18uint16 palette;19bool hflip;20uint8 d0, d1, d2, d3;21};2223struct State {24unsigned x;25unsigned y;2627unsigned item_count;28unsigned tile_count;2930bool active;31uint8 item[2][32];32TileItem tile[2][34];33} t;3435struct Regs {36bool main_enable;37bool sub_enable;38bool interlace;3940uint3 base_size;41uint2 nameselect;42uint16 tiledata_addr;43uint8 first_sprite;4445unsigned priority0;46unsigned priority1;47unsigned priority2;48unsigned priority3;4950bool time_over;51bool range_over;52} regs;5354struct Output {55struct Pixel {56unsigned priority; //0 = none (transparent)57uint8 palette;58} main, sub;59} output;6061//list.cpp62void update(unsigned addr, uint8 data);63void synchronize();6465//sprite.cpp66void address_reset();67void set_first_sprite();68void frame();69void scanline();70void run();71void tilefetch();72void reset();7374bool on_scanline(SpriteItem&);7576void serialize(serializer&);77Sprite(PPU &self);7879PPU &self;80friend class PPU;81};828384