Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
alexbevi
GitHub Repository: alexbevi/BizHawk
Path: blob/master/libsnes/bsnes/snes/ppu/mmio/mmio.hpp
2 views
1
public:
2
uint8 mmio_read(unsigned addr);
3
void mmio_write(unsigned addr, uint8 data);
4
privileged:
5
6
struct {
7
uint8 ppu1_mdr;
8
uint8 ppu2_mdr;
9
10
uint16 vram_readbuffer;
11
uint8 oam_latchdata;
12
uint8 cgram_latchdata;
13
uint8 bgofs_latchdata;
14
uint8 mode7_latchdata;
15
bool counters_latched;
16
bool latch_hcounter;
17
bool latch_vcounter;
18
19
uint10 oam_iaddr;
20
uint9 cgram_iaddr;
21
22
//$2100 INIDISP
23
bool display_disable;
24
uint4 display_brightness;
25
26
//$2102 OAMADDL
27
//$2103 OAMADDH
28
uint10 oam_baseaddr;
29
uint10 oam_addr;
30
bool oam_priority;
31
32
//$2105 BGMODE
33
bool bg3_priority;
34
uint8 bgmode;
35
36
//$210d BG1HOFS
37
uint16 mode7_hoffset;
38
39
//$210e BG1VOFS
40
uint16 mode7_voffset;
41
42
//$2115 VMAIN
43
bool vram_incmode;
44
uint2 vram_mapping;
45
uint8 vram_incsize;
46
47
//$2116 VMADDL
48
//$2117 VMADDH
49
uint16 vram_addr;
50
51
//$211a M7SEL
52
uint2 mode7_repeat;
53
bool mode7_vflip;
54
bool mode7_hflip;
55
56
//$211b M7A
57
uint16 m7a;
58
59
//$211c M7B
60
uint16 m7b;
61
62
//$211d M7C
63
uint16 m7c;
64
65
//$211e M7D
66
uint16 m7d;
67
68
//$211f M7X
69
uint16 m7x;
70
71
//$2120 M7Y
72
uint16 m7y;
73
74
//$2121 CGADD
75
uint9 cgram_addr;
76
77
//$2133 SETINI
78
bool mode7_extbg;
79
bool pseudo_hires;
80
bool overscan;
81
bool interlace;
82
83
//$213c OPHCT
84
uint16 hcounter;
85
86
//$213d OPVCT
87
uint16 vcounter;
88
} regs;
89
90
uint16 get_vram_address();
91
uint8 vram_read(unsigned addr);
92
void vram_write(unsigned addr, uint8 data);
93
uint8 oam_read(unsigned addr);
94
void oam_write(unsigned addr, uint8 data);
95
uint8 cgram_read(unsigned addr);
96
void cgram_write(unsigned addr, uint8 data);
97
98
void mmio_update_video_mode();
99
100
void mmio_w2100(uint8); //INIDISP
101
void mmio_w2101(uint8); //OBSEL
102
void mmio_w2102(uint8); //OAMADDL
103
void mmio_w2103(uint8); //OAMADDH
104
void mmio_w2104(uint8); //OAMDATA
105
void mmio_w2105(uint8); //BGMODE
106
void mmio_w2106(uint8); //MOSAIC
107
void mmio_w2107(uint8); //BG1SC
108
void mmio_w2108(uint8); //BG2SC
109
void mmio_w2109(uint8); //BG3SC
110
void mmio_w210a(uint8); //BG4SC
111
void mmio_w210b(uint8); //BG12NBA
112
void mmio_w210c(uint8); //BG34NBA
113
void mmio_w210d(uint8); //BG1HOFS
114
void mmio_w210e(uint8); //BG1VOFS
115
void mmio_w210f(uint8); //BG2HOFS
116
void mmio_w2110(uint8); //BG2VOFS
117
void mmio_w2111(uint8); //BG3HOFS
118
void mmio_w2112(uint8); //BG3VOFS
119
void mmio_w2113(uint8); //BG4HOFS
120
void mmio_w2114(uint8); //BG4VOFS
121
void mmio_w2115(uint8); //VMAIN
122
void mmio_w2116(uint8); //VMADDL
123
void mmio_w2117(uint8); //VMADDH
124
void mmio_w2118(uint8); //VMDATAL
125
void mmio_w2119(uint8); //VMDATAH
126
void mmio_w211a(uint8); //M7SEL
127
void mmio_w211b(uint8); //M7A
128
void mmio_w211c(uint8); //M7B
129
void mmio_w211d(uint8); //M7C
130
void mmio_w211e(uint8); //M7D
131
void mmio_w211f(uint8); //M7X
132
void mmio_w2120(uint8); //M7Y
133
void mmio_w2121(uint8); //CGADD
134
void mmio_w2122(uint8); //CGDATA
135
void mmio_w2123(uint8); //W12SEL
136
void mmio_w2124(uint8); //W34SEL
137
void mmio_w2125(uint8); //WOBJSEL
138
void mmio_w2126(uint8); //WH0
139
void mmio_w2127(uint8); //WH1
140
void mmio_w2128(uint8); //WH2
141
void mmio_w2129(uint8); //WH3
142
void mmio_w212a(uint8); //WBGLOG
143
void mmio_w212b(uint8); //WOBJLOG
144
void mmio_w212c(uint8); //TM
145
void mmio_w212d(uint8); //TS
146
void mmio_w212e(uint8); //TMW
147
void mmio_w212f(uint8); //TSW
148
void mmio_w2130(uint8); //CGWSEL
149
void mmio_w2131(uint8); //CGADDSUB
150
void mmio_w2132(uint8); //COLDATA
151
void mmio_w2133(uint8); //SETINI
152
uint8 mmio_r2134(); //MPYL
153
uint8 mmio_r2135(); //MPYM
154
uint8 mmio_r2136(); //MPYH
155
uint8 mmio_r2137(); //SLHV
156
uint8 mmio_r2138(); //OAMDATAREAD
157
uint8 mmio_r2139(); //VMDATALREAD
158
uint8 mmio_r213a(); //VMDATAHREAD
159
uint8 mmio_r213b(); //CGDATAREAD
160
uint8 mmio_r213c(); //OPHCT
161
uint8 mmio_r213d(); //OPVCT
162
uint8 mmio_r213e(); //STAT77
163
uint8 mmio_r213f(); //STAT78
164
165
void mmio_reset();
166
167