diff --git a/.gitignore b/.gitignore
index d122d25054..de6a3ac848 100644
--- a/.gitignore
+++ b/.gitignore
@@ -336,3 +336,6 @@ inspectcode
/BenchmarkDotNet.Artifacts
*.GeneratedMSBuildEditorConfig.editorconfig
+
+# Fody (pulled in by Realm) - schema file
+FodyWeavers.xsd
diff --git a/osu.Game/FodyWeavers.xml b/FodyWeavers.xml
similarity index 100%
rename from osu.Game/FodyWeavers.xml
rename to FodyWeavers.xml
diff --git a/README.md b/README.md
index 3054f19e79..2213b42121 100644
--- a/README.md
+++ b/README.md
@@ -43,7 +43,7 @@ If your platform is not listed above, there is still a chance you can manually b
osu! is designed to have extensible modular gameplay modes, called "rulesets". Building one of these allows a developer to harness the power of osu! for their own game style. To get started working on a ruleset, we have some templates available [here](https://github.com/ppy/osu/tree/master/Templates).
-You can see some examples of custom rulesets by visiting the [custom ruleset directory](https://github.com/ppy/osu/issues/5852).
+You can see some examples of custom rulesets by visiting the [custom ruleset directory](https://github.com/ppy/osu/discussions/13096).
## Developing osu!
diff --git a/osu.Android.props b/osu.Android.props
index 3a1e6ba9a3..1dc99bb60a 100644
--- a/osu.Android.props
+++ b/osu.Android.props
@@ -54,4 +54,8 @@
+
+
+
+
diff --git a/osu.Game.Tests/Chat/MessageFormatterTests.cs b/osu.Game.Tests/Chat/MessageFormatterTests.cs
index ecb37706b0..2c2c4dc24e 100644
--- a/osu.Game.Tests/Chat/MessageFormatterTests.cs
+++ b/osu.Game.Tests/Chat/MessageFormatterTests.cs
@@ -28,6 +28,8 @@ namespace osu.Game.Tests.Chat
[TestCase(LinkAction.OpenBeatmapSet, "123", "https://dev.ppy.sh/beatmapsets/123")]
[TestCase(LinkAction.OpenBeatmapSet, "123", "https://dev.ppy.sh/beatmapsets/123/whatever")]
[TestCase(LinkAction.External, "https://dev.ppy.sh/beatmapsets/abc", "https://dev.ppy.sh/beatmapsets/abc")]
+ [TestCase(LinkAction.External, "https://dev.ppy.sh/beatmapsets/discussions", "https://dev.ppy.sh/beatmapsets/discussions")]
+ [TestCase(LinkAction.External, "https://dev.ppy.sh/beatmapsets/discussions/123", "https://dev.ppy.sh/beatmapsets/discussions/123")]
public void TestBeatmapLinks(LinkAction expectedAction, string expectedArg, string link)
{
MessageFormatter.WebsiteRootUrl = "dev.ppy.sh";
diff --git a/osu.Game/FodyWeavers.xsd b/osu.Game/FodyWeavers.xsd
deleted file mode 100644
index 447878c551..0000000000
--- a/osu.Game/FodyWeavers.xsd
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
-
-
-
-
-
-
-
- Disables anonymized usage information from being sent on build. Read more about what data is being collected and why here: https://github.com/realm/realm-dotnet/blob/master/Realm/Realm.Fody/Common/Analytics.cs
-
-
-
-
-
-
-
- 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.
-
-
-
-
- A comma-separated list of error codes that can be safely ignored in assembly verification.
-
-
-
-
- 'false' to turn off automatic generation of the XML Schema file.
-
-
-
-
-
\ No newline at end of file
diff --git a/osu.Game/Online/Chat/MessageFormatter.cs b/osu.Game/Online/Chat/MessageFormatter.cs
index df14d7eb1c..faee08742b 100644
--- a/osu.Game/Online/Chat/MessageFormatter.cs
+++ b/osu.Game/Online/Chat/MessageFormatter.cs
@@ -154,6 +154,10 @@ namespace osu.Game.Online.Chat
case "beatmapsets":
case "d":
{
+ if (mainArg == "discussions")
+ // handle discussion links externally for now
+ return new LinkDetails(LinkAction.External, url);
+
if (args.Length > 4 && int.TryParse(args[4], out var id))
// https://osu.ppy.sh/beatmapsets/1154158#osu/2768184
return new LinkDetails(LinkAction.OpenBeatmap, id.ToString());
diff --git a/osu.Game/Performance/HighPerformanceSession.cs b/osu.Game/Performance/HighPerformanceSession.cs
index 96e67669c5..661c1046f1 100644
--- a/osu.Game/Performance/HighPerformanceSession.cs
+++ b/osu.Game/Performance/HighPerformanceSession.cs
@@ -1,7 +1,6 @@
// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
-using System.Runtime;
using osu.Framework.Allocation;
using osu.Framework.Bindables;
using osu.Framework.Graphics;
@@ -11,7 +10,6 @@ namespace osu.Game.Performance
public class HighPerformanceSession : Component
{
private readonly IBindable localUserPlaying = new Bindable();
- private GCLatencyMode originalGCMode;
[BackgroundDependencyLoader]
private void load(OsuGame game)
@@ -34,14 +32,10 @@ namespace osu.Game.Performance
protected virtual void EnableHighPerformanceSession()
{
- originalGCMode = GCSettings.LatencyMode;
- GCSettings.LatencyMode = GCLatencyMode.LowLatency;
}
protected virtual void DisableHighPerformanceSession()
{
- if (GCSettings.LatencyMode == GCLatencyMode.LowLatency)
- GCSettings.LatencyMode = originalGCMode;
}
}
}
diff --git a/osu.iOS.props b/osu.iOS.props
index 01c9b27cc7..3689ce51f2 100644
--- a/osu.iOS.props
+++ b/osu.iOS.props
@@ -99,5 +99,6 @@
+