Backgrounds — Mode 6: one hi-res layer with offset-per-tile.
Mode 6 is the hi-res member of the offset-per-tile family: a single 4bpp BG1 drawn 512 half-pixels wide, like Mode 5, and BG3 as the offset table, like Mode 2 — one row of horizontal offset words, one row of vertical ones. Like Mode 5, its tiles are always 16 half-pixels wide (character N on the left, N+1 on the right), and that applies to BG3's table too: each offset word moves a 16-half-pixel column, so 32 words still cover the screen (anomie-regs, Backgrounds / Mode 6).
BG1 here is diagonal colour bands drawn in one-half-pixel stripes, a pattern 256-pixel modes cannot show. A sine wave written into the vertical row makes the columns ripple; press A and the wave moves to the horizontal row, and the columns slide sideways instead.
B shows a still test card: every odd column gets the horizontal offset 8 and nothing else, the one bit (bit 3) that falls inside a 16-half-pixel tile. Emulators disagree on it — ares, bsnes and luna shift the column by half a tile, Mesen2 drops the bit — and no reference covers the case in hi-res, so the card is there to be photographed on a console (README).
- SNES Concepts
- Mode 6: setMode(BG_MODE6, 0), BG1 4bpp in hi-res, BG3 = offset map
- Hi-res: the sub screen draws the even half-pixel columns and the main screen the odd ones, so BG1 goes on both (setMainScreen and setSubScreen), as in Mode 5
- 16-half-pixel tiles: a map entry for character N draws N and N + 1
- The offset table as in Mode 2: BG3 row 0 = horizontal words, row 1 = vertical words; bit 13 = apply to BG1; column 0 is never offset
- What to Observe
- Diagonal colour bands with fine vertical stripes ripple up and down as a travelling wave; the leftmost column stays put.
- Press A: the columns slide sideways instead. A again: back.
- Press B: the still test card (odd columns offset by 8). B again: back.
- Modules Used
- console, dma, background, input, math, tile
- See also
- backgrounds/mode2 (the same table, 256 pixels wide), backgrounds/mode5_hires (hi-res without the table)