Skip to content
Josh Goebel edited this page Jan 27, 2021 · 14 revisions

SCN

The SCN callback allows you to execute code between the rendering of each scan line. The primary reason to do this is to manipulate the palette. Doing so makes it possible to use a different palette for each scan line, and therefore more than 16 colors at a time.

Also see More than 16 Colors.

Usage

function SCN(scanline)
  -- your code here
end

Parameters

  • scanline : The scan line about to be drawn (0..135)

Example

The following example displays all 256 possible shades of gray. This can be done with any color.

-- title:  256 shades of gray
-- author: Marcuss2, fixed by nesbox
-- desc:   Showoff of grayscale
-- script: lua
-- input:  mouse

ADDR = 0x3FC0
palette = 0

function addLight()
 for i=0, 15 do
  for j=0, 2 do
   poke(ADDR+(i*3)+j, palette)
  end
  palette = palette + 1
 end	
end

function SCN(scnline)
 if scnline % 8 == 0 then
  addLight()
 end
end

function init()
 for i=0, 16 do
  rect(i*15, 0, 15, 240, i)
 end
end

init()

function TIC()
 palette = 0
end
Clone this wiki locally