BDR - brickviking/TIC-80 GitHub Wiki
BDR
This was added to the API in version 0.90.
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.
Usage
function BDR(scanline)
-- your code here
end
Parameters
- scanline : The scan line about to be drawn (0..143)
Details
+-----------+-----------------
| 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 |
+-----------+----------------+
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 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