SettingsWindow.axaml 55 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897
  1. <window:StyleableWindow
  2. x:Class="Ryujinx.Ava.Ui.Windows.SettingsWindow"
  3. xmlns="https://github.com/avaloniaui"
  4. xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
  5. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  6. xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
  7. xmlns:controls="clr-namespace:Ryujinx.Ava.Ui.Controls"
  8. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  9. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  10. xmlns:viewModels="clr-namespace:Ryujinx.Ava.Ui.ViewModels"
  11. xmlns:window="clr-namespace:Ryujinx.Ava.Ui.Windows"
  12. Width="1100"
  13. Height="768"
  14. d:DesignWidth="800"
  15. d:DesignHeight="950"
  16. MinWidth="800"
  17. MinHeight="480"
  18. WindowStartupLocation="CenterOwner"
  19. x:CompileBindings="True"
  20. x:DataType="viewModels:SettingsViewModel"
  21. mc:Ignorable="d">
  22. <Design.DataContext>
  23. <viewModels:SettingsViewModel />
  24. </Design.DataContext>
  25. <Window.Resources>
  26. <controls:KeyValueConverter x:Key="Key" />
  27. </Window.Resources>
  28. <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" MinWidth="600">
  29. <Grid.RowDefinitions>
  30. <RowDefinition Height="Auto" />
  31. <RowDefinition />
  32. <RowDefinition Height="Auto" />
  33. </Grid.RowDefinitions>
  34. <ContentControl
  35. Grid.Row="1"
  36. Focusable="False"
  37. IsVisible="False"
  38. KeyboardNavigation.IsTabStop="False">
  39. <ui:ContentDialog Name="ContentDialog"
  40. IsPrimaryButtonEnabled="True"
  41. IsSecondaryButtonEnabled="True"
  42. IsVisible="False" />
  43. </ContentControl>
  44. <Grid Name="Pages" IsVisible="False" Grid.Row="2">
  45. <ScrollViewer Name="UiPage"
  46. Margin="0,0,10,0"
  47. HorizontalAlignment="Stretch"
  48. VerticalAlignment="Stretch"
  49. HorizontalScrollBarVisibility="Disabled"
  50. VerticalScrollBarVisibility="Auto">
  51. <Border>
  52. <StackPanel
  53. Margin="10,5"
  54. HorizontalAlignment="Stretch"
  55. Orientation="Vertical"
  56. Spacing="10">
  57. <TextBlock FontWeight="Bold" Text="{locale:Locale SettingsTabGeneralGeneral}" />
  58. <StackPanel Margin="10,0,0,0" Orientation="Vertical">
  59. <CheckBox IsChecked="{Binding EnableDiscordIntegration}">
  60. <TextBlock VerticalAlignment="Center"
  61. ToolTip.Tip="{locale:Locale ToggleDiscordTooltip}"
  62. Text="{locale:Locale SettingsTabGeneralEnableDiscordRichPresence}" />
  63. </CheckBox>
  64. <CheckBox IsChecked="{Binding CheckUpdatesOnStart}">
  65. <TextBlock Text="{locale:Locale SettingsTabGeneralCheckUpdatesOnLaunch}" />
  66. </CheckBox>
  67. <CheckBox IsChecked="{Binding ShowConfirmExit}">
  68. <TextBlock Text="{locale:Locale SettingsTabGeneralShowConfirmExitDialog}" />
  69. </CheckBox>
  70. <CheckBox IsChecked="{Binding HideCursorOnIdle}">
  71. <TextBlock Text="{locale:Locale SettingsTabGeneralHideCursorOnIdle}" />
  72. </CheckBox>
  73. </StackPanel>
  74. <Separator Height="1" />
  75. <TextBlock FontWeight="Bold" Text="{locale:Locale SettingsTabGeneralGameDirectories}" />
  76. <StackPanel
  77. Margin="10,0,0,0"
  78. HorizontalAlignment="Stretch"
  79. Orientation="Vertical"
  80. Spacing="10">
  81. <ListBox
  82. Name="GameList"
  83. MinHeight="150"
  84. Items="{Binding GameDirectories}" />
  85. <Grid HorizontalAlignment="Stretch">
  86. <Grid.ColumnDefinitions>
  87. <ColumnDefinition Width="*" />
  88. <ColumnDefinition Width="Auto" />
  89. <ColumnDefinition Width="Auto" />
  90. </Grid.ColumnDefinitions>
  91. <TextBox
  92. Name="PathBox"
  93. Margin="0"
  94. ToolTip.Tip="{locale:Locale AddGameDirBoxTooltip}"
  95. VerticalAlignment="Stretch" />
  96. <Button
  97. Name="AddButton"
  98. Grid.Column="1"
  99. MinWidth="90"
  100. Margin="10,0,0,0"
  101. ToolTip.Tip="{locale:Locale AddGameDirTooltip}"
  102. Click="AddButton_OnClick">
  103. <TextBlock HorizontalAlignment="Center"
  104. Text="{locale:Locale SettingsTabGeneralAdd}" />
  105. </Button>
  106. <Button
  107. Name="RemoveButton"
  108. Grid.Column="2"
  109. MinWidth="90"
  110. Margin="10,0,0,0"
  111. ToolTip.Tip="{locale:Locale RemoveGameDirTooltip}"
  112. Click="RemoveButton_OnClick">
  113. <TextBlock HorizontalAlignment="Center"
  114. Text="{locale:Locale SettingsTabGeneralRemove}" />
  115. </Button>
  116. </Grid>
  117. </StackPanel>
  118. <Separator Height="1" />
  119. <TextBlock FontWeight="Bold" Text="{locale:Locale SettingsTabGeneralTheme}" />
  120. <Grid Margin="10,0,0,0">
  121. <Grid.ColumnDefinitions>
  122. <ColumnDefinition Width="Auto" />
  123. <ColumnDefinition />
  124. <ColumnDefinition Width="Auto" />
  125. </Grid.ColumnDefinitions>
  126. <Grid.RowDefinitions>
  127. <RowDefinition />
  128. <RowDefinition />
  129. <RowDefinition />
  130. </Grid.RowDefinitions>
  131. <CheckBox IsChecked="{Binding EnableCustomTheme}"
  132. ToolTip.Tip="{locale:Locale CustomThemeCheckTooltip}">
  133. <TextBlock Text="{locale:Locale SettingsTabGeneralThemeEnableCustomTheme}" />
  134. </CheckBox>
  135. <TextBlock VerticalAlignment="Center"
  136. Margin="0,10,0,0"
  137. Grid.Row="1"
  138. Text="{locale:Locale SettingsTabGeneralThemeCustomTheme}"
  139. ToolTip.Tip="{locale:Locale CustomThemePathTooltip}" />
  140. <TextBox Margin="0,10,0,0"
  141. Grid.Row="1"
  142. Grid.Column="1"
  143. Text="{Binding CustomThemePath}" />
  144. <Button Grid.Row="1"
  145. Grid.Column="2"
  146. Margin="10,10,0,0"
  147. Command="{ReflectionBinding BrowseTheme}"
  148. ToolTip.Tip="{locale:Locale CustomThemeBrowseTooltip}"
  149. Content="{locale:Locale ButtonBrowse}" />
  150. <TextBlock VerticalAlignment="Center"
  151. Margin="0,10,0,0"
  152. Grid.Row="2"
  153. Text="{locale:Locale SettingsTabGeneralThemeBaseStyle}" />
  154. <ComboBox VerticalAlignment="Center"
  155. Margin="0,10,0,0"
  156. Grid.Column="1"
  157. Grid.Row="2"
  158. MinWidth="100"
  159. SelectedIndex="{Binding BaseStyleIndex}">
  160. <ComboBoxItem>
  161. <TextBlock Text="{locale:Locale SettingsTabGeneralThemeBaseStyleLight}" />
  162. </ComboBoxItem>
  163. <ComboBoxItem>
  164. <TextBlock Text="{locale:Locale SettingsTabGeneralThemeBaseStyleDark}" />
  165. </ComboBoxItem>
  166. </ComboBox>
  167. </Grid>
  168. </StackPanel>
  169. </Border>
  170. </ScrollViewer>
  171. <ScrollViewer Name="InputPage"
  172. HorizontalAlignment="Stretch"
  173. VerticalAlignment="Stretch"
  174. Padding="0,0,2,0"
  175. HorizontalScrollBarVisibility="Disabled"
  176. VerticalScrollBarVisibility="Auto">
  177. <Border>
  178. <StackPanel Margin="4" Orientation="Vertical">
  179. <StackPanel Orientation="Horizontal">
  180. <CheckBox Margin="5,0"
  181. ToolTip.Tip="{locale:Locale DockModeToggleTooltip}"
  182. IsChecked="{Binding EnableDockedMode}">
  183. <TextBlock VerticalAlignment="Center"
  184. Text="{locale:Locale SettingsTabInputEnableDockedMode}" />
  185. </CheckBox>
  186. <CheckBox Margin="5,0"
  187. ToolTip.Tip="{locale:Locale DirectKeyboardTooltip}"
  188. IsChecked="{Binding EnableKeyboard}">
  189. <TextBlock Text="{locale:Locale SettingsTabInputDirectKeyboardAccess}" />
  190. </CheckBox>
  191. <CheckBox Margin="5,0"
  192. ToolTip.Tip="{locale:Locale DirectMouseTooltip}"
  193. IsChecked="{Binding EnableMouse}">
  194. <TextBlock Text="{locale:Locale SettingsTabInputDirectMouseAccess}" />
  195. </CheckBox>
  196. </StackPanel>
  197. <window:ControllerSettingsWindow Name="ControllerSettings" Margin="0,0,0,0" MinHeight="600" />
  198. </StackPanel>
  199. </Border>
  200. </ScrollViewer>
  201. <ScrollViewer Name="HotkeysPage"
  202. HorizontalAlignment="Stretch"
  203. VerticalAlignment="Stretch"
  204. HorizontalScrollBarVisibility="Disabled"
  205. VerticalScrollBarVisibility="Auto">
  206. <Border>
  207. <StackPanel Margin="10,5" Orientation="Vertical" Spacing="10">
  208. <TextBlock FontWeight="Bold" Text="{locale:Locale SettingsTabHotkeysHotkeys}" />
  209. <StackPanel Margin="10,0,0,0" Orientation="Horizontal">
  210. <TextBlock VerticalAlignment="Center" Text="{locale:Locale SettingsTabHotkeysToggleVsyncHotkey}" Width="230" />
  211. <ToggleButton Width="90" Height="27" Checked="Button_Checked" Unchecked="Button_Unchecked">
  212. <TextBlock
  213. Text="{Binding KeyboardHotkeys.ToggleVsync, Mode=TwoWay, Converter={StaticResource Key}}"
  214. TextAlignment="Center" />
  215. </ToggleButton>
  216. </StackPanel>
  217. <StackPanel Margin="10,0,0,0" Orientation="Horizontal">
  218. <TextBlock VerticalAlignment="Center" Text="{locale:Locale SettingsTabHotkeysScreenshotHotkey}" Width="230" />
  219. <ToggleButton Width="90" Height="27" Checked="Button_Checked" Unchecked="Button_Unchecked">
  220. <TextBlock
  221. Text="{Binding KeyboardHotkeys.Screenshot, Mode=TwoWay, Converter={StaticResource Key}}"
  222. TextAlignment="Center" />
  223. </ToggleButton>
  224. </StackPanel>
  225. <StackPanel Margin="10,0,0,0" Orientation="Horizontal">
  226. <TextBlock VerticalAlignment="Center" Text="{locale:Locale SettingsTabHotkeysShowUiHotkey}" Width="230" />
  227. <ToggleButton Width="90" Height="27" Checked="Button_Checked" Unchecked="Button_Unchecked">
  228. <TextBlock
  229. Text="{Binding KeyboardHotkeys.ShowUi, Mode=TwoWay, Converter={StaticResource Key}}"
  230. TextAlignment="Center" />
  231. </ToggleButton>
  232. </StackPanel>
  233. <StackPanel Margin="10,0,0,0" Orientation="Horizontal">
  234. <TextBlock VerticalAlignment="Center" Text="{locale:Locale SettingsTabHotkeysPauseHotkey}" Width="230" />
  235. <ToggleButton Width="90" Height="27" Checked="Button_Checked" Unchecked="Button_Unchecked">
  236. <TextBlock
  237. Text="{Binding KeyboardHotkeys.Pause, Mode=TwoWay, Converter={StaticResource Key}}"
  238. TextAlignment="Center" />
  239. </ToggleButton>
  240. </StackPanel>
  241. <StackPanel Margin="10,0,0,0" Orientation="Horizontal">
  242. <TextBlock VerticalAlignment="Center" Text="{locale:Locale SettingsTabHotkeysToggleMuteHotkey}" Width="230" />
  243. <ToggleButton Width="90" Height="27" Checked="Button_Checked" Unchecked="Button_Unchecked">
  244. <TextBlock
  245. Text="{Binding KeyboardHotkeys.ToggleMute, Mode=TwoWay, Converter={StaticResource Key}}"
  246. TextAlignment="Center" />
  247. </ToggleButton>
  248. </StackPanel>
  249. </StackPanel>
  250. </Border>
  251. </ScrollViewer>
  252. <ScrollViewer Name="SystemPage"
  253. HorizontalAlignment="Stretch"
  254. VerticalAlignment="Stretch"
  255. HorizontalScrollBarVisibility="Disabled"
  256. VerticalScrollBarVisibility="Auto">
  257. <Border>
  258. <StackPanel
  259. Margin="10,5"
  260. HorizontalAlignment="Stretch"
  261. Orientation="Vertical"
  262. Spacing="10">
  263. <TextBlock FontWeight="Bold" Text="{locale:Locale SettingsTabSystemCore}" />
  264. <StackPanel Margin="10,0,0,0" Orientation="Vertical">
  265. <StackPanel Margin="0,0,0,10" Orientation="Horizontal">
  266. <TextBlock VerticalAlignment="Center"
  267. Text="{locale:Locale SettingsTabSystemSystemRegion}"
  268. Width="250" />
  269. <ComboBox SelectedIndex="{Binding Region}"
  270. ToolTip.Tip="{locale:Locale RegionTooltip}"
  271. HorizontalContentAlignment="Left"
  272. Width="350">
  273. <ComboBoxItem>
  274. <TextBlock Text="{locale:Locale SettingsTabSystemSystemRegionJapan}" />
  275. </ComboBoxItem>
  276. <ComboBoxItem>
  277. <TextBlock Text="{locale:Locale SettingsTabSystemSystemRegionUSA}" />
  278. </ComboBoxItem>
  279. <ComboBoxItem>
  280. <TextBlock Text="{locale:Locale SettingsTabSystemSystemRegionEurope}" />
  281. </ComboBoxItem>
  282. <ComboBoxItem>
  283. <TextBlock Text="{locale:Locale SettingsTabSystemSystemRegionAustralia}" />
  284. </ComboBoxItem>
  285. <ComboBoxItem>
  286. <TextBlock Text="{locale:Locale SettingsTabSystemSystemRegionChina}" />
  287. </ComboBoxItem>
  288. <ComboBoxItem>
  289. <TextBlock Text="{locale:Locale SettingsTabSystemSystemRegionKorea}" />
  290. </ComboBoxItem>
  291. <ComboBoxItem>
  292. <TextBlock Text="{locale:Locale SettingsTabSystemSystemRegionTaiwan}" />
  293. </ComboBoxItem>
  294. </ComboBox>
  295. </StackPanel>
  296. <StackPanel Margin="0,0,0,10" Orientation="Horizontal">
  297. <TextBlock VerticalAlignment="Center"
  298. Text="{locale:Locale SettingsTabSystemSystemLanguage}"
  299. ToolTip.Tip="{locale:Locale LanguageTooltip}"
  300. Width="250" />
  301. <ComboBox SelectedIndex="{Binding Language}"
  302. ToolTip.Tip="{locale:Locale LanguageTooltip}"
  303. HorizontalContentAlignment="Left"
  304. Width="350">
  305. <ComboBoxItem>
  306. <TextBlock Text="{locale:Locale SettingsTabSystemSystemLanguageJapanese}" />
  307. </ComboBoxItem>
  308. <ComboBoxItem>
  309. <TextBlock
  310. Text="{locale:Locale SettingsTabSystemSystemLanguageAmericanEnglish}" />
  311. </ComboBoxItem>
  312. <ComboBoxItem>
  313. <TextBlock Text="{locale:Locale SettingsTabSystemSystemLanguageFrench}" />
  314. </ComboBoxItem>
  315. <ComboBoxItem>
  316. <TextBlock Text="{locale:Locale SettingsTabSystemSystemLanguageGerman}" />
  317. </ComboBoxItem>
  318. <ComboBoxItem>
  319. <TextBlock Text="{locale:Locale SettingsTabSystemSystemLanguageItalian}" />
  320. </ComboBoxItem>
  321. <ComboBoxItem>
  322. <TextBlock Text="{locale:Locale SettingsTabSystemSystemLanguageSpanish}" />
  323. </ComboBoxItem>
  324. <ComboBoxItem>
  325. <TextBlock Text="{locale:Locale SettingsTabSystemSystemLanguageChinese}" />
  326. </ComboBoxItem>
  327. <ComboBoxItem>
  328. <TextBlock Text="{locale:Locale SettingsTabSystemSystemLanguageKorean}" />
  329. </ComboBoxItem>
  330. <ComboBoxItem>
  331. <TextBlock Text="{locale:Locale SettingsTabSystemSystemLanguageDutch}" />
  332. </ComboBoxItem>
  333. <ComboBoxItem>
  334. <TextBlock Text="{locale:Locale SettingsTabSystemSystemLanguagePortuguese}" />
  335. </ComboBoxItem>
  336. <ComboBoxItem>
  337. <TextBlock Text="{locale:Locale SettingsTabSystemSystemLanguageRussian}" />
  338. </ComboBoxItem>
  339. <ComboBoxItem>
  340. <TextBlock Text="{locale:Locale SettingsTabSystemSystemLanguageTaiwanese}" />
  341. </ComboBoxItem>
  342. <ComboBoxItem>
  343. <TextBlock
  344. Text="{locale:Locale SettingsTabSystemSystemLanguageBritishEnglish}" />
  345. </ComboBoxItem>
  346. <ComboBoxItem>
  347. <TextBlock
  348. Text="{locale:Locale SettingsTabSystemSystemLanguageCanadianFrench}" />
  349. </ComboBoxItem>
  350. <ComboBoxItem>
  351. <TextBlock
  352. Text="{locale:Locale SettingsTabSystemSystemLanguageLatinAmericanSpanish}" />
  353. </ComboBoxItem>
  354. <ComboBoxItem>
  355. <TextBlock
  356. Text="{locale:Locale SettingsTabSystemSystemLanguageSimplifiedChinese}" />
  357. </ComboBoxItem>
  358. <ComboBoxItem>
  359. <TextBlock
  360. Text="{locale:Locale SettingsTabSystemSystemLanguageTraditionalChinese}" />
  361. </ComboBoxItem>
  362. <ComboBoxItem>
  363. <TextBlock
  364. Text="{locale:Locale SettingsTabSystemSystemLanguageBrazilianPortuguese}" />
  365. </ComboBoxItem>
  366. </ComboBox>
  367. </StackPanel>
  368. <StackPanel Margin="0,0,0,10" Orientation="Horizontal">
  369. <TextBlock VerticalAlignment="Center"
  370. Text="{locale:Locale SettingsTabSystemSystemTimeZone}"
  371. ToolTip.Tip="{locale:Locale TimezoneTooltip}"
  372. Width="250" />
  373. <AutoCompleteBox
  374. Name="TimeZoneBox"
  375. Width="350"
  376. FilterMode="Contains"
  377. Items="{Binding TimeZones}"
  378. SelectionChanged="TimeZoneBox_OnSelectionChanged"
  379. Text="{Binding Path=TimeZone, Mode=OneWay}"
  380. TextChanged="TimeZoneBox_OnTextChanged"
  381. ValueMemberBinding="{ReflectionBinding TzMultiBinding}"
  382. ToolTip.Tip="{locale:Locale TimezoneTooltip}" />
  383. </StackPanel>
  384. <StackPanel Margin="0,0,0,10" Orientation="Horizontal">
  385. <TextBlock VerticalAlignment="Center"
  386. Text="{locale:Locale SettingsTabSystemSystemTime}"
  387. ToolTip.Tip="{locale:Locale TimeTooltip}"
  388. Width="250"/>
  389. <DatePicker VerticalAlignment="Center" SelectedDate="{Binding DateOffset}"
  390. ToolTip.Tip="{locale:Locale TimeTooltip}"
  391. Width="350" />
  392. </StackPanel>
  393. <StackPanel Margin="250,0,0,10" Orientation="Horizontal">
  394. <TimePicker
  395. VerticalAlignment="Center"
  396. ClockIdentifier="24HourClock"
  397. SelectedTime="{Binding TimeOffset}"
  398. Width="350"
  399. ToolTip.Tip="{locale:Locale TimeTooltip}" />
  400. </StackPanel>
  401. <CheckBox IsChecked="{Binding EnableVsync}">
  402. <TextBlock Text="{locale:Locale SettingsTabSystemEnableVsync}"
  403. ToolTip.Tip="{locale:Locale VSyncToggleTooltip}" />
  404. </CheckBox>
  405. <CheckBox IsChecked="{Binding EnableFsIntegrityChecks}">
  406. <TextBlock Text="{locale:Locale SettingsTabSystemEnableFsIntegrityChecks}"
  407. ToolTip.Tip="{locale:Locale FsIntegrityToggleTooltip}" />
  408. </CheckBox>
  409. </StackPanel>
  410. <Separator Height="1" />
  411. <StackPanel Orientation="Horizontal">
  412. <TextBlock FontWeight="Bold" Text="{locale:Locale SettingsTabSystemHacks}" />
  413. <TextBlock Text="{locale:Locale SettingsTabSystemHacksNote}" />
  414. </StackPanel>
  415. <StackPanel
  416. Margin="10,0,0,0"
  417. HorizontalAlignment="Stretch"
  418. Orientation="Vertical">
  419. <CheckBox IsChecked="{Binding ExpandDramSize}"
  420. ToolTip.Tip="{locale:Locale DRamTooltip}">
  421. <TextBlock Text="{locale:Locale SettingsTabSystemExpandDramSize}" />
  422. </CheckBox>
  423. <CheckBox IsChecked="{Binding IgnoreMissingServices}"
  424. ToolTip.Tip="{locale:Locale IgnoreMissingServicesTooltip}">
  425. <TextBlock Text="{locale:Locale SettingsTabSystemIgnoreMissingServices}" />
  426. </CheckBox>
  427. </StackPanel>
  428. </StackPanel>
  429. </Border>
  430. </ScrollViewer>
  431. <ScrollViewer
  432. Name="CpuPage"
  433. HorizontalAlignment="Stretch"
  434. VerticalAlignment="Stretch"
  435. HorizontalScrollBarVisibility="Disabled"
  436. VerticalScrollBarVisibility="Auto">
  437. <Border>
  438. <StackPanel
  439. Margin="10,5"
  440. HorizontalAlignment="Stretch"
  441. Orientation="Vertical"
  442. Spacing="10">
  443. <TextBlock FontWeight="Bold" Text="{locale:Locale SettingsTabCpuCache}" />
  444. <StackPanel
  445. Margin="10,0,0,0"
  446. HorizontalAlignment="Stretch"
  447. Orientation="Vertical">
  448. <CheckBox IsChecked="{Binding EnablePptc}">
  449. <TextBlock Text="{locale:Locale SettingsTabSystemEnablePptc}"
  450. ToolTip.Tip="{locale:Locale PptcToggleTooltip}" />
  451. </CheckBox>
  452. </StackPanel>
  453. <Separator Height="1" />
  454. <TextBlock FontWeight="Bold" Text="{locale:Locale SettingsTabCpuMemory}" />
  455. <StackPanel
  456. Margin="10,0,0,0"
  457. HorizontalAlignment="Stretch"
  458. Orientation="Vertical">
  459. <StackPanel Orientation="Horizontal">
  460. <TextBlock VerticalAlignment="Center"
  461. Text="{locale:Locale SettingsTabSystemMemoryManagerMode}"
  462. ToolTip.Tip="{locale:Locale MemoryManagerTooltip}"
  463. Width="250" />
  464. <ComboBox SelectedIndex="{Binding MemoryMode}"
  465. ToolTip.Tip="{locale:Locale MemoryManagerTooltip}"
  466. HorizontalContentAlignment="Left"
  467. Width="350">
  468. <ComboBoxItem
  469. ToolTip.Tip="{locale:Locale MemoryManagerSoftwareTooltip}">
  470. <TextBlock
  471. Text="{locale:Locale SettingsTabSystemMemoryManagerModeSoftware}" />
  472. </ComboBoxItem>
  473. <ComboBoxItem
  474. ToolTip.Tip="{locale:Locale MemoryManagerHostTooltip}">
  475. <TextBlock Text="{locale:Locale SettingsTabSystemMemoryManagerModeHost}" />
  476. </ComboBoxItem>
  477. <ComboBoxItem
  478. ToolTip.Tip="{locale:Locale MemoryManagerUnsafeTooltip}">
  479. <TextBlock
  480. Text="{locale:Locale SettingsTabSystemMemoryManagerModeHostUnchecked}" />
  481. </ComboBoxItem>
  482. </ComboBox>
  483. </StackPanel>
  484. </StackPanel>
  485. </StackPanel>
  486. </Border>
  487. </ScrollViewer>
  488. <ScrollViewer
  489. Name="GraphicsPage"
  490. HorizontalAlignment="Stretch"
  491. VerticalAlignment="Stretch"
  492. HorizontalScrollBarVisibility="Disabled"
  493. VerticalScrollBarVisibility="Auto">
  494. <Border>
  495. <StackPanel
  496. Margin="10, 5"
  497. HorizontalAlignment="Stretch"
  498. Orientation="Vertical"
  499. Spacing="10">
  500. <TextBlock FontWeight="Bold" Text="{locale:Locale SettingsTabGraphicsEnhancements}" />
  501. <StackPanel Margin="10,0,0,0" Orientation="Vertical" Spacing="10">
  502. <CheckBox IsChecked="{Binding EnableShaderCache}"
  503. ToolTip.Tip="{locale:Locale ShaderCacheToggleTooltip}">
  504. <TextBlock Text="{locale:Locale SettingsTabGraphicsEnableShaderCache}" />
  505. </CheckBox>
  506. <StackPanel Orientation="Horizontal">
  507. <TextBlock VerticalAlignment="Center"
  508. ToolTip.Tip="{locale:Locale AnisotropyTooltip}"
  509. Text="{locale:Locale SettingsTabGraphicsAnisotropicFiltering}"
  510. Width="250" />
  511. <ComboBox SelectedIndex="{Binding MaxAnisotropy}"
  512. Width="350"
  513. HorizontalContentAlignment="Left"
  514. ToolTip.Tip="{locale:Locale AnisotropyTooltip}">
  515. <ComboBoxItem>
  516. <TextBlock
  517. Text="{locale:Locale SettingsTabGraphicsAnisotropicFilteringAuto}" />
  518. </ComboBoxItem>
  519. <ComboBoxItem>
  520. <TextBlock Text="{locale:Locale SettingsTabGraphicsAnisotropicFiltering2x}" />
  521. </ComboBoxItem>
  522. <ComboBoxItem>
  523. <TextBlock Text="{locale:Locale SettingsTabGraphicsAnisotropicFiltering4x}" />
  524. </ComboBoxItem>
  525. <ComboBoxItem>
  526. <TextBlock Text="{locale:Locale SettingsTabGraphicsAnisotropicFiltering8x}" />
  527. </ComboBoxItem>
  528. <ComboBoxItem>
  529. <TextBlock
  530. Text="{locale:Locale SettingsTabGraphicsAnisotropicFiltering16x}" />
  531. </ComboBoxItem>
  532. </ComboBox>
  533. </StackPanel>
  534. <StackPanel Orientation="Horizontal">
  535. <TextBlock VerticalAlignment="Center"
  536. ToolTip.Tip="{locale:Locale ResolutionScaleTooltip}"
  537. Text="{locale:Locale SettingsTabGraphicsResolutionScale}"
  538. Width="250" />
  539. <ComboBox SelectedIndex="{Binding ResolutionScale}"
  540. Width="350"
  541. HorizontalContentAlignment="Left"
  542. ToolTip.Tip="{locale:Locale ResolutionScaleTooltip}">
  543. <ComboBoxItem>
  544. <TextBlock Text="{locale:Locale SettingsTabGraphicsResolutionScaleCustom}" />
  545. </ComboBoxItem>
  546. <ComboBoxItem>
  547. <TextBlock Text="{locale:Locale SettingsTabGraphicsResolutionScaleNative}" />
  548. </ComboBoxItem>
  549. <ComboBoxItem>
  550. <TextBlock Text="{locale:Locale SettingsTabGraphicsResolutionScale2x}" />
  551. </ComboBoxItem>
  552. <ComboBoxItem>
  553. <TextBlock Text="{locale:Locale SettingsTabGraphicsResolutionScale3x}" />
  554. </ComboBoxItem>
  555. <ComboBoxItem>
  556. <TextBlock Text="{locale:Locale SettingsTabGraphicsResolutionScale4x}" />
  557. </ComboBoxItem>
  558. </ComboBox>
  559. <ui:NumberBox
  560. Margin="10,0,0,0"
  561. ToolTip.Tip="{locale:Locale ResolutionScaleEntryTooltip}"
  562. MinWidth="150"
  563. SmallChange="0.1"
  564. LargeChange="1"
  565. SimpleNumberFormat="F2"
  566. SpinButtonPlacementMode="Inline"
  567. IsVisible="{Binding IsCustomResolutionScaleActive}"
  568. Maximum="100"
  569. Minimum="0.1"
  570. Value="{Binding CustomResolutionScale}" />
  571. </StackPanel>
  572. <StackPanel Orientation="Horizontal">
  573. <TextBlock VerticalAlignment="Center"
  574. ToolTip.Tip="{locale:Locale AspectRatioTooltip}"
  575. Text="{locale:Locale SettingsTabGraphicsAspectRatio}"
  576. Width="250" />
  577. <ComboBox SelectedIndex="{Binding AspectRatio}"
  578. Width="350"
  579. HorizontalContentAlignment="Left"
  580. ToolTip.Tip="{locale:Locale AspectRatioTooltip}">
  581. <ComboBoxItem>
  582. <TextBlock Text="{locale:Locale SettingsTabGraphicsAspectRatio4x3}" />
  583. </ComboBoxItem>
  584. <ComboBoxItem>
  585. <TextBlock Text="{locale:Locale SettingsTabGraphicsAspectRatio16x9}" />
  586. </ComboBoxItem>
  587. <ComboBoxItem>
  588. <TextBlock Text="{locale:Locale SettingsTabGraphicsAspectRatio16x10}" />
  589. </ComboBoxItem>
  590. <ComboBoxItem>
  591. <TextBlock Text="{locale:Locale SettingsTabGraphicsAspectRatio21x9}" />
  592. </ComboBoxItem>
  593. <ComboBoxItem>
  594. <TextBlock Text="{locale:Locale SettingsTabGraphicsAspectRatio32x9}" />
  595. </ComboBoxItem>
  596. <ComboBoxItem>
  597. <TextBlock Text="{locale:Locale SettingsTabGraphicsAspectRatioStretch}" />
  598. </ComboBoxItem>
  599. </ComboBox>
  600. </StackPanel>
  601. </StackPanel>
  602. <Separator Height="1" />
  603. <TextBlock FontWeight="Bold" Text="{locale:Locale SettingsTabGraphicsFeatures}" />
  604. <StackPanel
  605. Margin="10,0,0,0"
  606. HorizontalAlignment="Stretch"
  607. Orientation="Vertical"
  608. Spacing="10">
  609. <StackPanel Orientation="Horizontal">
  610. <TextBlock VerticalAlignment="Center"
  611. ToolTip.Tip="{locale:Locale GraphicsBackendThreadingTooltip}"
  612. Text="{locale:Locale SettingsTabGraphicsBackendMultithreading}"
  613. Width="250" />
  614. <ComboBox Width="350"
  615. HorizontalContentAlignment="Left"
  616. ToolTip.Tip="{locale:Locale GalThreadingTooltip}"
  617. SelectedIndex="{Binding GraphicsBackendMultithreadingIndex}">
  618. <ComboBoxItem>
  619. <TextBlock Text="{locale:Locale CommonAuto}" />
  620. </ComboBoxItem>
  621. <ComboBoxItem>
  622. <TextBlock Text="{locale:Locale CommonOff}" />
  623. </ComboBoxItem>
  624. <ComboBoxItem>
  625. <TextBlock Text="{locale:Locale CommonOn}" />
  626. </ComboBoxItem>
  627. </ComboBox>
  628. </StackPanel>
  629. </StackPanel>
  630. <Separator Height="1" />
  631. <TextBlock FontWeight="Bold" Text="{locale:Locale SettingsTabGraphicsDeveloperOptions}" />
  632. <StackPanel
  633. Margin="10,0,0,0"
  634. HorizontalAlignment="Stretch"
  635. Orientation="Vertical"
  636. Spacing="10">
  637. <StackPanel Orientation="Horizontal">
  638. <TextBlock VerticalAlignment="Center"
  639. ToolTip.Tip="{locale:Locale ShaderDumpPathTooltip}"
  640. Text="{locale:Locale SettingsTabGraphicsShaderDumpPath}"
  641. Width="250" />
  642. <TextBox Text="{Binding ShaderDumpPath}"
  643. Width="350"
  644. ToolTip.Tip="{locale:Locale ShaderDumpPathTooltip}" />
  645. </StackPanel>
  646. </StackPanel>
  647. </StackPanel>
  648. </Border>
  649. </ScrollViewer>
  650. <ScrollViewer
  651. Name="AudioPage"
  652. HorizontalAlignment="Stretch"
  653. VerticalAlignment="Stretch"
  654. HorizontalScrollBarVisibility="Disabled"
  655. VerticalScrollBarVisibility="Auto">
  656. <Border>
  657. <StackPanel
  658. Margin="10,5"
  659. HorizontalAlignment="Stretch"
  660. Orientation="Vertical"
  661. Spacing="10">
  662. <TextBlock FontWeight="Bold" Text="{locale:Locale SettingsTabAudio}" />
  663. <StackPanel Margin="10,0,0,0" Orientation="Horizontal">
  664. <TextBlock VerticalAlignment="Center"
  665. Text="{locale:Locale SettingsTabSystemAudioBackend}"
  666. ToolTip.Tip="{locale:Locale AudioBackendTooltip}"
  667. Width="250" />
  668. <ComboBox SelectedIndex="{Binding AudioBackend}"
  669. Width="350"
  670. HorizontalContentAlignment="Left">
  671. <ComboBoxItem>
  672. <TextBlock Text="{locale:Locale SettingsTabSystemAudioBackendDummy}" />
  673. </ComboBoxItem>
  674. <ComboBoxItem IsEnabled="{Binding IsOpenAlEnabled}">
  675. <TextBlock Text="{locale:Locale SettingsTabSystemAudioBackendOpenAL}" />
  676. </ComboBoxItem>
  677. <ComboBoxItem IsEnabled="{Binding IsSoundIoEnabled}">
  678. <TextBlock Text="{locale:Locale SettingsTabSystemAudioBackendSoundIO}" />
  679. </ComboBoxItem>
  680. <ComboBoxItem IsEnabled="{Binding IsSDL2Enabled}">
  681. <TextBlock Text="{locale:Locale SettingsTabSystemAudioBackendSDL2}" />
  682. </ComboBoxItem>
  683. </ComboBox>
  684. </StackPanel>
  685. <StackPanel Margin="10,0,0,0" Orientation="Horizontal">
  686. <TextBlock VerticalAlignment="Center"
  687. Text="{locale:Locale SettingsTabSystemAudioVolume}"
  688. ToolTip.Tip="{locale:Locale AudioVolumeTooltip}"
  689. Width="250" />
  690. <ui:NumberBox Value="{Binding Volume}"
  691. ToolTip.Tip="{locale:Locale AudioVolumeTooltip}"
  692. Width="350"
  693. SmallChange="1"
  694. LargeChange="10"
  695. SimpleNumberFormat="F0"
  696. SpinButtonPlacementMode="Inline"
  697. Minimum="0"
  698. Maximum="100" />
  699. </StackPanel>
  700. <StackPanel Margin="10,0,0,0" Orientation="Horizontal">
  701. <Slider Value="{Binding Volume}"
  702. Margin="250,0,0,0"
  703. ToolTip.Tip="{locale:Locale AudioVolumeTooltip}"
  704. Minimum="0"
  705. Maximum="100"
  706. SmallChange="5"
  707. TickFrequency="5"
  708. IsSnapToTickEnabled="True"
  709. LargeChange="10"
  710. Width="350" />
  711. </StackPanel>
  712. </StackPanel>
  713. </Border>
  714. </ScrollViewer>
  715. <ScrollViewer
  716. Name="NetworkPage"
  717. HorizontalAlignment="Stretch"
  718. VerticalAlignment="Stretch"
  719. HorizontalScrollBarVisibility="Disabled"
  720. VerticalScrollBarVisibility="Auto">
  721. <Border>
  722. <StackPanel
  723. Margin="10,5"
  724. HorizontalAlignment="Stretch"
  725. Orientation="Vertical"
  726. Spacing="10">
  727. <TextBlock FontWeight="Bold" Text="{locale:Locale SettingsTabNetworkConnection}" />
  728. <CheckBox Margin="10,0,0,0" IsChecked="{Binding EnableInternetAccess}">
  729. <TextBlock Text="{locale:Locale SettingsTabSystemEnableInternetAccess}"
  730. ToolTip.Tip="{locale:Locale EnableInternetAccessTooltip}" />
  731. </CheckBox>
  732. </StackPanel>
  733. </Border>
  734. </ScrollViewer>
  735. <ScrollViewer
  736. Name="LoggingPage"
  737. HorizontalAlignment="Stretch"
  738. VerticalAlignment="Stretch"
  739. HorizontalScrollBarVisibility="Disabled"
  740. VerticalScrollBarVisibility="Auto">
  741. <Border>
  742. <StackPanel
  743. Margin="10,5"
  744. HorizontalAlignment="Stretch"
  745. Orientation="Vertical"
  746. Spacing="10">
  747. <TextBlock FontWeight="Bold" Text="{locale:Locale SettingsTabLoggingLogging}" />
  748. <StackPanel Margin="10,0,0,0" Orientation="Vertical">
  749. <CheckBox IsChecked="{Binding EnableFileLog}"
  750. ToolTip.Tip="{locale:Locale FileLogTooltip}">
  751. <TextBlock Text="{locale:Locale SettingsTabLoggingEnableLoggingToFile}" />
  752. </CheckBox>
  753. <CheckBox IsChecked="{Binding EnableStub}"
  754. ToolTip.Tip="{locale:Locale StubLogTooltip}">
  755. <TextBlock Text="{locale:Locale SettingsTabLoggingEnableStubLogs}" />
  756. </CheckBox>
  757. <CheckBox IsChecked="{Binding EnableInfo}"
  758. ToolTip.Tip="{locale:Locale InfoLogTooltip}">
  759. <TextBlock Text="{locale:Locale SettingsTabLoggingEnableInfoLogs}" />
  760. </CheckBox>
  761. <CheckBox IsChecked="{Binding EnableWarn}"
  762. ToolTip.Tip="{locale:Locale WarnLogTooltip}">
  763. <TextBlock Text="{locale:Locale SettingsTabLoggingEnableWarningLogs}" />
  764. </CheckBox>
  765. <CheckBox IsChecked="{Binding EnableError}"
  766. ToolTip.Tip="{locale:Locale ErrorLogTooltip}">
  767. <TextBlock Text="{locale:Locale SettingsTabLoggingEnableErrorLogs}" />
  768. </CheckBox>
  769. <CheckBox IsChecked="{Binding EnableTrace}"
  770. ToolTip.Tip="{locale:Locale TraceLogTooltip}">
  771. <TextBlock Text="{locale:Locale SettingsTabLoggingEnableTraceLogs}" />
  772. </CheckBox>
  773. <CheckBox IsChecked="{Binding EnableGuest}"
  774. ToolTip.Tip="{locale:Locale GuestLogTooltip}">
  775. <TextBlock Text="{locale:Locale SettingsTabLoggingEnableGuestLogs}" />
  776. </CheckBox>
  777. </StackPanel>
  778. <Separator Height="1" />
  779. <TextBlock FontWeight="Bold" Text="{locale:Locale SettingsTabLoggingDeveloperOptions}" />
  780. <StackPanel
  781. Margin="10,0,0,0"
  782. HorizontalAlignment="Stretch"
  783. Orientation="Vertical"
  784. Spacing="10">
  785. <StackPanel Orientation="Vertical">
  786. <CheckBox IsChecked="{Binding EnableDebug}"
  787. ToolTip.Tip="{locale:Locale DebugLogTooltip}">
  788. <TextBlock Text="{locale:Locale SettingsTabLoggingEnableDebugLogs}" />
  789. </CheckBox>
  790. <CheckBox IsChecked="{Binding EnableFsAccessLog}"
  791. ToolTip.Tip="{locale:Locale FileAccessLogTooltip}">
  792. <TextBlock Text="{locale:Locale SettingsTabLoggingEnableFsAccessLogs}" />
  793. </CheckBox>
  794. <StackPanel Margin="0,10,0,0" Orientation="Horizontal" VerticalAlignment="Stretch">
  795. <TextBlock VerticalAlignment="Center"
  796. ToolTip.Tip="{locale:Locale FSAccessLogModeTooltip}"
  797. Text="{locale:Locale SettingsTabLoggingFsGlobalAccessLogMode}"
  798. Width="285" />
  799. <ui:NumberBox
  800. Maximum="3"
  801. Minimum="0"
  802. Width="150"
  803. SpinButtonPlacementMode="Inline"
  804. SmallChange="1"
  805. LargeChange="1"
  806. Value="{Binding FsGlobalAccessLogMode}" />
  807. </StackPanel>
  808. <StackPanel Margin="0,10,0,0" Orientation="Horizontal">
  809. <TextBlock VerticalAlignment="Center"
  810. Text="{locale:Locale SettingsTabLoggingOpenglLogLevel}"
  811. ToolTip.Tip="{locale:Locale OpenGlLogLevel}"
  812. Width="285" />
  813. <ComboBox SelectedIndex="{Binding OpenglDebugLevel}"
  814. Width="150"
  815. HorizontalContentAlignment="Left"
  816. ToolTip.Tip="{locale:Locale OpenGlLogLevel}">
  817. <ComboBoxItem>
  818. <TextBlock Text="{locale:Locale SettingsTabLoggingOpenglLogLevelNone}" />
  819. </ComboBoxItem>
  820. <ComboBoxItem>
  821. <TextBlock Text="{locale:Locale SettingsTabLoggingOpenglLogLevelError}" />
  822. </ComboBoxItem>
  823. <ComboBoxItem>
  824. <TextBlock
  825. Text="{locale:Locale SettingsTabLoggingOpenglLogLevelPerformance}" />
  826. </ComboBoxItem>
  827. <ComboBoxItem>
  828. <TextBlock Text="{locale:Locale SettingsTabLoggingOpenglLogLevelAll}" />
  829. </ComboBoxItem>
  830. </ComboBox>
  831. </StackPanel>
  832. </StackPanel>
  833. </StackPanel>
  834. </StackPanel>
  835. </Border>
  836. </ScrollViewer>
  837. </Grid>
  838. <ui:NavigationView Grid.Row="1" IsSettingsVisible="False" Name="NavPanel" IsBackEnabled="False"
  839. PaneDisplayMode="LeftCompact"
  840. Margin="2,10,10,0"
  841. VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
  842. <ui:NavigationView.MenuItems>
  843. <ui:NavigationViewItem IsSelected="True"
  844. Content="{locale:Locale SettingsTabGeneral}"
  845. Tag="UiPage"
  846. Icon="New" />
  847. <ui:NavigationViewItem
  848. Content="{locale:Locale SettingsTabInput}"
  849. Tag="InputPage"
  850. Icon="Games" />
  851. <ui:NavigationViewItem
  852. Content="{locale:Locale SettingsTabHotkeys}"
  853. Tag="HotkeysPage"
  854. Icon="Keyboard" />
  855. <ui:NavigationViewItem
  856. Content="{locale:Locale SettingsTabSystem}"
  857. Tag="SystemPage"
  858. Icon="Settings" />
  859. <ui:NavigationViewItem
  860. Content="{locale:Locale SettingsTabCpu}"
  861. Tag="CpuPage">
  862. <ui:NavigationViewItem.Icon>
  863. <ui:FontIcon FontFamily="avares://Ryujinx.Ava/Assets/Fonts#Segoe Fluent Icons"
  864. Glyph="{controls:GlyphValueConverter Chip}" />
  865. </ui:NavigationViewItem.Icon>
  866. </ui:NavigationViewItem>
  867. <ui:NavigationViewItem
  868. Content="{locale:Locale SettingsTabGraphics}"
  869. Tag="GraphicsPage"
  870. Icon="Image" />
  871. <ui:NavigationViewItem
  872. Content="{locale:Locale SettingsTabAudio}"
  873. Icon="Audio"
  874. Tag="AudioPage" />
  875. <ui:NavigationViewItem
  876. Content="{locale:Locale SettingsTabNetwork}"
  877. Tag="NetworkPage"
  878. Icon="Globe" />
  879. <ui:NavigationViewItem
  880. Content="{locale:Locale SettingsTabLogging}"
  881. Tag="LoggingPage"
  882. Icon="Document" />
  883. </ui:NavigationView.MenuItems>
  884. </ui:NavigationView>
  885. <StackPanel
  886. Grid.Row="2"
  887. Margin="10"
  888. Spacing="10"
  889. Orientation="Horizontal"
  890. HorizontalAlignment="Right">
  891. <Button Content="{locale:Locale SettingsButtonSave}" Click="SaveButton_Clicked" />
  892. <Button Content="{locale:Locale SettingsButtonClose}" Click="CloseButton_Clicked" />
  893. <Button Content="{locale:Locale SettingsButtonApply}"
  894. Click="ApplyButton_Clicked" />
  895. </StackPanel>
  896. </Grid>
  897. </window:StyleableWindow>