Typically, an emulator is provided when a popular hardware device becomes outdated and no longer marketed but legacy application s exist that still need to communicate with the older device. The practice of using an emulator to make an older program work with a new end-use device is called terminal emulation.