Long time no see! Welcome back to another (quarterly) release of Collapse. This time around, we're bringing many performance
& interface improvements to the launcher; this (hopefully) means that you should see a lot less crashes and a much more
stable launcher experience (get it? Stable version, stable experience...No? No one? Ok :( )
Releases have been a bit slower recently since most of our core maintainers have had a lot less time to contribute. Nonetheless,
this release is packed with a bunch of changes that we hope you'll find useful.
Read on for the complete list of changes!
For (surely) faster releases and more experimental features, consider switching to the Preview branch in the App Settings.
What's New?
Update to .NET 9 and Switching to NativeAOT Releases
This is the biggest changes so far for Collapse, requiring about 14K+ lines of codes brought to the repository due to dependencies that is not updated to follow the new standards required for NativeAOT release. You should feel Collapse being more snappy especially when launching from cold.
So, what is this "NativeAOT" mumbo jumbo?
Usually, a .NET application is executed in Just-In-Time manner and compiled into Intermediate Language (IL) instead of straight into native code. This however, requires a runtime to be installed into the machine or included within the app.
NativeAOT (Ahead-of-Time) compilation in other hand, will compile your app straight into native machine code executable. Due to its nature, the program can run independently without a runtime since the app was compiled straight into native code, resulting much faster start-up time, smaller memory footprint, smaller executable size and slightly better in performance.
While the app should benefit from using NativeAOT compilation, the developer should follow bunch of strict rules and requirements in order to make their program to work properly. Some of them are the limitation on accessing certain reflection-based methods and dynamic-based types since those requires invocations to happen at runtime.
To get rid all of those obstacles, we refactored bunch of codes with source-generated, COM Interface and Marshal-based/PInvoke ones, which one of them even require a call into Win32 API in order to make it work.
While NativeAOT is still a new norm in .NET app development and a very experimental feature, we finally managed to pull it off and make Collapse Launcher to run and compiled straight into native code executable.
New Feature: Bandwidth Limiter
This is by far the (second) biggest change in this release. We've been using the same downloader code since Collapse first released in 2021. While
it worked well enough for its time, it quickly became apparent that, as we wanted to add more features, it became increasingly challenging
to do so in a timely manner because of the amount of time we'd need to spend fixing the HTTP module of Collapse.
Well, no more! We've rewritten the entire module so that it is not only more efficient in terms of downloading, but also uses far less memory!
Due to this rewrite, we've been able to finally implement a bandwidth limiter for Collapse.
Here's what it can do:
The user can now set the download speed limit
Download file pre-allocation: The file no longer needs to be merged before the file can be used
Increased performance by removing a lot of asynchronous function calls
One of our most requested features since we've first allowed users to change backgrounds was the ability to change backgrounds based
not only by game but also by region.
What if we told you that now you can do that? And use videos too? Amazing, right?
Here's how you do it: Home Page -> Quick Settings (bottom right) -> Custom Background for Region.
This feature does not require you to enable the Global Custom Background setting.
Background priority as follows: Regional Custom BG -> Global App Custom BG -> API provided BG -> Paimon deadge fallback image.
New Feature: Notification Toast Support for Background Activities
This feature will help users get notified when a background activity is completed. The notification toast includes support for Game Installation, Game Update, Pre-load Download, Game Repair and Cache Update features.
In its current implementation, the notification only supports text-based content.
New Feature: Playtime Synchronization across devices
Collapse now supports tracking playtime across multiple devices through an online SQLite database.
While we've been using https://turso.tech and have tested for that platform, any provider that provides SQLite online database instances
through a URL and a token will work.
[!CAUTION]
Changing User ID (UID) without taking note of your current User ID will cause the data to be left dangling in the database and not be used anymore.
While you can edit the database yourself, it's a bit tedious, so please do NOT lose your User ID.
Collapse staff cannot help you if you misplace your User ID!
Playtime synced to the online database in a many ways:
At first region load
When the region is first loaded, playtime stats are first loaded from your local machine, then the system fetches from the online database and compares when playtime was last updated.
If the local data is out of date then the database value will be used and saved locally.
If the database is out of date, then the local value will be used and saved to the online database.
When you first launch your game
Every 5 minutes when the game is running
When you close your game
New Feature: Game Cleanup & File Ignore
This feature does pretty much what it says: it allows you to delete any unused files that are no longer referenced by the game,
but that are still shipped with it as part of an update for some reason.
Complementing that feature is the file ignore functionality, which works as follows:
Create a file called @IgnoredFiles that you can put in the game's root directory
You can then edit the file to include any files that you would like Collapse to ignore when you run the Game Cleanup functionality
You must have 1 file per line
You can use the simple wildcard * in your filename
The Game Cleanup feature is accessible in Quick Settings -> "Files Clean-up".
When deleting, you can also chose between moving them to your Recycle Bin or deleting them permanently from your drive.
Collapse now supports using a proxy server for the entire app. By default, it will use whatever proxy settings you have configured in Windows.
We currently support the following protocols: HTTP, HTTPS & SOCKS5.
You can find this feature in your App Settings.
New Game Region Support: Genshin Impact - Google Play
Nothing much to say here, we're now able to offer our users the ability to install the Google Play version of Genshin Impact,
which allows you to sign in with Google Play, among other things.
New Game Region Support: Zenless Zone Zero - Bilibili
This falls in line with other newer HoYoverse titles. We're happy to be able to support the installation and updating for this region!
We've (once again) switched updaters for Collapse! As the Squirrel project is in a semi-deprecated state, its users are
encouraged to switch over to Velopack. And that's what we did!
Velopack is a drop-in replacement for Squirrel. As a user, you won't even see the difference, though it does offer some notable benefits:
Smaller delta sizes for apps
Background updates, though we don't support this yet
All the other improvements from Squirrel, but better
Your Collapse install will automatically migrate over to Velopack with this release, no action is required on your part.
Sophon Downloader Improvements
Separate package size and speed from game size and I/O speed
As always, we want to thank are awesome community for providing an amazing localization for our project. Collapse is now localizable in 17 languages and dialects! <3
Minor changes
We would list all the minor changes here, but due to the amount of commits, we've decided against it for this release.
What's new ? 1.81.7
To be written
HOLY THAT'S A LOT OF CHANGES
Collapse 1.82.0: Natlan
Long time no see! Welcome back to another (quarterly) release of Collapse. This time around, we're bringing many performance & interface improvements to the launcher; this (hopefully) means that you should see a lot less crashes and a much more stable launcher experience (get it? Stable version, stable experience...No? No one? Ok :( )
Releases have been a bit slower recently since most of our core maintainers have had a lot less time to contribute. Nonetheless, this release is packed with a bunch of changes that we hope you'll find useful.
Read on for the complete list of changes!
For (surely) faster releases and more experimental features, consider switching to the Preview branch in the App Settings.
What's New?
Update to .NET 9 and Switching to NativeAOT Releases
This is the biggest changes so far for Collapse, requiring about 14K+ lines of codes brought to the repository due to dependencies that is not updated to follow the new standards required for NativeAOT release. You should feel Collapse being more snappy especially when launching from cold.
So, what is this "NativeAOT" mumbo jumbo?
Usually, a .NET application is executed in Just-In-Time manner and compiled into Intermediate Language (IL) instead of straight into native code. This however, requires a runtime to be installed into the machine or included within the app.
NativeAOT (Ahead-of-Time) compilation in other hand, will compile your app straight into native machine code executable. Due to its nature, the program can run independently without a runtime since the app was compiled straight into native code, resulting much faster start-up time, smaller memory footprint, smaller executable size and slightly better in performance.
While the app should benefit from using NativeAOT compilation, the developer should follow bunch of strict rules and requirements in order to make their program to work properly. Some of them are the limitation on accessing certain reflection-based methods and dynamic-based types since those requires invocations to happen at runtime.
To get rid all of those obstacles, we refactored bunch of codes with source-generated, COM Interface and Marshal-based/PInvoke ones, which one of them even require a call into Win32 API in order to make it work.
While NativeAOT is still a new norm in .NET app development and a very experimental feature, we finally managed to pull it off and make Collapse Launcher to run and compiled straight into native code executable.
New Feature: Bandwidth Limiter
This is by far the (second) biggest change in this release. We've been using the same downloader code since Collapse first released in 2021. While it worked well enough for its time, it quickly became apparent that, as we wanted to add more features, it became increasingly challenging to do so in a timely manner because of the amount of time we'd need to spend fixing the HTTP module of Collapse.
Well, no more! We've rewritten the entire module so that it is not only more efficient in terms of downloading, but also uses far less memory!
Due to this rewrite, we've been able to finally implement a bandwidth limiter for Collapse.
Here's what it can do:
https://github.com/user-attachments/assets/7202d6cc-f743-402c-9f65-cdc958c5fab6
See for yourself in your App Settings!
New Feature: By-region Custom Background Support
One of our most requested features since we've first allowed users to change backgrounds was the ability to change backgrounds based not only by game but also by region.
What if we told you that now you can do that? And use videos too? Amazing, right?
Here's how you do it: Home Page -> Quick Settings (bottom right) -> Custom Background for Region.
This feature does not require you to enable the Global Custom Background setting.
Background priority as follows: Regional Custom BG -> Global App Custom BG -> API provided BG -> Paimon deadge fallback image.
New Feature: Notification Toast Support for Background Activities
This feature will help users get notified when a background activity is completed. The notification toast includes support for Game Installation, Game Update, Pre-load Download, Game Repair and Cache Update features.
In its current implementation, the notification only supports text-based content.
https://github.com/user-attachments/assets/4f15d484-d7e2-4015-9331-25b0afc2c56a
New Feature: Playtime Synchronization across devices
Collapse now supports tracking playtime across multiple devices through an online SQLite database.
While we've been using https://turso.tech and have tested for that platform, any provider that provides SQLite online database instances through a URL and a token will work.
Playtime synced to the online database in a many ways:
At first region load
When you first launch your game
Every 5 minutes when the game is running
When you close your game
New Feature: Game Cleanup & File Ignore
This feature does pretty much what it says: it allows you to delete any unused files that are no longer referenced by the game, but that are still shipped with it as part of an update for some reason.
Complementing that feature is the file ignore functionality, which works as follows:
@IgnoredFiles
that you can put in the game's root directory*
in your filenameThe Game Cleanup feature is accessible in Quick Settings -> "Files Clean-up".
When deleting, you can also chose between moving them to your Recycle Bin or deleting them permanently from your drive.
https://github.com/user-attachments/assets/eff71a6e-746d-48d1-ae15-ec17c5443a73
New Feature: Proxy Support
Collapse now supports using a proxy server for the entire app. By default, it will use whatever proxy settings you have configured in Windows.
We currently support the following protocols: HTTP, HTTPS & SOCKS5.
You can find this feature in your App Settings.
New Game Region Support: Genshin Impact - Google Play
Nothing much to say here, we're now able to offer our users the ability to install the Google Play version of Genshin Impact, which allows you to sign in with Google Play, among other things.
New Game Region Support: Zenless Zone Zero - Bilibili
This falls in line with other newer HoYoverse titles. We're happy to be able to support the installation and updating for this region!
Major Changes
Core System Improvements
Aside from all the bugfixes in this release (which you can view in the full changelog), this version improves the following:
Fix issues with acrylic effects not being applied when using a video background
https://github.com/user-attachments/assets/7202d6cc-f743-402c-9f65-cdc958c5fab6
Updater Improvements
We've (once again) switched updaters for Collapse! As the Squirrel project is in a semi-deprecated state, its users are encouraged to switch over to Velopack. And that's what we did!
Velopack is a drop-in replacement for Squirrel. As a user, you won't even see the difference, though it does offer some notable benefits:
Your Collapse install will automatically migrate over to Velopack with this release, no action is required on your part.
Sophon Downloader Improvements
https://github.com/user-attachments/assets/e00a0648-4904-45ea-bf30-3201f4fc3896
Package Download Improvements
Playtime Statistics Improvements
https://github.com/user-attachments/assets/224e1048-947a-4bef-9809-8acc05f70945
Various Localization Updates
As always, we want to thank are awesome community for providing an amazing localization for our project. Collapse is now localizable in 17 languages and dialects! <3
Minor changes
We would list all the minor changes here, but due to the amount of commits, we've decided against it for this release.
Read the full changelog below!
Full Changelog: https://github.com/CollapseLauncher/Collapse/compare/CL-v1.80.19...CL-v1.82.0