OpenSNES
Modern Open-Source SNES Development SDK
Loading...
Searching...
No Matches
snes.h
Go to the documentation of this file.
1
38
39#ifndef OPENSNES_H
40#define OPENSNES_H
41
42/*============================================================================
43 * Version Information
44 *============================================================================*/
45
46/* The values below are kept in sync with `CHANGELOG.md` head and verified by
47 * `devtools/check_doc_drift.py` at lint time (CI gate `lint.yml::doc-drift`).
48 * When bumping the CHANGELOG for a release, bump these three macros in the
49 * same commit — `.claude/rules/release.md` documents the step, and `make
50 * lint-docs` fails fast on mismatch. */
51
53#define OPENSNES_VERSION_MAJOR 0
54
56#define OPENSNES_VERSION_MINOR 35
57
59#define OPENSNES_VERSION_PATCH 0
60
62#define OPENSNES_VERSION_STRING "0.35.0"
63
64/*============================================================================
65 * Core Headers
66 *============================================================================*/
67
68/* Standard types */
69#include <snes/types.h>
70
71/* Hardware registers */
72#include <snes/registers.h>
73
74/* Console initialization */
75#include <snes/console.h>
76
77/* Video / PPU */
78#include <snes/video.h>
79
80/* Sprites */
81#include <snes/sprite.h>
82
83/* Backgrounds */
84#include <snes/background.h>
85
86/* Input */
87#include <snes/input.h>
88
89/* DMA */
90#include <snes/dma.h>
91
92/* Text */
93#include <snes/text.h>
94
95/* Interrupts */
96#include <snes/interrupt.h>
97
98/* System variables (crt0.asm exports) */
99#include <snes/system.h>
100
101/* Mode 7 */
102#include <snes/mode7.h>
103
104/* HDMA */
105#include <snes/hdma.h>
106
107/* Window/Masking */
108#include <snes/window.h>
109
110/* Color Math */
111#include <snes/colormath.h>
112
113/* Mosaic Effects */
114#include <snes/mosaic.h>
115
116/* Map Engine */
117#include <snes/map.h>
118
119/* Debug Utilities */
120#include <snes/debug.h>
121
122/*============================================================================
123 * Specialty modules — include separately, opt-in only
124 *============================================================================
125 *
126 * These modules carry real linker / dependency cost when included, so the
127 * master header keeps them out by default. Include the ones your project
128 * actually uses, and add the matching name to LIB_MODULES in your example
129 * Makefile (the transitive resolver in make/common.mk pulls deps for you).
130 *
131 * #include <snes/audio.h> // SPC700 audio driver
132 * #include <snes/math.h> // fixed-point math, LUTs, hardware multiplier
133 * #include <snes/sram.h> // battery-backed save RAM
134 * #include <snes/collision.h> // bounding-box collision
135 * #include <snes/lzss.h> // LZSS decompression to VRAM
136 * #include <snes/gameloop.h> // gameloop framework opt-in
137 * #include <snes/asset.h> // typed BgAsset / GfxAsset bundles
138 * #include <snes/scene.h> // push/pop scene stack
139 */
140
141#endif /* OPENSNES_H */
SNES Background Layer Management.
SNES Color Math (Blending/Transparency).
SNES Console Initialization and Core Functions.
Debug utilities for SNES development.
SNES DMA (Direct Memory Access).
SNES HDMA (Horizontal-blanking DMA).
SNES Controller Input.
SNES Interrupt Handling.
Scrolling tilemap engine for Mode 1 backgrounds.
SNES Mode 7 Support.
SNES Mosaic Effects.
SNES Hardware Register Definitions.
SNES Sprite (Object) Management.
SNES System Variables (crt0.asm exports).
Text rendering functions for OpenSNES.
OpenSNES Standard Types.
SNES Video / PPU Functions.
SNES Window/Masking System.