TASVideos

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

Other Emulators / VMV

vmv is the movie capture format of VirtuaNES, a NES emulator.[1]

[1] The original VisualBoyAdvance, a GBA emulator, also had its movie capture format named vmv, but it required a supporting vm0 file to cooperate. Since it did not meet the requirements at this site, it was not supported.

All descriptions below refer only to the movie capture format of VirtuaNES.

VMV file format description

Some comments have been translated from Japanese.

This is the header of VMV files of VirtuaNES versions 0.93.
(0.60 … 0.92 are mostly the same though.)

  000 12-byte signature: "VirtuaNES MV"
  00C 2-byte little-endian integer: movie version 0x0400
  00E 2-byte little-endian integer: record version
  010 4-byte flags (control byte):
    bit 7: disable rerecording
    bit 6: 1=reset-based, 0=savestate-based (movie version <= 0x300 is always savestate-based)
    bit 3: controller 4 in use
    bit 2: controller 3 in use
    bit 1: controller 2 in use
    bit 0: controller 1 in use
    For the other control bytes, if a key from 1P to 4P (whichever one) is entirely ON, the following 4 bytes becomes the controller data.
    Other bits: reserved, set to 0
  014 DWORD   Ext0;                   // ROM:program CRC  FDS:program ID
  018 WORD    Ext1;                   // ROM:unused,0     FDS:maker ID
  01A WORD    Ext2;                   // ROM:unused,0     FDS:disk no.
  01C 4-byte little-endian integer: rerecord count
  020 BYTE    RenderMethod
     0=POST_ALL,1=PRE_ALL
     2=POST_RENDER,3=PRE_RENDER
     4=TILE_RENDER
  021 BYTE    IRQtype                 // IRQ type
  022 BYTE    FrameIRQ                // FrameIRQ not allowed
  023 1-byte flag: 0=NTSC (60 Hz), 1=PAL (50 Hz)
  024 8-bytes: reserved, set to 0
  02C 4-byte little-endian integer: save state start offset
  030 4-byte little-endian integer: save state end offset
  034 4-byte little-endian integer: movie data offset
  038 4-byte little-endian integer: movie frame count
  03C 4-byte little-endian integer: CRC (CRC excluding this data(to prevent cheating) )
Header size: 64 bytes.

If the movie version is < 0x400, or the "from-reset" flag is not set, a savestate is loaded from the movie. Otherwise, the savestate is ignored.

Each frame consists of 1 or more bytes. Controller 1 takes 1 byte, controller 2 takes 1 byte, controller 3 takes 1 byte, and controller 4 takes 1 byte. If all four exist, the frame is 4 bytes. For example, if the movie only has controller 1 data, a frame is 1 byte.

The bit values in hex for the buttons are as follows.

  01 A
  02 B
  04 Select
  08 Start
  10 Up
  20 Down
  40 Left
  80 Right

See also: EmulatorResources, frequently asked questions


Combined RSS Feed
OtherEmulators/VMV last edited by feos on 2015-07-25 14:09:09
Page info and history | Latest diff | List referrers | View Source