Lucas Pope's work on bringing the 1-bit aesthetic into the modern age is fascinating in itself. One of my favorite excerpts is how Pope 'stabilized dither' in order to reduce the harsh effects that dithering moving images can create: https://forums.tigsource.com/index.php?topic=40832.msg136374...
Shader language programming is one of most fascinating environments I know. Everything tells me that reading and writing data via texture coordinate lookups should be orders of magnitude slower than "normal" programming, yet it often is orders of magnitude faster.
Unfortunately since emulation is an "embarrasingly serial" problem, it doesn't go particularly quickly.
The shaders on https://shaderfrog.com/app all work fine for me and those looked pretty complex. Maybe they're not using the same type of "shader compilers"? Or perhaps making a CPU emulator with shader compilers is just more complicated...