Low-level library for exploring From Software games files.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
dece fb3212fd1a
python: show example names colored when possible
4 years ago
bindings/python python: show example names colored when possible 4 years ago
res names: add 4 missing hashes 4 years ago
src python: use PyO3 for Python bindings 4 years ago
.gitignore Init 4 years ago
Cargo.lock python: use PyO3 for Python bindings 4 years ago
Cargo.toml python: use PyO3 for Python bindings 4 years ago
README.md bnd: support loading from DCX 4 years ago

README.md

Rusted Iron Ring

Low-level library for exploring From Software games files. Currently only supports Dark Souls 1 (PTDE).

This project is mainly to play with the Rust language, Nom parser, FFI, etc; if you need an actually used and tested library, see SoulsFormats.

Usage

The project contains 2 artefacts:

  • librir, a library containing all the parsing/unpacking features implemented.
  • ironring, an executable to use main lib features from the CLI.

The goal is to make the lib compatible with FFI tools such as Python's ctypes, to ship a dynamic lib accessible for any language to easily script tasks and ideas, but we're not there yet.

Ironring usage:

Iron Ring

USAGE:
    ironring [SUBCOMMAND]

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

SUBCOMMANDS:
    bhd     Extracts BHD/BDT contents
    bhds    Extracts all BHD/BDT content (alphabetically) in a folder
    bhf     Extracts BHF/BDT contents
    bnd     Extracts BND contents
    dcx     Extracts and decompress DCX data
    hash    Calculates hash for a string
    help    Prints this message or the help of the given subcommand(s)

Features

  • BHD5 / BDT: extraction from disk to disk.
  • DCX: decompression from disk to disk/memory.
  • BND (v3): extraction from disk/memory to disk/memory, optionally decompress from DCX.
  • BHF (v3): extraction from disk/memory to disk/memory.

Repacking is not supported, maybe one day. It is not that useful when using UDSFM and Yabber, but if you really need it you can check out SiegLib.

Credits

All the fat cats involved in the scene and the wiki.