oh sweet laser jesus I found the upload palette function and THEY UNROLLED IT
4 comments
the worst part is that this was done with a compiler from 1991 so there's no way it unrolled the loop itself. they did this manually oh that's cute. their set_palette function takes two arguments: a pointer to the palette, and a number of extra palettes to apply. so they could set up an array of palettes in decreasing brightness, and just do set_palette(&fade_pallets[0], 64) to go through them. but the same function is a regular one-time set_palette if you just pass 1 for the second argument. "hey ghidra what calls set_palette?" "I don't know! you're in 16bit segmented mode! pointers are MEANINGLESS |
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