Low-level library for exploring From Software games files.
This repository has been archived on 2024-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
2020-05-10 17:21:43 +02:00
res names: add 4 missing hashes 2020-04-16 13:36:58 +02:00
src bhf: complete extraction 2020-05-10 17:21:43 +02:00
.gitignore Init 2020-04-11 04:21:21 +02:00
Cargo.lock ffi: make name_hashes mod available 2020-05-09 18:59:23 +02:00
Cargo.toml ffi: make name_hashes mod available 2020-05-09 18:59:23 +02:00
ffi_tests.py ffi: make name_hashes mod available 2020-05-09 18:59:23 +02:00
README.md bhf: complete extraction 2020-05-10 17:21:43 +02:00

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.
  • BND (v3): extraction from disk/memory to disk/memory.
  • 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.