Skip to content

Let the GUI pack RAR/ZIP archives too - #140

Open
raiddevel wants to merge 3 commits into
PSBrew:mainfrom
raiddevel:archive-source-gui
Open

raiddevel wants to merge 3 commits into
PSBrew:mainfrom
raiddevel:archive-source-gui

Conversation

@raiddevel

Copy link
Copy Markdown

🤔 Why?

  • The command line can now pack a game straight from its RAR/ZIP (see the archive-source pull request). GUI users should get the same without extracting anything.

🔧 What changed

  • The Pack Folder panel accepts a .rar/.zip as the source (new "Archive" button next to "Folder") and has an optional password field; strings added in en, pt_BR and es.
  • The metadata preview reads the title, size, APR-EMU flag and icon straight from inside the archive.
  • The output name is proposed from the archive stem.

🧪 How to test

  • python -m mkpfs.gui → Pack Folder → choose a .rar or .zip → Pack.
  • uv run --frozen pytest
  • Screenshot of the panel on Windows 11: added as a comment on this pull request.

💬 Notes for non-technical readers

  • Nothing changes when a folder is chosen. Builds on top of the archive-source pull request, so this one shows both commits until that one is merged.

Builds on #139 (its commit shows here until that one is merged). Related to #138.

Game releases usually arrive as a RAR or ZIP. Until now they had to be
extracted first, which costs time, a full extra copy of the game on disk,
and a lot of manual steps for large titles.

`pack folder` now accepts a `.rar` or `.zip` as the source. The archive is
listed once, the game folder inside it is located automatically, and each
member is streamed into the exFAT-wrapped `.ffpfsc` builder. Nothing is
extracted and no temporary copy is written; the resulting image is the
same one the extracted folder would produce.

- RAR via the `unrar` tool (multi-volume sets and passwords supported),
  ZIP built in (AES with the optional `pyzipper`, extra `mkpfs[archives]`).
- `--password` / `MKPFS_ARCHIVE_PASSWORD` and `--archive-root` for
  archives that hold several games.
- The AMPR emulation index is generated in memory for emulation builds.
- `batch` picks up archives next to folders and images.
Newer UnRAR builds (7.30) list the archive's quick-open record as a
member of type Service. It was counted as a file, so archive listings
showed one entry too many. Only File and Directory entries are members now.
The Pack Folder panel now accepts a .rar or .zip as the source, with an
optional password field, and the metadata preview reads the title, size
and icon straight from inside the archive. Builds on the archive source
support of `pack folder`.
@raiddevel

Copy link
Copy Markdown
Author
mkpfs-gui-pack-folder-windows

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant