ComSquare
PPU.hpp
Go to the documentation of this file.
1 //
2 // Created by cbihan on 1/27/20.
3 //
4 
5 #ifndef COMSQUARE_PPU_HPP
6 #define COMSQUARE_PPU_HPP
7 
8 #include <stdint-gcc.h>
9 #include "../Memory/IMemory.hpp"
10 
11 namespace ComSquare::PPU
12 {
14  class PPU : public Memory::IMemory {
15  private:
17  union {
18  struct {
19  bool fblank: 1;
20  bool _: 3;
21  uint8_t brightness: 4;
22  };
23  uint8_t raw;
24  } inidisp;
26  union {
27  struct {
28  uint8_t objectSize: 3;
29  bool nameSelect: 2;
30  uint8_t baseSelect: 3;
31  };
32  uint8_t raw;
33  } obsel;
35  union {
36  struct {
38  uint8_t _: 6;
39  uint32_t oamAddress: 9;
40  };
41  struct {
42  uint8_t oamaddh;
43  uint8_t oamaddl;
44  };
45  uint32_t raw;
46  } oamadd;
48  uint8_t oamdata;
50  union {
51  struct {
57  uint8_t bgMode: 3;
58  };
59  uint8_t raw;
60  } bgmode;
62  union {
63  struct {
64  uint8_t pixelSize: 4;
65  bool affectBg4: 1;
66  bool affectBg3: 1;
67  bool affectBg2: 1;
68  bool affectBg1: 1;
69  };
70  uint8_t raw;
71  } mosaic;
73  union {
74  struct {
75  uint8_t tilemapAddress: 6;
78  };
79  uint8_t raw;
80  } bg1sc;
82  union {
83  struct {
84  uint8_t tilemapAddress: 6;
87  };
88  uint8_t raw;
89  } bg2sc;
91  union {
92  struct {
93  uint8_t tilemapAddress: 6;
96  };
97  uint8_t raw;
98  } bg3sc;
100  union {
101  struct {
102  uint8_t tilemapAddress: 6;
104  bool tilemapVerticalMirroring: 1;
105  };
106  uint8_t raw;
107  } bg4sc;
109  union {
110  struct {
111  uint8_t baseAddressBg2a4: 4;
112  uint8_t baseAddressBg1a3: 4;
113  };
114  uint8_t raw;
115  } bg12nba;
117  union {
118  struct {
119  uint8_t baseAddressBg2a4: 4;
120  uint8_t baseAddressBg1a3: 4;
121  };
122  uint8_t raw;
123  } bg34nba;
126  union {
127  struct {
128  uint8_t _ : 6;
129  uint32_t offsetBg: 10;
130  };
131  uint16_t raw;
132  } bg1ofs;
135  union {
136  struct {
137  uint8_t _ : 3;
138  uint32_t offsetBg : 13;
139  };
140  uint8_t raw;
141  } m7ofs;
144  union {
145  struct {
146  uint8_t _ : 6;
147  uint32_t offsetBg: 10;
148  };
149  uint8_t raw;
150  } bg2ofs;
153  union {
154  struct {
155  uint8_t _ : 6;
156  uint32_t offsetBg: 10;
157  };
158  uint8_t raw;
159  } bg3ofs;
162  union {
163  struct {
164  uint8_t _ : 3;
165  uint32_t offsetBg: 10;
166  };
167  uint8_t raw;
168  } bg4ofs;
170  union {
171  struct {
172  bool address: 1;
173  uint8_t _ : 3;
174  uint8_t addressRemapping: 2;
175  uint8_t incrementCount: 2;
176  };
177  uint8_t raw;
178  } vmain;
180  union {
181  struct {
182  uint8_t vmaddh;
183  uint8_t vmaddl;
184  };
185  uint32_t vmadd;
186  } vmadd;
188  union {
189  struct {
190  uint8_t vmdatah;
191  uint8_t vmdatal;
192  };
193  uint32_t vmdata;
194  } vmdata;
196  union {
197  struct {
199  bool emptySpaceFill: 1;
200  uint8_t _: 4;
203  };
204  uint8_t raw;
205  } m7sel;
208  union {
209  struct {
210  uint8_t _: 3;
211  uint8_t value;
212  };
213  uint32_t center;
214  } m7x;
216  union {
217  struct {
218  uint8_t _: 3;
219  uint8_t value;
220  };
221  uint32_t center;
222  } m7y;
224  uint8_t cgadd;
226  union {
227  struct {
228  bool _: 1;
229  uint8_t blue: 5;
230  uint8_t green: 5;
231  uint8_t red: 5;
232  };
233  uint16_t raw;
234  } cgdata;
236  union {
237  struct {
246  };
247  uint8_t raw;
248  } wsel;
250  uint8_t wh0;
252  uint8_t wh1;
254  uint8_t wh2;
256  uint8_t wh3;
258  union {
259  struct {
260  uint8_t maskLogicBg1: 2;
261  uint8_t maskLogicBg2: 2;
262  uint8_t maskLogicBg3: 2;
263  uint8_t maskLogicBg4: 2;
264  };
265  uint8_t raw;
266  } wbglog;
268  union {
269  struct {
270  uint8_t _: 4;
271  uint8_t maskLogicObj: 2;
272  uint8_t maskLogicColor: 2;
273  };
274  uint8_t raw;
275  } wobjlog;
277  union {
278  struct {
279  uint8_t _: 3;
285  };
286  uint8_t raw;
287  } tm;
289  union {
290  struct {
291  uint8_t _: 3;
292  bool enableWindowDisplayObj: 1;
293  bool enableWindowDisplayBg4: 1;
294  bool enableWindowDisplayBg3: 1;
295  bool enableWindowDisplayBg2: 1;
296  bool enableWindowDisplayBg1: 1;
297  };
298  uint8_t raw;
299  } ts;
301  union {
302  struct {
303  uint8_t _: 3;
309  };
310  uint8_t raw;
311  } tmw;
313  union {
314  struct {
315  uint8_t _: 3;
316  bool enableWindowMaskingObj: 1;
317  bool enableWindowMaskingBg4: 1;
318  bool enableWindowMaskingBg3: 1;
319  bool enableWindowMaskingBg2: 1;
320  bool enableWindowMaskingBg1: 1;
321  };
322  uint8_t raw;
323  } tsw;
325  union {
326  struct {
328  uint8_t preventColorMath: 2;
329  uint8_t _: 2;
330  bool addSubscreen: 1;
332  };
333  uint8_t raw;
334  } cgwsel;
336  union {
337  struct {
339  bool halfColorMath: 1;
346  };
347  uint8_t raw;
348  } cgadsub;
350  union {
351  struct {
352  bool blue: 1;
353  bool green: 1;
354  bool red: 1;
355  uint8_t colorIntensity: 5;
356  };
357  uint8_t raw;
358  } coldata;
360  union {
361  struct {
362  bool externalSync: 1;
363  bool mode7ExtBg: 1;
364  uint8_t _: 2;
366  bool overscanMode: 1;
367  bool objInterlace: 1;
369  };
370  uint8_t raw;
371  } setini;
373  union {
374  struct {
375  uint8_t mpyl;
376  uint8_t mpym;
377  uint8_t mpyh;
378  };
379  uint32_t mpy;
380  } mpy;
381  public:
382  explicit PPU() = default;
387  uint8_t read(uint24_t addr) override;
392  void write(uint24_t addr, uint8_t data) override;
395  void update(int cycles);
396  };
397 }
398 #endif //COMSQUARE_PPU_HPP
ComSquare::PPU::PPU::enablePseudoHiresMode
bool enablePseudoHiresMode
Definition: PPU.hpp:365
ComSquare::PPU::PPU::externalSync
bool externalSync
Definition: PPU.hpp:362
ComSquare::PPU::PPU::red
uint8_t red
Definition: PPU.hpp:231
ComSquare::PPU::PPU::oamdata
uint8_t oamdata
OAMDATA Register (Data for OAM write)
Definition: PPU.hpp:48
ComSquare::PPU::PPU::wobjlog
union ComSquare::PPU::PPU::@101 wobjlog
WOBJLOG Register (Window mask logic for OBJs and Color Window)
ComSquare::PPU::PPU::ts
union ComSquare::PPU::PPU::@103 ts
TS Register (Sub Screen Designation)
ComSquare::PPU::PPU::enableWindowMaskingBg4
bool enableWindowMaskingBg4
Definition: PPU.hpp:305
ComSquare::PPU::PPU::maskLogicBg4
uint8_t maskLogicBg4
Definition: PPU.hpp:263
ComSquare::PPU::PPU::enableWindow2ForBg1Bg3Obj
bool enableWindow2ForBg1Bg3Obj
Definition: PPU.hpp:242
ComSquare::PPU::PPU::write
void write(uint24_t addr, uint8_t data) override
Write data to this component.
Definition: PPU.cpp:25
ComSquare::PPU::PPU::bg3ofs
union ComSquare::PPU::PPU::@90 bg3ofs
BG3HOFS Register (BG3 Horizontal Scroll)
ComSquare::PPU::PPU::enableWindow1ForBg1Bg2Obj
bool enableWindow1ForBg1Bg2Obj
Definition: PPU.hpp:244
ComSquare::PPU::PPU::bg4ofs
union ComSquare::PPU::PPU::@91 bg4ofs
BG4HOFS Register (BG4 Horizontal Scroll)
ComSquare::PPU::PPU::update
void update(int cycles)
Update the PPU of n cycles.
Definition: PPU.cpp:73
ComSquare::PPU::PPU::vmdatah
uint8_t vmdatah
Definition: PPU.hpp:190
ComSquare::PPU::PPU::enableWindowMaskingBg1
bool enableWindowMaskingBg1
Definition: PPU.hpp:308
ComSquare::PPU::PPU::maskLogicBg1
uint8_t maskLogicBg1
Definition: PPU.hpp:260
ComSquare::PPU::PPU::screenInterlace
bool screenInterlace
Definition: PPU.hpp:368
ComSquare::PPU::PPU::overscanMode
bool overscanMode
Definition: PPU.hpp:366
ComSquare::PPU::PPU::affectBg1
bool affectBg1
Definition: PPU.hpp:68
ComSquare::PPU::PPU::bg4sc
union ComSquare::PPU::PPU::@84 bg4sc
BG4SC Register (BG4 Tilemap Address and Size)
ComSquare::PPU::PPU::tsw
union ComSquare::PPU::PPU::@105 tsw
TSW Register (Window Mask Designation for the Sub Screen)
ComSquare::PPU::PPU::maskLogicColor
uint8_t maskLogicColor
Definition: PPU.hpp:272
ComSquare::PPU::PPU::baseAddressBg2a4
uint8_t baseAddressBg2a4
Definition: PPU.hpp:111
ComSquare::PPU::PPU::affectBg4
bool affectBg4
Definition: PPU.hpp:65
ComSquare::PPU::PPU::enableWindowMaskingBg2
bool enableWindowMaskingBg2
Definition: PPU.hpp:307
ComSquare::PPU::PPU::baseSelect
uint8_t baseSelect
Definition: PPU.hpp:30
ComSquare::PPU::PPU::enableColorMathBg3
bool enableColorMathBg3
Definition: PPU.hpp:343
ComSquare::PPU::PPU::_
uint8_t _
Definition: PPU.hpp:38
ComSquare::PPU::PPU::value
uint8_t value
Definition: PPU.hpp:211
ComSquare::PPU::PPU::setini
union ComSquare::PPU::PPU::@109 setini
SETINI Register (Screen Mode/Video Select)
ComSquare::PPU::PPU::mode7ExtBg
bool mode7ExtBg
Definition: PPU.hpp:363
ComSquare::PPU::PPU::enableWindowMaskingObj
bool enableWindowMaskingObj
Definition: PPU.hpp:304
ComSquare::PPU::PPU::addSubscreen
bool addSubscreen
Definition: PPU.hpp:330
ComSquare::PPU::PPU::wh2
uint8_t wh2
WH2 Register (CWindow 2 Left Position)
Definition: PPU.hpp:254
ComSquare::PPU::PPU::enableWindow1ForBg2Bg4Color
bool enableWindow1ForBg2Bg4Color
Definition: PPU.hpp:240
ComSquare::PPU::PPU::wsel
union ComSquare::PPU::PPU::@99 wsel
W12SEL - W34SEL Registers (Window Mask Settings for BGs) and WOBJSEL Register (Window Mask Settings f...
ComSquare::PPU::PPU::addSubtractSelect
bool addSubtractSelect
Definition: PPU.hpp:338
ComSquare::PPU::PPU::enableWindow2ForBg2Bg4Color
bool enableWindow2ForBg2Bg4Color
Definition: PPU.hpp:238
ComSquare::PPU::PPU::cgdata
union ComSquare::PPU::PPU::@98 cgdata
CGDATA Register (CGRAM Data write)
ComSquare::PPU::PPU::characterSizeBg1
bool characterSizeBg1
Definition: PPU.hpp:55
ComSquare::PPU::PPU::vmdata
uint32_t vmdata
Definition: PPU.hpp:193
ComSquare::PPU::PPU::enableColorMathObj
bool enableColorMathObj
Definition: PPU.hpp:341
ComSquare::PPU::PPU::addressRemapping
uint8_t addressRemapping
Definition: PPU.hpp:174
ComSquare::PPU::PPU::PPU
PPU()=default
ComSquare::PPU::PPU::affectBg2
bool affectBg2
Definition: PPU.hpp:67
ComSquare::PPU::PPU::window1InversionForBg2Bg4Color
bool window1InversionForBg2Bg4Color
Definition: PPU.hpp:241
ComSquare::PPU::PPU::vmaddl
uint8_t vmaddl
Definition: PPU.hpp:183
ComSquare::PPU::PPU::enableWindowMaskingBg3
bool enableWindowMaskingBg3
Definition: PPU.hpp:306
ComSquare::PPU::PPU::tilemapHorizontalMirroring
bool tilemapHorizontalMirroring
Definition: PPU.hpp:76
ComSquare::PPU::PPU::oamAddress
uint32_t oamAddress
Definition: PPU.hpp:39
ComSquare::PPU::PPU::obsel
union ComSquare::PPU::PPU::@77 obsel
OBSEL Register (Object Size and Character Address)
ComSquare::PPU::PPU::wh0
uint8_t wh0
WH0 Register (CWindow 1 Left Position)
Definition: PPU.hpp:250
ComSquare::PPU::PPU::preventColorMath
uint8_t preventColorMath
Definition: PPU.hpp:328
ComSquare::PPU::PPU::characterSizeBg2
bool characterSizeBg2
Definition: PPU.hpp:54
ComSquare::PPU
Definition: PPU.cpp:9
ComSquare::PPU::PPU::mode1Bg3PriorityBit
bool mode1Bg3PriorityBit
Definition: PPU.hpp:56
ComSquare::PPU::PPU::m7x
union ComSquare::PPU::PPU::@96 m7x
M7X Register (Mode 7 Center X)
ComSquare::PPU::PPU::oamaddl
uint8_t oamaddl
Definition: PPU.hpp:43
ComSquare::PPU::PPU::bg3sc
union ComSquare::PPU::PPU::@83 bg3sc
BG3SC Register (BG3 Tilemap Address and Size)
ComSquare::PPU::PPU::enableWindowDisplayObj
bool enableWindowDisplayObj
Definition: PPU.hpp:280
ComSquare::PPU::PPU::objPriorityActivationBit
bool objPriorityActivationBit
Definition: PPU.hpp:37
ComSquare::PPU::PPU::halfColorMath
bool halfColorMath
Definition: PPU.hpp:339
uint24_t
unsigned uint24_t
Definition: Ints.hpp:8
ComSquare::PPU::PPU::tmw
union ComSquare::PPU::PPU::@104 tmw
TMW Register (Window Mask Designation for the Main Screen)
ComSquare::PPU::PPU::maskLogicBg2
uint8_t maskLogicBg2
Definition: PPU.hpp:261
ComSquare::PPU::PPU::tilemapVerticalMirroring
bool tilemapVerticalMirroring
Definition: PPU.hpp:77
ComSquare::Memory::IMemory
Common interface implemented by all components mapping memory.
Definition: IMemory.hpp:16
ComSquare::PPU::PPU::mpy
uint32_t mpy
Definition: PPU.hpp:379
ComSquare::PPU::PPU::blue
uint8_t blue
Definition: PPU.hpp:229
ComSquare::PPU::PPU::raw
uint16_t raw
Definition: PPU.hpp:131
ComSquare::PPU::PPU::maskLogicObj
uint8_t maskLogicObj
Definition: PPU.hpp:271
ComSquare::PPU::PPU::enableColorMathBackdrop
bool enableColorMathBackdrop
Definition: PPU.hpp:340
ComSquare::PPU::PPU::bg1sc
union ComSquare::PPU::PPU::@81 bg1sc
BG1SC Register (BG1 Tilemap Address and Size)
ComSquare::PPU::PPU::offsetBg
uint32_t offsetBg
Definition: PPU.hpp:129
ComSquare::PPU::PPU::bg1ofs
union ComSquare::PPU::PPU::@87 bg1ofs
BG1HOFS Register (BG1 Horizontal Scroll)
ComSquare::PPU::PPU::colorIntensity
uint8_t colorIntensity
Definition: PPU.hpp:355
ComSquare::PPU::PPU::green
uint8_t green
Definition: PPU.hpp:230
ComSquare::PPU::PPU::horizontalMirroring
bool horizontalMirroring
Definition: PPU.hpp:201
ComSquare::PPU::PPU::nameSelect
bool nameSelect
Definition: PPU.hpp:29
ComSquare::PPU::PPU::enableWindowDisplayBg2
bool enableWindowDisplayBg2
Definition: PPU.hpp:283
ComSquare::PPU::PPU::wh3
uint8_t wh3
WH3 Register (CWindow 2 Right Position)
Definition: PPU.hpp:256
ComSquare::PPU::PPU::window2InversionForBg1Bg3Obj
bool window2InversionForBg1Bg3Obj
Definition: PPU.hpp:243
ComSquare::PPU::PPU::inidisp
union ComSquare::PPU::PPU::@76 inidisp
INIDISP Register (F-blank and Brightness)
ComSquare::PPU::PPU::m7y
union ComSquare::PPU::PPU::@97 m7y
M7Y Register (Mode 7 Center Y)
ComSquare::PPU::PPU::characterSizeBg4
bool characterSizeBg4
Definition: PPU.hpp:52
ComSquare::PPU::PPU::center
uint32_t center
Definition: PPU.hpp:213
ComSquare::PPU::PPU::tilemapAddress
uint8_t tilemapAddress
Definition: PPU.hpp:75
ComSquare::PPU::PPU::mpyh
uint8_t mpyh
Definition: PPU.hpp:377
ComSquare::PPU::PPU::mpym
uint8_t mpym
Definition: PPU.hpp:376
ComSquare::PPU::PPU::emptySpaceFill
bool emptySpaceFill
Definition: PPU.hpp:199
ComSquare::PPU::PPU::enableWindowDisplayBg4
bool enableWindowDisplayBg4
Definition: PPU.hpp:281
ComSquare::PPU::PPU::enableColorMathBg1
bool enableColorMathBg1
Definition: PPU.hpp:345
ComSquare::PPU::PPU::objectSize
uint8_t objectSize
Definition: PPU.hpp:28
ComSquare::PPU::PPU::m7ofs
union ComSquare::PPU::PPU::@88 m7ofs
M7HOFS Register (Mode 7 BG Horizontal Scroll)
ComSquare::PPU::PPU::pixelSize
uint8_t pixelSize
Definition: PPU.hpp:64
ComSquare::PPU::PPU::affectBg3
bool affectBg3
Definition: PPU.hpp:66
ComSquare::PPU::PPU::clipColorToBlackBeforeMath
uint8_t clipColorToBlackBeforeMath
Definition: PPU.hpp:327
ComSquare::PPU::PPU::red
bool red
Definition: PPU.hpp:354
ComSquare::PPU::PPU::cgadd
uint8_t cgadd
CGADD Register (CGRAM Address)
Definition: PPU.hpp:224
ComSquare::PPU::PPU::bg34nba
union ComSquare::PPU::PPU::@86 bg34nba
BG34NBA Register (BG3 and 4 Chr Address)
ComSquare::PPU::PPU::_
bool _
Definition: PPU.hpp:20
ComSquare::PPU::PPU::mosaic
union ComSquare::PPU::PPU::@80 mosaic
MOSAIC Register (Screen Pixelation)
ComSquare::PPU::PPU::bg2sc
union ComSquare::PPU::PPU::@82 bg2sc
BG2SC Register (BG2 Tilemap Address and Size)
ComSquare::PPU::PPU::blue
bool blue
Definition: PPU.hpp:352
ComSquare::PPU::PPU::vmaddh
uint8_t vmaddh
Definition: PPU.hpp:182
ComSquare::PPU::PPU::green
bool green
Definition: PPU.hpp:353
ComSquare::PPU::PPU::bg2ofs
union ComSquare::PPU::PPU::@89 bg2ofs
BG2HOFS Register (BG2 Horizontal Scroll)
ComSquare::PPU::PPU::window2InversionForBg2Bg4Color
bool window2InversionForBg2Bg4Color
Definition: PPU.hpp:239
ComSquare::PPU::PPU::raw
uint32_t raw
Definition: PPU.hpp:45
ComSquare::PPU::PPU::bgmode
union ComSquare::PPU::PPU::@79 bgmode
BGMODE Register (OAM Address and Obj Priority)
ComSquare::PPU::PPU::wh1
uint8_t wh1
WH1 Register (CWindow 1 Right Position)
Definition: PPU.hpp:252
ComSquare::PPU::PPU::address
bool address
Definition: PPU.hpp:172
ComSquare::PPU::PPU::fblank
bool fblank
Definition: PPU.hpp:19
ComSquare::PPU::PPU::bg12nba
union ComSquare::PPU::PPU::@85 bg12nba
BG12NBA Register (BG1 and 2 Chr Address)
ComSquare::PPU::PPU::vmadd
uint32_t vmadd
Definition: PPU.hpp:185
ComSquare::PPU::PPU::directColorMode
bool directColorMode
Definition: PPU.hpp:331
ComSquare::PPU::PPU::tm
union ComSquare::PPU::PPU::@102 tm
TM Register (Main Screen Designation)
ComSquare::PPU::PPU::wbglog
union ComSquare::PPU::PPU::@100 wbglog
WBGLOG Register (Window mask logic for BGs)
ComSquare::PPU::PPU::cgadsub
union ComSquare::PPU::PPU::@107 cgadsub
CGADSUB Register (Color Math designation)
ComSquare::PPU::PPU::oamadd
union ComSquare::PPU::PPU::@78 oamadd
OAMADD Register (OAM Address and Obj Priority)
ComSquare::PPU::PPU::playingFieldSize
bool playingFieldSize
Definition: PPU.hpp:198
ComSquare::PPU::PPU::window1InversionForBg1Bg2Obj
bool window1InversionForBg1Bg2Obj
Definition: PPU.hpp:245
ComSquare::PPU::PPU::vmdatal
uint8_t vmdatal
Definition: PPU.hpp:191
ComSquare::PPU::PPU::enableColorMathBg4
bool enableColorMathBg4
Definition: PPU.hpp:342
ComSquare::PPU::PPU::vmain
union ComSquare::PPU::PPU::@92 vmain
VMAIN Register (Video Port Control)
ComSquare::PPU::PPU::incrementCount
uint8_t incrementCount
Definition: PPU.hpp:175
ComSquare::PPU::PPU::cgwsel
union ComSquare::PPU::PPU::@106 cgwsel
CGWSEL Register (Color Addition Select)
ComSquare::PPU::PPU::coldata
union ComSquare::PPU::PPU::@108 coldata
COLDATA Register (Fixed Color Data)
ComSquare::PPU::PPU::characterSizeBg3
bool characterSizeBg3
Definition: PPU.hpp:53
ComSquare::PPU::PPU::oamaddh
uint8_t oamaddh
Definition: PPU.hpp:42
ComSquare::PPU::PPU::baseAddressBg1a3
uint8_t baseAddressBg1a3
Definition: PPU.hpp:112
ComSquare::PPU::PPU::read
uint8_t read(uint24_t addr) override
Read data from the component.
Definition: PPU.cpp:11
ComSquare::PPU::PPU::bgMode
uint8_t bgMode
Definition: PPU.hpp:57
ComSquare::PPU::PPU::mpyl
uint8_t mpyl
Definition: PPU.hpp:375
ComSquare::PPU::PPU::objInterlace
bool objInterlace
Definition: PPU.hpp:367
ComSquare::PPU::PPU::verticalMirroring
bool verticalMirroring
Definition: PPU.hpp:202
ComSquare::PPU::PPU::enableWindowDisplayBg3
bool enableWindowDisplayBg3
Definition: PPU.hpp:282
ComSquare::PPU::PPU::raw
uint8_t raw
Definition: PPU.hpp:23
ComSquare::PPU::PPU::enableWindowDisplayBg1
bool enableWindowDisplayBg1
Definition: PPU.hpp:284
ComSquare::PPU::PPU::m7sel
union ComSquare::PPU::PPU::@95 m7sel
M7SEL Register (Mode 7 Settings)
ComSquare::PPU::PPU::brightness
uint8_t brightness
Definition: PPU.hpp:21
ComSquare::PPU::PPU::enableColorMathBg2
bool enableColorMathBg2
Definition: PPU.hpp:344
ComSquare::PPU::PPU::maskLogicBg3
uint8_t maskLogicBg3
Definition: PPU.hpp:262
ComSquare::PPU::PPU
The struct containing all the registers the PPU.
Definition: PPU.hpp:14