Skip to content

Initial Release - XCI Injection & RAR VFS Support

Pre-release
Pre-release

Choose a tag to compare

@Zannael Zannael released this 09 Mar 09:47
· 11 commits to master since this release

Welcome to the first release of PyQuark, a remote file server for Nintendo Switch.

This version introduces a Virtual File System (VFS) layer, allowing users to interact with their library in ways not possible with standard Quark servers.

Key Features

  • On-the-fly XCI Injection: Install games from .xci files as if they were .nsp. The server builds a virtual PFS0 header in RAM and maps NCA data directly from the cartridge dump.
  • Transparent RAR Access: Full support for .rar and multi-volume .part1.rar archives. Browse them as folders and install content without manual extraction.
  • Hybrid Staging Engine: Intelligent background extraction for large files with dynamic wait times, ensuring stable XCI parsing even during active decompression.
  • Smart Cache Management: Automatic cleanup of multi-gigabyte temporary files and session-aware handle management to optimize disk space and performance.

Recent Fixes

  • Robust XCI Mapping: Implemented a dynamic retry mechanism for HFS0 parsing. This solves the "buffer of 16 bytes" error when opening large XCI files inside multi-part RAR archives by waiting for the secure partition to be extracted.
  • Extension Masking: Added automatic .xci.nsp masking for files inside RAR archives to ensure compatibility with Goldleaf's installer.

Technical Notes

  • Environment: Developed and tested on Pop!_OS 22.04.
  • Requirements: Requires unrar to be installed and available in the system PATH for the staging engine.
  • Drivers: On Linux, the transport layer automatically handles kernel driver detachment for the Switch USB interface.

If you find any bugs or have feature requests, please open an issue!