diff --git a/src/SharpEmu.GUI/GuiSettings.cs b/src/SharpEmu.GUI/GuiSettings.cs
index 1e48bba..709ce22 100644
--- a/src/SharpEmu.GUI/GuiSettings.cs
+++ b/src/SharpEmu.GUI/GuiSettings.cs
@@ -40,6 +40,8 @@ public sealed class GuiSettings
/// Loop the selected game's sce_sys/snd0.at9 preview music.
public bool PlayTitleMusic { get; set; } = true;
+ public double TitleMusicVolume { get; set; } = 1.0;
+
public string LibraryLayout { get; set; } = "Carousel";
public double EmbeddedConsoleHeight { get; set; } = 240;
@@ -148,6 +150,9 @@ public sealed class GuiSettings
legacyProfile is { Length: 2 } ? legacyProfile[1] : settings.DefaultProfile);
settings.DiscordClientId ??= "1525606762248540221";
settings.LibraryLayout = NormalizeChoice(settings.LibraryLayout, "Carousel", "Grid");
+ settings.TitleMusicVolume = double.IsFinite(settings.TitleMusicVolume)
+ ? Math.Clamp(settings.TitleMusicVolume, 0.0, 1.0)
+ : 1.0;
settings.ConsoleType = NormalizeChoice(settings.ConsoleType, "PS5");
settings.ConsoleLanguage = NormalizeChoice(
settings.ConsoleLanguage,
diff --git a/src/SharpEmu.GUI/Languages/ar.json b/src/SharpEmu.GUI/Languages/ar.json
index 7c7c318..dc48a02 100644
--- a/src/SharpEmu.GUI/Languages/ar.json
+++ b/src/SharpEmu.GUI/Languages/ar.json
@@ -44,6 +44,10 @@
"Library.Stat.TitleId": "معرّف اللعبة",
"Common.Back": "رجوع",
+ "Library.Music.Volume": "مستوى صوت موسيقى اللعبة",
+ "Library.Music.Mute": "كتم موسيقى اللعبة",
+ "Library.Music.Unmute": "إلغاء كتم موسيقى اللعبة",
+
"Options.General": "عام",
"Options.Logging": "التسجيل",
"Options.Section.Emulation": "المحاكاة",
diff --git a/src/SharpEmu.GUI/Languages/az.json b/src/SharpEmu.GUI/Languages/az.json
index 8a418d1..16389c2 100644
--- a/src/SharpEmu.GUI/Languages/az.json
+++ b/src/SharpEmu.GUI/Languages/az.json
@@ -31,6 +31,10 @@
"Library.Stat.TitleId": "Oyunun ID-si",
"Common.Back": "Geri qayıt",
+ "Library.Music.Volume": "Oyun musiqisinin səs səviyyəsi",
+ "Library.Music.Mute": "Oyun musiqisini susdur",
+ "Library.Music.Unmute": "Oyun musiqisinin səsini aç",
+
"Options.General": "Ümumi",
"Options.Logging": "Jurnala yazma",
"Options.Env.Tab": "Mühit",
diff --git a/src/SharpEmu.GUI/Languages/br.json b/src/SharpEmu.GUI/Languages/br.json
index 964ebbf..10df6d6 100644
--- a/src/SharpEmu.GUI/Languages/br.json
+++ b/src/SharpEmu.GUI/Languages/br.json
@@ -44,6 +44,10 @@
"Library.Stat.TitleId": "ID do título",
"Common.Back": "Voltar",
+ "Library.Music.Volume": "Volume da música do jogo",
+ "Library.Music.Mute": "Silenciar música do jogo",
+ "Library.Music.Unmute": "Ativar som da música do jogo",
+
"Options.General": "Opções Gerais",
"Options.Logging": "Logs",
"Options.Env.Tab": "Ambiente",
diff --git a/src/SharpEmu.GUI/Languages/de.json b/src/SharpEmu.GUI/Languages/de.json
index e4b6b76..769587f 100644
--- a/src/SharpEmu.GUI/Languages/de.json
+++ b/src/SharpEmu.GUI/Languages/de.json
@@ -44,6 +44,10 @@
"Library.Stat.TitleId": "Titel-ID",
"Common.Back": "Zurück",
+ "Library.Music.Volume": "Lautstärke der Spielmusik",
+ "Library.Music.Mute": "Spielmusik stummschalten",
+ "Library.Music.Unmute": "Stummschaltung der Spielmusik aufheben",
+
"Options.General": "Allgemein",
"Options.Logging": "Protokollierung",
"Options.Section.Emulation": "EMULATION",
diff --git a/src/SharpEmu.GUI/Languages/dk.json b/src/SharpEmu.GUI/Languages/dk.json
index b10d989..a3e223e 100644
--- a/src/SharpEmu.GUI/Languages/dk.json
+++ b/src/SharpEmu.GUI/Languages/dk.json
@@ -44,6 +44,10 @@
"Library.Stat.TitleId": "Titel-id",
"Common.Back": "Tilbage",
+ "Library.Music.Volume": "Lydstyrke for spilmusik",
+ "Library.Music.Mute": "Slå spilmusik fra",
+ "Library.Music.Unmute": "Slå spilmusik til",
+
"Options.General": "Generelt",
"Options.Logging": "Logging",
"Options.Section.Emulation": "EMULERING",
diff --git a/src/SharpEmu.GUI/Languages/ee.json b/src/SharpEmu.GUI/Languages/ee.json
index c6cef57..c50d4de 100644
--- a/src/SharpEmu.GUI/Languages/ee.json
+++ b/src/SharpEmu.GUI/Languages/ee.json
@@ -47,6 +47,10 @@
"Library.Stat.TitleId": "Title ID",
"Common.Back": "Tagasi",
+ "Library.Music.Volume": "Mängumuusika helitugevus",
+ "Library.Music.Mute": "Vaigista mängumuusika",
+ "Library.Music.Unmute": "Lülita mängumuusika heli sisse",
+
"Options.General": "Üldine",
"Options.Logging": "Logimine",
"Options.Env.Tab": "Keskkond",
diff --git a/src/SharpEmu.GUI/Languages/en.json b/src/SharpEmu.GUI/Languages/en.json
index 3fd4a95..61d2046 100644
--- a/src/SharpEmu.GUI/Languages/en.json
+++ b/src/SharpEmu.GUI/Languages/en.json
@@ -66,6 +66,10 @@
"Library.Stat.TitleId": "Title ID",
"Common.Back": "Back",
+ "Library.Music.Volume": "Title music volume",
+ "Library.Music.Mute": "Mute title music",
+ "Library.Music.Unmute": "Unmute title music",
+
"Options.General": "General",
"Options.Logging": "Logging",
"Options.Env.Tab": "Environment",
diff --git a/src/SharpEmu.GUI/Languages/es.json b/src/SharpEmu.GUI/Languages/es.json
index ed8abdb..9cee02a 100644
--- a/src/SharpEmu.GUI/Languages/es.json
+++ b/src/SharpEmu.GUI/Languages/es.json
@@ -44,6 +44,10 @@
"Library.Stat.TitleId": "ID del título",
"Common.Back": "Volver",
+ "Library.Music.Volume": "Volumen de la música del juego",
+ "Library.Music.Mute": "Silenciar la música del juego",
+ "Library.Music.Unmute": "Activar el sonido de la música del juego",
+
"Options.General": "General",
"Options.Logging": "Logs",
"Options.Section.Emulation": "EMULACIÓN",
diff --git a/src/SharpEmu.GUI/Languages/fr.json b/src/SharpEmu.GUI/Languages/fr.json
index 30c14e6..a1ea94e 100644
--- a/src/SharpEmu.GUI/Languages/fr.json
+++ b/src/SharpEmu.GUI/Languages/fr.json
@@ -46,6 +46,10 @@
"Library.Stat.TitleId": "ID du titre",
"Common.Back": "Retour",
+ "Library.Music.Volume": "Volume de la musique du jeu",
+ "Library.Music.Mute": "Couper la musique du jeu",
+ "Library.Music.Unmute": "Rétablir la musique du jeu",
+
"Options.General": "Général",
"Options.Logging": "Journalisation",
"Options.Env.Tab": "Environnement",
diff --git a/src/SharpEmu.GUI/Languages/hu.json b/src/SharpEmu.GUI/Languages/hu.json
index af24a81..d1ea2d2 100644
--- a/src/SharpEmu.GUI/Languages/hu.json
+++ b/src/SharpEmu.GUI/Languages/hu.json
@@ -44,6 +44,10 @@
"Library.Stat.TitleId": "Címazonosító",
"Common.Back": "Vissza",
+ "Library.Music.Volume": "Játékzene hangereje",
+ "Library.Music.Mute": "Játékzene némítása",
+ "Library.Music.Unmute": "Játékzene visszakapcsolása",
+
"Options.General": "Általános",
"Options.Logging": "Logolás",
"Options.Env.Tab": "Környezet",
diff --git a/src/SharpEmu.GUI/Languages/it.json b/src/SharpEmu.GUI/Languages/it.json
index 97a6885..d5306ba 100644
--- a/src/SharpEmu.GUI/Languages/it.json
+++ b/src/SharpEmu.GUI/Languages/it.json
@@ -44,6 +44,10 @@
"Library.Stat.TitleId": "ID titolo",
"Common.Back": "Indietro",
+ "Library.Music.Volume": "Volume della musica del gioco",
+ "Library.Music.Mute": "Disattiva audio della musica del gioco",
+ "Library.Music.Unmute": "Riattiva audio della musica del gioco",
+
"Options.General": "Generale",
"Options.Logging": "Log",
"Options.Section.Emulation": "EMULAZIONE",
diff --git a/src/SharpEmu.GUI/Languages/ja.json b/src/SharpEmu.GUI/Languages/ja.json
index 697da9d..97b48a6 100644
--- a/src/SharpEmu.GUI/Languages/ja.json
+++ b/src/SharpEmu.GUI/Languages/ja.json
@@ -44,6 +44,10 @@
"Library.Stat.TitleId": "タイトルID",
"Common.Back": "戻る",
+ "Library.Music.Volume": "ゲーム音楽の音量",
+ "Library.Music.Mute": "ゲーム音楽をミュート",
+ "Library.Music.Unmute": "ゲーム音楽のミュートを解除",
+
"Options.General": "一般",
"Options.Logging": "ロギング",
"Options.Section.Emulation": "エミュレーション",
diff --git a/src/SharpEmu.GUI/Languages/ko.json b/src/SharpEmu.GUI/Languages/ko.json
index 443677a..53bfd0a 100644
--- a/src/SharpEmu.GUI/Languages/ko.json
+++ b/src/SharpEmu.GUI/Languages/ko.json
@@ -44,6 +44,10 @@
"Library.Stat.TitleId": "타이틀 ID",
"Common.Back": "뒤로",
+ "Library.Music.Volume": "게임 음악 볼륨",
+ "Library.Music.Mute": "게임 음악 음소거",
+ "Library.Music.Unmute": "게임 음악 음소거 해제",
+
"Options.General": "일반",
"Options.Logging": "로깅",
"Options.Section.Emulation": "에뮬레이션",
diff --git a/src/SharpEmu.GUI/Languages/nl.json b/src/SharpEmu.GUI/Languages/nl.json
index 0c83373..a3a11a4 100644
--- a/src/SharpEmu.GUI/Languages/nl.json
+++ b/src/SharpEmu.GUI/Languages/nl.json
@@ -44,6 +44,10 @@
"Library.Stat.TitleId": "Titel-ID",
"Common.Back": "Terug",
+ "Library.Music.Volume": "Volume van gamemuziek",
+ "Library.Music.Mute": "Gamemuziek dempen",
+ "Library.Music.Unmute": "Dempen van gamemuziek opheffen",
+
"Options.General": "Algemeen",
"Options.Logging": "Logging",
"Options.Section.Emulation": "EMULATIE",
diff --git a/src/SharpEmu.GUI/Languages/pl.json b/src/SharpEmu.GUI/Languages/pl.json
index f15bb64..5e9e58d 100644
--- a/src/SharpEmu.GUI/Languages/pl.json
+++ b/src/SharpEmu.GUI/Languages/pl.json
@@ -47,6 +47,10 @@
"Library.Stat.TitleId": "Numer seryjny",
"Common.Back": "Wstecz",
+ "Library.Music.Volume": "Głośność muzyki w grze",
+ "Library.Music.Mute": "Wycisz muzykę z gry",
+ "Library.Music.Unmute": "Włącz dźwięk muzyki z gry",
+
"Options.General": "Ogólne",
"Options.Logging": "Dziennik zdarzeń",
"Options.Env.Tab": "Środowisko",
diff --git a/src/SharpEmu.GUI/Languages/pt.json b/src/SharpEmu.GUI/Languages/pt.json
index 27f1d15..eefd0a6 100644
--- a/src/SharpEmu.GUI/Languages/pt.json
+++ b/src/SharpEmu.GUI/Languages/pt.json
@@ -44,6 +44,10 @@
"Library.Stat.TitleId": "ID do título",
"Common.Back": "Voltar",
+ "Library.Music.Volume": "Volume da música do jogo",
+ "Library.Music.Mute": "Silenciar música do jogo",
+ "Library.Music.Unmute": "Reativar som da música do jogo",
+
"Options.General": "Geral",
"Options.Logging": "Registos",
"Options.Env.Tab": "Ambiente",
diff --git a/src/SharpEmu.GUI/Languages/ru.json b/src/SharpEmu.GUI/Languages/ru.json
index 7bbd4e8..14766da 100644
--- a/src/SharpEmu.GUI/Languages/ru.json
+++ b/src/SharpEmu.GUI/Languages/ru.json
@@ -45,6 +45,10 @@
"Library.Stat.TitleId": "ID игры",
"Common.Back": "Назад",
+ "Library.Music.Volume": "Громкость музыки игры",
+ "Library.Music.Mute": "Выключить музыку игры",
+ "Library.Music.Unmute": "Включить музыку игры",
+
"Options.General": "Основные",
"Options.Logging": "Логгирование",
"Options.Env.Tab": "Окружение",
diff --git a/src/SharpEmu.GUI/Languages/tr.json b/src/SharpEmu.GUI/Languages/tr.json
index 6135c15..e5d4512 100644
--- a/src/SharpEmu.GUI/Languages/tr.json
+++ b/src/SharpEmu.GUI/Languages/tr.json
@@ -46,6 +46,10 @@
"Library.Stat.TitleId": "Başlık kimliği",
"Common.Back": "Geri",
+ "Library.Music.Volume": "Oyun müziği ses seviyesi",
+ "Library.Music.Mute": "Oyun müziğini kapat",
+ "Library.Music.Unmute": "Oyun müziğini aç",
+
"Options.General": "Genel",
"Options.Logging": "Günlükleme",
"Options.Section.Emulation": "EMÜLASYON",
diff --git a/src/SharpEmu.GUI/MainWindow.axaml b/src/SharpEmu.GUI/MainWindow.axaml
index e9ab69c..9c29630 100644
--- a/src/SharpEmu.GUI/MainWindow.axaml
+++ b/src/SharpEmu.GUI/MainWindow.axaml
@@ -146,6 +146,36 @@ SPDX-License-Identifier: GPL-2.0-or-later
+
+
+
+
+
+ 7
+ 7
+ 24
+ 14
+ 14
+ 7
+
+
+
+