Skip to content

Repository files navigation

fsvfs - mount FromSoftware virtual filesystems

Access archived game files (Dark Souls, Armored Core, Elden Ring...) with this cross platform userspace filesystem framework without needing to unpack and store tens of gigabytes of (duplicate) data.

Use the cross platform GUI fsvfs-gui to conveniently manage multiple mounts and mount configurations. Installed Steam games are detected automatically and are easy to mount.

Screenshot_20260625_132036

DISCLAIMER: This is a work in progress, the CLI is unstable and file integrity is on a best effort basis (until I introduce integrity checking at least) so YMMV.

Requirements

A x86-64-v3 capable CPU (AVX2 and BMI2 ISAs). This requirement may be relaxed in the future as it is purely for performance.

Linux

Kernel with FUSE support. fsvfs fully relies on fuser to handle the kernel communication, see its README for more info.

fsvfs-gui requires xdg-utils to be installed.

Windows

ProjFS, an optional Windows feature. fsvfs will attempt to enable it, which may ask you for Administrator priveleges in PowerShell. A restart of fsvfs or your system may be required right after and the feature stays enabled going forward.

Usage (GUI)

Launch fsvfs-gui and select an installed Steam game directory from the dropdown (or manually browse individual files) and pick the mount directory, which must be empty, then press "Mount filesystem".

Check Help -> About at the top of the GUI for information about individual options.

Usage (CLI)

Show help:

fsvfs --help

Mount all Elden Ring archives in an empty subdirectory named "eldenring" (bash):

fsvfs dvdbnd --mountpoint eldenring \
    "$HOME/.local/share/Steam/steamapps/common/ELDEN RING/Game/Data0.bhd" \
    "$HOME/.local/share/Steam/steamapps/common/ELDEN RING/Game/Data1.bhd" \
    "$HOME/.local/share/Steam/steamapps/common/ELDEN RING/Game/Data2.bhd" \
    "$HOME/.local/share/Steam/steamapps/common/ELDEN RING/Game/Data3.bhd" \
    "$HOME/.local/share/Steam/steamapps/common/ELDEN RING/Game/DLC.bhd"   \
    "$HOME/.local/share/Steam/steamapps/common/ELDEN RING/Game/sd/sd.bhd" \
    "$HOME/.local/share/Steam/steamapps/common/ELDEN RING/Game/sd/sd_dlc02.bhd"

Mount all Elden Ring archives in an empty subdirectory named "eldenring" (PowerShell):

.\fsvfs.exe dvdbnd --mountpoint eldenring `
    "G:\SteamLibrary\steamapps\common\ELDEN RING\Game\Data0.bhd" `
    "G:\SteamLibrary\steamapps\common\ELDEN RING\Game\Data1.bhd" `
    "G:\SteamLibrary\steamapps\common\ELDEN RING\Game\Data2.bhd" `
    "G:\SteamLibrary\steamapps\common\ELDEN RING\Game\Data3.bhd" `
    "G:\SteamLibrary\steamapps\common\ELDEN RING\Game\DLC.bhd"   `
    "G:\SteamLibrary\steamapps\common\ELDEN RING\Game\sd\sd.bhd" `
    "G:\SteamLibrary\steamapps\common\ELDEN RING\Game\sd\sd_dlc02.bhd"

NOTE: the mountpoint MUST be an empty directory.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

About

Cross platform FromSoftware filesystem framework

Topics

Resources

Stars

9 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages