-
-
Notifications
You must be signed in to change notification settings - Fork 492
Josh Goebel edited this page Oct 7, 2021
·
14 revisions
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.
function SCN(scanline)
-- your code here
end
- scanline : The scan line about to be drawn (0..135)
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
TIC-80 tiny computer https://tic80.com | Twitter | Telegram | Terms
Built-in Editors
Console
Platform
RAM & VRAM | Display | Palette | Bits per Pixel (BPP) |
.tic
Format | Supported Languages
Other
Tutorials | Code Snippets | Libraries | External Tools | FFT
API
- BDR (0.90)
- BOOT (1.0)
- MENU
- OVR (deprecated)
- SCN (deprecated)
- TIC
- btn & btnp
- circ & circb
- clip
- cls
- elli & ellib (0.90)
- exit
- fget & fset (0.80)
- font
- key & keyp
- line
- map
- memcpy & memset
- mget & mset
- mouse
- music
- peek, peek4
- peek1, peek2 (1.0)
- pix
- pmem
- poke, poke4
- poke1, poke2 (1.0)
- rect & rectb
- reset
- sfx
- spr
- sync
- ttri (1.0)
- time
- trace
- tri & trib (0.90)
- tstamp (0.80)
- vbank (1.0)