IPBT
IPBT is a ttyrec player written by Simon Tatham, author of PuTTY. It is easiest to run on Unix, but can be made to work on other operating systems. The name is an acronym, expanding into It's Play-Back Time.
There are several good reasons to use IPBT: it allows you to rewind files, it allows you to play at linear or logarithmic speeds, it allows you to jump to specific frames. The disadvantage is that IPBT must load the entire ttyrec file before it begins play; this is less of a problem for NetHack than for large, repetitive games like Angband.
Downloading, installing and compiling
<<<This is for an older version and the download link no longer works. Current version requires cmake, so installation steps are different>>
You will need a working compiler and related utilities. This includes at least gcc and make. You will also need the ncurses headers. On Debian, Ubuntu, and some other distributions, they are in the package libncurses5-dev.
Download the latest version of IPBT from http://www.chiark.greenend.org.uk/~sgtatham/ipbt/ (direct link), unarchive, and make:
$ wget https://www.chiark.greenend.org.uk/~sgtatham/ipbt/ipbt-20190601.d1519e0.tar.gz $ tar zxfv ipbt-20190601.d1519e0.tar.gz $ cd ipbt-20190601.d1519e0/ $ ./configure $ make
You can now run IPBT from the current directory:
./ipbt <ttyrecfile>
Here are the commands; most of them are case insensitive.
* `q' quits IPBT. * Space (or '>') moves forward by a frame. Prefix it with a number to skip multiple frames at a time. * `b' (or '<') moves back by a frame. Prefix it with a number to move backwards by multiple frames at a time. * `o' toggles the on-screen display, which shows the current status of ipbt (such as frame number and play speed). * `L' toggles logarithmic time compression (which has little effect on small delays but massively compresses long ones). * Typing a number followed by `x' causes play to proceed at that many times normal speed (e.g. `3x' means play at triple speed). Typing just `x' is equivalent to `1x': it restores normal speed. * `X' is like `x', but slows down rather than speeding up: `2X' means half speed and `3X' means one third speed. `X' on its own restores normal speed, just like `x'. * `g' jumps to the beginning of the animation. Prefixing a number jumps to a particular frame. * `G' jumps to the end of the animation. Prefixing a number jumps to that many frames from the end. * `p' (and also `s', for historical reasons) toggles pause mode. Pause mode is initially enabled. * `/' searches forward. * `?' (or `\') searches backwards. * `n' searches the same string in the same direction. * `N' searches the same string in the opposite direction.
Patches
Eidolos has written a search history feature for ipbt that hasn't (yet?) been incorporated into the main build. Get it at http://sartak.katron.org/misc/ipbt_search_history.diff. Press the up or down keys to scroll through your history while typing a search query.