Old consoles have CPU running synchronized with video and audio chips. Some games depend on the exact time of code execution to issue commands in the right time. Games can, for ex., change graphics settings in the middle of frame drawing – this can produce visual effects, that the video chip cannot do on its own. Emulator, of course, have to simulate all delays, because they can be meaningful.
Example: Super Mario Bros. has scrolling levels, and a status bar, which does not scroll. But NES’ video chip can only scroll the entire screen. So, the game sets 0 scroll, waits until the last line of status bar is sent on the TV, and then changes the scroll. But for that the program on the CPU must be able to keep the time somehow. NES doesn’t have timers, so the game can only rely on instruction timings for timekeeping.
Latest Answers