Widespread Myths

These are myths that frequently show up that mislead people into writing bad code based on false perception of what the system actually does.

Myth: The PPU steals cycles from the CPU if there are a lot of sprites on-screen.

Fact: The PPU does not steal cycles. What takes CPU time is calculating where each sprite is moving and writing the sprites to the OAM. If you need to use a lot of sprite ...

Making a Small Game - Tic-Tac-Toe

When you have finished this tutorial, you will have written a small game. Things you have to know before you start:

  • 65816 assembly
  • Interrupts (What are NMI and VBlank)
  • What is VRAM, CGRAM, and their basic structures
  • What is DMA and how to use it
  • Video modes (mode 0), using backgrounds
  • How to get information on player input
  • Optional: Using 16x16 tiles

If you have problems ...

Registers

Address Bus B Registers

TODO: note on fast access time

Register Address Name Style Access Timing
Screen Display Register $2100 INIDISP single write any time
Object Size and ...

Backgrounds

BG Modes

The SNES has 7 background modes, two of which have major variations. The modes are selected by bits 0-2 of register $2105. The variation of Mode 1 is selected by bit 3 of $2105, and the variation of Mode 7 is selected by bit 6 of $2133.

Mode    # Colors for BG
         1   2   3   4
======---=---=---=---=
0        4   4   4   4
1       16  16   4   -

...

Rendering the Screen

Mosaic

The mosaic filter is applied after the BG is rendered and scrolled but before it is clipped, combined with other BGs, pseudo-hiresed, or mathed. Each XxX block of pixels is replaced with the upper-leftmost pixel of the block. The 'blocks' are such that the upper-leftmost block is at the left edge of the screen at the scanline where $2106 was written (or the first visible scanline ...

Mode 7 - Scaling

Mode 7 is a BG mode that allows a background to be rotated, scaled, and skewed. There are more possibilities when HDMA gets involved, Mario Kart. Let's get started with the basics.

Prerequisites

You need to understand fixed point complementary math. You might be able to get by this part but it's going to come into play a lot in the ot ...

Translucency

Translucency is a cool effect, an example would be the water effects in Secret of Mana. I'm just not in the mood to chat, so let's get right into it.

We normally set things to the Main Screen register ($212C) in order to see them on the screen. Now we will write to the sub screen register. It's simple. You just set the layer you want to be tr ...

Grog's Guide to Sub-Screen Addition - Subtraction and Mask Windows on the SNES

Ye old purpose and disclaimers

The Window Mask and Color Addition/Subtraction registers are pretty poorly documented, so here's what I've figured out through trial and error. Note that my trial and error was in an emulated SNES environment, so if ZSNES has it wrong then I probably do too. Also, I've probably not found all of the special cases and features, so don't consider this the au ...