The .omr format is the movie format used by the openMSX emulator.
The format is a gzipped XML file.
The .xml file is a rather complex file that stores an initial savestate and several other savestates for rewind capability (similar to the "greenzone" in taseditor and tastudio), as well as all input event data. The savestates includes the exact specification of the used hardware (system configuration).
Relevant details for tasvideos:
- Rerecord count
- Found in replay->serial->replay->reRecordCount
- Start type
- Found in replay->serial->snapshots
- If the first item tag has a scheduler->currentTime/time tag with a value other than 0, the movie starts from savestate
- Otherwise it starts from power-on
- There is no notion of starting from "sram" for this format. If any SRAM would be used, the movie would desync if the exact SRAM file (stored outside of the OMR file on the host system) isn't available.
- MSX2 and later systems have a video chip that allows to switch between NTSC and PAL timing (effectively meaning 60 or 50 frames per second). The chip's default value is NTSC, but the used BIOS may switch it to another value shortly after power up. A game is free to change it as well.
- We currently do not support this notion, and if there is any savestate in the replay that has the videochip set on PAL, the timing is assumed to be PAL throughout.
- The value can be found in replay->serial->item->config->device->palTiming
- Movie length
- Find in in the file the replay->serial->events->item tag where the type attribute has a value of EndLog
- The event tag before that is the last user input event
- Inside this tag the actual value is in StateChange->time->time
- The value is the number of internal "ticks". Can be converted to seconds by dividing by 3579545 and then by 960
- Can be found in a tag matching snapshots>item>config>config>children>item>children>item with a descendant name with a value of "type"
- A sibling of this tag with a name of data will contain the system value
- Can be SVI, Coleco or one of the MSX variants: MSX, MSX2, MSX2+, MSXturboR
- We currently do not differentiate between MSX variants so all will report as MSX for the system