OpenSNES
Modern Open-Source SNES Development SDK
Loading...
Searching...
No Matches
Learn SNES Development

A curated path through the 75 examples — not a feature tour, a developer's journey. You don't wake up wanting "Mode 7"; you wake up with a question about the game you're building, and it changes as you go. Each stage below is one of those questions, and the confidence it buys you. This is a hand-picked subset; for the exhaustive index see Browse Examples by Category.

At every step the goal is the same: never a wall you can't climb with what you just learned, always a result that works, always the why.

Stage 0 — "Does my setup even work?"

Confidence: the toolchain isn't scary. Get one ROM built and running, and learn the rhythm of a frame — you set things up during blanking, then let the machine run at 60 Hz.

Print a string

Stage 1 — "Can I put something on screen?"

Confidence: I control the picture. Text, a background from your own art, a sprite that isn't tied to the grid. The tile / palette / VRAM trinity that underpins everything visual on the SNES.

Scroll a message

Mode 1 Example

Simple Sprite -- Your First OAM Sprite

Animated Sprite -- Direction States and Sprite Sheets

sprite_swarm — a bouncing swarm, and the OAM throughput ceiling

Under the hood — how a glyph becomes pixels with no module at all: Fundamentals: how a glyph is drawn

Stage 2 — "Can the player act?"

Confidence: it's a game, not a demo. Read the pad, move something with it, then branch out to the SNES's exotic controllers.

Controller Input

Two Players Example

SNES Mouse

Super Scope

Stage 3 — "Can I build a world?"

Confidence: bigger than one screen. Scroll a background past the camera, stream a world larger than VRAM, drive it from a Tiled map, and stand on the ground with tile collision.

Mixed Scroll

Continuous Scroll

Map Scroll

Tiled Map Editor Integration

Slope Mario

Collision Detection Demo

Stage 4 — "Can I make it feel good?"

Confidence: it feels like a real game. This is where the SNES becomes the SNES — fades and mosaic transitions, per-scanline HDMA effects, colour math, windows, the Mode 7 plane, and sound.

Fading Example

Mosaic -- PPU Pixel Block Effect

HDMA Wave

Gradient Colors -- HDMA Color Gradients

palette_cycle — animate by rotating CGRAM

Color Addition Transparency

shadow_tint — recolour a whole scene at once

Window -- HDMA Triangle Masking

Mode 7 -- Rotation and Scaling

Mode 7 Perspective -- Pseudo-3D Ground Effect

SNESMOD Music Example

SNESMOD Sound Effects

soundboard — the audio v2 engine, driven entirely from C

Stage 5 — "Can I hold it all together?"

Confidence: architecture, not spaghetti. Stop hand-rolling the main loop and the state machine; assemble a skeleton, and pick up the reusable maths every game needs.

VBlank Timer

Scene Stack

panel_hud — a HUD that survives a dialog box

game_skeleton — the smallest complete game

aim_target

fix32_orbit

Random Numbers

Stage 6 — "Can I finish and ship?"

Confidence: a complete cartridge. Persist progress, choose a mapper, reach for a coprocessor when you need more, and study complete games that fuse everything above.

Save Game -- SRAM Persistence

HiROM Demo -- Understanding SNES Memory Mapping

Breakout

LikeMario

Map and Objects

rpg — an RPG template driven by a Tiled map

shmup_1942

mode7_racing — an F-Zero-style mini game

mode7_flying — a Pilotwings-style demo

More horsepower — the cartridge coprocessors

When the base hardware isn't enough. SA-1 is the same 65816 ISA at 10.74 MHz; SuperFX / GSU is a custom RISC processor for bitmaps and 3D.

SA-1 Hello World

SA-1 Starfield (Murmuration)

SuperFX Hello

SuperFX 3D Cube