upvote
I remember doing software rendered truecolor 3d graphics in the mid/later 90s on my computer (that was probably among the last Intel machines without MMX).

Shading was expensive since you had 3 color components to scale, but one trick if you had monochrome color was that you could do it with 1(16bit) or 2 multiplications(32bit) by moving bits around.

If you had RGB, you could do red and blue at once since you'd easily mask by 0xff00ff , then multiply by the intensity (0-0x100), since the result of 0xff*0x100 is at most 0xff00 you could just mask the result by 0xff00ff00 and shift it down 8 bits (the shifting could be with the green component combined back in).

1 multiply for 16bit color (5R 6G 5B) was basically the same thing by shifting green upwards, or'ing, masking and multiply a 5bit intensity once on the 32bit pattern 00000gggg gggg00000 rrrrr000 000bbbbb before shifting down the green part again and combining the result.

I'm sure others had even more similarly clever tricks back in that era.

reply