why do:
for(int i=0;i<256;i++){
upload_color(i,palette[i]);
}
when you can do
upload_color(0,palette[0]);
upload_color(1,palette[1]);
upload_color(2,palette[2]);
upload_color(3,palette[3]);
upload_color(4,palette[4]);
upload_color(5,palette[5]);
and just repeat 251 more times