Files
Alice 81de993d66 Cleanup: remove all trailing spaces from the source code (#2664)
* `cmake`: Remove trailing spaces

* `build`, `src`: Remove trailing spaces

* `templates`: Remove trailing spaces

* `demos`: Remove trailing spaces

* `include`: Remove trailing spaces
2024-08-26 21:01:59 +02:00

88 lines
2.9 KiB
Lua

-- title: palette demo
-- author: Nesbox
-- desc: how to switch palette in runtime
-- script: lua
-- input: gamepad
local W=240
local H=136
-- palette address
local ADDR=0x3FC0
local PALETTES =
{
{name="SWEETIE-16", data="1a1c2c5d275db13e53ef7d57ffcd75a7f07038b76425717929366f3b5dc941a6f673eff7333c57566c8694b0c2f4f4f4"},
{name="DB16", data="140c1c44243430346d4e4a4e854c30346524d04648757161597dced27d2c8595a16daa2cd2aa996dc2cadad45edeeed6"},
{name="PICO-8", data="0000007e25531d2b535f574fab5236008751ff004d83769cff77a8ffa300c2c3c700e756ffccaa29adfffff024fff1e8"},
{name="ARNE16", data="0000001b2632005784493c2ba4642244891abe26332f484e31a2f2eb89319d9d9da3ce27e06f8bb2dceff7e26bffffff"},
{name="EDG16", data="193d3f3f2832743f399e2835b86f50327345e53b444f67810484d1fb922bafbfd263c64de4a6722ce8f4ffe762ffffff"},
{name="A64", data="0000004c3435313a9148545492562b509450b148638080787655a28385cf9cabb19ccc47cd93738fbfd5bbc840ede6c8"},
{name="C64", data="00000057420040318d5050508b542955a0498839327878788b3f967869c49f9f9f94e089b8696267b6bdbfce72ffffff"},
{name="VIC20", data="000000772d2642348ba85fb4b668627e70caa8734a559e4ae99df5e9b287bdcc7185d4dc92df87c5ffffffffb0ffffff"},
{name="CGA", data="000000aa00000000aa555555aa550000aa00ff5555aaaaaa5555ffaa00aa00aaaa55ff55ff55ff55ffffffff55ffffff"},
{name="SLIFE", data="0000001226153f28117a2222513155d13b27286fb85d853acc8218e07f8a9b8bff68c127c7b581b3e868a8e4d4ffffff"},
{name="JMP", data="000000191028833129453e78216c4bdc534b7664fed365c846af45e18d79afaab9d6b97b9ec2e8a1d685e9d8a1f5f4eb"},
{name="CGARNE", data="0000002234d15c2e788a36225e606e0c7e45e23d69aa5c3d4c81fb44aacceb8a60b5b5b56cd9477be2f9ffd93fffffff"},
{name="PSYG", data="0000001b1e29003308362747084a3c443f41a2324e52524c546a0073615064647c516cbf77785be08b799ea4a7cbe8f7"},
{name="EROGE", data="0d080d2a23494f2b247d384032535f825b314180a0c16c5bc591547bb24e74adbbe89973bebbb2f0bd77fbdf9bfff9e4"},
{name="EISLAND", data="051625794765686086567864ca657e8686918184abcc8d867ea78839d4b98dbcd29dc085edc38de6d1d1f5e17af6f6bf"},
}
local t=0
local index=1
-- update palette
function updpal()
local pal=PALETTES[index].data
for i=1,#pal,2 do
poke(ADDR+i//6*3+i//2%3,tonumber(pal:sub(i,i+1),16))
end
end
updpal()
function TIC()
-- handle input
if btnp(0,20,5) and index>1 then
index=index-1
updpal()
end
if btnp(1,20,5) and index<#PALETTES then
index=index+1
updpal()
end
if btnp(4)or btnp(5)then exit()end
-- draw
cls(15)
print("SELECT PALETTE",6,6,0)
for i,v in pairs(PALETTES) do
print(v.name,12,12+i*6,0)
end
print(">",6+(t//16%2),12+index*6,0)
local S=12
-- draw palette
for i=0,16-1 do
for j=0,S-1 do
line(W-j-i*S,H,W,H-j-i*S,i)
end
end
t=t+1
end
-- <PALETTE>
-- 000:140c1c44243430346d4e4a4e854c30346524d04648757161597dced27d2c8595a16daa2cd2aa996dc2cadad45edeeed6
-- </PALETTE>