Tool-assisted game movies
When human skills are just not enough


Screenshots are arguably second only to encodes in importance for a site publication - they are generally the first thing a viewer sees of a particular publication, well before watching it. As such, assigning quality screenshots to our publications is essential.

This page explains how to:

Table of contents [expand all] [collapse all]

Snapshots when using Windows

TODO: For each emulator specify what on screen items need to be taken off before taking the shot (frame counter, lag counter, messages, etc)

Note: This information applies only to latest version of each emulator. Make sure you acquire the latest version.

  • PNG format
  • Default hotkey: F12
  • Default directory .\snaps

  • PNG format
  • Default hotkey: F12
  • Default directory: same directory as the ROM

There is a frame delay when pressing F12 and when Snes9x actually takes the screenshot. So if you want a screenshot on frame N, it must be paused displaying frame N-1 and polling for frame N. Then press F12, then frame advance, to capture the screenshot.

  • JPG format
  • Default hotkey: F12
  • Default directory: .\ScreenShots

  • PNG format
  • Default hotkey: F12
  • Default directory: same directory as the ROM

  • PNG format
  • Default hotkey: F12
  • Default directory: none, you will have to specify when making the screenshot.

  • PNG format
  • Default hotkey: SHIFT + Backspace
  • Default directory: Same as the .exe

  • PNG format
  • Default hotkey: F12
  • Default directory: .\screenshots

  • PNG format
  • Default hotkey: F12
  • Default directory: .\snaps

  • PNG format
  • Default hotkey: F12
  • Default directory: same location as the .exe

  • PNG format
  • Default hotkey: F12
  • Default directory: .\snap

  • PNG format
  • Default hotkey: F12
  • Default directory: .\shots
  • On-screen items to take off: uncheck menu items Graphics->Show Button States and Graphics->Show Movie Frame Counter

  • PNG format
  • Default hotkey: p
  • Default directory: .

Snapshots when using Linux

In Linux, when you install Imagemagick, you can use import to take screenshots of any window. Example:
  import tmp.png
Then click the window to take screenshot from, and it beeps twice when the file is ready. You can also select a region from screen by pressing the button somewhere and dragging the cursor to mark the corners of the region.

If you use KDE, there is a program which comes with most KDE installs called KSnapshot. It can take images from any window or area, take images on a timer, and remove window decorations automatically. Simply open it, and have it take a snapshot of the active window with the remove decorations box checked.

The Gimp can also take screenshots (File -> Create -> Screenshot). Select "take screenshot of a single window" and uncheck "include window decoration".

If your snapshots contains menubars and other irrelevant things, use an image manipulation program such as The GIMP to remove them.

Note that the programs mentioned in this chapter can be used in Windows too.

Snapshots from dumped AVI

This is a more unusual version of obtaining a screenshot and depends on the video codec you used to obtain your video dump; however, done right it is the easiest method of doing so, especially in cases where you are preparing to, or have, encoded the video.

It is suggested that you dump the AVI to a lossless RGB based codec (Windows users can use the CamStudio or Lagarith codecs, frequently used by our encoders; FFV1 can also be used if set to the BGR32 colorspace) and open the file in any player that can show the video in its original native resolution (for Windows users, VirtualDub is suggested). Find a frame that is publishable quality, screencap the screen (or the frame if the player supports it), crop the result properly and save it as a PNG in your favorite image editor.

Convert to PNG

BMP files should be converted into PNG format. You can use bmp2png downloadable at: http://hp.vector.co.jp/authors/VA010446/b2p-home/index.html, or you can use an image manipulation program such as The GIMP.

If you are going to optimise your screenshot, however, leave it as a BMP; PNGOUT is perfectly capable of reading BMP files (see below).


The screenshots must be of certain resolution (depending on the system).

Admin-level users have an option to override these resolution limits (for games that have odd resolutions, for multi-runs, etc...)

System Resolution Alternative
NES/FDS/SNES/SGB 256*224 256*240
N64 320*240 320*224
GC/Wii 320*240 384x216
VBoy 384*224 -
GB/GBC 160*144 -
GBA 240*160 -
DS 256*384 256*192
SMS 256*192 256*224
Genesis/SegaCD/32X 320*224 320*240
Saturn 320*240 -
GG 160*144 -
PSX 320*240 320*224
PCE/PCECD/PCFX 256*224 256*240
Lynx/WSWAN/NGP 256*224 256*240
Arcade 384*224 -
DOS 320*200 320*240
MSX/Windows 320*240 -

Minimizing the file size

Presently, there is a limit of 45k for screenshot files - this is primarily because there are some movie list pages which display large numbers of screenshots, and those can take a long time and a large amount of bandwidth to display as it is.

We generally prefer lossless screenshots, and the below techniques are usually sufficient to achieve file sizes well within the target range. For some systems (particularly 3D systems such as N64 and PSX) the images may be more complex than this; in those cases, we accept a certain degree of lossiness in screenshots. Historically, this has been in the form of JPEG screenshots saved with no subsampling and as high a quality setting as can be used while staying within that limit; more recently there has been an effort to use tools such as Animmerger to reduce the colour palette of the image while still preserving the benefits of PNG as an image format. It is recommended that you contact a publisher before resorting to these means.


We use OptiPNG (to ensure the minimum amount of colours are stored in the PNG's palette) followed by PNGOUT to compress our PNG files. This algorithm outperforms programs such as AdvPNG in almost all cases.

To get optimal compression, use several random trials (-r) and choose whichever result yields the smallest compression; the scripts and utilities below employ this approach. Alternatively, you can try using the first 15 powers of 2 in the block split threshold (-b) option for your trials; however in practice this has yielded worse results.

DeflOpt (Linux/i386 version) can be used optionally at the end to reduce the file just those few bytes more (it almost always does).


Download the ScreenshotCompressor from our TASTools project page, in addition to OptiPNG, PNGOUT and DeflOpt. Run your image through OptiPNG first, then follow the instructions packaged with the tool (it is as simple as drag and drop). This will use a configurable number of random trials in the spirit of the script in the Linux section below.

Optional reading: There exists a tutorial about PNGOUT for Windows users.


Assuming you have optipng, pngout, and deflopt in your $PATH, you can run this shell script to compress pngs under Linux. Utilizes several random trials to get the best possible compression, more trials = more compression, works best on uncompressed source bmps or png.):

Run as:

./nameofscript.sh screenshot.png 100


  • "screenshot.png" is the name of the screenshot you want to compress, and
  • "100" is the number of random trials you want to test.


  cp $name.png $name-best.png
  optipng $name-best.png
  for ((i=1; i<=$2; i++))
    pngout -r -y $name.png $name-trial.png
    DeflOpt $name-trial.png
    du --bytes $name-best.png $name-trial.png | sort -n | awk 'BEGIN {ORS=" "} {print $2}' | xargs cp
Note that PNGOUT can read BMP files directly. You don't need to convert them first. Also note that in some cases PNGOUT produces PNG files that don't work on all platforms (due to broken zlib implementations on those platforms); this is rare in practice.


3D and other modern games usually have too complicated picture to fit into the 45kB limit allocated for a publication screenshot. This forces us to use JPG format instead of PNG, but still do some work to minimize the color loss.

Load up the image in GIMP, export it to JPEG. Then set preview to on, chroma to 4:4:4 and DCT to floating-point and adjust the quality (usually to the maximum that gives under 45kB).

Combined RSS Feed
Screenshots last edited by adelikat on 2021-11-14 23:34:10
Page info and history | Latest diff | List referrers | View Source