A major difficulty with trying to develop emulators for older machines is that on such older platforms, there are aspects of behavior which weren't intentionally designed to fit together in any particular way, but nonetheless happened to fit together in ways that some game designers have exploited. Sometimes these aspects of design may be documented, individually, in a way that would imply their interactions, but in other situations they might not.
For example, on the Atari 2600, storing a value to HMP0, storing a value to HMOVE on the first cycle of a horizontal blanking, and then waiting awhile before writing to either HMP0 or HMOVE, will cause the player 0 sprite to be moved to the left by a signed 4-bit number of pixels specified in the upper bits of HMP0, i.e. anywhere between 7 pixels left and 8 pixels right. As a side effect, the first 8 pixels of the next scan line will be blanked. If the store to HMOVE happens two cycles before the start of horizontal blanking, however, the start of the next scan line won't be blanked but all sprites will be moved to positions 8 pixels to the left of where they would otherwise have gone. Some programs exploit this to avoid having to the system blank the leftmost eight pixels of the line after the HMOVE.
If the designer of an emulator is aware of this behavior, it may not be particularly difficult to emulate, but the designer of an emulator isn't aware that the HMOVE circuitry works this way, programs that rely upon it would not be emulated correctly. Emulation of older systems is difficult because it's impossible to know about all the behavioral quirks that programs might be expecting. While one could take the attitude that any game which performs an HMOVE two cycles before the specified time is "broken", such an attitude would imply that all games must forego the use of the leftmost 8 pixels on the line after any sprite is moved. Code which uses cycle-74 HMOVEs may be able to achieve a cleaner looking display, and will work either on original vintage hardware or on emulators that support that behavior. Accurate emulation of all games would require knowing all of the aspects of hardware upon which those games would rely, which would be impossible on any system for which unreleased prototype games might exist.