diff --git a/Ryujinx/Configuration/DiscordIntegrationModule.cs b/Ryujinx/Configuration/DiscordIntegrationModule.cs
index 87cff00806..378e9c3f1c 100644
--- a/Ryujinx/Configuration/DiscordIntegrationModule.cs
+++ b/Ryujinx/Configuration/DiscordIntegrationModule.cs
@@ -1,14 +1,13 @@
using DiscordRPC;
using Ryujinx.Common;
using System;
-using System.IO;
using System.Linq;
namespace Ryujinx.Configuration
{
static class DiscordIntegrationModule
{
- private static DiscordRpcClient DiscordClient;
+ private static DiscordRpcClient _discordClient;
private static string LargeDescription = "Ryujinx is a Nintendo Switch emulator.";
@@ -38,25 +37,25 @@ namespace Ryujinx.Configuration
// If the integration was active, disable it and unload everything
if (e.OldValue)
{
- DiscordClient?.Dispose();
+ _discordClient?.Dispose();
- DiscordClient = null;
+ _discordClient = null;
}
// If we need to activate it and the client isn't active, initialize it
- if (e.NewValue && DiscordClient == null)
+ if (e.NewValue && _discordClient == null)
{
- DiscordClient = new DiscordRpcClient("568815339807309834");
+ _discordClient = new DiscordRpcClient("568815339807309834");
- DiscordClient.Initialize();
- DiscordClient.SetPresence(DiscordPresence);
+ _discordClient.Initialize();
+ _discordClient.SetPresence(DiscordPresence);
}
}
}
public static void SwitchToPlayingState(string titleId, string titleName)
{
- if (File.ReadAllLines(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "RPsupported.dat")).Contains(titleId))
+ if (SupportedTitles.Contains(titleId))
{
DiscordPresence.Assets.LargeImageKey = titleId;
}
@@ -86,7 +85,7 @@ namespace Ryujinx.Configuration
DiscordPresence.Assets.SmallImageText = LargeDescription;
DiscordPresence.Timestamps = new Timestamps(DateTime.UtcNow);
- DiscordClient?.SetPresence(DiscordPresence);
+ _discordClient?.SetPresence(DiscordPresence);
}
public static void SwitchToMainMenu()
@@ -99,12 +98,75 @@ namespace Ryujinx.Configuration
DiscordPresence.Assets.SmallImageText = null;
DiscordPresence.Timestamps = new Timestamps(DateTime.UtcNow);
- DiscordClient?.SetPresence(DiscordPresence);
+ _discordClient?.SetPresence(DiscordPresence);
}
public static void Exit()
{
- DiscordClient?.Dispose();
+ _discordClient?.Dispose();
}
+
+ private static readonly string[] SupportedTitles =
+ {
+ "0100000000010000", // Super Mario Odyssey™
+ "01000b900d8b0000", // Cadence of Hyrule – Crypt of the NecroDancer Featuring The Legend of Zelda
+ "01000d200ac0c000", // Bud Spencer & Terence Hill - Slaps And Beans
+ "01000d700be88000", // My Girlfriend is a Mermaid!?
+ "01000dc007e90000", // Sparkle Unleashed
+ "01000e2003fa0000", // MIGHTY GUNVOLT BURST
+ "0100225000fee000", // Blaster Master Zero
+ "010028d0045ce000", // Sparkle 2
+ "01002b30028f6000", // Celeste
+ "01002fc00c6d0000", // Witch Thief
+ "010034e005c9c000", // Code of Princess EX
+ "010036b0034e4000", // Super Mario Party™
+ "01003d200baa2000", // Pokémon Mystery Dungeon™: Rescue Team DX
+ "01004f8006a78000", // Super Meat Boy
+ "010051f00ac5e000", // SEGA AGES Sonic The Hedgehog
+ "010055d009f78000", // Fire Emblem™: Three Houses
+ "010056e00853a000", // A Hat in Time
+ "0100574009f9e000", // 嘘つき姫と盲目王子
+ "01005d700e742000", // DOOM 64
+ "0100628004bce000", // Nights of Azure 2: Bride of the New Moon
+ "0100633007d48000", // Hollow Knight
+ "010065500b218000", // メモリーズオフ -Innocent Fille-
+ "010068f00aa78000", // FINAL FANTASY XV POCKET EDITION HD
+ "01006bb00c6f0000", // The Legend of Zelda™: Link’s Awakening
+ "01006f8002326000", // Animal Crossing™: New Horizons
+ "01006a800016e000", // Super Smash Bros.™ Ultimate
+ "010072800cbe8000", // PC Building Simulator
+ "01007300020fa000", // ASTRAL CHAIN
+ "01007330027ee000", // Ultra Street Fighter® II: The Final Challengers
+ "0100749009844000", // 20XX
+ "01007a4008486000", // Enchanting Mahjong Match
+ "01007ef00011e000", // The Legend of Zelda™: Breath of the Wild
+ "010080b00ad66000", // Undertale
+ "010082400bcc6000", // Untitled Goose Game
+ "01008db008c2c000", // Pokémon™ Shield
+ "010094e00b52e000", // Capcom Beat 'Em Up Bundle
+ "01009aa000faa000", // Sonic Mania
+ "01009b90006dc000", // Super Mario Maker™ 2
+ "01009cc00c97c000", // DEAD OR ALIVE Xtreme 3 Scarlet 基本無料版
+ "0100ea80032ea000", // New Super Mario Bros.™ U Deluxe
+ "0100a4200a284000", // LUMINES REMASTERED
+ "0100a5c00d162000", // Cuphead
+ "0100abf008968000", // Pokémon™ Sword
+ "0100ae000aebc000", // Angels of Death
+ "0100b3f000be2000", // Pokkén Tournament™ DX
+ "0100bc2004ff4000", // Owlboy
+ "0100cf3007578000", // Atari Flashback Classics
+ "0100d5d00c6be000", // Our World Is Ended.
+ "0100d6b00cd88000", // YUMENIKKI -DREAM DIARY-
+ "0100d870045b6000", // Nintendo Entertainment System™ - Nintendo Switch Online
+ "0100e0c00adac000", // SENRAN KAGURA Reflexions
+ "0100e46006708000", // Terraria
+ "0100e7200b272000", // Lanota
+ "0100e9f00b882000", // null
+ "0100eab00605c000", // Poly Bridge
+ "0100efd00a4fa000", // Shantae and the Pirate's Curse
+ "0100f6a00a684000", // ひぐらしのなく頃に奉
+ "0100f9f00c696000", // Crash™ Team Racing Nitro-Fueled
+ "051337133769a000", // RGB-Seizure
+ };
}
}
diff --git a/Ryujinx/RPsupported.dat b/Ryujinx/RPsupported.dat
deleted file mode 100644
index c58195bab9..0000000000
--- a/Ryujinx/RPsupported.dat
+++ /dev/null
@@ -1,49 +0,0 @@
-01000d200ac0c000
-01000d700be88000
-01000dc007e90000
-01000e2003fa0000
-0100225000fee000
-010028d0045ce000
-01002b30028f6000
-01002fc00c6d0000
-010034e005c9c000
-01004f8006a78000
-010051f00ac5e000
-010056e00853a000
-0100574009f9e000
-0100628004bce000
-0100633007d48000
-010065500b218000
-010068f00aa78000
-01006a800016e000
-010072800cbe8000
-01007300020fa000
-01007330027ee000
-0100749009844000
-01007a4008486000
-01007ef00011e000
-010080b00ad66000
-01008db008c2c000
-010094e00b52e000
-01009aa000faa000
-01009b90006dc000
-01009cc00c97c000
-0100a4200a284000
-0100a5c00d162000
-0100abf008968000
-0100ae000aebc000
-0100b3f000be2000
-0100bc2004ff4000
-0100cf3007578000
-0100d5d00c6be000
-0100d6b00cd88000
-0100d870045b6000
-0100e0c00adac000
-0100e46006708000
-0100e7200b272000
-0100e9f00b882000
-0100eab00605c000
-0100efd00a4fa000
-0100f6a00a684000
-0100f9f00c696000
-051337133769a000
\ No newline at end of file
diff --git a/Ryujinx/Ryujinx.csproj b/Ryujinx/Ryujinx.csproj
index c896742bb4..d82c62f70d 100644
--- a/Ryujinx/Ryujinx.csproj
+++ b/Ryujinx/Ryujinx.csproj
@@ -93,9 +93,6 @@
PreserveNewest
-
- PreserveNewest
-
diff --git a/Ryujinx/Ui/MainWindow.cs b/Ryujinx/Ui/MainWindow.cs
index 5b75848d7d..e6c632d957 100644
--- a/Ryujinx/Ui/MainWindow.cs
+++ b/Ryujinx/Ui/MainWindow.cs
@@ -363,7 +363,9 @@ namespace Ryujinx.Ui
else
{
Logger.PrintWarning(LogClass.Application, "Please specify a valid XCI/NCA/NSP/PFS0/NRO file.");
- End(device);
+ device.Dispose();
+
+ return;
}
_emulationContext = device;