hamster, thanks for your input. If I were starting from scratch today, I'd approach it the same as you. The cool thing about the COE file for the overlay in the demo project is that it is a binary file i.e. memory_initialization_radix_2, The bits represent black and white I'm sure. I can see how much headache that saves in converting on the fly as all the VGA routine has to do is grab the next bit from the 1 bit wide memory.
I apologize if I'm asking a question with an obvious answer but web searches and forum searches weren't helpful. I've recently started looking at the Nexys4's VGA output. And I'm using the User Demo Source for ISE 14.7 for reference. I'm intrigued by the simplicity of the method used to generate the on-screen images from a memory overlay. But I haven't found any documentation of how the COE file was generated from the original BMP file. Is the method documented and/or is there a utility for converting BMP files into a COE compatible format? Thanks