The 90s were a time when hypotheticals such as this were hotly debated by nerdy children at recess. I am very satisfied to see this project to come to fruition.
NES86 uses a mapper configuration that is theoretically valid but generally not supported by emulators nor flash cartridges.
I suppose the next step to take this project to its logical conclusion would be to make an actual cartridge of it that works on a stock NES. Alternatively, add another level by running this in a browser JS NES emulator.
Is there already a good short term for this sort of "testing the limits of Turing-completeness in practice" exercise? Here are two other well-known attempts:
Having previously programmed both an NES emulator and an IBM PC emulator, I can say that this is quite an achievement. The IBM PC is much harder to emulate than the NES. This emulator is written in 6502 assembly. So the person wrote an emulator for the 8086 in 6502 assembly.
Wow, this is trippy. I can see how 0-page would really help with the 8088 emulator, but I never imagined running ELKS on a 6502 ;)
Highly recommend watching the video linked in the readme: https://youtu.be/OooHTDMUSGY
It is very well produced, funny and informative.
Importantly, this means we can port the PlayStation 3 emulator or mine Bitcoin on the NES.
"Brain, what do you want to do tonight? The same thing we do every night, Pinky - try to take over the world!"
This is the most vile and nefarious act of evil genius I've witnessed in ages!
Will it run Alley Cat?
I ended up finding the application it's intended to run, ELKS, the most interesting part. ELKS (“Embedded Linux Kernel Subset”) is apparently a very, very old fork of Linux from the 1990's that targets 16-bit real-mode x86 systems with no MMU (e.g. 8086) rather than 32-bit protected mode x86 (80386 and later). It's fascinating in a similar way to how, say, ancient religious schisms are. It's still actively maintained even!