MGSV Modding Wiki

View My GitHub Profile

RDF


Contents Contents:
  1. Format - Version 3 (TPP)
    1. Header
    2. Label entry
    3. Voluntary calls set entry
    4. Variation Set entry
  2. Format - Version 1 (GZ)
    1. Header
    2. Labels Section
    3. Sets Section

RDF, or Radio Data File, is a format used by Metal Gear Solid V: Ground Zeroes, The Phantom Pain and Metal Gear Survive to define in-game radio dialogue labels which can be played with the .lua function TppRadio.Play(“label”) and voluntary (advice) radio sets assigned with TppRadio.SetOptionalRadio(“set”). The PC version’s format is Little-Endian, meaning bytes are written in reverse order of significance.

This page is incomplete and does not have enough information to make a completely custom Version 3 .rdf. If you’re willing to research the meaning of the unknown values, please help and contribute to this page.

Format - Version 3 (TPP)

0x00 - uint8 - Version. (0x03) 0x01 - uint8 - Dialogue Event count 0x02-0x03 - uint16 - Label count 0x04-0x05 - uint16 - Optional sets count 0x06-0x07 - uint16 - Variation sets count 0x08 - uint8 - Voice Type count

Dialogue Event entry

0x00-0x03 - int32/FNV132 Hash - Dialogue Event entry (Found in SBP_Tool-extracted soundbanks' HIRC.dat before 0x6402, at the top of DialogueEvent objects' value lists)

Voice Type entry

0x00-0x03 - int32/FNV132 Hash - Voice Type entry (Found in SBP_Tool-extracted soundbanks' HIRC.dat, values on top of the lists in DialogueEvent objects, but after the Dialogue Event hashes, can be multiple voice types per list)

Label entry

0x00-0x03 - int32/StrCode32 Hash - Label name (ex: s0020_rtrg1010) 0x04 - bitfield byte - 0x0F is unknown, 0xF0 is a call noise type bitfield. In vanilla, 0x0 (real time), 0x2 (espionage), 0x4 (optional), 0x8 (map) and 0xA (mission image) flag sets are used. 0x05 - bitfield byte - Flags, unknown 0x06 - bitfield byte - 0x3F bits (0b00111111) are the label count, 0xC0 bits (0b11000000) are unknown. 0x07 - bitfield byte - Flags, unknown 0x08 - Unknown byte, seen used in RadioData_comn1000.rdf 0x09 - Unknown byte, seen used in RadioData_comn1000.rdf

Voice clip subentry

0x00-0x03 - int32/FNV132 Hash if voiceId, unknown hash type if Variation Set - Voice id found in HIRC.dat files in .sbp soundbanks extracted with SBP_Tool in DialogueEvent objects. Could sometimes be a Variation Set Entry name. 0x04 - uint8 - Flags, unknown 0x05 - uint8 - Voice Type entry index 0x06 - bitfield byte - 0x0F contains a 0x01 bool for whether the voice clip is referencing a Variation Set or not, 0xF0 is unknown.

Voluntary calls set entry

0x00-0x03 - int32/StrCode32 Hash - Voluntary set name StrCode32 hash (ex: Set_s0020_oprg1010 ) 0x04 - Calls count

Voluntary call set subentry

0x00-0x03 - int32/StrCode32 Hash - Name of call in the set, StrCode32 hash (ex: s0020_oprg1010)

Variation Set entry

0x00-0x03 - int32/unknown hash - Variation set name. Can be referenced earlier on. 0x04 - int8 - voice clip subentry count.

The following is the same as “Voice clip subentry,” repeated by the voice clip subentry count.

Format - Version 1 (GZ)

Header

0x00 - Version (1) 0x01 - Empty 0x02-0x03 - Labels count 0x04-0x07 - Global offset to Sets Section

Labels Section

An entry per Labels Count in the header.

0x00-0x03 - Label name StrCode32 hash (as the label used by .lua) 0x04-0x07 - Global offset to Label Params entry

Label Params Entry

An entry per Labels Count in the header.

0x00 - Some flag, unknown 0x01 - Some flag, unknown 0x02-0x03 - Some short, unknown 0x04-0x05 - Padding 0x06-0x07 - Some short, unknown 0x08 - Some flag, unknown 0x09 - Some flag, unknown 0x0a - Some flag, unknown 0x0b - Voice clips count 0x0c - Some flag, unknown 0x0d - Some flag, unknown 0x0e-0x0f - Empty

Voice Clip Subentry

A subentry per Voice Clips Count in the Label Params entry.

0x00-0x03 - Voice clip list id from the HIRC.dat list in the .sbp. 0x04-0x07 - Voice clip list id from the HIRC.dat list in the .sbp. 0x08-0x0b - Voice clip id from the HIRC.dat list in the .sbp. 0x0c - Some flag, unknown. Usually 0x64. 0x0d - Some flag, unknown. 0x0e-0x0f - Empty.

Sets Section

Doesn’t seem to be any precedent for this in the header, so presume 0x00 after the previous section means none of the following will be in the file.

0x00 - Entries count. 0x01-0x03 - Empty.

Set Entry

An entry per Entries Count in Sets Section.

0x00-0x03 - Possibly set name/StrCode32 hash? 0x04-0x07 - Local offset (from Sets Section start) to Set Label Offsets entry.

Set Label Offsets entry

An entry per Entries Count in Sets Section.

0x00-0x01 - Subentries count. 0x02-0x03 - Empty.

Set Label Offsets Subentry

An entry per Subentries Count in Set Label Offsets entry.

0x00-0x03 - Global offset to Label Params entry.