"Since the whole protocol is bit-banged, it is susceptible to delays caused by other higher priority task"<p>Ermmm no.
Not utilising both cores properly on the ESP32 is a common mistake which causes this (described) behaviour <a href="https://randomnerdtutorials.com/esp32-dual-core-arduino-ide/" rel="nofollow noreferrer">https://randomnerdtutorials.com/esp32-dual-core-arduino-ide/</a><p>Ref. me, I wrote a Java Gameboy 2BPP encoder/decoder library and have done multicore ESP32 dev. <a href="https://github.com/KodeMunkie/gameboycameralib">https://github.com/KodeMunkie/gameboycameralib</a>
I was looking at this similar project yesterday: <a href="https://github.com/mofosyne/arduino-gameboy-printer-emulator">https://github.com/mofosyne/arduino-gameboy-printer-emulator</a>
Where's the printer part?<p>You could connect this to a cheap chinese termal ESC/POS printer and print out the image too... there are probably libraries availble that do most of the esp32->print work.