DTM
This page lists the file format for DTM, Dolphin movie files. It may change in the future.
Header:
| Offset | Type | Length | Description |
| 0x000 | Bytes | 4 | Signature: 44 54 4D 1A "DTM\x1A" |
| 0x004 | String | 6 | Game ID |
| 0x00A | Boolean | 1 | Is Wii game? |
| 0x00B | Integer | 1 | Number of controllers |
| 0x00C | Boolean | 1 | Starts from savestate? |
| 0x00D | Integer | 8 | VI count |
| 0x015 | Integer | 8 | Frame count |
| 0x01D | Integer | 8 | Lag counter |
| 0x025 | N/A | 8 | Reserved |
| 0x02D | Integer | 4 | Rerecord count |
| 0x031 | String | 32 | Author |
| 0x051 | String | 16 | Video Backend |
| 0x061 | N/A | 16 | Reserved |
| 0x071 | Bytes | 16 | MD5 hash of game file |
| 0x081 | Integer | 8 | Recording start time (UNIX time) |
| 0x089 | Boolean | 1 | Saved config valid? |
| 0x08A | Boolean | 1 | Idle Skipping on? |
| 0x08B | Boolean | 1 | Dual Core enabled? |
| 0x08C | Boolean | 1 | Progressive Scan enabled? |
| 0x08D | Boolean | 1 | DSP HLE enabled? (1 for HLE, 0 for LLE) |
| 0x08E | Boolean | 1 | Fast disc speed enabled? |
| 0x08F | Integer | 1 | CPU core (0 for interpreter, 1 for JIT, 2 for JITIL) |
| 0x090 | Boolean | 1 | EFB Access Enabled? |
| 0x091 | Boolean | 1 | EFB Copy Enabled? |
| 0x092 | Boolean | 1 | Copy EFB To Texture? (1 for texture, 0 for ram) |
| 0x093 | Boolean | 1 | EFB Copy Cache Enabled? |
| 0x094 | Boolean | 1 | Emulate Format Changes? |
| 0x095 | Boolean | 1 | Use XFB emulation? |
| 0x096 | Boolean | 1 | Use real XFB emulation? |
| 0x097 | Boolean | 1 | Memory card present? |
| 0x098 | Boolean | 1 | Memory card blank? |
| 0x099 | N/A | 16 | Reserved |
| 0x0A9 | String | 40 | Name of second disc iso |
| 0x0D1 | Bytes | 20 | SHA-1 hash of git revision |
| 0x0E5 | N/A | 27 | Reserved |
| 0x100 | - | - | Controller data |
- All multi-byte integers are little-endian.
- Strings are padded with NULs if not filling the full field.
- Lengths are in bytes.
GameCube controller data:
The controller data is 8 bytes per frame.
| Byte # | Bit # | Meaning |
| 0 | 0 | Start pressed if 1 |
| 0 | 1 | A pressed if 1 |
| 0 | 2 | B pressed if 1 |
| 0 | 3 | X pressed if 1 |
| 0 | 4 | Y pressed if 1 |
| 0 | 5 | Z pressed if 1 |
| 0 | 6 | Up (Dpad) pressed if 1 |
| 0 | 7 | Down (Dpad) pressed if 1 |
| 1 | 0 | Left (Dpad) pressed if 1 |
| 1 | 1 | Right (Dpad) pressed if 1 |
| 1 | 2 | L pressed if 1 |
| 1 | 3 | R pressed if 1 |
| 1 | 4 | Change CD if 1 |
| 1 | 5-7 | Reserved |
| 2 | 0-7 | L pressure (0-255, none to max.) |
| 3 | 0-7 | R pressure (0-255, none to max.) |
| 4 | 0-7 | Analog stick X axis (1-255, left to right) |
| 5 | 0-7 | Analog stick Y axis (1-255, down to up) |
| 6 | 0-7 | C stick X axis (1-255, left to right) |
| 7 | 0-7 | C stick Y axis (1-255, down to up) |
- Bytes are numbered left to right.
- Bits in byte are numbered right to left (as usual).
- Multi-bit fields have the most significant bit first (as usual).
- Also applies to Wii when using the Gamecube controller.
Wiimote controller data
Wiimote controller data seems to consists of packets one after each other, each with the following format:
| Offset | Type | Length | Description |
| 0 | Integer | 1 | Length of payload (n) |
| 1 | Opaque | n | Payload (raw wiimote data) |
Some documentation about the raw wiimote data can be found from
Wiimote page at Wiibrew.org. Note that the leading 0xA1 bytes are present.
DTM last edited by RachelB on 2013-01-01 21:50:59
Page info and history | Latest diff | List referrers | View Source