-
-
Notifications
You must be signed in to change notification settings - Fork 492
TimotheeGreg edited this page Apr 6, 2024
·
8 revisions
This was added to the API in version 0.90. See SCN for older carts.
The BDR 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 BDR(scanline)
-- your code here
end
- scanline : The scan line about to be drawn (0..143)
+-----------+-----------------
| scanline | display |
+-----------+----------------+
| 0 - 3 | TOP BORDER |
| 4 | ROW 0 | equiv SCN(0)
| ... | ... | equiv SCN(n - 4)
| 139 | ROW 135 | equiv SCN(135)
| 140 - 143 | BOTTOM BORDER |
+-----------+----------------+
Glitch effect using BDR:
-- 'Change screen offset in every scanline' demo
-- author: Vadim
shake=0
d=4
function TIC()
if btnp()~=0 then shake=30 end
if shake>0 then
poke(0x3FF9+1,math.random(-d,d))
shake=shake-1
if shake==0 then memset(0x3FF9,0,2) end
end
cls(12)
print("PRESS ANY KEY TO GLITCH!",54,64)
end
function BDR(row)
if shake>0 then
poke(0x3FF9,math.random(-d,d))
end
end
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 BDR(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)