|
ComSquare
|
The struct containing all the registers the PPU. More...
#include <PPU.hpp>


Public Member Functions | |
| PPU ()=default | |
| uint8_t | read (uint24_t addr) override |
| Read data from the component. More... | |
| void | write (uint24_t addr, uint8_t data) override |
| Write data to this component. More... | |
| void | update (int cycles) |
| Update the PPU of n cycles. More... | |
Public Member Functions inherited from ComSquare::Memory::IMemory | |
| void | setMemoryRegion (uint24_t start, uint24_t end) |
| Change starting and ending points of this mapped memory. More... | |
| virtual bool | hasMemoryAt (uint24_t addr) |
| Return true if this component has mapped the address. More... | |
| virtual uint24_t | getStart () |
| Get the first address mapped to this component. More... | |
Private Attributes | |
| union { | |
| struct { | |
| bool fblank: 1 | |
| bool _: 3 | |
| uint8_t brightness: 4 | |
| } | |
| uint8_t raw | |
| } | inidisp |
| INIDISP Register (F-blank and Brightness) More... | |
| union { | |
| struct { | |
| uint8_t objectSize: 3 | |
| bool nameSelect: 2 | |
| uint8_t baseSelect: 3 | |
| } | |
| uint8_t raw | |
| } | obsel |
| OBSEL Register (Object Size and Character Address) More... | |
| union { | |
| struct { | |
| bool objPriorityActivationBit: 1 | |
| uint8_t _: 6 | |
| uint32_t oamAddress: 9 | |
| } | |
| struct { | |
| uint8_t oamaddh | |
| uint8_t oamaddl | |
| } | |
| uint32_t raw | |
| } | oamadd |
| OAMADD Register (OAM Address and Obj Priority) More... | |
| uint8_t | oamdata |
| OAMDATA Register (Data for OAM write) More... | |
| union { | |
| struct { | |
| bool characterSizeBg4: 1 | |
| bool characterSizeBg3: 1 | |
| bool characterSizeBg2: 1 | |
| bool characterSizeBg1: 1 | |
| bool mode1Bg3PriorityBit: 1 | |
| uint8_t bgMode: 3 | |
| } | |
| uint8_t raw | |
| } | bgmode |
| BGMODE Register (OAM Address and Obj Priority) More... | |
| union { | |
| struct { | |
| uint8_t pixelSize: 4 | |
| bool affectBg4: 1 | |
| bool affectBg3: 1 | |
| bool affectBg2: 1 | |
| bool affectBg1: 1 | |
| } | |
| uint8_t raw | |
| } | mosaic |
| MOSAIC Register (Screen Pixelation) More... | |
| union { | |
| struct { | |
| uint8_t tilemapAddress: 6 | |
| bool tilemapHorizontalMirroring: 1 | |
| bool tilemapVerticalMirroring: 1 | |
| } | |
| uint8_t raw | |
| } | bg1sc |
| BG1SC Register (BG1 Tilemap Address and Size) More... | |
| union { | |
| struct { | |
| uint8_t tilemapAddress: 6 | |
| bool tilemapHorizontalMirroring: 1 | |
| bool tilemapVerticalMirroring: 1 | |
| } | |
| uint8_t raw | |
| } | bg2sc |
| BG2SC Register (BG2 Tilemap Address and Size) More... | |
| union { | |
| struct { | |
| uint8_t tilemapAddress: 6 | |
| bool tilemapHorizontalMirroring: 1 | |
| bool tilemapVerticalMirroring: 1 | |
| } | |
| uint8_t raw | |
| } | bg3sc |
| BG3SC Register (BG3 Tilemap Address and Size) More... | |
| union { | |
| struct { | |
| uint8_t tilemapAddress: 6 | |
| bool tilemapHorizontalMirroring: 1 | |
| bool tilemapVerticalMirroring: 1 | |
| } | |
| uint8_t raw | |
| } | bg4sc |
| BG4SC Register (BG4 Tilemap Address and Size) More... | |
| union { | |
| struct { | |
| uint8_t baseAddressBg2a4: 4 | |
| uint8_t baseAddressBg1a3: 4 | |
| } | |
| uint8_t raw | |
| } | bg12nba |
| BG12NBA Register (BG1 and 2 Chr Address) More... | |
| union { | |
| struct { | |
| uint8_t baseAddressBg2a4: 4 | |
| uint8_t baseAddressBg1a3: 4 | |
| } | |
| uint8_t raw | |
| } | bg34nba |
| BG34NBA Register (BG3 and 4 Chr Address) More... | |
| union { | |
| struct { | |
| uint8_t _: 6 | |
| uint32_t offsetBg: 10 | |
| } | |
| uint16_t raw | |
| } | bg1ofs |
| BG1HOFS Register (BG1 Horizontal Scroll) More... | |
| union { | |
| struct { | |
| uint8_t _: 3 | |
| uint32_t offsetBg: 13 | |
| } | |
| uint8_t raw | |
| } | m7ofs |
| M7HOFS Register (Mode 7 _BG Horizontal Scroll) More... | |
| union { | |
| struct { | |
| uint8_t _: 6 | |
| uint32_t offsetBg: 10 | |
| } | |
| uint8_t raw | |
| } | bg2ofs |
| BG2HOFS Register (BG2 Horizontal Scroll) More... | |
| union { | |
| struct { | |
| uint8_t _: 6 | |
| uint32_t offsetBg: 10 | |
| } | |
| uint8_t raw | |
| } | bg3ofs |
| BG3HOFS Register (BG3 Horizontal Scroll) More... | |
| union { | |
| struct { | |
| uint8_t _: 3 | |
| uint32_t offsetBg: 10 | |
| } | |
| uint8_t raw | |
| } | bg4ofs |
| BG4HOFS Register (BG4 Horizontal Scroll) More... | |
| union { | |
| struct { | |
| bool address: 1 | |
| uint8_t _: 3 | |
| uint8_t addressRemapping: 2 | |
| uint8_t incrementCount: 2 | |
| } | |
| uint8_t raw | |
| } | vmain |
| VMAIN Register (Video Port Control) More... | |
| union { | |
| struct { | |
| uint8_t vmaddh | |
| uint8_t vmaddl | |
| } | |
| uint32_t vmadd | |
| } | vmadd |
| VMADD Register (VRAM Address) More... | |
| union { | |
| struct { | |
| uint8_t vmdatah | |
| uint8_t vmdatal | |
| } | |
| uint32_t vmdata | |
| } | vmdata |
| VMDATA Register (VRAM Data Write) More... | |
| union { | |
| struct { | |
| bool playingFieldSize: 1 | |
| bool emptySpaceFill: 1 | |
| uint8_t _: 4 | |
| bool horizontalMirroring: 1 | |
| bool verticalMirroring: 1 | |
| } | |
| uint8_t raw | |
| } | m7sel |
| M7SEL Register (Mode 7 Settings) More... | |
| union { | |
| struct { | |
| uint8_t _: 3 | |
| uint8_t value | |
| } | |
| uint32_t center | |
| } | m7x |
| M7X Register (Mode 7 Center X) More... | |
| union { | |
| struct { | |
| uint8_t _: 3 | |
| uint8_t value | |
| } | |
| uint32_t center | |
| } | m7y |
| M7Y Register (Mode 7 Center Y) More... | |
| uint8_t | cgadd |
| CGADD Register (CGRAM Address) More... | |
| union { | |
| struct { | |
| bool _: 1 | |
| uint8_t blue: 5 | |
| uint8_t green: 5 | |
| uint8_t red: 5 | |
| } | |
| uint16_t raw | |
| } | cgdata |
| CGDATA Register (CGRAM Data write) More... | |
| union { | |
| struct { | |
| bool enableWindow2ForBg2Bg4Color: 1 | |
| bool window2InversionForBg2Bg4Color: 1 | |
| bool enableWindow1ForBg2Bg4Color: 1 | |
| bool window1InversionForBg2Bg4Color: 1 | |
| bool enableWindow2ForBg1Bg3Obj: 1 | |
| bool window2InversionForBg1Bg3Obj: 1 | |
| bool enableWindow1ForBg1Bg2Obj: 1 | |
| bool window1InversionForBg1Bg2Obj: 1 | |
| } | |
| uint8_t raw | |
| } | wsel |
| W12SEL - W34SEL Registers (Window Mask Settings for BGs) and WOBJSEL Register (Window Mask Settings for OBJ and Color Window) More... | |
| uint8_t | wh0 |
| WH0 Register (CWindow 1 Left Position) More... | |
| uint8_t | wh1 |
| WH1 Register (CWindow 1 Right Position) More... | |
| uint8_t | wh2 |
| WH2 Register (CWindow 2 Left Position) More... | |
| uint8_t | wh3 |
| WH3 Register (CWindow 2 Right Position) More... | |
| union { | |
| struct { | |
| uint8_t maskLogicBg1: 2 | |
| uint8_t maskLogicBg2: 2 | |
| uint8_t maskLogicBg3: 2 | |
| uint8_t maskLogicBg4: 2 | |
| } | |
| uint8_t raw | |
| } | wbglog |
| WBGLOG Register (Window mask logic for BGs) More... | |
| union { | |
| struct { | |
| uint8_t _: 4 | |
| uint8_t maskLogicObj: 2 | |
| uint8_t maskLogicColor: 2 | |
| } | |
| uint8_t raw | |
| } | wobjlog |
| WOBJLOG Register (Window mask logic for OBJs and Color Window) More... | |
| union { | |
| struct { | |
| uint8_t _: 3 | |
| bool enableWindowDisplayObj: 1 | |
| bool enableWindowDisplayBg4: 1 | |
| bool enableWindowDisplayBg3: 1 | |
| bool enableWindowDisplayBg2: 1 | |
| bool enableWindowDisplayBg1: 1 | |
| } | |
| uint8_t raw | |
| } | tm |
| TM Register (Main Screen Designation) More... | |
| union { | |
| struct { | |
| uint8_t _: 3 | |
| bool enableWindowDisplayObj: 1 | |
| bool enableWindowDisplayBg4: 1 | |
| bool enableWindowDisplayBg3: 1 | |
| bool enableWindowDisplayBg2: 1 | |
| bool enableWindowDisplayBg1: 1 | |
| } | |
| uint8_t raw | |
| } | ts |
| TS Register (Sub Screen Designation) More... | |
| union { | |
| struct { | |
| uint8_t _: 3 | |
| bool enableWindowMaskingObj: 1 | |
| bool enableWindowMaskingBg4: 1 | |
| bool enableWindowMaskingBg3: 1 | |
| bool enableWindowMaskingBg2: 1 | |
| bool enableWindowMaskingBg1: 1 | |
| } | |
| uint8_t raw | |
| } | tmw |
| TMW Register (Window Mask Designation for the Main Screen) More... | |
| union { | |
| struct { | |
| uint8_t _: 3 | |
| bool enableWindowMaskingObj: 1 | |
| bool enableWindowMaskingBg4: 1 | |
| bool enableWindowMaskingBg3: 1 | |
| bool enableWindowMaskingBg2: 1 | |
| bool enableWindowMaskingBg1: 1 | |
| } | |
| uint8_t raw | |
| } | tsw |
| TSW Register (Window Mask Designation for the Sub Screen) More... | |
| union { | |
| struct { | |
| uint8_t clipColorToBlackBeforeMath: 2 | |
| uint8_t preventColorMath: 2 | |
| uint8_t _: 2 | |
| bool addSubscreen: 1 | |
| bool directColorMode: 1 | |
| } | |
| uint8_t raw | |
| } | cgwsel |
| CGWSEL Register (Color Addition Select) More... | |
| union { | |
| struct { | |
| bool addSubtractSelect: 1 | |
| bool halfColorMath: 1 | |
| bool enableColorMathBackdrop: 1 | |
| bool enableColorMathObj: 1 | |
| bool enableColorMathBg4: 1 | |
| bool enableColorMathBg3: 1 | |
| bool enableColorMathBg2: 1 | |
| bool enableColorMathBg1: 1 | |
| } | |
| uint8_t raw | |
| } | cgadsub |
| CGADSUB Register (Color Math designation) More... | |
| union { | |
| struct { | |
| bool blue: 1 | |
| bool green: 1 | |
| bool red: 1 | |
| uint8_t colorIntensity: 5 | |
| } | |
| uint8_t raw | |
| } | coldata |
| COLDATA Register (Fixed Color Data) More... | |
| union { | |
| struct { | |
| bool externalSync: 1 | |
| bool mode7ExtBg: 1 | |
| uint8_t _: 2 | |
| bool enablePseudoHiresMode: 1 | |
| bool overscanMode: 1 | |
| bool objInterlace: 1 | |
| bool screenInterlace: 1 | |
| } | |
| uint8_t raw | |
| } | setini |
| SETINI Register (Screen Mode/Video Select) More... | |
| union { | |
| struct { | |
| uint8_t mpyl | |
| uint8_t mpym | |
| uint8_t mpyh | |
| } | |
| uint32_t mpy | |
| } | mpy |
| MPYL - MPYM - MPYH Registers (Multiplication Result) More... | |
The struct containing all the registers the PPU.
|
explicitdefault |
|
overridevirtual |
Read data from the component.
| addr | The local address to read from (0x0 should refer to the first byte of this component). |
| This | function should thrown an InvalidAddress for address that are not mapped to the component. |
Implements ComSquare::Memory::IMemory.
| void ComSquare::PPU::PPU::update | ( | int | cycles | ) |
Update the PPU of n cycles.
| The | number of cycles to update. |
|
overridevirtual |
Write data to this component.
| addr | The local address to write data (0x0 should refer to the first byte of this component). |
| data | The new data to write. |
| This | function should thrown an InvalidAddress for address that are not mapped to the component. |
Implements ComSquare::Memory::IMemory.
| bool ComSquare::PPU::PPU::_ |
| uint8_t ComSquare::PPU::PPU::_ |
| bool ComSquare::PPU::PPU::address |
| uint8_t ComSquare::PPU::PPU::addressRemapping |
| bool ComSquare::PPU::PPU::addSubscreen |
| bool ComSquare::PPU::PPU::addSubtractSelect |
| bool ComSquare::PPU::PPU::affectBg1 |
| bool ComSquare::PPU::PPU::affectBg2 |
| bool ComSquare::PPU::PPU::affectBg3 |
| bool ComSquare::PPU::PPU::affectBg4 |
| uint8_t ComSquare::PPU::PPU::baseAddressBg1a3 |
| uint8_t ComSquare::PPU::PPU::baseAddressBg2a4 |
| uint8_t ComSquare::PPU::PPU::baseSelect |
| union { ... } ComSquare::PPU::PPU::bg12nba |
BG12NBA Register (BG1 and 2 Chr Address)
| union { ... } ComSquare::PPU::PPU::bg1ofs |
BG1HOFS Register (BG1 Horizontal Scroll)
BG1VOFS Register (BG1 Vertical Scroll)
| union { ... } ComSquare::PPU::PPU::bg1sc |
BG1SC Register (BG1 Tilemap Address and Size)
| union { ... } ComSquare::PPU::PPU::bg2ofs |
BG2HOFS Register (BG2 Horizontal Scroll)
BG2VOFS Register (BG2 Vertical Scroll)
| union { ... } ComSquare::PPU::PPU::bg2sc |
BG2SC Register (BG2 Tilemap Address and Size)
| union { ... } ComSquare::PPU::PPU::bg34nba |
BG34NBA Register (BG3 and 4 Chr Address)
| union { ... } ComSquare::PPU::PPU::bg3ofs |
BG3HOFS Register (BG3 Horizontal Scroll)
BG3VOFS Register (BG3 Vertical Scroll)
| union { ... } ComSquare::PPU::PPU::bg3sc |
BG3SC Register (BG3 Tilemap Address and Size)
| union { ... } ComSquare::PPU::PPU::bg4ofs |
BG4HOFS Register (BG4 Horizontal Scroll)
BG4VOFS Register (BG4 Vertical Scroll)
| union { ... } ComSquare::PPU::PPU::bg4sc |
BG4SC Register (BG4 Tilemap Address and Size)
| uint8_t ComSquare::PPU::PPU::bgMode |
| union { ... } ComSquare::PPU::PPU::bgmode |
BGMODE Register (OAM Address and Obj Priority)
| uint8_t ComSquare::PPU::PPU::blue |
| bool ComSquare::PPU::PPU::blue |
| uint8_t ComSquare::PPU::PPU::brightness |
| uint32_t ComSquare::PPU::PPU::center |
|
private |
CGADD Register (CGRAM Address)
| union { ... } ComSquare::PPU::PPU::cgadsub |
CGADSUB Register (Color Math designation)
| union { ... } ComSquare::PPU::PPU::cgdata |
CGDATA Register (CGRAM Data write)
| union { ... } ComSquare::PPU::PPU::cgwsel |
CGWSEL Register (Color Addition Select)
| bool ComSquare::PPU::PPU::characterSizeBg1 |
| bool ComSquare::PPU::PPU::characterSizeBg2 |
| bool ComSquare::PPU::PPU::characterSizeBg3 |
| bool ComSquare::PPU::PPU::characterSizeBg4 |
| uint8_t ComSquare::PPU::PPU::clipColorToBlackBeforeMath |
| union { ... } ComSquare::PPU::PPU::coldata |
COLDATA Register (Fixed Color Data)
| uint8_t ComSquare::PPU::PPU::colorIntensity |
| bool ComSquare::PPU::PPU::directColorMode |
| bool ComSquare::PPU::PPU::emptySpaceFill |
| bool ComSquare::PPU::PPU::enableColorMathBackdrop |
| bool ComSquare::PPU::PPU::enableColorMathBg1 |
| bool ComSquare::PPU::PPU::enableColorMathBg2 |
| bool ComSquare::PPU::PPU::enableColorMathBg3 |
| bool ComSquare::PPU::PPU::enableColorMathBg4 |
| bool ComSquare::PPU::PPU::enableColorMathObj |
| bool ComSquare::PPU::PPU::enablePseudoHiresMode |
| bool ComSquare::PPU::PPU::enableWindow1ForBg1Bg2Obj |
| bool ComSquare::PPU::PPU::enableWindow1ForBg2Bg4Color |
| bool ComSquare::PPU::PPU::enableWindow2ForBg1Bg3Obj |
| bool ComSquare::PPU::PPU::enableWindow2ForBg2Bg4Color |
| bool ComSquare::PPU::PPU::enableWindowDisplayBg1 |
| bool ComSquare::PPU::PPU::enableWindowDisplayBg2 |
| bool ComSquare::PPU::PPU::enableWindowDisplayBg3 |
| bool ComSquare::PPU::PPU::enableWindowDisplayBg4 |
| bool ComSquare::PPU::PPU::enableWindowDisplayObj |
| bool ComSquare::PPU::PPU::enableWindowMaskingBg1 |
| bool ComSquare::PPU::PPU::enableWindowMaskingBg2 |
| bool ComSquare::PPU::PPU::enableWindowMaskingBg3 |
| bool ComSquare::PPU::PPU::enableWindowMaskingBg4 |
| bool ComSquare::PPU::PPU::enableWindowMaskingObj |
| bool ComSquare::PPU::PPU::externalSync |
| bool ComSquare::PPU::PPU::fblank |
| uint8_t ComSquare::PPU::PPU::green |
| bool ComSquare::PPU::PPU::green |
| bool ComSquare::PPU::PPU::halfColorMath |
| bool ComSquare::PPU::PPU::horizontalMirroring |
| uint8_t ComSquare::PPU::PPU::incrementCount |
| union { ... } ComSquare::PPU::PPU::inidisp |
INIDISP Register (F-blank and Brightness)
| union { ... } ComSquare::PPU::PPU::m7ofs |
M7HOFS Register (Mode 7 _BG Horizontal Scroll)
M7VOFS Register (Mode 7 _BG Vertical Scroll)
| union { ... } ComSquare::PPU::PPU::m7sel |
M7SEL Register (Mode 7 Settings)
| union { ... } ComSquare::PPU::PPU::m7x |
M7X Register (Mode 7 Center X)
M7A M7B M7C M7D i didn't understand how they works so they will be added later.
| union { ... } ComSquare::PPU::PPU::m7y |
M7Y Register (Mode 7 Center Y)
| uint8_t ComSquare::PPU::PPU::maskLogicBg1 |
| uint8_t ComSquare::PPU::PPU::maskLogicBg2 |
| uint8_t ComSquare::PPU::PPU::maskLogicBg3 |
| uint8_t ComSquare::PPU::PPU::maskLogicBg4 |
| uint8_t ComSquare::PPU::PPU::maskLogicColor |
| uint8_t ComSquare::PPU::PPU::maskLogicObj |
| bool ComSquare::PPU::PPU::mode1Bg3PriorityBit |
| bool ComSquare::PPU::PPU::mode7ExtBg |
| union { ... } ComSquare::PPU::PPU::mosaic |
MOSAIC Register (Screen Pixelation)
| uint32_t ComSquare::PPU::PPU::mpy |
| union { ... } ComSquare::PPU::PPU::mpy |
MPYL - MPYM - MPYH Registers (Multiplication Result)
| uint8_t ComSquare::PPU::PPU::mpyh |
| uint8_t ComSquare::PPU::PPU::mpyl |
| uint8_t ComSquare::PPU::PPU::mpym |
| bool ComSquare::PPU::PPU::nameSelect |
| union { ... } ComSquare::PPU::PPU::oamadd |
OAMADD Register (OAM Address and Obj Priority)
| uint8_t ComSquare::PPU::PPU::oamaddh |
| uint8_t ComSquare::PPU::PPU::oamaddl |
| uint32_t ComSquare::PPU::PPU::oamAddress |
|
private |
OAMDATA Register (Data for OAM write)
| uint8_t ComSquare::PPU::PPU::objectSize |
| bool ComSquare::PPU::PPU::objInterlace |
| bool ComSquare::PPU::PPU::objPriorityActivationBit |
| union { ... } ComSquare::PPU::PPU::obsel |
OBSEL Register (Object Size and Character Address)
| uint32_t ComSquare::PPU::PPU::offsetBg |
| bool ComSquare::PPU::PPU::overscanMode |
| uint8_t ComSquare::PPU::PPU::pixelSize |
| bool ComSquare::PPU::PPU::playingFieldSize |
| uint8_t ComSquare::PPU::PPU::preventColorMath |
| uint8_t ComSquare::PPU::PPU::raw |
| uint32_t ComSquare::PPU::PPU::raw |
| uint16_t ComSquare::PPU::PPU::raw |
| uint8_t ComSquare::PPU::PPU::red |
| bool ComSquare::PPU::PPU::red |
| bool ComSquare::PPU::PPU::screenInterlace |
| union { ... } ComSquare::PPU::PPU::setini |
SETINI Register (Screen Mode/Video Select)
| uint8_t ComSquare::PPU::PPU::tilemapAddress |
| bool ComSquare::PPU::PPU::tilemapHorizontalMirroring |
| bool ComSquare::PPU::PPU::tilemapVerticalMirroring |
| union { ... } ComSquare::PPU::PPU::tm |
TM Register (Main Screen Designation)
| union { ... } ComSquare::PPU::PPU::tmw |
TMW Register (Window Mask Designation for the Main Screen)
| union { ... } ComSquare::PPU::PPU::ts |
TS Register (Sub Screen Designation)
| union { ... } ComSquare::PPU::PPU::tsw |
TSW Register (Window Mask Designation for the Sub Screen)
| uint8_t ComSquare::PPU::PPU::value |
| bool ComSquare::PPU::PPU::verticalMirroring |
| uint32_t ComSquare::PPU::PPU::vmadd |
| union { ... } ComSquare::PPU::PPU::vmadd |
VMADD Register (VRAM Address)
| uint8_t ComSquare::PPU::PPU::vmaddh |
| uint8_t ComSquare::PPU::PPU::vmaddl |
| union { ... } ComSquare::PPU::PPU::vmain |
VMAIN Register (Video Port Control)
| uint32_t ComSquare::PPU::PPU::vmdata |
| union { ... } ComSquare::PPU::PPU::vmdata |
VMDATA Register (VRAM Data Write)
| uint8_t ComSquare::PPU::PPU::vmdatah |
| uint8_t ComSquare::PPU::PPU::vmdatal |
| union { ... } ComSquare::PPU::PPU::wbglog |
WBGLOG Register (Window mask logic for BGs)
|
private |
WH0 Register (CWindow 1 Left Position)
|
private |
WH1 Register (CWindow 1 Right Position)
|
private |
WH2 Register (CWindow 2 Left Position)
|
private |
WH3 Register (CWindow 2 Right Position)
| bool ComSquare::PPU::PPU::window1InversionForBg1Bg2Obj |
| bool ComSquare::PPU::PPU::window1InversionForBg2Bg4Color |
| bool ComSquare::PPU::PPU::window2InversionForBg1Bg3Obj |
| bool ComSquare::PPU::PPU::window2InversionForBg2Bg4Color |
| union { ... } ComSquare::PPU::PPU::wobjlog |
WOBJLOG Register (Window mask logic for OBJs and Color Window)
| union { ... } ComSquare::PPU::PPU::wsel |
W12SEL - W34SEL Registers (Window Mask Settings for BGs) and WOBJSEL Register (Window Mask Settings for OBJ and Color Window)
1.8.17