OpenSNES
Modern Open-Source SNES Development SDK
Loading...
Searching...
No Matches
video.h
Go to the documentation of this file.
1
11
12#ifndef OPENSNES_VIDEO_H
13#define OPENSNES_VIDEO_H
14
15#include <snes/types.h>
16
17/*============================================================================
18 * Screen dimensions (NTSC visible area)
19 *============================================================================*/
20
22#define SCREEN_WIDTH 256
24#define SCREEN_HEIGHT 224
25
26/*============================================================================
27 * Background Modes
28 *============================================================================*/
29
34#define BG_MODE0 0
35#define BG_MODE1 1
36#define BG_MODE2 2
37#define BG_MODE3 3
38#define BG_MODE4 4
39#define BG_MODE5 5
40#define BG_MODE6 6
41#define BG_MODE7 7
43
48#define BG3_MODE1_PRIORITY_HIGH 0x08
50
69void setMode(u8 mode, u8 flags);
70
71/*============================================================================
72 * Palette
73 *============================================================================*/
74
87#define RGB(r, g, b) ((((b) & 31) << 10) | (((g) & 31) << 5) | ((r) & 31))
88
97#define RGB24(r, g, b) RGB((r) >> 3, (g) >> 3, (b) >> 3)
98
99/*============================================================================
100 * Layer Enable Constants (for REG_TM / REG_TS / setMainScreen / setSubScreen)
101 *============================================================================*/
102
107#define LAYER_BG1 0x01
108#define LAYER_BG2 0x02
109#define LAYER_BG3 0x04
110#define LAYER_BG4 0x08
111#define LAYER_OBJ 0x10
113
114/*============================================================================
115 * Screen Layer Control
116 *============================================================================*/
117
132#define setMainScreen(layers) (REG_TM = (u8)(layers))
133
146#define setSubScreen(layers) (REG_TS = (u8)(layers))
147
148/*============================================================================
149 * Palette Helpers
150 *============================================================================*/
151
167#define setColor(index, color) do { \
168 REG_CGADD = (u8)(index); \
169 REG_CGDATA = (u8)((color) & 0xFF); \
170 REG_CGDATA = (u8)(((color) >> 8) & 0xFF); \
171} while(0)
172
173/*============================================================================
174 * Screen Mode Extras — SETINI ($2133)
175 *============================================================================
176 * SETINI is write-only; all four setters compose their bit through a
177 * software shadow (same discipline as the NMITIMEN shadow), so they can
178 * be combined freely and never clobber each other.
179 *============================================================================*/
180
196
206
222
233
234#endif /* OPENSNES_VIDEO_H */
unsigned char u8
8-bit unsigned integer (0 to 255)
Definition types.h:47
OpenSNES Standard Types.
void videoSetInterlace(u8 on)
Enable/disable screen interlace (SETINI bit 0).
void videoSetObjInterlace(u8 on)
Enable/disable sprite interlace (SETINI bit 1).
void videoSetOverscan(u8 on)
Enable/disable overscan (SETINI bit 2).
void videoSetPseudoHires(u8 on)
Enable/disable pseudo-hires (SETINI bit 3).
void setMode(u8 mode, u8 flags)
Set background mode.