Super NES Programming
From Wikibooks, the open-content textbooks collection
| This book is designed for people interested in learning to program for the Super Nintendo Entertainment System and, for now, assumes some basic knowledge on how to use an assembly language, how to use a command prompt, and how to use an emulator. This book is open work, if you find any problems with terms or concepts, you can contribute an explanation to it, feel free to participate, you are welcome to do so. Also, this book contains errors. If you find one, please fix it. |
This book will cover how to write programs for the Super Nintendo Entertainment System. As the CPU of the SNES has a 65c816 core, programming for the SNES is done with 65c816 assembly language.
[edit] Part One: Tutorials
- Introduction to 65816 assembly
- Tutorial:Initializing the SNES and changing the background color
- Tutorial:DMA transfer
- Tutorial:Using tiles and palettes
- Tutorial:Creating graphics for your SNES programs
- Tutorial:Loading SPC700 programs for the SNES sound coprocessor
- Tutorial:Creating music for the SPC700
- Using Pointer Tables
- Tutorial:Using the Super FX chip
[edit] Appendices
- Technical specifications
- Memory map
- 65c816 reference
- SPC700 reference
- Homebrew Super NES games
- SNES Emulators
- SNES hardware registers
[edit] Tools
- The WLA-65816 Micro Assembler is an open-source, cross-platform 65816 assembler used for these tutorials.
- Geiger's debugging version of Snes9x lets you step through a SNES ROM's execution, set breakpoints, examine audio and video memory, and more. Only available for Windows.
[edit] Resources
- Vintage Dev is a great set of in-depth snes programming tutorials & tools.
- #snesdev, a Super NES development channel on the EFnet server. (on IRC)
- Some SNES technical documents
- ROMhacking.net has a variety of documents on assembly programming, SNES hardware info, and sample source code!
[edit] Contributors
Put your name here if you have contributed to this wikibook.