ttyrec is a program or its file format capable of recording the TTY output of a text-mode program together with timestamps and then replaying it.

A NetHack recording being replayed using termrec

It is widely used for example in the NetHack community for storing game replays.

It is similar to the script command, but also allows for pausing, slowing down or speeding up playback. It can also stream the recording on the network and be used to transfer files with uudecode.[1]

Recorders and players edit

  • original ttyrec[1] (Unix)
  • Term::TtyRec[2] (Perl)
  • Term::TtyRec::Plus[3] (Perl)
  • Tie::Handle::TtyRec[4] (Perl)
  • termrec[5] (Win32, Unix)

Playback only edit

  • TTYPLAYER[6] (Java)
  • IPBT[7] (Unix)

Technical file format specification edit

Each chunk consists of a header using 32bit unsigned little-endian numbers:

  • sec – seconds, either since the beginning of the recording (0-based) or since the Unix epoch
  • usec – 0..999999 microseconds
  • len – length of the payload

and the actual payload written as text with vt100 control codes.

The format does not contain any information about the character set used nor about the terminal size needed to play back the file. termrec will inject this information as \e%G for UTF-8 or \e%@ for not UTF-8 and as \e[8;Y;Xt for size, but not all players will understand these codes.

Related formats edit

References edit

  1. ^ a b "Ttyrec: A tty recorder". Archived from the original on 2007-07-30. Retrieved 2006-07-06.
  2. ^ "Term::TtyRec - handles ttyrec data - metacpan.org". Archived from the original on 2021-10-27. Retrieved 2013-09-16.
  3. ^ "Term::TtyRec::Plus - read a ttyrec - metacpan.org". Archived from the original on 2021-10-27. Retrieved 2013-09-16.
  4. ^ "Tie::Handle::TtyRec - write a ttyrec - metacpan.org". Archived from the original on 2021-10-27. Retrieved 2013-09-16.
  5. ^ "1KB: Software/Termrec". Archived from the original on 2006-07-15. Retrieved 2006-07-06.
  6. ^ "Ttyplayer". Archived from the original on 2012-02-11. Retrieved 2008-04-09.
  7. ^ "IPBT: A high-tech ttyrec player for Unix". Archived from the original on 2006-06-30. Retrieved 2006-07-06.
  8. ^ "Nethack Recorder/Player Version 1.0". Archived from the original on 2006-06-21. Retrieved 2006-07-06.
  9. ^ "#68556 - [patch] adding timings to script - Debian Bug report logs". Archived from the original on 2019-04-10. Retrieved 2014-06-13.

External links edit