Skip to content

Switch to 7z for compression#73

Merged
nchapman merged 8 commits into
developfrom
feature/7z
Dec 13, 2025
Merged

Switch to 7z for compression#73
nchapman merged 8 commits into
developfrom
feature/7z

Conversation

@nchapman
Copy link
Copy Markdown
Collaborator

  • Enables support for 7z compressed roms
  • Dramatically reduces size of the LessUI update file

Fixes #69 #72

Downloads static ARM/ARM64 binaries from 7-zip.org during make setup.
Follows jq pattern - binaries cached locally, gitignored.
Shells out to 7z binary for both .zip and .7z files, replacing custom
ZIP header parsing and zlib inflation. Simplifies minarch.c from 90
lines of extraction code to 20 lines. New minarch_archive module handles
both formats uniformly.
Standardizes archive extraction across all platforms by deploying 7z
binaries to a shared bin/ directory at SD card root. This eliminates
per-platform unzip60 builds and simplifies the boot/update architecture.

Changes:
- Deploy bin/{arm,arm64}/7z to release root for all platforms
- Update update-functions.sh with architecture-aware 7z detection
- Update boot scripts (rg35xx, rg35xxplus, m17) to use shared 7z
- Remove unzip60 build/clone/copy from 4 platforms
- Delete 4 unzip60 source directories
- Use 7zz (official 7-Zip) with LZMA2 compression
- Update all boot.sh files to reference LessUI.7z
- Payload size: 183MB → 120MB
Copilot AI review requested due to automatic review settings December 13, 2025 20:25
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request switches LessUI from ZIP to 7z compression for both ROM support and update packages. The change reduces the size of LessUI update files and enables support for 7z-compressed ROMs.

Key Changes

  • Replaces custom ZIP parsing code with shell execution of 7z binary
  • Updates all platform boot scripts to use LessUI.7z instead of LessUI.zip
  • Removes unzip60 dependency across all platforms, replacing with prebuilt 7z binaries (ARM32/ARM64)
  • Creates new minarch_archive module using 7z for ROM extraction instead of custom ZIP parsing

Reviewed changes

Copilot reviewed 50 out of 52 changed files in this pull request and generated 20 comments.

Show a summary per file
File Description
workspace/*/install/boot.sh Updated UPDATE_PATH to reference LessUI.7z across all platforms
workspace/*/README.md Updated documentation to reference 7z files instead of ZIP
workspace/*/makefile Removed unzip60 dependency and build steps
workspace/all/minarch/minarch_archive.* New archive extraction module using 7z binary via shell
workspace/all/minarch/minarch.c Replaced custom ZIP parsing with minarch_archive calls
workspace/all/minarch/minarch_zip.* Removed custom ZIP extraction code
workspace/all/utils/7z/makefile Added makefile to download prebuilt 7z binaries
workspace/all/paks/Emus/makefile Switched from unzip to 7zz for core extraction
skeleton/SYSTEM/common/update-functions.sh Updated to use 7z binary with architecture detection
makefile Updated package creation to use 7zz and include bin directory
tests/unit/all/common/test_minarch_archive.c New tests for archive detection
Comments suppressed due to low confidence (1)

workspace/tg5040/README.md:269

  • The references to "ZIP" should be updated to "7z file" or "archive" to match the new file format being used.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread workspace/all/minarch/minarch_archive.c
Comment thread workspace/trimuismart/README.md Outdated
Comment thread workspace/zero28/README.md Outdated
Comment thread workspace/rg35xxplus/README.md Outdated
Comment thread workspace/trimuismart/README.md Outdated
Comment thread workspace/all/minarch/minarch_archive.c
Comment thread workspace/rg35xxplus/README.md Outdated
Comment thread workspace/rg35xx/README.md Outdated
Comment thread workspace/trimuismart/README.md Outdated
Comment thread workspace/my355/README.md Outdated
@nchapman nchapman merged commit 98ee987 into develop Dec 13, 2025
4 checks passed
@nchapman nchapman deleted the feature/7z branch December 13, 2025 20:57
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.

Add 7z archive support to MinArch

2 participants