Hacker News new | ask | show | jobs
by Scali 2973 days ago
In theory emulators recreate the hardware in software. In practice, emulators approximate the hardware in software. In the case of PCs, there is so much hardware variation, that it was never a requirement to be very accurate in terms of speed, unlike machines such as the C64, Amiga, Atari ST, NES and various other machines, where many tricks found in games and demos depend on manipulating specific hardware registers in very specific timeframes.

This demo has various effects that depend on the exact speed of the CPU and hardware. No PC emulator is anywhere near that accurate, leading to effects not working correctly, or just hanging altogether (eg the end-tune depends on instructions being in the prefetch-buffer at a specific time).

Another issue was the 1k colour effect, which exploits the way the NTSC signal is generated. Most emulators didn't emulate NTSC composite very accurately (just treating it as a 16-colour mode).

The timing in this demo is so critical, that even most clones with an 8088 at 4.77 MHz and a CGA-compatible clone card do not play the demo correctly.

1 comments

OpenEmulator, a little-known emulator for the Apple II, has an absolutely fantastic NTSC emulation, done with GPU shaders. I'm in the process of porting it to WebGL, so that (a) I and others can actually understand it, and (b) so that others can use it.