by Spike » Wed Aug 26, 2015 12:20 am
conchars(read: quake's font) uses 0 for transparent. because special cases are fun.
and 255 is pink, not black.
255 is only 'black' if you consider it transparent, in which case you should be using premultiplied alpha which results in pink*0=0=black. obviously this doesn't apply if its an 8-to-24 lookup table as that has no alpha channel and thus cannot be transparent and thus must be pink, not black.
not supporting premultiplied alpha will result in halos. yes, black halos are generally better than pink halos, but any kind of halo is still a bug - even the filling described below would be preferable to black halos.
For bsp textures, palette index 255 is transparent ONLY if the texture's name has a leading {. Due to depth issues with alpha blending, premultiplied alpha is no longer reliable, and thus engines will probably switch to alpha testing, and in order to avoid obvious halos, these transparent pixels should be filled in with the average of their neighbouring (valid) pixels (but with alpha 0).
Note that halflife has PER-TEXTURE palettes, thus some bug inside your 'VID_SetPalette' function won't affect your halflife textures. Because of the filling described above, it shouldn't affect your q1 textures with { in them either, but it WILL affect valid q1bsp textures/skins that happen to use index 255.
Obviously, because halflife textures have their own per-texture palette, and halflife never supported fullbrights, any attempt to utilise fullbrights in said halflife textures is a bug.
Obviously there could be all sorts of bugs in random projects, but these are the most likely ones that I can think of.
.