Loading...
Searching...
No Matches
OpenSNES Documentation

A modern, open-source SDK for Super Nintendo development. Write game logic in C, produce .sfc ROMs that run on emulators or real hardware.

Start Here

Getting Started with OpenSNES – Install the SDK and build your first ROM

Learn SNES Development – 54 examples from "Hello World" to complete games

Browse Examples by Category – Browse examples by topic

Guides

SNES Graphics Programming Guide – Backgrounds, sprites, modes, VRAM

SNES Sound Programming Guide – SPC700, SNESMOD, music and SFX

Troubleshooting OpenSNES – Common problems and solutions

Tutorials

Graphics & Backgrounds Tutorial – Graphics & Backgrounds

Sprites & Animation Tutorial – Sprites & Animation

Animation Tutorial – Animation Techniques

Scrolling & Parallax Tutorial – Scrolling & Parallax

Controller Input Tutorial – Controller Input

Collision Detection Tutorial – Collision Detection

Audio & Music Tutorial – Audio & Music

Game States Tutorial – Game States & Transitions

SA-1 Enhancement Chip Tutorial – SA-1 Coprocessor (10.74 MHz second CPU)

SuperFX (GSU) Tutorial – SuperFX (GSU) RISC Coprocessor

Hardware Reference

SNES Hardware Overview – CPU, PPU, APU architecture

SNES Memory Map – Address space layout

SNES Hardware Register Reference – PPU, DMA, I/O registers

SNES OAM (Object Attribute Memory) – Sprite attribute memory

Examples (Annotated Source Code)

See the Example Source Code page for all 54 examples organized by topic, with links to fully documented source files.

API Reference

Contributing

OpenSNES Code Style Guide – Code style conventions

Contributing to OpenSNES – How to contribute

Third-Party Components – Third-party components and licenses

Acknowledgments

OpenSNES is built upon PVSnesLib by Alekmaul and contributors. We owe them an enormous debt of gratitude for the hardware library, SNESMOD audio engine, asset tools, and decades of SNES development knowledge.

For the full list of dependencies, licenses, and contributors, see ATTRIBUTION.md.

Links

License

OpenSNES is released under the MIT License.