An old 4164 DRAM is used to store the bitmap. An 8-bit PIC microcontroller generates sync and DRAM address signals. Controlled via SPI.
I'm sure I'm not the only person to have a component drawer full of old DRAM chips, kept in the hope that a use can be found for them one day.
The 4164 is almost ideally suited for this project. It has separate data in and out pins - the PIC writes data through the data in pin, and the data out pin provides the data for the video signal. Each line of 256 pixels corresponds to a row in the DRAM. The /CAS signal is provided by the PWM output of the PIC.
The DRAM refresh timing requirements are not met, but this does not appear to cause any problems. I guess that the datasheet-specified refresh timing are conservative.