IPBT

From NetHackWiki
Jump to navigation Jump to search

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.