so the ascii shader was a pre-existing asset i used, but it had an off by one error so i actually had to learn how it worked to fix it. the short version is for each pixel the shader gets a grayscale value for a low-res version of the input, and then picks a corresponding pixel from a texture of ascii characters based on the pixel's position.
then there's also different rendering layers and cameras to make some things exempt from another shader that makes things grayscale
thank you for always playing my games :<