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


OtherEmulators/VMV last edited by feos on 7/25/2015 2:09 PM
Page History Latest diff List referrers View Source