SM64org:Mupen 64 video recording

Introduction

This explains an advanced means of encoding SM64 TASes.

Getting started

You will need a special version of Mupen 64 called Mupen64-rr v8 AVISplit. This is needed because the standard Mupen will corrupt the capture if it exceeds 4 GB.

Plugins:

  • Glide64 'Napalm WX' WIP Date: Nov 17 2010
  • Azimer's HLE Audio v0.56 WIP 2

Requirements:

  • x264
  • FLAC
  • Aktan's modified .kkapture
  • Lagarith (LAGS) codec
  • AVISynth 2.6.0 Alpha 2
  • VirtualDub
  • mkvmerge from mkvtoolnix
  • Having a relatively recent desktop computer is recommended for the sake of encoding speed, but not absolutely required.

Steps:

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.

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.

Edit Plugins/Glide64.ini; change instances of "filtering = 1" to "filtering = 0".

Start Mupen.

Options -> uncheck "Show Statusbar".

Options -> Settings -> General -> uncheck "Limit FPS (auto)".

Options -> Settings -> Config Plugins -> select Glide64 Napalm WX as the video plugin and Azimer's audio plugin for audio.

Go into the Glide64 configuration dialogue, check "show advanced emulation options", and close and reopen the dialogue.

Set video options as seen here and here. (Note: "use frame buffer objects" may be necessary for some video cards).

Select a video resolution that is a multiple of 320x240, but smaller than your screen resolution.

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. Alternatively, you can press Backspace to toggle between filtering modes on the fly, but you'll need to do this every time the ROM is loaded. (WARNING: the plugin will detect backspaces even if Mupen64 isn't active, so don't press backspace while the movie is playing.)

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.

Make a save state.

Close Mupen.

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).

Start .kkapture; configure it as seen here. Note in particular the frame rate (120fps); as there will be a lot of duplicate frames in the output, use of a codec such as Lagarith that can store null frames is suggested.

Set "Demo" to your Mupen executable and set "Target" to a target filename, then click "kkapture!". Mupen will start.

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).

Pause Mupen.

Utilities -> Movies -> Start Movie Playback; select the movie as earlier, check "Open Read-Only", and click OK (don't specify a pause frame).

Load your save state from earlier.

Unpause Mupen - you are now capturing.

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, in addition to Backspace!) Mupen will exit upon doing so.