OpenSNES
Modern Open-Source SNES Development SDK
Loading...
Searching...
No Matches
snes.h
Go to the documentation of this file.
1
42
43#ifndef OPENSNES_H
44#define OPENSNES_H
45
46/*============================================================================
47 * Version Information
48 *============================================================================*/
49
50/* The values below are kept in sync with `CHANGELOG.md` head and verified by
51 * `devtools/check_doc_drift.py` at lint time (CI gate `lint.yml::doc-drift`).
52 * When bumping the CHANGELOG for a release, bump these three macros in the
53 * same commit — `.claude/rules/release.md` documents the step, and `make
54 * lint-docs` fails fast on mismatch. */
55
57#define OPENSNES_VERSION_MAJOR 0
58
60#define OPENSNES_VERSION_MINOR 50
61
63#define OPENSNES_VERSION_PATCH 0
64
66#define OPENSNES_VERSION_STRING "0.50.0"
67
68/*============================================================================
69 * Core Headers
70 *============================================================================*/
71
72/* Standard types */
73#include <snes/types.h>
74
75/* Hardware registers */
76#include <snes/registers.h>
77
78/* Console initialization */
79#include <snes/console.h>
80
81/* Video / PPU */
82#include <snes/video.h>
83
84/* Sprites */
85#include <snes/sprite.h>
86
87/* Backgrounds */
88#include <snes/background.h>
89
90/* Input */
91#include <snes/input.h>
92
93/* DMA */
94#include <snes/dma.h>
95
96/* Text */
97#include <snes/text.h>
98
99/* Interrupts */
100#include <snes/interrupt.h>
101
102/* System variables (crt0.asm exports) */
103#include <snes/system.h>
104
105/* Mode 7 */
106#include <snes/mode7.h>
107
108/* HDMA */
109#include <snes/hdma.h>
110
111/* Window/Masking */
112#include <snes/window.h>
113
114/* Color Math */
115#include <snes/colormath.h>
116
117/* Mosaic Effects */
118#include <snes/mosaic.h>
119
120/* Map Engine */
121#include <snes/map.h>
122
123/* Debug Utilities */
124#include <snes/debug.h>
125
126/*============================================================================
127 * Specialty modules — include separately, opt-in only
128 *============================================================================
129 *
130 * These modules carry real linker / dependency cost when included, so the
131 * master header keeps them out by default. Include the ones your project
132 * actually uses, and add the matching name to LIB_MODULES in your example
133 * Makefile (the transitive resolver in make/common.mk pulls deps for you).
134 *
135 * #include <snes/audio.h> // SPC700 audio driver
136 * #include <snes/math.h> // fixed-point math, LUTs, hardware multiplier
137 * #include <snes/sram.h> // battery-backed save RAM
138 * #include <snes/collision.h> // bounding-box collision
139 * #include <snes/lzss.h> // LZSS decompression to VRAM
140 * #include <snes/string.h> // memcpy, memmove, memset, strlen, strcmp, strcpy, strncpy
141 * #include <snes/vramqueue.h> // VRAM uploads noted during the frame, sent in VBlank
142 * #include <snes/gameloop.h> // gameloop framework opt-in
143 * #include <snes/asset.h> // typed BgAsset / GfxAsset bundles
144 * #include <snes/scene.h> // push/pop scene stack
145 * #include <snes/tile.h> // build 2/4/8bpp tiles from pixels at run time
146 */
147
148#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.