Super NES Programming
From Wikibooks, open books for an open world
| 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 write an assembly language program, 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.
Part One: Tutorials [edit]
- Introduction to 65816 assembly
- Initializing the SNES and changing the background color
- DMA transfer
- Using tiles and palettes
- Creating graphics for your SNES programs
- Loading SPC700 programs for the SNES sound co-processor
- Creating music for the SPC700
- Using Pointer Tables
- Joypad Input
- Using the Super FX chip
Programming Techniques [edit]
- multiplication
- Animated Sprites
- Platform Physics
- Multijointed Sprite Bosses
- How NOT to cause slowdown
Appendices [edit]
- Technical specifications
- Memory map
- 65c816 reference
- SPC700 reference
- Homebrew Super NES games
- SNES Emulators
- SNES hardware registers
- Snes_Init.asm Code
Tools [edit]
- 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.
- BSnes is an SNES emulator written by Byuu that strives for more exact hardware emulation. It strays away from using ROM-specific hacks and the like, but requires higher machine specs than other emulators.
Resources [edit]
- SNES Development Wiki Technical Documents, Tutorials and References
- 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!
Contributors [edit]
Put your name here if you have contributed to this Wikibook.
- Snarius --Started this book, wrote most of it.
- Jclee --Wrote the tutorial on loading SPC700 programs, and more.
- Sukasa --Wrote the tutorial on Pointers, minor edits
- cdoty --Added information about WDC C compiler and test project link.
- yupferris --Random error corrections; wrote the tutorial on joypad input.
The