moonshadow565 / ritobin

MIT License
26 stars 4 forks source link

Convert rito's .bin files to custom text format:

./ritobin2txt input.bin output.txt

Convert it back:

./txt2ritobin input.txt output.bin

ritobin_cli.exe options

Usage: ritobin [options] input output

Positional arguments:
input                   input file or directory[Required]
output                  output file or directory

Optional arguments:
-h --help               show this help message and exit
-k --keep-hashed        do not run unhasher
-r --recursive          run on directory
-i --input-format       format of input file
-o --output-format      format of output file
-d --dir-hashes         directory containing hashes

Formats:
        - text
        - json
        - info
        - bin

Custom text format example

#PROP_text

# This is a comment

type: string = "PROP"
version: u32 = 2
linked: list[string] = {
  "DATA/Characters/Ashe/Ashe.bin"
}
entries: map[hash,embed] = {
  0xac080f05 = SkinCharacterDataProperties {
    skinClassification: u32 = 1
    metaDataTags: string = "race:human"
    skinAudioProperties: embed = skinAudioProperties {
      tagEventList: list[string] = {
        "Ashe"
      }
      bankUnits: list[embed] = {
        BankUnit {
          name: string = "Ashe_Base_SFX"
          bankPath: list[string] = {
            "ASSETS/Ashe_Base_SFX_audio.bnk"
            "ASSETS/Ashe_Base_SFX_events.bnk"
          }
        }
        BankUnit {
          name: string = "Ashe_Base_VO"
          bankPath: list[string] = {
            "ASSETS/Ashe_Base_VO_audio.bnk"
            "ASSETS/Ashe_Base_VO_events.bnk"
            "ASSETS/Ashe_Base_VO_audio.wpk"
          }
          voiceOver: bool = true
        }
      }
    }
    skinAnimationProperties: embed = skinAnimationProperties {
      animationGraphData: link = 0x2298a5c9
    }
    0x8bb2d7a4: list[string] = {
      "ASSETS/Characters/Ashe/HUD/Icons2D/Ashe_P_Debuff.dds"
      "ASSETS/Characters/Ashe/HUD/Icons2D/Chronokeeper_TimeStop.dds"
    }
    armorMaterial: string = "Flesh"
    mContextualActionData: link = "Characters/Ashe/CAC/Ashe_Base"
    iconCircle: option[string] = {
      "ASSETS/Characters/Ashe/HUD/Ashe_Circle.dds"
    }
    iconSquare: option[string] = {
      "ASSETS/Characters/Ashe/HUD/Ashe_Square.dds"
    }
  }
}