https://www.youtube.com/watch?v=fWDxdoRTZPc
edit: This comment really summarizes just how impressive the demo is https://old.reddit.com/r/Demoscene/comments/wjxqve/area_5150...
(Make sure you're properly seated, then click Show Options »)
They would draw the next frame of the game direct to the screen in either the high nybble (4 bits) or the low nybble (alternating each frame).
The color palette was either one of two: one where the same color would be displayed regardless of the high nybble and the other palette had colors chosen where they were the same regardless of the bits in the low nybble.
To be sure the game threw away 256 possible colors to have instead only 16. But when the next frame was being rendered, the user was never aware until, at the very last instant, the next palette was slammed in revealing the new frame (and of course the rendering began for the next).
You now basically have a two step lookup: palette_rgb[colormap[color, light]]
Unreal by Future Crew has an effect that comes to mind that is probably implemented exactly like that (on VGA mode 0x13), just more of a wormhole than a tunnel: https://www.youtube.com/watch?v=InrGJ7C9B3s&t=4m40s