Skip to content

0.0.8

Latest

Choose a tag to compare

@github-actions github-actions released this 09 Jun 23:07
895820d

🎉 MkPFS 0.0.8 is released!

🤖 What's Changed

  • Several improvements and fixes related to image packing, unpacking, and verification.
  • Added warnings to let the user know when they use experimental flag combinations
  • Automatically rename inner image to avoid bad special characters introduced by the user

🚀 Quick Start

# Install/Update using pip
python -m pip install -U "mkpfs"

# Creating Images: Option 1: .exfat -> .ffpfsc (Works with ShadowMountPlus)  (Maximum compatibility)
python -m mkpfs pack file './BREW1234.exfat' './BREW1234.ffpfsc'

# Creating Images: Option 2: .ffpkg -> .ffpfsc (Works with ShadowMountPlus) 
python -m mkpfs pack file './BREW1234.ffpkg' './BREW1234.ffpfsc'

# Creating Images: Option 3: Game folder wrapped twice into .ffpfsc (two-pass) (Works with ShadowMountPlus) 
python -m mkpfs pack folder --no-compress --no-adjust-output-file-extension './BREW1234-app' './pfs_image.dat'
python -m mkpfs pack file './pfs_image.dat' './BREW1234.ffpfsc'
rm './pfs_image.dat'

# Creating Images: Option 4: Game folder without a wrapper (single-pass) (--no-compress) (Avoid; See Notes!)
python -m mkpfs pack folder --no-compress './BREW1234-app/' './BREW1234.ffpfs'

# Extracting Existing Images (Reverse operation)
python -m mkpfs unpack './BREW1234.ffpfs' './BREW1234-extracted/'

⚠️ Limitations and Known Issues

  • exfat->ffpfsc is currently the most stable format for compressed game backups.
  • Packing an application folder directly into an image without a wrapper (single-pass) does not work when
    file compression is enabled. Although the image is created and verification passes, the console reads the files
    incorrectly due to technical limitations, so this option provides no practical benefit.
  • With the default --block-size 65536, very small files can cause significant block-alignment waste, which may make
    the resulting image larger than the source in corner cases.
    • For small-file-heavy folders, prefer the two-pass strategy (raw-folder -> .dat -> .ffpfsc) or try a smaller
      block size such as --block-size 16384 or --block-size 32768.
  • Antivirus scanning can reduce conversion speed, especially during the write phase or when processing many loose
    files. If you trust this software in your environment and need higher throughput, temporarily disabling real-time
    scanning can help. If you are unsure, keep antivirus enabled and expect slower conversions.

💖 Sponsorship

MkPFS is easier to sustain when users who benefit from it help fund it.

GitHub Sponsors

☕ Contributions

Other changes

  • feat(cli): stream pack files by default, add --use-spool opt-out (#54) @RenanGBarreto
  • Make post-pack verification much faster by default (#53) @RenanGBarreto
  • Add warnings and make compression task more stable for remote volumes (#52) @RenanGBarreto
  • Fix inner image names that could break mounts (#51) @RenanGBarreto
  • Warn when packing game/app folders directly with compression enabled or invalid configs (#48) @RenanGBarreto

Full Changelog: 0.0.7...0.0.8