TAS
A TAS (short for Tool-Assisted Speedrun) is an input recording for a video game. When the game is run in real time, the input is fed to the game, and the game reacts to the input as if the player was playing it. However, the input has been crafted at the author's leisure, and may involve maneuvers that are way too difficult, or outright impossible, for a real human player to perform, by requiring abilities such as premonition or perfect accuracy. This creates entertainment that appeals to people for a number of reasons. Personally, I take it as a form of art.
For this to be possible, however, an emulator must pass certain requirements. Most importantly, the emulator must be completely deterministic. The emulator must contain no random components, such as fluctuation in thread synchronization. From the perspective of the game running in the emulator, the emulator must run identically on every single invokation, when the same input is provided. For the most part, real consoles are also deterministic, and indeed, some TASes have been replayed on an actual NES console. Then there are features which make the creation of TASes significantly easier. If you are an emulator author, please try to ensure your emulator fulfills most of these requirements.
If your emulator is accurate enough, you can use TAS videos as a test material to automate your emulator testing with games. The TAS inputs go quickly through large amounts of the game's code and data, invoking bordercase behavior within the games, making very good testcases. To use, at the onset of each NMI, just read the next frame from the movie file, and use that input for the response whenever the game polls the input.
Note that not all TAS videos have been created on an accurate emulator. For the movie to sync, you must replicate the same timings as the emulator the TAS was made on. Some games, such as Super Mario Bros., are not really picky, but most of them require fairly accurate emulation. Note that you may need to delete or add a few idle frames in the beginning of the movie before sync is achieved.
External links
- TASVideos - a website that collects, produces and publishes TAS videos.
- TASVideos: Emulator feature checklist: The minimums for emulator being TAS-production capable
- TASVideos: List of console-verified movies. Your emulator should be accurate enough to run these TASes as well.
- NESmock: A tool for converting NES input recording files between different emulator formats.