View Page Source

Revision (current)
Last Updated by Unknown on 1/1/2022 6:13 PM
Back to Page


Note: this is the original movie format of the [BizHawk] emulator.  It was used up until the 1.7.0 release, after which it was obsoleted by the [BizHawk/BK2Format|.bk2] format

!!! Text file format

the .bkm format is a text file in UTF-8 encoding

!! Header

All of these items are strings if not mentioned otherwise.

! Main

* comment - A note that's not used by the emulator in any way.
* emuVersion - Version of BizHawk used to create the movie.
* MovieVersion - Movie format version.
* Platform - Game system used.
* GameName - Name of the game used.
* Author - Creator of the movie.
* rerecordCount - Number of rerecords used while making the movie (Integer).
* GUID - Globally unique identifier of the movie.
* StartsFromSavestate - Whether or not the movie was recorded from a savestate (Boolean: True or False).
* SHA1 - SHA-1 checksum of the ROM file used.
* FirmwareSHA1 - the SHA-1 checksum of the Firmware (BIOS) file used when recording the movie
* subtitle - A message to be displayed on screen during the playback of the movie.
** Format: "subtitle FRAME X Y LENGTH COLOR MESSAGE" where FRAME is an integer denoting when to start the displaying the subtitle, X is an integer for the horizontal position to display it at, Y is an integer for the vertical position to display it at, LENGTH is the an integer defining how many frames to display the subtitle for, COLOR is a hexadecimal number describing the subtitle's color, and MESSAGE is the actual string message for the subtitle.
* PAL - Whether or not the movie was recorded in PAL mode (Boolean: True or False).
* BoardName - The board/mapper type, on systems that have this info and have implemented this feature
* Skip_Bios - indicates the bios was skipped (only certain cores implement this)
* VideoPlugin - The video plugin used (for cores that use plugins)

* LoopOffset - this value indicates it is an [3912S|infinite loop movie].  Existence of this line will indicate this.  The value is an integer value specifying at which frame the movie will loop back to when it reaches the end of the input log.  This feature was originally made available in BizHawk 1.4.1

! Headers Imported from Other Emulators

* CoreOrigin - Version of the core used for the original movie (.LSMV).
* CRC16 - 16-bit cyclic redundancy check (Integer, .VBM).
* CRC32 - 32-bit cyclic redundancy check (Integer, .SMV, .VMV, .ZMV).
* emuOrigin - Version of the emulator used for the original movie (.FCM, .FM2, .FMV, .GMV, .LSMV, .MC2, .MCM, .MMV, .NMV, .SMV, .VBM, .VMV, .ZMV).
* GameCode - Game Code of the ROM used while recording (Integer, .VBM).
* InternalChecksum - Internal Checksum of the ROM used while recording (Integer, .VBM).
* Japan - Whether or not the ROM used is from Japan (Boolean: True or False, .MMV).
* MD5 - Encrypted checksum of the ROM file used (.FCM, .FM2, .MC2, .MCM, .MMV)
* MovieOrigin - Version of the movie format used in the original movie (.FCM, .FM2, .FMV, .GMV, .LSMV, .MC2, .MCM, .MMV, .NMV, .SMV, .VBM, .VMV, .ZMV).
* port1 - Details on the device plugged into port 1 (.LSMV).
* port2 - Details on the device plugged into port 2 (.LSMV).
* ProjectID - The movie's ID (.LSMV).
* SHA256_X - SHA-256 checksum of the ROM file used. X denotes the name of the .sha256 source file (.LSMV).
* SuperGameBoyMode - Whether or not the the original movie was recorded in SGB mode (Boolean: True or False, .VBM).
* StartSecond - The second in which the movie starts (.LSMV).
* StartSubSecond - The sub-second in which the movie starts (.LSMV).
* SyncHack - Whether or not the sync hack was enabled for the original movie (Boolean: True or False, .FCM).
* UnitCode - The game's unit code (Integer, .VBM).

! GBx Specific
* Force_DMG_Mode - forces the game into the original GB mode
* GBA_In_CGB - indicates a GBA game running in Gameboy Color mode
* SGB - Indicates the game is in Super Gameboy mode

All non-utilized headers are treated like comments. All unknown headers in .FM2 and .MC2 are copied verbatim as such.

!! Input

! NES / Gameboy
 |Flag|UDLRsSBA|

For NES, the Flag can be 'r' to indicate a reset. For Gameboy and NES, it can be 'P' to indicate a hard reset (Power).

! Dual Gameboy

|Flag|UDLRsSBA|Flag|UDLRsSBA|

Same pattern as Gameboy but for two gameboys

! GBA

|P|UDLRsSBALR|

'P' is the power button

! Genesis 3-Button
 |Flag|UDLRSABC|

Genesis 3-Button currently does not have any flags.

! PC Engine
 |Flag|UDLRsr21|

PC Engine currently does not have any flags.

! SMS / GG / SG-1000
 |UDLR12|Other Controllers...|pr|

p is pause, and r is reset

! SNES / SGB

 |Flag|UDLRsSBAXYLR|

The Flag can be 'r' to indicate a soft reset or 'P' to indicate a hard reset (Power).

! Atari 2600

|rs|UDLRB|UDLRB|

'r' indicates a soft reset, and s is the select switch

! Atari 7800

|Prsp|UDLR12|UDLR12|

* 'P' is hard reset (Power)
* 'r' indicates a soft reset
* 's' is the select switch
* 'p' is the pause button

! N64

|Flag|UDLRBAZSLRudlr xxx, yyy|other controllers|

udlr are the C buttons.  Flag can be r for soft reset, and P for hard reset (Power)

[[space/-]]xxx are the characters for the analog X position, if negative the space will be a minus sign.  [[space/-]]yyy is the analog Y position

! Saturn

|Flag|UDLRSXYZABClr|

Flag can be r for soft reset, and P for hard reset (Power)

! Coleco

|UDLRlr123456789*0#|UDLRlr123456789*0#|

'*' is the Star button, '#' is the pound button

! Commodore 64

|UDLRB|UDLRB|1357l1234567890+-1cicQWERTYUIOP@*urskASDFGHJKL:;=eosZXCVBNM,>/sul_|

The first two sections are for the joystick controllers (B is the button).  The remaining represent the commodore keyboard.


! TI-83

 |0123456789`O=UDLR+_*/c^-()TVCPsmX>nL21HAGtZWY&OD,S|Flag|

TI-83 currently does not have any flags.