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.
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.
A x86-64-v3 capable CPU (AVX2 and BMI2 ISAs). This requirement may be relaxed in the future as it is purely for performance.
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.
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.
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.
Show help:
fsvfs --helpMount 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.
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
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.