TASVideos

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

Encoding Guide / Video Dumping

<< Encoding Guide

Table of contents [expand all] [collapse all]

Introduction

This page assumes you are already knowledgeable about playback of movies in the emulator. If not, consult Emulator Resources for advice on how to set that up first.

According to the Encoder Guidelines, your emulator should be configured to record video at its native resolution and at full frame rate. The settings you need to do this are listed in the following sections.

Common settings

Dumps should be made with a lossless codec using the RGB colorspace. Under Windows, most of the emulators in use on the site use VFW for their video dumping process. Popular VFW choices include CamStudio codec, and Lagarith. These lossless RGB dumps can also be used for taking screenshots.

BizHawk

Target settings

Resolution Sound
variable 44.1KHz stereo

Guide

System specific settings
  • SMS
    • Enable Overscan.
    • Enable Sprite Limit
    • Enable FM Chip if it's a Japanese game (unless this causes a desync)
    • Disable Overclock
    • Disable Stereo Separation.
  • PCE
    • Enable Sprite Limit.
  • NES
    • Disable Allow more than 8 sprites
    • Disable Clip left and right.
    • Set drawing area to (0-239) for PAL, and to (8-231) for NTSC.
  • GameBoy
    • Use the greyscale palette.

Windows

  1. Select Speed/Skip to 0 (never skip)
  2. Open the ROM.
  3. Pause emulation. (Pause key)
  4. Load the movie.
  5. Select File -> AVI/WAV -> Record AVI.
  6. Choose a file name (such as raw.avi), and choose a lossless RGB codec of your choice (see Common settings for suggestions). Click OK.
  7. Unpause emulation. At this point, audio and video are now being captured.
  8. When you reach the desired end point, select File -> AVI/WAV -> Stop AVI.
  9. For some systems, there will be multiple output files, one per resolution; these must be combined as in PSXjin.

Linux
BizHawk doesn't run on Linux, for now.

Dega

Target settings

Resolution Sound
256x192 (SMS) 44.1KHz mono
160x144 (GG) 44.1KHz stereo

Guide

Windows
Dega's built-in VFW support is broken (causes audio desyncs), so external capture software is required; for this purpose, .kkapture is used for its ability to preserve all of the frames in the input at the expected frame rate.

  1. Open .kkapture.
  2. Under Demo, select the dega executable.
  3. Under target, select the desired target AVI file (such as raw.avi).
  4. Set the FPS to 60 for NTSC games or 50 for PAL games.
  5. Select kkapture!. This will start Dega.
  6. Make sure Sound -> Enhanced PSG is unchecked.
  7. If applicable, check Sound -> FM chip; use of this is normally specified in the submission text.
  8. Load the ROM and start movie playback.
  9. At the appropriate end point, close Dega.

Linux

  1. Play back the movie, noting the desired end frame of the video recording.
  2. Calculate the number of frames past the end of the movie the target end frame is (the length of the movie in frames is specified at the end of the submission text).
  3. Assuming the movie file is movie.mmv and the ROM filename is rom.sms, invoke degavi with the following command line:
dega -f <number from 2> -m movie.mmv -o raw.avi rom.sms -- -oac pcm -ovc lavc -lavcopts vcodec=ffv1:format=bgr32

degavi will terminate automatically when dumping is done, yielding raw.avi.

DeSmuME

Target settings

Resolution Sound
256x384 44.1KHz stereo

Guide

Windows
  1. Select Config -> 3D Settings and select SoftRasterizer as the Renderer.
  2. Select Config -> Frame Skip -> 0.
  3. Optionally, uncheck Config -> Frame Skip -> Limit framerate.
  4. Open the ROM.
  5. Pause emulation. (Pause key)
  6. Load the movie.
  7. Select File -> Record AVI.
  8. Choose a file name (such as raw.avi), and choose a lossless RGB codec of your choice (see Common settings for suggestions). Click OK.
  9. Unpause emulation. At this point, audio and video are now being captured.
  10. When you reach the desired end point, select File -> Stop AVI.

Linux
Linux builds of DeSmume do not, at present, have video capture ability. You will need to use Wine.

Dolphin

Target Settings

Resolution Sound
variable, 4:3 or 16:9 32KHz or 48KHz stereo

Prerequisites

Make sure you get the correct Dolphin version, which should be stated in the submission notes, as different releases are neither sync-stable nor sync-compatible with each other. In versions before 4.0-3595, it is obligatory to fix Dolphin's broken video and audio dumping feature prior to obtaining a capture. Either rely on patched binaries or, as a Windows user, try patching yourself:
https://github.com/nattthebear/dolphin-avsync/branches
https://github.com/RisingFog/dolphin-avsync/releases
For Linux systems Ilari has created a set of patches providing similar functionality; ask on IRC if you need them. In any case applying the patches will likely result in merge conflicts, that have to be resolved manually. Ignoring this step will result in broken audio/video dumps on versions older than 4.0-3595! Some movies may require functionality (like memory card or disk switching) for playback that is not part of any official release. In these cases it is advisable to check the submission notes and discussion thread for provided patches or binaries.

Hint: Before starting the capturing process try to fully sync the run (Follow steps 1, 2 or 3, 7 (without Dump Audio) and 8). This is to make sure possible frustration caused by unnoticed late desyncs is kept to a minimum. Important: Sometimes a movie will desync on a second playback due to files being present that were created on first playback. Keep in mind that these have to be deleted before starting the capture! Check the submission details or discussion thread to be aware of such causes of desync. Should you get graphical glitches (missing/black or otherwise corrupted textures) try a different backend (e.g. OpenGL instead of DirectX) if possible.

Note: Windows Dolphin avsync versions older than 4.0-1711 crash after splitting the first 2GB segment. To overcome that, use one of these:

  • Ask the person who made a build for you to move the piece of code that closes the timecodes file (AVIDump.cpp) from AVIDump::CloseFile() to AVIDump::Stop().
  • Use x264vfw codec and configure it to output a lossless single-segment file (seeking won't break):
    • Basic -> last (nameless) drop-down menu -> Keep/Accept only RGB.
    • Check Zero latency.
    • Rate control -> Single pass - lossless.
    • Output -> Output mode -> File.
    • Output file -> specify the global path.
TODO: find out if framedump0.avi that Dolphin still creates can be ignored with no harm.
  • Use Pipedec.
  • Build Dolphin yourself, applying the fix from method 2. Use these steps then.

Guide

The following instructions assume you are using either natt's or Ilari's AVhack. Menu structure as well as names of menu items may change between releases. To avoid unnecessary hassle ensure you fulfill the assumptions made in step 9, first sentence.
  1. Navigate to Options->Configure. Uncheck Enable Dual Core and Enable Idle Skipping. Set Framelimit to off. Make sure the CPU emulator engine is set to JIT Recompiler.
  2. For some Gamecube games: Navigate to Options->Configure->Gamecube and check Skip BIOS. Some movies require a memory card inserted, while others expect none to be present. Set the Slot options accordingly.
  3. For some Wii games: Navigate to Options->Wiimote Settings. Click Configure for Wiimote 1 and Clear. Also choose or unset the extension controller. These instructions are not required for all games.
  4. Go to Options->Graphics Settings -> Hacks, disable External Frame Buffer (related to movie sync), enable EFB Copies and set it to RAM (and enable Cache if you wish).
  5. Dumping is to be done on highest graphical settings. Navigate to Options->Graphics Settings and check Auto adjust Window Size. From that window navigate to Enhancements and set Internal Resolution to 2x Native, Anti-Aliasing to 16xQ CSAA or equivalent and Anisotropic Filtering to 16x (anisotropic filtering leads to graphical glitches with some games. Leave it set to 1x if this is the case.)
    1. Linux specifics: For games displaying their content in 16:9 it may be necessary to force widescreen mode at this point: Options->Graphics Settings, set Aspect Ratio to Force 16:9. This however will not suffice because Dolphin will always resize the window to a 4:3 resolution and as the window dimensions determine the video resolution, you have to resize the window to the correct resolution (2x the native 16:9 resolution, i.e. 1536x864) yourself. Ensure the window content (that is without titlebar and other decoration by your window manager) has the correct dimensions with e.g. xwininfo.
    2. TODO: Windows specifics: Does the same apply to Windows?
  6. Start the game without any dumping feature enabled. This way Dolphin will resize its window to the correct resolution. Now Dolphin has to be configured to write audio and video data to disk.
  7. Navigate to Options->Graphics Settings and uncheck Auto-adjust Window Size. From that window navigate to Enhancements and set Internal Resolution to 4x Native. Check Dump Frames on the Advanced tab.
    1. Linux specifics: Check Frame Dumps use FFV1 as well. The Dump Frames option will make Dolphin dump audio too.
  8. Navigate to Options->DSP Settings and choose DSP LLE recompiler as DSP emulator engine. This type of sound emulation requires dsp_coef.bin and dsp_rom.bin to be present in the User\GC\ on Windows or $HOME/.dolphin-emu/GC on Linux directory or you will receive an error message. On Windows check Dump Audio and set Audio Backend to "No audio output" (sound will be dumped nevertheless).
  9. Assuming the game is in your library and you have started it at least once, choose Play Recording from the Emulation menu and select the movie file to be captured. On Windows select a lossless RGB video codec of your choice and click Ok. Audio and video are now being captured. Should the emulator crash at this point examine the User\Dump\ directory of your Dolphin installation ($HOME/.dolphin-emu/GC on Linux) and create the folders Audio and Frames if either of those are missing.
    1. Linux specifics: Important: During the entire video capture no window must overlap with the one showing the actual gameplay, so it is wise to check Keep window on top in Options->Graphics Settings.
  10. To stop the capturing process at the desired end point click Emulation->Stop.

Read on if you want to find out how to deal with the files that have been created for encoding: Dolphin encoding guide

DOOM

The guide is here:
http://tasvideos.org/forum/viewtopic.php?t=18887

Famtasia

  * Dacicus doesn't understand why so many people are having trouble with Famtasia
  <Grunt> Famtasia *is* trouble.

Target Settings

Resolution Sound
256x224 (NTSC), 256x240 (PAL) 44.1kHz mono

WARNING: Famtasia dumps video RAW uncompressed, and in 2gb segments. Each segment has considerable audio lag.

  1. Make sure you have the patched version. The 60 FPS, Windows fix, 240 scanlines[10], and AVI recording patches are required; the Audio logger must not be selected; and the others are optional.
  2. Start Famtasia
  3. Config -> Display -> Option: Resolution should be "Window Mode," Size x1, Drawing method should be "Window 8bpp,x1 size"
  4. Config -> Display -> Option: Check "Disable system messages"
  5. Config -> Speed: Refresh should be 1, Auto unchecked, ExecSpeed 100, and Windows Occupation all the way to the left
  6. Config -> Sound: No Reverberation should be checked, Sampling Rate should be 44,100Hz 8Bits
  7. Open Rom (It will instantly start recording upon loading the ROM, you may consider waiting a few seconds for the intro to change to make cropping it off easier)
  8. Edit -> Movie -> Play -> Play Movie -> click "..." and select the movie you want to record

Fixing the audio delay using VDub

  1. Open the first segment (usually recording00.avi)
  2. Video -> Compression -> Select Lagarith/CamStudio/your favorite lossless RGB codec -> Click OK
  3. Fix display using the instructions below for NTSC or PAL, as appropriate
  4. Save as something else (e.g., recording00_fixed.avi). Somehow, this magically fixes the audio.
  5. Repeat for each segment

Fixing the display using VDub (NTSC)

  1. Video -> Filters -> Click "Add..." Select "null transform" and click OK.
  2. With "null transform" selected, click "Cropping."
  3. Set Y1 offset to 7 and Y2 offset to 9. Click OK twice.

Fixing the display using VDub (PAL)

  1. Download Emiliano Ferrari's Shift filter and extract the ef_shift.vdf file into VDub's plugins directory. (Note: Simon Walters' ShiftWrap filter can also do this, but the processing settings aren't saved correctly for batch processing.)
  2. Video -> Filters -> Click "Add..."
  3. Select "Shift" in the filters list and click OK. (If it doesn't appear in the list, select "Load..." and navigate to the location of the ef_shift.vdf file.)
  4. In the Shift configuration dialog, check "Repeat the picture."
  5. Enter 1 into the Y text box, or click the down arrow once. Click OK twice.

FCEU/FCEUX

Target settings

Resolution Sound
256x224 (NTSC), 256x240 (PAL) 48KHz mono

Guide

Windows
  1. Start FCEU or FCEUX.
  2. Select Config -> Video, and check Disable hardware acceleration (lower left corner).
  3. Select Config -> Sound. Set Rate to 48000 and Quality to high. Set all volume controls to their maximum.
  4. Open the ROM for the movie.
  5. Set the emulator speed to about 400% (= key); how fast you should go is limited only by the speed of your computer.
  6. Pause emulation (Pause key).
  7. Load the target movie file.
  8. Select File -> AVI/Wav -> Record AVI. Choose a file name (such as raw.avi), and choose a lossless RGB codec of your choice (see Common settings for suggestions). Click OK.
  9. Unpause emulation; audio and video are now being captured.
  10. Once you have reached your desired capture end point (usually at the end of credits), select File -> AVI/Wav -> Stop AVI.

Linux
Assuming the ROM is rom.nes and the fm2 is movie.fm2, issue the following command:

fceux --subtitles 0 --slstart 0 --slend 239 --xscale 1 --yscale 1 --special 0 --pal 0 --sound 1 --soundq 1 --soundrate 48000 --volume 150 --trianglevol 256 --square1vol 256 --square2vol 256 --noisevol 256 --pcmvol 256 --mute 1 --nospritelim 1 --no-config 1 --videolog "mencoder - -o raw.avi -ovc lavc -lavcopts vcodec=ffv1:format=bgr32 -oac pcm -noskip -nocache -mc 0 NESVSETTINGS" --playmov movie.fm2 rom.nes
The --videolog argument for capturing with a more modern tool like ffmpeg is:
--videolog "ffmpeg -f s16le -ar 48000 -channels 1 -i /path/to/soundpipe/s.log -f rawvideo -r 60.0998 -s 256x224 -pix_fmt bgr24 -i - -c:a pcm_s16le -c:v libx264rgb -qp 0 -pix_fmt rgb24 output.mkv"
Note: Figure out the /path/to/soundpipe/ by setting --videolog "NESVSETTINGS" once.

Once you have reached your desired capture end point (usually at the end of credits), close the emulator.

In r3325 we added --movielength int_number_of_frames (experimental) which should automatically terminate the capture along with the emulator. Please let someone know whether this works out for you.

In either case (linux or windows) you could try incorporating this one-liner lua script which should be self-explanatory:

while true do if movie.mode() == "playback" then emu.frameadvance() else os.exit() end end

WARNING: Dumping video for publications usually requires a human to make sure it's safe to stop dumping, as the game usually keeps providing valuable content after the movie has ended.

  • If capturing from FCEU 0.98.12 is needed for any reason, see that post.

Final Burn Alpha

Target settings

Resolution Sound
(variable)[6] 48KHz stereo

Guide

WARNING: fba-rr-v003c does not automatically split the video file. It will dump video until the file reaches 4GB, after which the file will be invalid. To overcome this bug, track the size of the dumped video (update the folder containing it and hover the cursor), pause the emulator before 2GB is reached, stop dumping and then start again.

Windows

  1. Select Audio -> Plugin Options -> 48000Hz samplerate.
  2. Load the ROM.
  3. Pause emulation (Pause key).
  4. Start movie playback.
  5. Disable input display (, key) and frame display (. key).
  6. Select Game -> Movie -> Record AVI. Choose a file name (such as raw.avi), and choose a lossless RGB codec of your choice (see Common settings for suggestions). Click OK.
  7. Unpause emulation. You are now capturing audio/video.
  8. When you reach the desired end point, select Game -> Movie -> Stop AVI.

Linux
TODO

Gens

Target settings

Resolution Sound
320x224 (NTSC), 320x240 (PAL), 256x224 (low resolution mode) 44.1KHz stereo

WARNING: When Gens splits videos at 2GB, a video frame is lost at each split. There is no correct way to fix this, other than to use a lossless codec which compresses well enough to avoid making the split in the first place.

Guide

Windows
  1. Select Graphics -> Frame Skip -> 0.
  2. Make sure Graphics -> VSync is unchecked.
  3. Make sure Sound -> PSG High Quality is unchecked.[9] This option is not present in the latest svn.
  4. If the game uses the low resolution mode only, and if you are going to crop the black borders while encoding, uncheck Graphics -> Proper Aspect Ratio in low-resolution mode.
  5. If the game is a Sega CD game, uncheck Options -> General -> Show Sega-CD LED.
  6. Check Tools -> AVI -> Clean AVI screen.
  7. Uncheck Tools -> AVI -> Sync AVI with movie.
  8. Uncheck Options -> General... -> Message -> Enable.
  9. Uncheck Sound -> Soften Filter.
  10. Open the ROM.
  11. Pause emulation (Pause key).
  12. Start movie playback.
  13. Select Tools -> AVI -> Start AVI dump. Choose a file name (such as raw.avi), and choose a lossless RGB codec of your choice (see Common settings for suggestions). Click OK.
  14. Toggle Turbo emulation speed, Shift+Tab by default (only in the latest svn build)
  15. Unpause emulation. You are now capturing audio/video.
  16. When you reach the desired end point, select Tools -> AVI -> Stop AVI dump.

Linux
TODO

Hourglass

Target settings

Resolution Sound
(variable) (variable)

Guide

Windows
  1. Figure out the options to get the run to sync (must be mentioned in the submission if they aren't default).
  2. Movie File -> Browse. Pick the TAS file.
  3. Game Executable -> Browse. Select the game executable.
  4. AVI -> check Capture Video and Audio.
  5. Check Fast-Forward.
  6. Run and Play Existing Movie.
It will prompt you to locate the output video and to select the codec. When it's over, press Stop Playing.

JPC-RR

Target settings

Resolution Sound
(variable) [7] (variable) [8]

WARNING: JPC-RR encoding is quite different from other emulators; if you are new to encoding, you should try working with different platforms first.

Guide

lsnes

Target settings

Resolution Sound
256/512x224/240/448/480 44.1 KHz stereo

Guide

  1. Open the emulator, load the ROM.
  2. Select load movie/savestate tab, select the movie, check start paused and hit ok.
  3. Set avi-soundrate to 5 (settings, advanced tab, or 'set-setting avi-soundrate 5')
  4. Select AVI capture (Camstudio / PCM) from capture menu.
  5. Set speed to turbo (or other desired speed).
  6. If you want to, you can mute audio by unchecking Config->Sounds enabled. This won't affect dumped audio.
  7. Unpause the emulator
  8. When reaching the end, select end avi dump.
  9. Close the emulator.

  • On Linux, TSCC can be used instead of Camstudio (it is usually bit faster and compresses better).
    • The reason not to use that on Windows is the difficulty decoding it using VfW.

MAME-RR

Target settings

Resolution Sound
Variable 48KHz

All the settings should be default. Just use the following command line (assuming your ROM name is myrom.zip, and your movie name is myrom.mar):
mame-rr myrom -aviwrite myrom.avi -playback myrom.mar

Unpause the emulator, since it autopauses to prevent timestamp desync.

NOTE: mame-rr v0.1-beta reports the intended aspect ratio for each game, make sure to use it when encoding.
NOTE: mame-rr v0.1-beta splits the dump at 2GB, but might desync if the run was made on -alpha, so check if it syncs and use -beta. Splitting is needed to avoid the annoyance with fixing the broken frames at 2GB border.

Mednafen

Target settings

Resolution Sound
(variable)[4] 44.1KHz stereo

Guide

Windows
TODO

Linux
TODO

Mupen64

Target settings

Resolution Sound
variable, normally 320x240 (or multiple thereof)[2] 44.1KHz stereo

WARNING: Mupen64 is notoriously unstable and difficult to work with. If you are new to encoding, you should try working with different platforms first.

http://code.google.com/p/glidehqplusglitch64/downloads/detail?name=Glide64_Final.zip
http://rustedlogic.net/wikiold/index.php?title=Nintendo_64_Emulation_plugins

Guide

Windows
Mupen64's built-in dumping is very unreliable and should not be used at all. Aktan has developed the following alternate dumping method using a modified build of .kkapture. It is recommended, where possible, to use the Glide64 'Final' video plugin and Azimer's audio plugin (both plugins are mirrored on that page); some segments of the following set of instructions may assume the use of those plugins.
  1. Make a backup of your plugin directory so that your old settings are preserved, as necessary. Also backup glide3x.dll in your Mupen64 root directory.
  2. Place the above plugins into your Mupen plugins directory, and glide3x.dll from the "wrapper" directory in the Glide64 package into the Mupen64 base directory.
  3. Edit Plugins/Glide64.ini; change instances of "filtering = 1" to "filtering = 0", and "hotkeys = 1" to "hotkeys = 0".
  4. Start Mupen.
  5. Options -> Settings -> General -> uncheck "Limit FPS (auto)".
  6. Options -> Settings -> Config Plugins -> select Glide64 Napalm WX as the video plugin and Azimer's audio plugin for audio.
  7. Go into the Glide64 configuration dialogue, check "show advanced emulation options", and close and reopen the dialogue.
  8. Set video options as seen here and here. (Note: "use frame buffer objects" may be necessary for some video cards).
  9. Select a video resolution that is a multiple of 320x240 (or 342x256), but smaller than your screen size (antialiasing).
  10. Load your game ROM, and observe the Glide64 text at the bottom of the screen. You should see "Filtering: Automatic" specified. If it's not, you will need to exit Mupen64 and edit Glide64.ini as described in step 3.
  11. Utilities -> Movies -> Start Movie Playback. Select the movie to play back, check "Open Read-Only", and enter 1 for "Pause at frame:". Click OK. The movie should now be paused on the first frame.
  12. Make a save state.
  13. Close Mupen.
  14. Check that there are no .eep files for your game in the Save directory in the Mupen root directory (playback from .kkapture as follows doesn't clear these files out, and their presence can cause desyncs).
  15. Start .kkapture; configure it as seen here. Note in particular the frame rate (120fps); this is to ensure that all frames in 60fps segments are captured. There will be a lot of duplicate frames in the output; as such, use of a codec such as Lagarith that can store null frames is suggested.
  16. Set "Demo" to your Mupen executable and set "Target" to a target filename, then click "kkapture!". Mupen will start.
  17. Load the game ROM; wait for the Glide64 text to disappear (and ideally for a recognisable action to appear on the screen, so that you know when playback of the movie starts).
  18. Pause Mupen.
  19. Utilities -> Movies -> Start Movie Playback; select the movie as earlier, check "Open Read-Only", and click OK (don't specify a pause frame).
  20. Load your save state from earlier.
  21. Unpause Mupen - you are now capturing. Do not attempt to move any part of the emulator window off-screen - it will ruin rendering on the off-screen area.
  22. At the end of desired playback, highlight a non-Mupen window and press the right CTRL key. (WARNING: this means you can't use right CTRL during video capture!) Mupen will exit upon doing so.

Some notes on this method:

  1. The capture may have an extra 20 pixel border at the bottom, which should be cropped out.
  2. The audio plugin may add a audio delay of around 192 ms (could be a function of the sound card).
  3. Duplicate frame removal is strongly recommended for captures using this method, given the number of duplicate frames in the video dump.
  4. The sound output may not be 44.1kHz. If it is not, it will generally be a very odd sampling rate, and you may resample the sound track to be 44.1kHz.
  5. On certain games, the capture FPS can be set to 60 FPS for a smoother capture.

Linux
There is no known completely reliable way to get stock builds of Mupen to play back effectively on Linux with video dumping. Some encoders have reported success with Wine; for others it fails miserably. At least two encoders have modified builds of Mupen in order to dump video reliably; ask on the forums for more information.

openMSX

Target settings

Resolution Sound
640x480 44.1 KHz mono/stereo

openMSX dumps video with the lossless ZMBV (Zipped Motion-Blocks Video) codec and audio in uncompressed WAV. The ZMBV encoder is built in (and will thus work on any platform). On Windows, openMSX comes with a separate codec dll to be able to play the resulting AVI on any installed media player. Make you sure you install that dll to be able to import the AVI file to AVISynth and preview it in VirtualDub.

The resolution used in this guide is 480p, but some games can safely be downscaled to 240p. Here's a list of resolutions MSX screen modes use. Run the replay as described below and type toggle_info_panel in openMSX internal console, that will tell you the mode used by the game (only the mode used for actual gameplay is relevant here).

Guide

IMPORTANT NOTES:
  • The replay file doesn't necessarily have to be on C:\Documents and Settings\<user>\My Documents\openMSX\replays (for Windows XP) or on C:\Users\<user>\Documents\openMSX\replays (for Vista/Windows 7) or on /home (Users if you're using a Mac)/<user>/.openMSX/replays (for Linux / Mac) (where <user> is your user folder), but it's highly recommended that the replay is in that folder, as it'll be a bit easier to load the replay file.
  • As openMSX will use the exact same machine as specified in the replay file, you also need the system ROMs for that machine, which is explained in the openMSX Setup Guide. Of course, we don't provide them here.
  • If you get unlucky enough to experience openmsx switch the framerate on the fly during video recording, it'd cause an av desync. To fight it, make use of this tcl script, it would split the file on each fps change.

Windows

The easiest way is to use this script.

@echo off
cd /d "%~dp0"
echo record start -doublesize ./movie.avi > dump.tcl
openmsx %1 -script dump.tcl

Save this as a batch file (something.bat) near your openmsx.exe, put the movie there too, and drag'n'drop the movie onto the script. movie.avi dump will appear in the same directory. When you're done, just close the emulator, it will properly stop the video recording.

The following is the old, manual way.

  1. Method 1: load manually from the console
    1. Open Catapult (openMSX GUI) or openMSX (non-GUI).
    2. In case you started Catapult, start openMSX with the 'Start' button.
    3. In the openMSX window where the emulation is running, hit Pause to pause emulation.
    4. Hit F10 to bring up the openMSX console.
    5. Type reverse loadreplay -viewonly <replay> (where <replay> is the replay file you want to dump as AVI), then hit Enter. You can use TAB-completion to find the replay file easier.
  2. Method 2: auto load
    1. Drop the replay on openMSX.exe (or start openMSX from the command line with the replay file as only argument)
    2. In the openMSX window where the emulation is running, hit Pause to pause emulation.
    3. Hit F10 to bring up the openMSX console.
    4. Type reverse goto 0 to jump back to the beginning of the replay
  3. Type record start -doublesize raw (where raw is the file name of the AVI, then hit Enter. You are now capturing audio/video.
    Note: the reason why -doublesize is needed is because some MSX2 modes are 512x212
    Note: it will automatically detect if the currently emulated MSX can output stereo sound or mono sound and use that in the resulting AVI
  4. Unpause emulation. (Pause key)
  5. Hit F9 to speed up emulation (if you don't want to wait for the whole movie to play at normal time).
  6. When you reach the desired end point, pause emulation, type record stop, then hit Enter.
The AVI dump is to be found on C:\Documents and Settings\<user>\My Documents\openMSX\videos (for Windows XP) or on C:\Users\<user>\Documents\openMSX\videos (for Vista/Windows 7) (where <user> is your user folder)

Linux / Mac

  1. Basically the same as for Windows, except that the AVI file is to be found on /home (Users if you're using a Mac)/<user>/.openMSX/videos (where <user> is your user folder).
  2. The hot keys to open the console, pause and speed up emulation are different on Mac, though, see the openMSX User's manual.

If you don't know if the emulated MSX can output mono or stereo sound, open the AVI dump in any media player, e.g. VLC or MPlayer.

This whole guide can also be found (in other words) in the openMSX FAQ part of the manual.

For more information about openMSX, please check the complete openMSX manual.

PCEjin

Target settings

Resolution Sound
(variable)[5] 44.1KHz stereo

Guide

Windows
  1. Load the ROM.
  2. Pause emulation. (Pause key)
  3. Load the movie file.
  4. Select File -> Record AVI. Choose a file name (such as raw.avi), and choose a lossless RGB codec of your choice (see Common settings for suggestions). Click OK.
  5. Unpause emulation. At this point, audio and video are now being captured.
  6. When you reach the desired end point, select File -> Stop AVI.

Linux
PCEjin is Windows-only, but works well with Wine. You may also be able to play back the movie with recent builds of Mednafen (see above).

PCSX

Target settings

Resolution Sound
(variable)[3] 44.1KHz stereo

NOTE: Don't forget to pick the bios. SCPH-1001 for NTSC-U, SCPH-1000 for NTSC-J, SCPH-1002 for PAL. If you have problems, ask the judge or the author.
NOTE: If it's a multi-disc movie, leave the ISO path field in the CD-ROM config blank. That will let you select both discs at proper time. WARNING: PCSX is not particularly stable and requires an unusual video dumping setup. It is not a good first choice of emulator for new encoders.
WARNING: This guide will not produce publication quality captures. Use of Aktan's special methods is required. The automated version of the resync setup can be found here.

Guide

Windows
PCSX's native AVI dumping is broken - it does not result in synchronised sound - so external capture software is required; for this purpose, custom PCSX .kkapture is used for its ability to preserve all of the frames in the input at the expected frame rate.

You may wish to use an alternate sound plugin for improved sound compatibility. The MIDAS plugin has been reported to be sync-compatible with the TAS Sound plugin while offering slightly better sound emulation; alternatively, you can attempt to use the Eternal SPU plugin which offers the best known sound emulation but which does not sync reliably (success has been reported in using it by stitching together video dumps of shorter segments).

You can use the TAS Graphics Plugin's 1:1 mode to determine the normal resolution of the game and force it; once this resolution is set, restore it to scaled mode prior to starting this process. But for 3D games, it's recommended to use an antialiasing GPU plugin by Pete, dump at high resolution and then downscale during encoding (unless you're doing an HD stream).

  1. Configure PCSX's plugins for playback and close PCSX.
  2. Open .kkapture.
  3. Under Demo, select the pcsx executable.
  4. Under Arguments, enter -play movie.pxm (where movie.pxm is the name of the movie file).
  5. Under Target, select the desired target AVI file (such as raw.avi).
  6. Set the FPS to 60 for NTSC games or 50 for PAL games.
  7. Select kkapture!. This will start PCSX and start the dumping process.
  8. Once the desired endpoint is reached, close PCSX.

Linux
PCSX is Windows-only. Further, .kkapture does not work with Wine. There has been at least one report of using a version of glc modified to sync video and capture all frames for a successful PCSX encode in a Linux environment.

PSXjin

Target settings

Resolution Sound
(variable)[3] 44.1KHz stereo

Guide

NOTE: Dumps from PSXjin are slightly wrong. Use this (unofficial) version instead.
NOTE: Don't forget to pick the bios. SCPH-1001 for NTSC-U, SCPH-1000 for NTSC-J, SCPH-1002 for PAL. If you have problems, ask the judge or the author. NOTE: PSXjin doesn't support antialiasing internally, but you can use this build, where it was added.

Windows

  1. Go to Configuration -> Graphics
  2. In Stretching, select 1:1 (faster with some cards)
  3. Uncheck FPS limit
  4. Make sure Use Frame skipping is unchecked.
  5. Click OK.
  6. Go to Configuration -> Sound
  7. In Mode, select 2: Synchronous (tas safe, buffering glitches).
  8. Click OK.
  9. Load the ISO by going to File -> Open CD.
  10. Pause emulation. (Pause key)
  11. Select File -> Movie -> Start playback, or press CTRL + R to load a movie file.
  12. Select File -> Record AVI. Choose a file name (such as raw.avi), and a lossless RGB codec of your choice (see Common settings for suggestions). Click OK.
  13. Unpause emulation. At this point, an audio file and multiple video files (one per resolution change) are now being captured
  14. When you reach the desired end point, select File -> Stop AVI
  15. You'll need to resize each video part into the largest width and largest height captured.

Linux
TODO

Snes9x

Target settings

Resolution Sound
256x224 (NTSC), 256x240 (PAL) 48KHz stereo[1]

Guide

Windows
Note: This applies to v1.43 v17 and most revisions of v1.51. Earlier versions of v1.43 have a different menu layout.
  1. Select Config -> Speed -> Frame skip -> skip 0.
  2. Select Config -> Sound -> Playback rate -> 48KHz.[1]
  3. Select Config -> Video -> Display Configuration... and make sure that "Bi-Linear Mode 7" is checked.
  4. Load the ROM.
  5. Set speed to about 400% (= key or Config -> Speed -> Set Speed).
  6. Pause emulation (Pause key).
  7. Load the movie file, with Sync Sound checked (it increases sound resolution).
  8. Select File -> Audio/Video Recording -> Start AVI Recording. Choose a file name (such as raw.avi), and choose a lossless RGB codec of your choice (see Common settings for suggestions). Click OK.
  9. Unpause emulation. You are now capturing audio/video.
  10. When you reach the desired end point, select File -> Audio/Video Recording -> Stop AVI Recording.

Linux
At present, there's no known method other than Wine to get video output from v1.51 movies. A patch has been written for the v1.43 source code in order to get video output, but this may not be compatible with newer movies.

VBjin

Target settings

Resolution Sound
384x224 44.1KHz stereo

Guide

NOTE: Special encoding steps are required.

Windows

  1. Load the ROM.
  2. Pause emulation. (Pause key)
  3. Load the movie file.
  4. Select File -> Record AVI. Choose a file name (such as raw.avi), and choose a lossless RGB codec of your choice (see Common settings for suggestions). Click OK.
  5. Unpause emulation. At this point, audio and video are now being captured.
  6. When you reach the desired end point, select File -> Stop AVI.

Linux
VBjin is Windows-only, but works well with Wine.

VisualBoyAdvance

Target settings

Resolution Sound
160x144 (GB), 240x160 (GBA) 44.1KHz stereo

Guide

Windows
  1. Go to Options -> Sound -> 44 KHz.
  2. Open the ROM.
  3. Speed up to 300% (= key)
  4. Pause emulation. (Pause key)
  5. Select Tools -> Movie -> Play Movie and select the movie file you want to dump to AVI.
  6. Select Tools -> Start AVI Recording. Choose a file name (such as raw.avi), and choose a lossless RGB codec of your choice (see Common settings for suggestions). Click OK.
  7. Unpause emulation. At this point, audio and video are now being captured.
  8. When you reach the desired end point, select Tools -> Stop AVI Recording.

Linux
TODO

Yabause

Target settings

Resolution Sound
320x240 44.1KHz stereo

Guide

Windows
TODO

Linux
TODO


Next page: Pre-encoding
Previous page: Logo

[1]: The SNES has a 32KHz native sampling rate, but using this option in Snes9x tends to result in sound desynchronisation.
[2]: For the N64, you can rip at an integer multiple of this resolution and scale it down to the appropriate size during the Pre-encoding stage.
[3]: Games for the PSX use many resolutions; 320x240 is the most common.
[4]: Mednafen, being cross-platform, uses the resolution of whatever platform it is currently emulating.
[5]: Most games for the PCE that have been run are one of 256x224, 256x232, 320x232, or 320x240.
[6]: There is no standard resolution for this platform.
[7]: Depends on game. Usually 640x400, sometimes 640x480, rarely something else (measure size of frames shown during in-game sequences. Some games have different resolution in menu and in actual game).
[8]: Depends on game. If game only uses PCM output with constant sampling rate, that sampling rate should be used. Otherwise sampling rate should be set to 44.1kHz or 48kHz.
[9]: PSG High Quality actually distorts PSG noises by performing filtering on the sound. As a result, sharp noises become very washed out and soft. For example, Sonic's jumping noise.
[10]: Famtasia incorrectly renders the NES's 240 scanlines. It shifts the topmost one to the bottom of the display. Furthermore, the 224 scanlines version (without the 240 scanlines patch) cuts off the bottom 16 scanlines instead of 8 from the top and 8 from the bottom. This results in 8 extra scanlines being displayed at the top and 8 fewer at the bottom. The best practice is to apply the 240 scanlines patch and remove the extra scanlines (NTSC) or move the bottom one to the proper location (PAL) after dumping.



Combined RSS Feed
EncodingGuide/VideoDumping last edited by feos on 2017-04-02 00:05:09
Page info and history | Latest diff | List referrers | View Source