Back to Page
Revision 20 (current)
Edited by feos on 7/25/2015 2:09 PM
{{vmv}} is the movie capture format of [OtherEmulators|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], [FAQ|frequently asked questions]