Skip to content

Commit

Permalink
Updated: Project Version to 1.28.0
Browse files Browse the repository at this point in the history
  • Loading branch information
Sewer56 committed Oct 17, 2024
1 parent 89ab677 commit b71e11f
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 296 deletions.
315 changes: 21 additions & 294 deletions changelog-template.hbs
Original file line number Diff line number Diff line change
@@ -1,318 +1,45 @@
***If you are viewing on GitHub, you can find the downloads at the bottom of this post.***

***1.27.14: NativeAOT Installer for Linux & Install Documentation***
[Read and Discuss in a Browser](https://github.com/Reloaded-Project/Reloaded-II/discussions/473).
[Previous Changelog](https://github.com/Reloaded-Project/Reloaded-II/releases/tag/1.27.14).

The general docs have been updated with easier to access install instructions; outside of that, it's all improvements for Linux.
***1.28.0: .NET 9 and Miscellaneous Improvements***

## Improved Linux Install Experience
## Upgraded to .NET 9

[Includes a new, more streamlined guide](https://reloaded-project.github.io/Reloaded-II/LinuxSetupGuideNew/)
Reloaded-II now ships with .NET 9 (currently RC2) as its runtime; given that no major issues have been reported thus far. This should give modders access to new APIs as well as performance improvements.

![image](https://github.com/user-attachments/assets/14e64b13-32d5-432d-b4eb-aefbbf95f53d)
## Improved: Running protontricks with certain Flatpak installs.

This update improves the CLI Installer for Wine (Linux) added in the previous release.
Many people running Protontricks via Flatpak rely on setting an alias to `protontricks-launch` via `~/.bashrc`. In fact, the [install guide recommends this](https://reloaded-project.github.io/Reloaded-II/LinuxSetupGuideNewExtra/#installing-protontricks-via-flatpak).

### Faster Install Time

Installing on Linux is now slightly faster, thanks to `NativeAOT` and a smaller `.exe` size.

### Reduced Installer Size

Reduced size of the CLI installer to 7.8MB (from 70MB) as a result of the above.

### Fixed Reloaded Not Booting with native .NET SDK is Installed

The Reloaded CLI installer no longer requires `DOTNET_ROOT` to be set when the native Linux SDK is installed.

In addition, the installer will automatically override `DOTNET_ROOT` and `DOTNET_BUNDLE_EXTRACT_BASE_DIR` in the registry, making sure that you can just doubleclick the `Reloaded-II` exe and it'll work 'just fine'. No terminya~l needed.

### Unique Install Locations for Protontricks

![image](https://github.com/user-attachments/assets/b3eac014-43e1-46c7-8118-e0a82a5795d4)

If you install Reloaded via Protontricks, you'll now get a unique install path for each game; allowing you to isolate your Reloaded installations for cleanliness.

### Automatic Shortcut Creation

Installing via `Protontricks` will now automatically create shortcut to launch the program.
As seen above. This means you can easily launch it after installation.

It (should) even show up in your start menu.

### Installer Informs you of Install Location

The installer will now inform you it installed on the desktop upon finishing.

### Skip Wine Launch Dialog

![DisableLaunchFromWine](https://github.com/user-attachments/assets/706781a1-8a25-4b58-a835-a6b21ddeb650)

If Reloaded is ran from `protontricks`, the `Wine Launch Dialog` will now be auto-skipped.
It will be presumed you're running in the correct environment for the given game.

------------------------------------
## Previous Changelog (1.27.13)
*Miscellaneous Installer Improvements*
[Read and Discuss in a Browser](https://github.com/Reloaded-Project/Reloaded-II/discussions/369).
[Previous Changelog](https://github.com/Reloaded-Project/Reloaded-II/releases/tag/1.27.11).
This update adds small miscellaneous improvements around the Reloaded-II installer for Windows.
### Abort Install on Existing Directory
![Setup_mU5Z0mGI3t](https://github.com/user-attachments/assets/ccb21f18-88ff-4f0d-9149-9c05fe227969)
The installer will now abort installation if there is an existing installation; this is to prevent data loss.
### Setup.exe now Starts Reloaded-II Without Admin
When running `Setup.exe`, the `Reloaded-II.exe` file would start as admin. This is because `Setup.exe`
starts as Admin. Setup needs Admin to auto-install .NET Runtime (if missing).
As starting with Admin may potentially cause issues with drag & drop with some 3rd party programs and
file explorers running as non-Admin; the `Reloaded-II.exe` process started by `Setup.exe` is now non-admin.
Surprisingly, this change was non-trivial to make.
### Static Installer for Linux/WINE
![explorer_XdCp1ST0Rx](https://github.com/user-attachments/assets/85e3447d-57a5-41b8-9bac-fed7670b7f65)
There is now a 'static' installer for people who want to install Reloaded easier within a WINE environment.
This installer saves you a minute by allowing you to omit:
However, the `.desktop` shortcuts generated by the installer previously did not account for this.

```
winetricks dotnet48
Exec=protontricks-launch --appid 3847140856 "/home/sewer/Desktop/Reloaded-II - Sonic Heroes/Reloaded-II.exe"
```

During the install process.
This was mainly done with the intention of providing a terminal-free installation experience to people
new to Linux.
### Documentation Updates
Documentation updates will follow tomorrow.
Expect [Issue 247: Document one click installer](<https://github.com/Reloaded-Project/Reloaded-II/issues/247>)
to be closed. In addition, the Generic Linux setup guide will be updated.
## Changelog (1.27.11)
[Read and Discuss in a Browser](https://github.com/Reloaded-Project/Reloaded-II/discussions/369).
[Previous Changelog](https://github.com/Reloaded-Project/Reloaded-II/releases/tag/1.27.10).
This update adds a retry policy for in-launcher downloads that are not updates, in order
to make downloading more reliable when the servers on mod sites are under heavy load.
## Changelog (1.27.10)
[Read and Discuss in a Browser](https://github.com/Reloaded-Project/Reloaded-II/discussions/369).
[Previous Changelog](https://github.com/Reloaded-Project/Reloaded-II/releases/tag/1.27.9).
This update improves Reloaded's Launcher for people using screen readers, labelling many
previously unlabaled items throughout the core UI.
Most of the core/main UI should now be a bit friendlier 😇.
It's not going to be perfect, but I hope it's just a little better.
## Changelog (1.27.9)
[Read and Discuss in a Browser](https://github.com/Reloaded-Project/Reloaded-II/discussions/369).
[Previous Changelog](https://github.com/Reloaded-Project/Reloaded-II/releases/tag/1.27.8).
This update re-enables WPF Automation Functionality to improve accessibility for users who require
the use of assistive screen readers.
Originally this was disabled in an effort to improve performance, a significant amount of time is spent
initializing the automation system on every launch. However, I did not expect at the time that said Functionality
would have an impact on accessibility. I originally assumed that the functionality was only used for debugging purposes.
For that, I am sorry.
## Changelog (1.27.8)
[Read and Discuss in a Browser](https://github.com/Reloaded-Project/Reloaded-II/discussions/369).
[Previous Changelog](https://github.com/Reloaded-Project/Reloaded-II/releases/tag/1.27.7).
- Fixed a launcher crash that would occur when trying to set the Mod Preview to an image that's already in the Mod Root Folder.
- For example setting `Reloaded-II/Mods/your.mod.id/Preview.png` as the image, when `Preview.png` was already in the correct location.
- Originally reported here: https://github.com/Reloaded-Project/Reloaded-II/issues/389
## Changelog (1.27.7)
[Read and Discuss in a Browser](https://github.com/Reloaded-Project/Reloaded-II/discussions/369).
[Previous Changelog](https://github.com/Reloaded-Project/Reloaded-II/releases/tag/1.27.6).
- Added a Safeguard against people putting files in `Program Files/dotnet/shared` that don't belong to the .NET runtime.
- Originally reported here: https://github.com/Reloaded-Project/Reloaded-II/issues/373
- It's unknown why the files were there, it may be `tModLoader`, but I'm not personally sure.
Because the command was not ran in a shell, `~/.bashrc` was not being sourced; so the alias would not work for Flatpak users. Installs from the updated installer now create a shortcut that uses `bash` to invoke the command:

## Changelog (1.27.6)
[Read and Discuss in a Browser](https://github.com/Reloaded-Project/Reloaded-II/discussions/369).
[Previous Changelog](https://github.com/Reloaded-Project/Reloaded-II/releases/tag/1.27.5).
- Reduced time taken to download many small mod updates.
- Improved fault handling for mod updates.
This was done by adding an exponential backoff retry policy for mod updates. In addition, we now update 4 mods in parallel,
instead of just 1.
## Changelog (1.27.5)
[Read and Discuss in a Browser](https://github.com/Reloaded-Project/Reloaded-II/discussions/369).
[Previous Changelog](https://github.com/Reloaded-Project/Reloaded-II/releases/tag/1.27.4).
Fixed by @AnimatedSwine37.
Fixed a bug where saving after clicking `Load Existing Pack` would cause the `ReleaseMetadataFileName`
property of every loaded mod to be lost on save, making the pack unusable.
## Changelog (1.27.4)
[Read and Discuss in a Browser](https://github.com/Reloaded-Project/Reloaded-II/discussions/369).
[Previous Changelog](https://github.com/Reloaded-Project/Reloaded-II/releases/tag/1.27.3).
Originally reported as:
- https://github.com/Reloaded-Project/Reloaded-II/issues/368
When changing the install location of a GamePass (Microsoft Store) game within Reloaded-II, the operation will no longer fail if the file is protected/unreadable due to OS' built in Copy Protection/Sandboxing.
This is useful if:
- You have reinstalled the game.
- You have moved the game to another location.
etc.
Instead, the same logic/steps as will be applied as if the game was added for the first time, including ASI Loader re-deployment (if necessary).
## Changelog (1.27.3)
[Read and Discuss in a Browser](https://github.com/Reloaded-Project/Reloaded-II/discussions/365).
[Previous Changelog](https://github.com/Reloaded-Project/Reloaded-II/releases/tag/1.27.2).
This update adds fallback logic that will display error messages if any should occur before the UI is fully initialized.
## Changelog (1.27.2)
[Read and Discuss in a Browser](https://github.com/Reloaded-Project/Reloaded-II/discussions/357).
[Previous Changelog](https://github.com/Reloaded-Project/Reloaded-II/releases/tag/1.27.1).
This update removes the dependency on PowerShell when decrypting MS Store games.
Just in case a user has a borked PowerShell setup.
## Changelog (1.27.1)
[Read and Discuss in a Browser](https://github.com/Reloaded-Project/Reloaded-II/discussions/350).
[Previous Changelog](https://github.com/Reloaded-Project/Reloaded-II/releases/tag/1.27.0).
This update fixes a rare race condition resulting in
mod files sometimes being missing after a mod update or download.
(Thanks to @AnimatedSwine37)
## Changelog (1.27.0)
[Read and Discuss in a Browser](https://github.com/Reloaded-Project/Reloaded-II/discussions/347).
[Previous Changelog](https://github.com/Reloaded-Project/Reloaded-II/releases/tag/1.26.2).
This is a longer 'Progress Report' kind of post. Consider reading in a browser.
## Dependency Resolution Update
This update is focused on more reliable resolution of missing dependencies, notably, reducing the amount of time that the following message is seen:
![311567942-ab36118e-8a0b-40f3-a0d5-db3490a247f3](https://github.com/Reloaded-Project/Reloaded-II/assets/6697380/c75aa428-d579-46f1-b18f-c7fc3505b364)
**A fix for end users:**
- Launching Reloaded without Internet after a mod download will no longer render missing dependencies undownloadable.
- We now ensure we don't remove unused dependency metadata if we're missing dependencies.
- Fixed a very rare edge where it was technically possible the launcher incorrectly reports a missing dependency.
- This would happen if a mod had multiple download locations (e.g. GameBanana+GitHub), but was removed from 1 location.
**A fix for mod authors:**
- A launcher restart is no longer required to update mod dependency info.
- This info is what's used to download missing dependencies.
- *You can now safely add/edit a mod in launcher, set dependency, add some files and publish*.
- Previously a launcher restart was required to ensure dependency info was embedded in your mod.
- We now update the dependency data before publish, ensuring mod authors don't pack mod with missing dependencies.
**An Automated Error Handler for Edge Cases:**
- We now use the [Search Index](https://github.com/Reloaded-Project/Reloaded-II.Index) as a fallback, if all else fails.
- The search index is what normally makes your mod searches in App super fast.
- But it also knows the unique `ModId` of each uploaded mod.
- So we can use this to find missing mods.
- This currently works for 11 games that use Reloaded-II on GameBanana (I don't index any other sites currently).
- Enabling this has some security implications. This is only used as a last resort fallback, when all else fails.
This should hopefully help in getting cases where users experience missing dependencies closer to 0.
***Especially*** in situations where a dependency is hosted only in 1 location, e.g. `Only <This Mod Site>`
## Updated Docs
Documentation and in-launcher tutorial has been updated to feature installing via drag-and-drop as a method of installation.
![image](https://github.com/Reloaded-Project/Reloaded-II/assets/6697380/d2834ba8-9a6b-43d0-aff8-f067007358c8)
(Hint: It's animated in the launcher)
## Infrastructure Update
The open [1st party package server](http://packages.sewer56.moe:5000/about) is an unsung hero ensuring your modding experience is as smooth as possible. This is the place where ***critical*** code mods are fetched from automatically when the primary source (like GitHub) hits its limits - a common scenario given GitHub's restrictions of 60 requests per hour per IP.
Given Reloaded's modular nature, you'll typically hit that limit restarting the launcher around 4 times. Now imagine you have a family, or are in a hotel room, or just troubleshooting, this limit may already be exhausted. Now you download a new mod, which requires some framework/critical component and suddenly you're told...
![311567942-ab36118e-8a0b-40f3-a0d5-db3490a247f3](https://github.com/Reloaded-Project/Reloaded-II/assets/6697380/c75aa428-d579-46f1-b18f-c7fc3505b364)
Not ideal.
With the surge of users, traffic on this server has risen drastically. In the past 20 days we have ***transferred 6TB of data***. Month started with approximately 5MB/s and is now 7.5MB/s. This is especially surprising, as the critical code mods stored here are typically under 0.5MB in size.
![pulse-browser_Qw41LjD9KC](https://github.com/Reloaded-Project/Reloaded-II/assets/6697380/f118f2fe-4eed-4ce4-9422-9660681bdaa0)
![pulse-browser_7lQjhXQXIB](https://github.com/Reloaded-Project/Reloaded-II/assets/6697380/1102d5fe-e625-4175-a2c0-b1dc1b9c2129)
I only found out a few days ago, as I was looking into why the server was unresponsive. Sometimes queries randomly took ~2-3 seconds to respond, and I was rather flabbergasted.
The Package server runs on a *very minimal-effort* fork of [BaGet](https://github.com/loic-sharma/BaGet/), renamed as [BaGet-Reloaded](https://github.com/Sewer56/BaGet-ReloadedII) to avoid confusion with the original project. Using the Sqlite3 backend.
To the best of my knowledge, the delays in responses were caused by a combination of:
- A lot of writes to the DB, which blocks reads in Sqlite out of the box.
- Notably, BaGet increments the 'download count' every time a package is returned via search.
- Sustained load on a shared CPU (a.k.a. 'vCPU'). [to a very, very small extent]
I changed the settings on Sqlite3 to use [WAL](https://www.sqlite.org/wal.html) and `synchronous=NORMAL`. This allows us to perform reads during writes, thus fixing up the performance. In addition, I bumped the server specs a bit, just in case the load continues to climb. Currently the server is completely responsive again.
### A Thank You
Services like the `Package Server` are supported by your donations.
They also help cover occasional game purchases.
Recent Example: [Fixing Compatibility with Special K in presence of Steam Copy Protection/DRM](https://github.com/Reloaded-Project/Reloaded-II/issues/308#issuecomment-1973715264) for games like Granblue Relink
In the ~4 years I've been accepting donations so far, I've received a total of ***£358.87 (and 4 games)***. This has helped cover most of the costs involved. e.g. Package Server, Server Backups, Discord Bot(s), Search Index, Services for some Online Mods, Domain (Website Name) Costs etc.
```
Exec=bash -ic 'protontricks-launch --appid 3847140856 "/home/sewer/Desktop/Reloaded-II - Sonic Heroes/Reloaded-II.exe"'
```

With these donations I can almost break even. I don't have any concrete numbers (hard to calculate), but based on some quick maths, I've probably spent around £450-500 on Reloaded related things so far.
This should cause `~/.bashrc` to be sourced; and hopefully the alias to work.

Thank you.
Note: Normally running a specific shell is not the best practice, however the whole installer itself is a hack and `bash` is ubiquitous enough that I can't name a distro that doesn't ship it out of the box.

### About the Future
## Improved: Flickering on xwayland

Please remember. For most of its life, Reloaded has been a solo project.
Not just the Manager, but the Loader and many of the core components used across your popular mods.
Client side decorations (window glow) has been disabled by default on Linux; this reduces the amount of flicker encountered when running the application via Wine on Xwayland.

In any case, the work on the successor continues, albeit slowly.
It also helps maximize screen real estate, the invisible border should no longer look 'weird' in tiling window managers.

Every week, I spend around 24-30 hours on Reloaded things, ***on top of my fulltime job***. Hopefully in 2 years, we'll live in a future where users can start experimenting with porting core components from Reloaded-II to Reloaded3. This is not easy to do, but I will relentlessly keep going, until it is done.
## Fixed: Auto Update Working Directory

The intent of the recent reliability/bug-fix patches is to allow me to step back from maintaining Reloaded-II for a longer time and let me focus on the successor.
Previously if you moved a game, you would need to move both the `EXE Path` and `Working Directory` in the `Edit Application` menu. This caused a lot of issues as users would not notice, and then get non-bootable games.

If you are a programmer, I should hopefully have a ['Specification'](https://reloaded-project.github.io/Reloaded-III/) ready not too long from now. The work on this is resuming today, after a long hiatus, so various core parts of Reloaded3 will be open to community contributions. Until then, hang tight.
In this update, I've made the `Working Directory` adjust alongside the `EXE Path`. This preserves the relative path, in other words, if your working directory is 2 folders up, then the new working directory will also be 2 folders up.

------------------------------------
Expand Down
2 changes: 1 addition & 1 deletion source/Reloaded.Mod.Launcher/Reloaded.Mod.Launcher.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<UseWPF>true</UseWPF>
<AssemblyName>Reloaded-II</AssemblyName>
<RootNamespace>Reloaded.Mod.Launcher</RootNamespace>
<Version>1.27.14</Version>
<Version>1.28.0</Version>
<Copyright>Sewer56 ~ $([System.DateTime]::UtcNow.ToString("s")) | $(Version)</Copyright>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<ApplicationIcon>appicon.ico</ApplicationIcon>
Expand Down
2 changes: 1 addition & 1 deletion source/Reloaded.Mod.Loader/Reloaded.Mod.Loader.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<NoWarn>$(NoWarn);NU1605;NU1701</NoWarn>
<Version>1.27.14</Version>
<Version>1.28.0</Version>
<Platforms>x86;x64</Platforms>
<GenerateDepsJson>false</GenerateDepsJson>
<DebugType>portable</DebugType>
Expand Down

0 comments on commit b71e11f

Please # to comment.