Skip to content

Releases: IridiumIO/CompactGUI

Version 4.0 Beta 10

Choose a tag to compare

@Iridium-IO Iridium-IO released this 01 Sep 13:47

Lots of changes here, and I've almost certainly overlooked something that will cause issues.

Changes

  • Added a Steam Library tab
    • Populates and scans through all your Steam Games and checks them against the database to determine a recommended action.
      • Compression level is dependent upon the results as well; for example, if LZX is barely better than XPRESS4K, it will recommend you use XPRESS4K.
    • You can compress items with one click from this page, or right-click the item to add it to the usual queue (for fine-tuned tweaking of e.g. skiplists) or uncompress/check database results.

Note

It's not particularly fast as it has to scan all your steam games and analyse them. You can do other things while it is scanning, but I haven't tested for possible issues that could happen if you're loading the Library page and then decide to compress a bunch of games while it is loading. I'm sure there will be a crash in there somewhere.

SteamLibraryView
  • Localisation Rework
    • I hate .resx files, so I've switched to my own localisation library that stores languages as plain .toml files on disk instead and is much easier to develop against.
    • Anyone can edit or create translation files at any time, and it does not require a new build of CompactGUI to be published. You could, for example, create your own translation with any text editor and then submit a pull request on Github to have it added to the repository.
    • Updated translations can be downloaded from within CompactGUI by switching to the required language in the Settings tab and clicking the download icon next to the language selector. This will pull language files from Github. As I type this, I'm realising this won't work for completely new languages. You'll have to manually download those from CompactGUI/Resources/Localisation

Fixes

  • Fixed many issues with memory allocation (now that it's expensive) to reduce the RAM footprint and avoid memory leaks
  • Fixed issues with the Background Watcher:
    • Watcher could not resume if an idle background compressor was paused due to system activity resuming
    • Watcher mode could not be toggled from Idle > Scheduled without restarting the program
  • Fix a crash if you try to open the Database tab before it has been downloaded properly #651
  • Watched folders on external drives are no longer assumed to be deleted, and are instead flagged with a warning on the Watcher. #625

Installation

Binaries

CompactGUI.exe (9MB):		 Smaller size, but requires .NET 10 Runtime to be installed
CompactGUI.mono.exe (65MB):	 Fully self-contained and embeds the necessary .NET 10 libraries

WinGet

winget install CompactGUI

Note

Installing from WinGet automatically installs .NET 10 if required, however it can often take a few days for new releases to become available.

Checksums
MD5: 		5F158F9F8ED9FE9FEBA1E0262A33C3EC
SHA-256: 	F490BD29AAB36A4E8FE222D284FC6EA0EA53533B13416D2AC8BE3D756F96C6E0

Like this project?

Please consider leaving a tip on Ko-Fi :)

Buy Me a Coffee at ko-fi.com

Version 4.0 Beta 9

Choose a tag to compare

@Iridium-IO Iridium-IO released this 26 Aug 05:23

Quick Fix

  • Actually implemented the DirectStorage badge check. I messed it up in the last release and it never worked. Whoops.
    • The DirectStorage check now also uses the full folder tree in case developers hide the dstorage.dll file in other folders. Now that more games support DirectStorage, they aren't using standard folders anymore. This means that if you - for example - try to compress your entire Steam folder and it contains a DirectStorage game, you will get a warning.

Installation

Binaries

CompactGUI.exe (9MB):		 Smaller size, but requires .NET 10 Runtime to be installed
CompactGUI.mono.exe (65MB):	 Fully self-contained and embeds the necessary .NET 10 libraries

WinGet

winget install CompactGUI

Note

Installing from WinGet automatically installs .NET 10 if required, however it can often take a few days for new releases to become available.

Checksums
MD5: 		C7BE3C0F4691F2A98ABD28BEFABD5371
SHA-256: 	43141EE25B392ECA42CCCD2A3B89627B122B709D1C769706E08EF9AC41560FB9

Like this project?

Please consider leaving a tip on Ko-Fi :)

Buy Me a Coffee at ko-fi.com

Version 4.0 Beta 8

Choose a tag to compare

@Iridium-IO Iridium-IO released this 25 Aug 13:02

Sorry it's been so long, I lost track of time for a while and then have been focusing on other hobby projects for my own sanity :)

Changes

  • Improved File Extension Exclusion list
    • Exclusions can now be set per folder and are remembered if you add the folder to the Watcher
    • The skiplist editor is now way less laggy. No idea why I left it broken for so long.
    • Exclusions can now include who folders or paths, utilising Glob path formatting: #604
      • Check here for proper formatting, but for backwards compatibility and sanity, you can still use .pak in place of **/*.pak.
    • Condensed the Skip List choices into the new extension exclusions view
      • Changed the name of Wiki/Database/Estimator skiplists to just be called "Smart" skipping.
      • The skiplist will show all extensions in the folder sorted by frequency so you can easily add/remove extensions to skip.
image
  • Added a True Portable Mode

    • Placing CompactGUI.exe in a folder called compactgui (any caps) will cause it to store its configuration files next to the exe instead of in the %LocalAppData% folder.
  • Added a DirectStorage Indicator #641

    • For the 3 people that need it, there is now a DirectStorage badge next to the folder name when you select a folder for a game that might use DirectStorage. This is persistent unlike the notification toast.
    • Unfortunately I don't actually have any games that use DirectStorage so hopefully I didn't bork this.

Backend

  • Updated to .NET 10

Fixes

  • Minor UI tweaks and layout fixes
  • Fixed help icon being overlapped on the Settings page for some languages

Translation

Honestly translation support is an actual pain in the neck. I cannot stress how much I hate the .resx localisation setup requiring extra cognitive work and setting up of keys everytime you want to write something.
So I will apologise in advance for the absolute travesty that is the current translation state. In fact, I wrote my own localisation interpreter for another project just to avoid this pain, so I'll probably migrate it all over at some point.

There are wonderful contributors who will no doubt patch things up and I thank them in advance, and I will push updates for those languages ASAP. I have used a mix of AI and Google Translate to translate some of the new strings in this update just to have something, and I am fully aware that those will be poorly represented.


Installation

Binaries

CompactGUI.exe (9MB):		 Smaller size, but requires .NET 10 Runtime to be installed
CompactGUI.mono.exe (65MB):	 Fully self-contained and embeds the necessary .NET 10 libraries

WinGet

winget install CompactGUI

Note

Installing from WinGet automatically installs .NET 10 if required, however it can often take a few days for new releases to become available.

Checksums
MD5: 		E74243ED1D07DD87E159CA4E9099113D
SHA-256: 	4B0456B76F43CF1BAE03DBDB4F2EDBFEC775E826A970F19467A56106257CF519

Like this project?

Please consider leaving a tip on Ko-Fi :)

Buy Me a Coffee at ko-fi.com

Version 4.0 Beta 7

Choose a tag to compare

@Iridium-IO Iridium-IO released this 15 Apr 09:55

Changes

  • Add multi-language support thanks to @XTsat.
  • Added a button in the Settings page to open the settings folder (AppData/Local/IridiumIO/CompactGUI), in case anything goes wrong - config files for settings and the watcher database are located there.

Fixes

  • (Hopefully) fixes a crash when the internet connection is slow / disconnected #528

Installation

Binaries

CompactGUI.exe (9MB):		 Smaller size, but requires .NET 9 Runtime to be installed
CompactGUI.mono.exe (64MB):	 Fully self-contained and embeds the necessary .NET 9 libraries

WinGet

winget install CompactGUI

Note

Installing from WinGet automatically installs .NET 9 if required, however it can often take a few days for new releases to become available.

Checksums
MD5: 		E7134BBEE1D19DDB25FB7F44B2582659
SHA-256: 	9696143759D85CC6D5ECF14453F6D4754AE465515023D7FEDD0291F73F51A1E4

Like this project?

Please consider leaving a tip on Ko-Fi :)

Buy Me a Coffee at ko-fi.com

Full Changelog: v4.0.0-beta.6...v4.0.0-beta.7

Version 4.0 Beta 6

Choose a tag to compare

@Iridium-IO Iridium-IO released this 16 Jul 09:14
31c3675

Changes

NEW Added Scheduler

  • Adds the ability to schedule background compression of watched folders, with the following choices:
    • When system is idle (existing functionality)
    • On Schedule
    • On Schedule if system is also idle (for example you want to run it at 6pm every day, but only if you're not actively using the computer)
  • If the Scheduler is running and you wish to cancel it, you can do so from the Watcher tab as below
  • Note: Scheduler will only run if the computer is already on and CompactGUI is running.
image

 

NEW Manual compression of all watched folders

  • You can now compress all watched folders manually from the Watcher tab
  • Any scheduled background compressions can also be cancelled from this tab when they are running too.

NEW Logging
Hopefully this will make error reporting easier - logs are now generated and saved to %IridiumIO%/CompactGUI. If you run into issues with CompactGUI, please share these logs when creating an issue! Hopefully they catch the reason for any crashes or problems.

TWEAKS UI Updates

  • Improved Compression Mode option buttons and layout of main area of CompactGUI
    • the hover effect can be disabled in settings if you prefer to always see more details
  • Tweaked results view (not sure if this looks better or not - probably will change again later)
  • Adjusted Watcher page layout - now includes button to compress all watched folders on command
  • Changes to base background colour and image use
animated image

 
image

Fixes

  • Fixed several memory leaks
  • Major performance improvements in several areas and reduced overall memory usage
  • Fixed a crash that could occur when opening the skiplist
  • Fixed the watcher list nuking itself if a monitored folder is deleted #546
  • Fixed instances where the background watcher simply doesn't do anything
  • Fixed the compression buttons showing the wrong estimates #543
  • Fixed spamming disk writes when the user changes settings (previously every change in the settings menu would immediately write the new settings file to disk - now this is debounced)

Installation

Binaries

CompactGUI.exe (10MB):		 Smaller size, but requires .NET 9 Runtime to be installed
CompactGUI.mono.exe (64MB):	 Fully self-contained and embeds the necessary .NET 9 libraries

WinGet

winget install CompactGUI

Note

Installing from WinGet automatically installs .NET 9 if required, however it can often take a few days for new releases to become available.

Checksums
MD5: 		F6722CD43AA8169DB1F960A258639889
SHA-256: 	5CB2DB4EC39B8FA3E11BC3824BBFDC55214373D27714BFA2C1DF306576F06D81

Like this project?

Please consider leaving a tip on Ko-Fi :)

Buy Me a Coffee at ko-fi.com

Full Changelog: v4.0.0-beta.5...v4.0.0-beta.6

Version 4.0 Beta 5

Choose a tag to compare

@Iridium-IO Iridium-IO released this 18 Jun 07:42

Tweaks + Bugfixes

  • You can once again drag-and-drop folders into the main window to be compressed #533
  • Adds an error message when attempting to compress folders that have been compressed by the old Windows LZNT1 method (using the "Compress contents to save disk space" option) as this is unsupported. #316
  • Adds a warning when attempting to compress games that use DirectStorage #423
  • Window state, position and size is now saved between application launches #537
  • Compression options are now saved between application launches, and when adding new folders to the queue any modifications made to the configuration options will carry across #536
  • No longer travels down symbolic links or directory junctions when scanning folders. This may have been the cause of some crashes and incorrect file size reporting #532

Known Issues

  • Adding an extension to the Settings skiplist will not update the XXX files will be skipped counter unless you remove the folder and re-add it to the queue

Installation

Binaries

CompactGUI.exe (10MB):		 Smaller size, but requires .NET 9 Runtime to be installed
CompactGUI.mono.exe (64MB):	 Fully self-contained and embeds the necessary .NET 9 libraries

WinGet

winget install CompactGUI

Note

Installing from WinGet automatically installs .NET 9 if required, however it can often take a few days for new releases to become available. Winget is not available for beta releases

Checksums
MD5: 		F1EEBEBBAFF74D2C01EA8C223DFF1136
SHA-256: 	710786CD5A8583F3AEB1F38A5355FEF0D8EDFB1BCF130A2364773C55EB2FAE32

Like this project?

Please consider leaving a tip on Ko-Fi :)

Buy Me a Coffee at ko-fi.com

Full Changelog: v4.0.0-beta.4...v4.0.0-beta.5

Version 4.0 Beta 4

Choose a tag to compare

@Iridium-IO Iridium-IO released this 11 Jun 06:32

Changes

NEW Added Results Database Viewer

  • Let's you see and search compression results from user-submitted data
  • It uses the same database that is already used to show the estimated compression when working on a Steam game
  • Note: I've added a filter in the generation of the database to get rid of extremely old submissions that are likely to be inaccurate. This means that any game that has more than 4000 results (1000 per compression level) will have the oldest submissions stripped out. "Ark: Survival Evolved" is a good example of this.

Backend Changes

  • Rewrote core logic in C# (time to start saying goodbye, VB.NET my old friend)
  • Improved analyser performance

image

Fixes

  • Fixes crash when the program can't download an updated results database on launch #528
  • Fixes adding watched folders to the compression queue not auto-selecting the correct compression level #530

Known Issues

  • Adding an extension to the Settings skiplist will not update the XXX files will be skipped counter unless you remove the folder and re-add it to the queue

Installation

Binaries

CompactGUI.exe (10MB):		 Smaller size, but requires .NET 9 Runtime to be installed
CompactGUI.mono.exe (64MB):	 Fully self-contained and embeds the necessary .NET 9 libraries

WinGet

winget install CompactGUI

Note

Installing from WinGet automatically installs .NET 9 if required, however it can often take a few days for new releases to become available. Winget is not available for beta releases

Checksums
MD5: 		1CF91B3C93EDDE224690B9D973F88436
SHA-256: 	86FF3247DB150F0A76E1A0C0B553010E211FBE3E729D6A338107CF850EE8C767

Like this project?

Please consider leaving a tip on Ko-Fi :)

Buy Me a Coffee at ko-fi.com

Full Changelog: v4.0.0-beta.3...v4.0.0-beta.4

Version 4.0 Beta 3

Choose a tag to compare

@Iridium-IO Iridium-IO released this 05 Jun 11:00

Changes

NEW Added Compression Estimator

  • Estimations now show up for non-Steam games as well, and are generally accurate to ±5% of the XPRESS4K compressability
  • Scans tiny fragments of each file when analysing to guess how compressible it is by using in-memory compression
  • These estimates can be used to skip files that may not compress well in the selected folder
    • The UI and checkboxes in the Configuration list have been updated to reflect this, along with tooltips to improve clarity
  • These estimations can be disabled in the Settings

Note

Special optimisations are done for scanning done on HDDs, but it can still be very slow (the 42GB folder below took ~12 seconds). It is still significantly faster than finding out afterwards that the folder you spent an hour compressing wasn't very compressable.

SSD estimates are extremely fast however (~1TB in 24 seconds)

image

Backend Changes

  • Internal refactoring of Compactor and Uncompactor to utilise a shared interface, as well as use SafeFileHandle for operations

Known Issues

  • Adding an extension to the Settings skiplist will not update the XXX files will be skipped counter unless you remove the folder and re-add it to the queue

Installation

Binaries

CompactGUI.exe (10MB):		 Smaller size, but requires .NET 9 Runtime to be installed
CompactGUI.mono.exe (64MB):	 Fully self-contained and embeds the necessary .NET 9 libraries

WinGet

winget install CompactGUI

Note

Installing from WinGet automatically installs .NET 9 if required, however it can often take a few days for new releases to become available. Winget is not available for beta releases

Checksums
MD5: 		E4F2AAB5119F3A46E5524AFC55A40C93
SHA-256: 	4FA49887AE861CEE74E5C5B5DA8A697C3D60AEB3BBD6E21711E894D872D08F2C

Like this project?

Please consider leaving a tip on Ko-Fi :)

Buy Me a Coffee at ko-fi.com

Full Changelog: v4.0.0-beta.2...v4.0.0-beta.3

Version 4.0 Beta 2

Choose a tag to compare

@Iridium-IO Iridium-IO released this 02 Jun 07:37

Changes

  • Watcher
    • You can now rename watched folders by double-clicking their display name #487
    • Added a button to re-analyze individual folders #452
  • The PC now stays awake while a folder is being compressed (sleep prevention is lifted when compression finishes or CompactGUI is closed) #110
  • Added an Admin icon to the UI when running CompactGUI as administrator

image

Fixes

  • Fixed several crashes related to the Watcher #519
  • Removed an unused registry entry that also caused a crash #517
  • Fixed unreadable Skiplist window on Windows 10 #516
  • CompactGUI no longer appears as "MainWindow" in the taskbar #515
  • Fixed issue where a paused folder could get stuck after clicking "Apply to All" from another folder #521
  • Minor Watcher UI fixes:
    • Fixed missing analysis indicator next to folders
    • Last Compressed date now updates correctly after compression #522

Installation

Binaries

CompactGUI.exe (10MB):		 Smaller size, but requires .NET 9 Runtime to be installed
CompactGUI.mono.exe (64MB):	 Fully self-contained and embeds the necessary .NET 9 libraries

WinGet

winget install CompactGUI

Note

Installing from WinGet automatically installs .NET 9 if required, however it can often take a few days for new releases to become available. Winget is not available for beta releases

Checksums
MD5: 		A4BAA27E02BB6550C758716041CB6C1A
SHA-256: 	33FA69CB9E765821314712C39C9DA0BE1A68F0FC30085A5B4A9C962641285BF3

Like this project?

Please consider leaving a tip on Ko-Fi :)

Buy Me a Coffee at ko-fi.com

Full Changelog: v4.0.0-beta.1...v4.0.0-beta.2

Version 4.0 Beta 1

Choose a tag to compare

@Iridium-IO Iridium-IO released this 22 May 22:40
ad68647

Changes

  • UI overhaul - The existing UI with the animated transitions was getting really hard to manage, and I couldn't figure out how to squeeze some new features into it. So I've rewritten it entirely. It's less unique, and I'm not entirely a fan of the new design (in progress), but at least it's more functional. If you have suggestions on changes, please let me know
    • Switched to WPFUI and uses a more standard navigation layout
    • Window can now be resized properly
  • Folder Queue - Multiple folders can be selected for compression at a time
    • Each folder can have different compression options
  • Improved background watcher logic and environment checks

Fixes

  • Watcher:
    • Fixed a crash when adding an unsupported folder to the Watcher page
    • Fixed details not updating in some situations

Known Issues

  • If CompactGUI is run from the root of a directory, it will crash on launch. >> I have overwritten this release with a fixed version (version number unchanged), redownload if you have this issue

1
2
4
3


Installation

Binaries

CompactGUI.exe (10MB):		 Smaller size, but requires .NET 9 Runtime to be installed
CompactGUI.mono.exe (64MB):	 Fully self-contained and embeds the necessary .NET 9 libraries

WinGet

winget install CompactGUI

Note

Installing from WinGet automatically installs .NET 9 if required, however it can often take a few days for new releases to become available.

Checksums
MD5: 		432C732E71F1FF842D3DB28BA7632AC4
SHA-256: 	90D8B50F9C145A86E7E2FAC9A92E5FA5BF18525C04AAB5A4B91A61B2CFDE9779

Like this project?

Please consider leaving a tip on Ko-Fi :)

Buy Me a Coffee at ko-fi.com