OpenSNES
Modern Open-Source SNES Development SDK
Loading...
Searching...
No Matches
registers.h
Go to the documentation of this file.
1
32
33
#ifndef OPENSNES_REGISTERS_H
34
#define OPENSNES_REGISTERS_H
35
36
#include <
snes/types.h
>
37
38
/*============================================================================
39
* PPU Registers ($2100-$213F)
40
*============================================================================*/
41
47
49
#define REG_INIDISP (*(vu8*)0x2100)
50
52
#define REG_OBJSEL (*(vu8*)0x2101)
53
55
#define REG_OAMADDL (*(vu8*)0x2102)
56
58
#define REG_OAMADDH (*(vu8*)0x2103)
59
61
#define REG_OAMDATA (*(vu8*)0x2104)
62
64
#define REG_BGMODE (*(vu8*)0x2105)
65
67
#define REG_MOSAIC (*(vu8*)0x2106)
68
70
#define REG_BG1SC (*(vu8*)0x2107)
71
73
#define REG_BG2SC (*(vu8*)0x2108)
74
76
#define REG_BG3SC (*(vu8*)0x2109)
77
79
#define REG_BG4SC (*(vu8*)0x210A)
80
82
#define REG_BG12NBA (*(vu8*)0x210B)
83
85
#define REG_BG34NBA (*(vu8*)0x210C)
86
88
#define REG_BG1HOFS (*(vu8*)0x210D)
89
91
#define REG_BG1VOFS (*(vu8*)0x210E)
92
94
#define REG_BG2HOFS (*(vu8*)0x210F)
95
97
#define REG_BG2VOFS (*(vu8*)0x2110)
98
100
#define REG_BG3HOFS (*(vu8*)0x2111)
101
103
#define REG_BG3VOFS (*(vu8*)0x2112)
104
106
#define REG_BG4HOFS (*(vu8*)0x2113)
107
109
#define REG_BG4VOFS (*(vu8*)0x2114)
110
112
#define REG_VMAIN (*(vu8*)0x2115)
115
#define VMAIN_INC1 0x80
118
#define VMAIN_INC32 0x81
119
121
#define REG_VMADDL (*(vu8*)0x2116)
122
124
#define REG_VMADDH (*(vu8*)0x2117)
125
127
#define REG_VMDATAL (*(vu8*)0x2118)
128
130
#define REG_VMDATAH (*(vu8*)0x2119)
131
133
#define REG_M7SEL (*(vu8*)0x211A)
134
136
#define REG_M7A (*(vu8*)0x211B)
137
139
#define REG_M7B (*(vu8*)0x211C)
140
142
#define REG_M7C (*(vu8*)0x211D)
143
145
#define REG_M7D (*(vu8*)0x211E)
146
148
#define REG_M7X (*(vu8*)0x211F)
149
151
#define REG_M7Y (*(vu8*)0x2120)
152
154
#define REG_CGADD (*(vu8*)0x2121)
155
157
#define REG_CGDATA (*(vu8*)0x2122)
158
160
#define REG_W12SEL (*(vu8*)0x2123)
161
163
#define REG_W34SEL (*(vu8*)0x2124)
164
166
#define REG_WOBJSEL (*(vu8*)0x2125)
167
169
#define REG_WH0 (*(vu8*)0x2126)
170
172
#define REG_WH1 (*(vu8*)0x2127)
173
175
#define REG_WH2 (*(vu8*)0x2128)
176
178
#define REG_WH3 (*(vu8*)0x2129)
179
181
#define REG_WBGLOG (*(vu8*)0x212A)
182
184
#define REG_WOBJLOG (*(vu8*)0x212B)
185
187
#define REG_TM (*(vu8*)0x212C)
188
190
#define REG_TS (*(vu8*)0x212D)
191
193
#define REG_TMW (*(vu8*)0x212E)
194
196
#define REG_TSW (*(vu8*)0x212F)
197
199
#define REG_CGWSEL (*(vu8*)0x2130)
200
202
#define REG_CGADSUB (*(vu8*)0x2131)
203
205
#define REG_COLDATA (*(vu8*)0x2132)
206
208
#define REG_SETINI (*(vu8*)0x2133)
209
211
#define REG_MPYL (*(vu8*)0x2134)
212
214
#define REG_MPYM (*(vu8*)0x2135)
215
217
#define REG_MPYH (*(vu8*)0x2136)
218
220
#define REG_SLHV (*(vu8*)0x2137)
221
223
#define REG_OAMDATAREAD (*(vu8*)0x2138)
224
226
#define REG_RDVRAML (*(vu8*)0x2139)
227
229
#define REG_RDVRAMH (*(vu8*)0x213A)
230
232
#define REG_RDCGRAM (*(vu8*)0x213B)
233
235
#define REG_OPHCT (*(vu8*)0x213C)
236
238
#define REG_OPVCT (*(vu8*)0x213D)
239
241
#define REG_STAT77 (*(vu8*)0x213E)
242
244
#define REG_STAT78 (*(vu8*)0x213F)
245
/* end of ppu_regs */
247
248
/*============================================================================
249
* CPU Registers ($4200-$421F)
250
*============================================================================*/
251
257
259
#define REG_NMITIMEN (*(vu8*)0x4200)
260
262
#define REG_WRIO (*(vu8*)0x4201)
263
265
#define REG_WRMPYA (*(vu8*)0x4202)
266
268
#define REG_WRMPYB (*(vu8*)0x4203)
269
271
#define REG_WRDIVL (*(vu8*)0x4204)
272
274
#define REG_WRDIVH (*(vu8*)0x4205)
275
277
#define REG_WRDIVB (*(vu8*)0x4206)
278
280
#define REG_HTIMEL (*(vu8*)0x4207)
281
283
#define REG_HTIMEH (*(vu8*)0x4208)
284
286
#define REG_VTIMEL (*(vu8*)0x4209)
287
289
#define REG_VTIMEH (*(vu8*)0x420A)
290
292
#define REG_MDMAEN (*(vu8*)0x420B)
293
295
#define REG_HDMAEN (*(vu8*)0x420C)
296
298
#define REG_MEMSEL (*(vu8*)0x420D)
299
301
#define REG_RDNMI (*(vu8*)0x4210)
302
304
#define REG_TIMEUP (*(vu8*)0x4211)
305
307
#define REG_HVBJOY (*(vu8*)0x4212)
308
310
#define REG_RDIO (*(vu8*)0x4213)
311
313
#define REG_RDDIVL (*(vu8*)0x4214)
314
316
#define REG_RDDIVH (*(vu8*)0x4215)
317
319
#define REG_RDMPYL (*(vu8*)0x4216)
320
322
#define REG_RDMPYH (*(vu8*)0x4217)
323
325
#define REG_JOYA (*(vu8*)0x4016)
326
328
#define REG_JOYB (*(vu8*)0x4017)
329
331
#define REG_JOY1L (*(vu8*)0x4218)
332
334
#define REG_JOY1H (*(vu8*)0x4219)
335
337
#define REG_JOY2L (*(vu8*)0x421A)
338
340
#define REG_JOY2H (*(vu8*)0x421B)
341
343
#define REG_JOY3L (*(vu8*)0x421C)
344
346
#define REG_JOY3H (*(vu8*)0x421D)
347
349
#define REG_JOY4L (*(vu8*)0x421E)
350
352
#define REG_JOY4H (*(vu8*)0x421F)
353
/* end of cpu_regs */
355
356
/*============================================================================
357
* DMA Registers ($43x0-$43xF)
358
*============================================================================*/
359
365
367
#define REG_DMAP(n) (*(vu8*)(0x4300 + ((n) << 4)))
368
370
#define REG_BBAD(n) (*(vu8*)(0x4301 + ((n) << 4)))
371
373
#define REG_A1TL(n) (*(vu8*)(0x4302 + ((n) << 4)))
374
376
#define REG_A1TH(n) (*(vu8*)(0x4303 + ((n) << 4)))
377
379
#define REG_A1B(n) (*(vu8*)(0x4304 + ((n) << 4)))
380
382
#define REG_DASL(n) (*(vu8*)(0x4305 + ((n) << 4)))
383
385
#define REG_DASH(n) (*(vu8*)(0x4306 + ((n) << 4)))
386
/* end of dma_regs */
388
389
/*============================================================================
390
* APU Registers ($2140-$2143)
391
*============================================================================*/
392
404
406
#define REG_APUIO0 (*(vu8*)0x2140)
407
409
#define REG_APUIO1 (*(vu8*)0x2141)
410
412
#define REG_APUIO2 (*(vu8*)0x2142)
413
415
#define REG_APUIO3 (*(vu8*)0x2143)
416
/* end of apu_regs */
418
419
/*============================================================================
420
* Register Value Constants
421
*============================================================================*/
422
428
429
/* INIDISP values */
430
#define INIDISP_FORCE_BLANK 0x80
431
#define INIDISP_BRIGHTNESS(n) ((n) & 0x0F)
432
433
/* BGMODE values */
434
#define BGMODE_MODE0 0
435
#define BGMODE_MODE1 1
436
#define BGMODE_MODE2 2
437
#define BGMODE_MODE3 3
438
#define BGMODE_MODE7 7
439
440
/* NMITIMEN values */
441
#define NMITIMEN_NMI_ENABLE 0x80
442
#define NMITIMEN_JOY_ENABLE 0x01
443
444
/* TM/TS values (main/sub screen enable) */
445
#define TM_BG1 BIT(0)
446
#define TM_BG2 BIT(1)
447
#define TM_BG3 BIT(2)
448
#define TM_BG4 BIT(3)
449
#define TM_OBJ BIT(4)
450
/* end of reg_const */
452
453
#endif
/* OPENSNES_REGISTERS_H */
types.h
OpenSNES Standard Types.
lib
include
snes
registers.h
Generated by
1.16.1