mirror of https://github.com/bsnes-emu/bsnes.git
90 lines
1.6 KiB
C++
90 lines
1.6 KiB
C++
struct Window {
|
|
struct {
|
|
bool bg1_one_enable;
|
|
bool bg1_one_invert;
|
|
bool bg1_two_enable;
|
|
bool bg1_two_invert;
|
|
|
|
bool bg2_one_enable;
|
|
bool bg2_one_invert;
|
|
bool bg2_two_enable;
|
|
bool bg2_two_invert;
|
|
|
|
bool bg3_one_enable;
|
|
bool bg3_one_invert;
|
|
bool bg3_two_enable;
|
|
bool bg3_two_invert;
|
|
|
|
bool bg4_one_enable;
|
|
bool bg4_one_invert;
|
|
bool bg4_two_enable;
|
|
bool bg4_two_invert;
|
|
|
|
bool oam_one_enable;
|
|
bool oam_one_invert;
|
|
bool oam_two_enable;
|
|
bool oam_two_invert;
|
|
|
|
bool col_one_enable;
|
|
bool col_one_invert;
|
|
bool col_two_enable;
|
|
bool col_two_invert;
|
|
|
|
uint8 one_left;
|
|
uint8 one_right;
|
|
uint8 two_left;
|
|
uint8 two_right;
|
|
|
|
uint2 bg1_mask;
|
|
uint2 bg2_mask;
|
|
uint2 bg3_mask;
|
|
uint2 bg4_mask;
|
|
uint2 oam_mask;
|
|
uint2 col_mask;
|
|
|
|
bool bg1_main_enable;
|
|
bool bg1_sub_enable;
|
|
bool bg2_main_enable;
|
|
bool bg2_sub_enable;
|
|
bool bg3_main_enable;
|
|
bool bg3_sub_enable;
|
|
bool bg4_main_enable;
|
|
bool bg4_sub_enable;
|
|
bool oam_main_enable;
|
|
bool oam_sub_enable;
|
|
|
|
uint2 col_main_mask;
|
|
uint2 col_sub_mask;
|
|
} regs;
|
|
|
|
struct Output {
|
|
struct Pixel {
|
|
bool color_enable;
|
|
} main, sub;
|
|
} output;
|
|
|
|
struct {
|
|
uint x;
|
|
bool one;
|
|
bool two;
|
|
};
|
|
|
|
Window(PPU& self);
|
|
|
|
auto scanline() -> void;
|
|
auto run() -> void;
|
|
auto reset() -> void;
|
|
|
|
auto test(
|
|
bool& main, bool& sub,
|
|
bool one_enable, bool one_invert,
|
|
bool two_enable, bool two_invert,
|
|
uint8 mask, bool main_enable, bool sub_enable
|
|
) -> void;
|
|
|
|
auto serialize(serializer&) -> void;
|
|
|
|
PPU& self;
|
|
friend class PPU;
|
|
};
|