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