Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

dark0dave/post_infinity

Open more actions menu

Repository files navigation

Post Infinity

This tool can read infinity engine binary game files for BGEE and BG2EE. Similar to NearInfinity. It prints the binary game data files into human readable text. With optional json output.

Supported files

Taken from infinity file formats on the iesdp.

Other Supported files

  • .bio files - Text format Baldur's Gate 2 only, Character biography
  • embedded tileset files - Binary data for tilesets in maps can be viewed

Dependencies

Rust

How to run me

Ensure rust is installed via rustup

cargo run <path to chitin.key> / or target file

Demo

post_infinity(.exe) models/fixtures/gate1.spl
{
  "signature": "SPL ",
  "version": "V1  ",
  "unidentified_spell_name": 14260,
  "identified_spell_name": 9999999,
  "completion_sound": "CAS_M03\u0000",
  "flags": 0,
  "spell_type": 1,
  "exclusion_flags": 0,
  "casting_graphics": 18,
  "min_level": 0,
  "primary_spell_school": 2,
  "min_strength": 0,
  "secondary_spell_school": 6,
  "min_strength_bonus": 0,
  "kit_usability_1": 0,
  "min_intelligence": 0,
  "kit_usability_2": 0,
  "min_dexterity": 0,
  "kit_usability_3": 0,
  "min_wisdom": 0,
  "kit_usability_4": 0,
  "min_constitution": 0,
  "min_charisma": 0,
  "spell_level": 9,
  "max_stackable": 1,
  "spell_book_icon": "SPWI905C",
  "lore": 0,
  "ground_icon": "\u0000\u0000rb\u0000\u0000Un",
  "base_weight": 0,
  "spell_description_generic": 4294967295,
  "spell_description_identified": 9999999,
  "description_icon": "",
  "enchantment": 0,
  "offset_to_extended_headers": 114,
  "count_of_extended_headers": 1,
  "offset_to_feature_block_table": 154,
  "offset_to_casting_feature_blocks": 0,
  "count_of_casting_feature_blocks": 0,
  "extended_headers": [
    {
      "spell_form": 1,
      "friendly": 0,
      "location": 2,
      "memorised_icon": "SPWI905B",
      "target_type": 4,
      "target_count": 0,
      "range": 25,
      "level_required": 1,
      "casting_time": 4,
      "times_per_day": 0,
      "dice_sides": 6,
      "dice_thrown": 0,
      "enchanted": 0,
      "damage_type": 1,
      "count_of_feature_blocks": 1,
      "offset_to_feature_blocks": 0,
      "charges": 1,
      "charge_depletion_behaviour": 1,
      "projectile": 1
    }
  ],
  "equipping_feature_blocks": [
    {
      "opcode_number": 177,
      "target_type": 1,
      "power": 9,
      "parameter_1": 0,
      "parameter_2": 2,
      "timing_mode": 0,
      "dispel_resistance": 2,
      "duration": 100000,
      "probability_1": 39,
      "probability_2": 0,
      "resource": "balorsu\u0000",
      "dice_thrown_max_level": 0,
      "dice_sides_min_level": 0,
      "saving_throw_type": [
        0,
        0,
        0,
        0
      ],
      "saving_throw_bonus": 0,
      "stacking_id": 0
    }
  ]
}

How to build

cargo build --release

Performance

It takes about 0.07 ish to read all the supported files in an unmodded bg1ee game, into memory, without parsing them.

time cargo run -- <path to bgee dir>/chitin.key
0.07s user 0.58s system 99% cpu 0.655 total

you can analyze performance:

cargo install flamegraph
flamegraph -- target/release/post_infinity <path to chitin file>

About

Reads BGEE, BG2EE files from the command line

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.