Since emulation process consists of emulating isolated frames, you can affect the speed. But emulation of a hardware takes much more powers than that hardware used. Emulators have different code, and its execution takes different time. If your computer is powerful enough to handle it, you can
increase the emulation speed. Either gradually (if the emulator allows), to some fixed speed, or by pressing Fast Forward key, which speeds the process up to maximum possible speed.
But most commonly we
slow down emulation. It allows to trace every process as it flows. Combined with Frame Advance, this provides quite a useful method of navigation - you press FA emulating particular frames, then hold it down to let the game run for some time (usually at slower speed), then release FA back, pausing all. Some emulators provide slower speed when holding down FA, than the original emulation speed.
Emulation speed may be adjusted, because the process, that looks uniform and seamless, is actually gradual. A game is emulated frame by frame at a rate determined by the emulated platform. Your computer usually takes less time to prepare every next frame, than the original system took, so emulation gets internally suspended to match the original framerate.
That gradualness allows pausing emulation, which freezes the game at the state it was at. And if we can pause, nothing prohibits us from unpausing it and pausing back any time we wish, say, next frame. This is how
Frame Advance was born. Once you press the key assigned for frame-advancing, the game emulates one more frame and gets hanged up on pause.
Being able to emulate each frame on command allows the desired precision of actions and gives time to examine everything before entering input. See how exactly emulators
provide Frame Advance.
Some controllers, especially analog ones, are difficult to operate precisely. Emulators offer the option of manually specifying the exact input that you wish to use. Not only does this remove limitations in the input hardware used to make the movie, but it also allows exact values to be picked, allowing for perfectly controlled movement.
2d control sticks in particular benefit from this by allowing exact direction and velocity control.
Emulators record your play to input files, that allow to navigate through, edit, replay, share. These are traditionally called
movies, though they have nothing to do with video. They provide enough determinism to make games react similarly to similar input each time it's replayed. Input file is a foundation of tool-assistance.
When you start movie recording (refer to Emulators Usage for how to access
this function), you must record from the game's initial state it has on load (
Power On), that would be a base for further manipulations. You don't start a movie from a savestate normally, because this way it won't have a preliminary input to approve that game state. In some cases though, it's allowed to start from a savestate, when your movie requires unlocking some special mode. Then you record how you unlock it from load, make a savestate, and start recording from such approved one.
Each savestate represents a complete snapshot of a game memory, that normally changes depending on your actions
gradually. It can be stored (saved) and restored (loaded), and loading it will
instantly bring the game to the saved state.
Competently combined with movies, savestates create a whole new concept -
stable rerecording. That means it gets remembered what frame the state was saved on, what input preceded it, what values some useful counters had at that point. This allows to restore not just the
game state, but the entire
movie state as well. Good emulators also allow undoing saves and loads. The final trait of savestates used for tool-assistance is that we have 10 slots for them (some cases allow even more), not just one.
You should have one savestate which you use extremely often (termed "quicksave" although any savestate is arguably a quicksave). There should be a 2nd savestate trailing the quicksave that can be used for backup. Other savestates are for replaying your movie and/or resuming recording at some point. You should have at least one savestate around the beginning of the level that you are on.
Here is how experienced TASers use their savestate slots.
There are two systems of saveslot switching. The first system is a couple of keys used to change the saveslot number and a couple of keys to save and load. The second system consists of 20 keys, with each pair controlling save and load of a distinct saveslot. Emulators have either the second system, or both. Default keys vary by emulator.
Our emulators internally allow to show some useful info on top of the game window.
- Frame count - Basic value to keep track on, it is helpful to know exactly how many frames your movie has used by a certain point, when comparing different routes or movies.
- Lag count - Second most basic value, allows to determine how much time you lose due to game freezes. Lag can sometimes depend on your actions, and thus be manipulatable.
- Input display - When reviewing movies, it is often helpful to see when keys are pressed. It shows which keys the author pressed in the movie as it is played. You can figure out macros used for tricks. It also helps during recording to see which buttons registered during a frame.
Autofire (turbo-buttons emulation) causes the emulator to press a designated button every second frame. Autohold causes the emulator to press the button every frame. There may be many other types of autofire options.
Autofire is strictly unnecessary for making TASes, as frame advance is the most precise form of slow motion (lag or some limit can break autofire patterns). Autohold may be necessary when pressing a mass of keys that will likely cause some not to register (depends on a keyboard).
for the ones that need quite some work to get working, but offer new levels of precision and abstraction.