2019-09-02 16:03:57 +00:00
<?xml version="1.0" encoding="UTF-8"?>
2021-06-24 00:09:08 +00:00
<!-- Generated with glade 3.38.2 -->
2019-09-02 16:03:57 +00:00
<interface>
<requires lib="gtk+" version="3.20"/>
<object class="GtkAdjustment" id="_fsLogSpinAdjustment">
<property name="upper">3</property>
2020-11-13 00:50:28 +00:00
<property name="step-increment">1</property>
<property name="page-increment">10</property>
2019-09-02 16:03:57 +00:00
</object>
2020-07-03 23:16:49 +00:00
<object class="GtkAdjustment" id="_systemTimeDaySpinAdjustment">
<property name="lower">1</property>
<property name="upper">31</property>
2020-11-13 00:50:28 +00:00
<property name="step-increment">1</property>
<property name="page-increment">5</property>
2020-07-03 23:16:49 +00:00
</object>
<object class="GtkAdjustment" id="_systemTimeHourSpinAdjustment">
<property name="upper">23</property>
2020-11-13 00:50:28 +00:00
<property name="step-increment">1</property>
<property name="page-increment">5</property>
2020-07-03 23:16:49 +00:00
</object>
<object class="GtkAdjustment" id="_systemTimeMinuteSpinAdjustment">
<property name="upper">59</property>
2020-11-13 00:50:28 +00:00
<property name="step-increment">1</property>
<property name="page-increment">5</property>
2020-07-03 23:16:49 +00:00
</object>
<object class="GtkAdjustment" id="_systemTimeMonthSpinAdjustment">
<property name="lower">1</property>
<property name="upper">12</property>
2020-11-13 00:50:28 +00:00
<property name="step-increment">1</property>
<property name="page-increment">5</property>
2020-07-03 23:16:49 +00:00
</object>
<object class="GtkAdjustment" id="_systemTimeYearSpinAdjustment">
<property name="lower">2000</property>
<property name="upper">2060</property>
2020-11-13 00:50:28 +00:00
<property name="step-increment">1</property>
<property name="page-increment">10</property>
2020-07-03 23:16:49 +00:00
</object>
2020-09-29 21:32:42 +00:00
<object class="GtkEntryCompletion" id="_systemTimeZoneCompletion">
2020-11-13 00:50:28 +00:00
<property name="minimum-key-length">0</property>
<property name="inline-completion">True</property>
<property name="inline-selection">True</property>
2020-09-29 21:32:42 +00:00
</object>
2020-05-03 02:00:53 +00:00
<object class="GtkWindow" id="_settingsWin">
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2019-09-02 16:03:57 +00:00
<property name="title" translatable="yes">Ryujinx - Settings</property>
<property name="modal">True</property>
2020-11-13 00:50:28 +00:00
<property name="window-position">center</property>
<property name="default-width">650</property>
2021-06-10 11:15:41 +00:00
<property name="default-height">650</property>
2020-05-03 02:00:53 +00:00
<child>
2019-09-02 16:03:57 +00:00
<object class="GtkBox">
2020-05-03 02:00:53 +00:00
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2019-09-02 16:03:57 +00:00
<property name="orientation">vertical</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
<property name="shadow-type">in</property>
2019-09-02 16:03:57 +00:00
<child>
<object class="GtkViewport">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2019-09-02 16:03:57 +00:00
<child>
<object class="GtkNotebook">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
2019-09-02 16:03:57 +00:00
<child>
<object class="GtkBox" id="TabGeneral">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">10</property>
<property name="margin-top">5</property>
2019-09-02 16:03:57 +00:00
<property name="orientation">vertical</property>
<child>
<object class="GtkBox" id="CatGeneral">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
2019-09-02 16:03:57 +00:00
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2019-09-02 16:03:57 +00:00
<property name="halign">start</property>
2020-11-13 00:50:28 +00:00
<property name="margin-bottom">5</property>
2019-09-02 16:03:57 +00:00
<property name="label" translatable="yes">General</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
2020-05-03 02:00:53 +00:00
<object class="GtkBox" id="General">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="margin-left">10</property>
<property name="margin-right">10</property>
2020-05-03 02:00:53 +00:00
<property name="orientation">vertical</property>
<child>
<object class="GtkCheckButton" id="_discordToggle">
<property name="label" translatable="yes">Enable Discord Rich Presence</property>
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="tooltip-text" translatable="yes">Enables or disables Discord Rich Presence</property>
2020-05-03 02:00:53 +00:00
<property name="halign">start</property>
2020-11-13 00:50:28 +00:00
<property name="draw-indicator">True</property>
2020-05-03 02:00:53 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
2020-09-29 20:05:25 +00:00
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="_checkUpdatesToggle">
2020-11-15 20:11:23 +00:00
<property name="label" translatable="yes">Check for Updates on Launch</property>
2020-09-29 20:05:25 +00:00
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
<property name="receives-default">False</property>
2020-09-29 20:05:25 +00:00
<property name="halign">start</property>
2020-11-13 00:50:28 +00:00
<property name="draw-indicator">True</property>
2020-09-29 20:05:25 +00:00
</object>
<packing>
<property name="expand">False</property>
2021-01-14 22:30:52 +00:00
<property name="fill">True</property>
<property name="padding">5</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="_showConfirmExitToggle">
<property name="label" translatable="yes">Show "Confirm Exit" Dialog</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
2020-09-29 20:05:25 +00:00
<property name="fill">True</property>
<property name="padding">5</property>
2021-02-15 21:48:21 +00:00
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="_hideCursorOnIdleToggle">
<property name="label" translatable="yes">Hide Cursor On Idle</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
<property name="position">3</property>
2020-05-03 02:00:53 +00:00
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkSeparator">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
2020-05-03 02:00:53 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkBox" id="CatGameDir">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
2020-05-03 02:00:53 +00:00
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-05-03 02:00:53 +00:00
<property name="halign">start</property>
2020-11-13 00:50:28 +00:00
<property name="margin-bottom">5</property>
2020-05-03 02:00:53 +00:00
<property name="label" translatable="yes">Game Directories</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox">
2019-09-02 16:03:57 +00:00
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="margin-left">10</property>
<property name="margin-right">10</property>
2019-09-02 16:03:57 +00:00
<property name="orientation">vertical</property>
2020-05-03 02:00:53 +00:00
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
<property name="margin-bottom">10</property>
<property name="shadow-type">in</property>
2020-05-03 02:00:53 +00:00
<child>
<object class="GtkTreeView" id="_gameDirsBox">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
<property name="headers-visible">False</property>
<property name="headers-clickable">False</property>
2020-05-03 02:00:53 +00:00
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
</object>
</child>
<style>
<class name="GameDir"/>
</style>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
2019-09-02 16:03:57 +00:00
<child>
<object class="GtkBox">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2019-09-02 16:03:57 +00:00
<child>
2020-05-03 02:00:53 +00:00
<object class="GtkEntry" id="_addGameDirBox">
2019-09-02 16:03:57 +00:00
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
<property name="tooltip-text" translatable="yes">Enter a game directroy to add to the list</property>
2019-09-02 16:03:57 +00:00
</object>
<packing>
2020-05-03 02:00:53 +00:00
<property name="expand">True</property>
2019-09-02 16:03:57 +00:00
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
2020-05-03 02:00:53 +00:00
<object class="GtkToggleButton" id="_addDir">
<property name="label" translatable="yes">Add</property>
2020-11-13 00:50:28 +00:00
<property name="width-request">80</property>
2019-09-02 16:03:57 +00:00
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes"> Add a game directory to the list</property>
<property name="margin-left">5</property>
2020-05-03 02:00:53 +00:00
<signal name="toggled" handler="AddDir_Pressed" swapped="no"/>
2019-09-02 16:03:57 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
2020-03-19 22:37:55 +00:00
<child>
2020-05-03 02:00:53 +00:00
<object class="GtkToggleButton" id="_removeDir">
<property name="label" translatable="yes">Remove</property>
2020-11-13 00:50:28 +00:00
<property name="width-request">80</property>
2020-03-19 22:37:55 +00:00
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Remove selected game directory</property>
<property name="margin-left">5</property>
2020-05-03 02:00:53 +00:00
<signal name="toggled" handler="RemoveDir_Pressed" swapped="no"/>
2020-03-19 22:37:55 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
2019-09-02 16:03:57 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
2020-05-03 02:00:53 +00:00
<property name="position">1</property>
2019-09-02 16:03:57 +00:00
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
2020-05-03 02:00:53 +00:00
<property name="expand">True</property>
2019-09-02 16:03:57 +00:00
<property name="fill">True</property>
<property name="padding">5</property>
2020-05-03 02:00:53 +00:00
<property name="position">4</property>
2019-09-02 16:03:57 +00:00
</packing>
</child>
<child>
<object class="GtkSeparator">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
2019-09-02 16:03:57 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
2020-05-03 02:00:53 +00:00
<property name="position">5</property>
2019-09-02 16:03:57 +00:00
</packing>
</child>
<child>
2020-05-03 02:00:53 +00:00
<object class="GtkBox" id="CatThemes">
2019-09-02 16:03:57 +00:00
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
2019-09-02 16:03:57 +00:00
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2019-09-02 16:03:57 +00:00
<property name="halign">start</property>
2020-11-13 00:50:28 +00:00
<property name="margin-bottom">5</property>
2020-05-03 02:00:53 +00:00
<property name="label" translatable="yes">Themes</property>
2019-09-02 16:03:57 +00:00
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="margin-left">10</property>
<property name="margin-right">10</property>
2019-09-02 16:03:57 +00:00
<property name="orientation">vertical</property>
<child>
2020-05-03 02:00:53 +00:00
<object class="GtkCheckButton" id="_custThemeToggle">
<property name="label" translatable="yes">Use Custom Theme</property>
2019-09-02 16:03:57 +00:00
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="tooltip-text" translatable="yes">Enable or disable custom themes in the GUI</property>
2020-05-03 02:00:53 +00:00
<property name="halign">start</property>
2020-11-13 00:50:28 +00:00
<property name="draw-indicator">True</property>
2020-05-03 02:00:53 +00:00
<signal name="toggled" handler="CustThemeToggle_Activated" swapped="no"/>
2019-09-02 16:03:57 +00:00
</object>
<packing>
2020-05-03 02:00:53 +00:00
<property name="expand">False</property>
2019-09-02 16:03:57 +00:00
<property name="fill">True</property>
2020-05-03 02:00:53 +00:00
<property name="padding">5</property>
<property name="position">1</property>
2019-09-02 16:03:57 +00:00
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2019-09-02 16:03:57 +00:00
<child>
2020-05-03 02:00:53 +00:00
<object class="GtkLabel" id="_custThemePathLabel">
2019-09-02 16:03:57 +00:00
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="tooltip-text" translatable="yes">Path to custom GUI theme</property>
2020-05-03 02:00:53 +00:00
<property name="label" translatable="yes">Custom Theme Path:</property>
2019-09-02 16:03:57 +00:00
</object>
<packing>
2020-05-03 02:00:53 +00:00
<property name="expand">False</property>
2019-09-02 16:03:57 +00:00
<property name="fill">True</property>
2020-05-03 02:00:53 +00:00
<property name="padding">5</property>
2019-09-02 16:03:57 +00:00
<property name="position">0</property>
</packing>
</child>
<child>
2020-05-03 02:00:53 +00:00
<object class="GtkEntry" id="_custThemePath">
2019-09-02 16:03:57 +00:00
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
<property name="tooltip-text" translatable="yes">Path to custom GUI theme</property>
2020-05-03 02:00:53 +00:00
<property name="valign">center</property>
2019-09-02 16:03:57 +00:00
</object>
<packing>
2020-05-03 02:00:53 +00:00
<property name="expand">True</property>
2019-09-02 16:03:57 +00:00
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
2020-05-03 02:00:53 +00:00
<object class="GtkToggleButton" id="_browseThemePath">
2019-09-02 16:03:57 +00:00
<property name="label" translatable="yes">Browse...</property>
2020-11-13 00:50:28 +00:00
<property name="width-request">80</property>
2019-09-02 16:03:57 +00:00
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Browse for a custom GUI theme</property>
<property name="margin-left">5</property>
2020-05-03 02:00:53 +00:00
<signal name="toggled" handler="BrowseThemeDir_Pressed" swapped="no"/>
2019-09-02 16:03:57 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
2020-05-03 02:00:53 +00:00
<property name="padding">10</property>
<property name="position">2</property>
2019-09-02 16:03:57 +00:00
</packing>
</child>
</object>
<packing>
2020-05-03 02:00:53 +00:00
<property name="expand">False</property>
2019-09-02 16:03:57 +00:00
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
2020-05-03 02:00:53 +00:00
<property name="expand">False</property>
2019-09-02 16:03:57 +00:00
<property name="fill">True</property>
<property name="padding">5</property>
<property name="position">6</property>
</packing>
</child>
</object>
</child>
<child type="tab">
<object class="GtkLabel">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2019-09-02 16:03:57 +00:00
<property name="label" translatable="yes">General</property>
</object>
<packing>
2020-11-13 00:50:28 +00:00
<property name="tab-fill">False</property>
2019-09-02 16:03:57 +00:00
</packing>
</child>
<child>
2019-11-29 04:32:51 +00:00
<object class="GtkBox" id="TabInput">
2019-09-02 16:03:57 +00:00
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">10</property>
<property name="margin-top">5</property>
2019-09-02 16:03:57 +00:00
<property name="orientation">vertical</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
2019-09-02 16:03:57 +00:00
<child>
<object class="GtkCheckButton" id="_dockedModeToggle">
<property name="label" translatable="yes">Enable Docked Mode</property>
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="tooltip-text" translatable="yes">Enable or disable Docked Mode</property>
<property name="draw-indicator">True</property>
2019-09-02 16:03:57 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">10</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="_directKeyboardAccess">
<property name="label" translatable="yes">Direct Keyboard Access</property>
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="tooltip-text" translatable="yes">Enable or disable "direct keyboard access (HID) support" (Provides games access to your keyboard as a text entry device)</property>
<property name="draw-indicator">True</property>
2019-09-02 16:03:57 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="padding">10</property>
<property name="position">1</property>
</packing>
</child>
2021-06-24 00:09:08 +00:00
<child>
<object class="GtkCheckButton" id="_directMouseAccess">
<property name="label" translatable="yes">Direct Mouse Access</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
2021-11-10 18:21:51 +00:00
<property name="tooltip-text" translatable="yes">Enable or disable "direct mouse access (HID) support" (Provides games access to your mouse as a pointing device)</property>
2021-06-24 00:09:08 +00:00
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="padding">10</property>
<property name="position">2</property>
</packing>
</child>
2019-09-02 16:03:57 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
<property name="position">0</property>
</packing>
</child>
<child>
2019-11-29 04:32:51 +00:00
<object class="GtkSeparator">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2019-11-29 04:32:51 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
2020-11-13 00:50:28 +00:00
<!-- n-columns=5 n-rows=5 -->
2020-05-03 02:00:53 +00:00
<object class="GtkGrid" id="ControllerGrid">
2019-09-02 16:03:57 +00:00
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-05-03 02:00:53 +00:00
<property name="halign">center</property>
<property name="valign">center</property>
2020-11-13 00:50:28 +00:00
<property name="column-spacing">20</property>
2019-09-02 16:03:57 +00:00
<child>
<object class="GtkBox">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2019-11-29 04:32:51 +00:00
<property name="orientation">vertical</property>
2019-09-02 16:03:57 +00:00
<child>
2020-05-03 02:00:53 +00:00
<object class="GtkLabel">
2019-09-02 16:03:57 +00:00
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="margin-top">20</property>
<property name="margin-bottom">20</property>
2020-05-03 02:00:53 +00:00
<property name="label" translatable="yes">Player 1</property>
2019-09-02 16:03:57 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
2020-05-03 02:00:53 +00:00
<object class="GtkToggleButton" id="_configureController1">
<property name="label" translatable="yes">Configure</property>
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="margin-left">20</property>
<property name="margin-right">20</property>
<property name="margin-top">20</property>
<property name="margin-bottom">20</property>
2020-05-03 02:00:53 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
2020-11-13 00:50:28 +00:00
<property name="left-attach">0</property>
<property name="top-attach">0</property>
2020-05-03 02:00:53 +00:00
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-05-03 02:00:53 +00:00
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="margin-top">20</property>
<property name="margin-bottom">20</property>
2020-05-03 02:00:53 +00:00
<property name="label" translatable="yes">Player 3</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="_configureController3">
<property name="label" translatable="yes">Configure</property>
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="margin-left">20</property>
<property name="margin-right">20</property>
<property name="margin-top">20</property>
<property name="margin-bottom">20</property>
2020-05-03 02:00:53 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
2020-11-13 00:50:28 +00:00
<property name="left-attach">4</property>
<property name="top-attach">0</property>
2020-05-03 02:00:53 +00:00
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-05-03 02:00:53 +00:00
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="margin-top">20</property>
<property name="margin-bottom">20</property>
2020-05-03 02:00:53 +00:00
<property name="label" translatable="yes">Player 2</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="_configureController2">
<property name="label" translatable="yes">Configure</property>
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="margin-left">20</property>
<property name="margin-right">20</property>
<property name="margin-top">20</property>
<property name="margin-bottom">20</property>
2020-05-03 02:00:53 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
2020-11-13 00:50:28 +00:00
<property name="left-attach">2</property>
<property name="top-attach">0</property>
2020-05-03 02:00:53 +00:00
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-05-03 02:00:53 +00:00
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="margin-top">20</property>
<property name="margin-bottom">20</property>
2020-05-03 02:00:53 +00:00
<property name="label" translatable="yes">Handheld</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="_configureControllerH">
<property name="label" translatable="yes">Configure</property>
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="margin-left">20</property>
<property name="margin-right">20</property>
<property name="margin-top">20</property>
<property name="margin-bottom">20</property>
2020-05-03 02:00:53 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
2020-11-13 00:50:28 +00:00
<property name="left-attach">4</property>
<property name="top-attach">4</property>
2020-05-03 02:00:53 +00:00
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-05-03 02:00:53 +00:00
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="margin-top">20</property>
<property name="margin-bottom">20</property>
2020-05-03 02:00:53 +00:00
<property name="label" translatable="yes">Player 6</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="_configureController6">
<property name="label" translatable="yes">Configure</property>
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="margin-left">20</property>
<property name="margin-right">20</property>
<property name="margin-top">20</property>
<property name="margin-bottom">20</property>
2020-05-03 02:00:53 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
2020-11-13 00:50:28 +00:00
<property name="left-attach">4</property>
<property name="top-attach">2</property>
2020-05-03 02:00:53 +00:00
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-05-03 02:00:53 +00:00
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="margin-top">20</property>
<property name="margin-bottom">20</property>
2020-05-03 02:00:53 +00:00
<property name="label" translatable="yes">Player 5</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="_configureController5">
<property name="label" translatable="yes">Configure</property>
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="margin-left">20</property>
<property name="margin-right">20</property>
<property name="margin-top">20</property>
<property name="margin-bottom">20</property>
2020-05-03 02:00:53 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
2020-11-13 00:50:28 +00:00
<property name="left-attach">2</property>
<property name="top-attach">2</property>
2020-05-03 02:00:53 +00:00
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-05-03 02:00:53 +00:00
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="margin-top">20</property>
<property name="margin-bottom">20</property>
2020-05-03 02:00:53 +00:00
<property name="label" translatable="yes">Player 7</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="_configureController7">
<property name="label" translatable="yes">Configure</property>
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="margin-left">20</property>
<property name="margin-right">20</property>
<property name="margin-top">20</property>
<property name="margin-bottom">20</property>
2020-05-03 02:00:53 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
2020-11-13 00:50:28 +00:00
<property name="left-attach">0</property>
<property name="top-attach">4</property>
2020-05-03 02:00:53 +00:00
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-05-03 02:00:53 +00:00
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="margin-top">20</property>
<property name="margin-bottom">20</property>
2020-05-03 02:00:53 +00:00
<property name="label" translatable="yes">Player 4</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="_configureController4">
<property name="label" translatable="yes">Configure</property>
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="margin-left">20</property>
<property name="margin-right">20</property>
<property name="margin-top">20</property>
<property name="margin-bottom">20</property>
2020-05-03 02:00:53 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
2020-11-13 00:50:28 +00:00
<property name="left-attach">0</property>
<property name="top-attach">2</property>
2020-05-03 02:00:53 +00:00
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-05-03 02:00:53 +00:00
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="margin-top">20</property>
<property name="margin-bottom">20</property>
2020-05-03 02:00:53 +00:00
<property name="label" translatable="yes">Player 8</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="_configureController8">
<property name="label" translatable="yes">Configure</property>
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="margin-left">20</property>
<property name="margin-right">20</property>
<property name="margin-top">20</property>
<property name="margin-bottom">20</property>
2020-05-03 02:00:53 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
2020-11-13 00:50:28 +00:00
<property name="left-attach">2</property>
<property name="top-attach">4</property>
2020-05-03 02:00:53 +00:00
</packing>
</child>
<child>
<object class="GtkSeparator">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-05-03 02:00:53 +00:00
</object>
<packing>
2020-11-13 00:50:28 +00:00
<property name="left-attach">1</property>
<property name="top-attach">0</property>
2020-05-03 02:00:53 +00:00
</packing>
</child>
<child>
<object class="GtkSeparator">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-05-03 02:00:53 +00:00
</object>
<packing>
2020-11-13 00:50:28 +00:00
<property name="left-attach">3</property>
<property name="top-attach">0</property>
2020-05-03 02:00:53 +00:00
</packing>
</child>
<child>
<object class="GtkSeparator">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-05-03 02:00:53 +00:00
</object>
<packing>
2020-11-13 00:50:28 +00:00
<property name="left-attach">3</property>
<property name="top-attach">2</property>
2020-05-03 02:00:53 +00:00
</packing>
</child>
<child>
<object class="GtkSeparator">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-05-03 02:00:53 +00:00
</object>
<packing>
2020-11-13 00:50:28 +00:00
<property name="left-attach">3</property>
<property name="top-attach">4</property>
2020-05-03 02:00:53 +00:00
</packing>
</child>
<child>
<object class="GtkSeparator">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-05-03 02:00:53 +00:00
</object>
<packing>
2020-11-13 00:50:28 +00:00
<property name="left-attach">1</property>
<property name="top-attach">2</property>
2020-05-03 02:00:53 +00:00
</packing>
</child>
<child>
<object class="GtkSeparator">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-05-03 02:00:53 +00:00
</object>
<packing>
2020-11-13 00:50:28 +00:00
<property name="left-attach">1</property>
<property name="top-attach">4</property>
2020-05-03 02:00:53 +00:00
</packing>
</child>
<child>
<object class="GtkSeparator">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-05-03 02:00:53 +00:00
</object>
<packing>
2020-11-13 00:50:28 +00:00
<property name="left-attach">1</property>
<property name="top-attach">1</property>
2020-05-03 02:00:53 +00:00
</packing>
</child>
<child>
<object class="GtkSeparator">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-05-03 02:00:53 +00:00
</object>
<packing>
2020-11-13 00:50:28 +00:00
<property name="left-attach">1</property>
<property name="top-attach">3</property>
2020-05-03 02:00:53 +00:00
</packing>
</child>
<child>
<object class="GtkSeparator">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-05-03 02:00:53 +00:00
</object>
<packing>
2020-11-13 00:50:28 +00:00
<property name="left-attach">3</property>
<property name="top-attach">1</property>
2020-05-03 02:00:53 +00:00
</packing>
</child>
<child>
<object class="GtkSeparator">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-05-03 02:00:53 +00:00
</object>
<packing>
2020-11-13 00:50:28 +00:00
<property name="left-attach">3</property>
<property name="top-attach">3</property>
2020-05-03 02:00:53 +00:00
</packing>
</child>
<child>
<object class="GtkSeparator">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-05-03 02:00:53 +00:00
</object>
<packing>
2020-11-13 00:50:28 +00:00
<property name="left-attach">0</property>
<property name="top-attach">1</property>
2020-05-03 02:00:53 +00:00
</packing>
</child>
<child>
<object class="GtkSeparator">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-05-03 02:00:53 +00:00
</object>
<packing>
2020-11-13 00:50:28 +00:00
<property name="left-attach">2</property>
<property name="top-attach">1</property>
2020-05-03 02:00:53 +00:00
</packing>
</child>
<child>
<object class="GtkSeparator">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-05-03 02:00:53 +00:00
</object>
<packing>
2020-11-13 00:50:28 +00:00
<property name="left-attach">4</property>
<property name="top-attach">1</property>
2020-05-03 02:00:53 +00:00
</packing>
</child>
<child>
<object class="GtkSeparator">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-05-03 02:00:53 +00:00
</object>
<packing>
2020-11-13 00:50:28 +00:00
<property name="left-attach">0</property>
<property name="top-attach">3</property>
2020-05-03 02:00:53 +00:00
</packing>
</child>
<child>
<object class="GtkSeparator">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-05-03 02:00:53 +00:00
</object>
<packing>
2020-11-13 00:50:28 +00:00
<property name="left-attach">2</property>
<property name="top-attach">3</property>
2020-05-03 02:00:53 +00:00
</packing>
</child>
<child>
<object class="GtkSeparator">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-05-03 02:00:53 +00:00
</object>
<packing>
2020-11-13 00:50:28 +00:00
<property name="left-attach">4</property>
<property name="top-attach">3</property>
2020-05-03 02:00:53 +00:00
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
2020-09-29 21:32:42 +00:00
<child>
<object class="GtkSeparator">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-09-29 21:32:42 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
2020-05-03 02:00:53 +00:00
</object>
<packing>
<property name="position">1</property>
</packing>
</child>
<child type="tab">
<object class="GtkLabel">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-05-03 02:00:53 +00:00
<property name="label" translatable="yes">Input</property>
</object>
<packing>
<property name="position">1</property>
2020-11-13 00:50:28 +00:00
<property name="tab-fill">False</property>
2020-05-03 02:00:53 +00:00
</packing>
</child>
<child>
<object class="GtkBox" id="TabSystem">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">10</property>
<property name="margin-top">5</property>
2020-05-03 02:00:53 +00:00
<property name="orientation">vertical</property>
<child>
<object class="GtkBox" id="CatCore">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-05-03 02:00:53 +00:00
<property name="valign">start</property>
2020-11-13 00:50:28 +00:00
<property name="margin-left">5</property>
<property name="margin-right">5</property>
2020-05-03 02:00:53 +00:00
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-05-03 02:00:53 +00:00
<property name="halign">start</property>
2020-11-13 00:50:28 +00:00
<property name="margin-bottom">5</property>
2020-05-03 02:00:53 +00:00
<property name="label" translatable="yes">Core</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="margin-left">10</property>
<property name="margin-right">10</property>
2020-05-03 02:00:53 +00:00
<property name="orientation">vertical</property>
<child>
<object class="GtkBox" id="RegionBox">
2019-09-02 16:03:57 +00:00
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2019-11-29 04:32:51 +00:00
<child>
<object class="GtkLabel">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="tooltip-text" translatable="yes">Change System Region</property>
2020-05-03 02:00:53 +00:00
<property name="halign">end</property>
<property name="label" translatable="yes">System Region:</property>
2019-11-29 04:32:51 +00:00
</object>
<packing>
2020-05-03 02:00:53 +00:00
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
<property name="position">2</property>
2019-11-29 04:32:51 +00:00
</packing>
</child>
<child>
2020-05-03 02:00:53 +00:00
<object class="GtkComboBoxText" id="_systemRegionSelect">
2019-11-29 04:32:51 +00:00
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="tooltip-text" translatable="yes">Change System Region</property>
<property name="margin-left">5</property>
2020-05-03 02:00:53 +00:00
<items>
<item id="Japan" translatable="yes">Japan</item>
<item id="USA" translatable="yes">USA</item>
<item id="Europe" translatable="yes">Europe</item>
<item id="Australia" translatable="yes">Australia</item>
<item id="China" translatable="yes">China</item>
<item id="Korea" translatable="yes">Korea</item>
<item id="Taiwan" translatable="yes">Taiwan</item>
</items>
2019-11-29 04:32:51 +00:00
</object>
<packing>
2020-05-03 02:00:53 +00:00
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
2019-11-29 04:32:51 +00:00
</packing>
</child>
2020-05-03 02:00:53 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox" id="LanguageBox">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2019-11-29 04:32:51 +00:00
<child>
2020-05-03 02:00:53 +00:00
<object class="GtkLabel">
2019-11-29 04:32:51 +00:00
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="tooltip-text" translatable="yes">Change System Language</property>
2020-05-03 02:00:53 +00:00
<property name="halign">end</property>
<property name="label" translatable="yes">System Language:</property>
2019-11-29 04:32:51 +00:00
</object>
<packing>
2020-05-03 02:00:53 +00:00
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
<property name="position">0</property>
2019-11-29 04:32:51 +00:00
</packing>
</child>
<child>
2020-05-03 02:00:53 +00:00
<object class="GtkComboBoxText" id="_systemLanguageSelect">
2019-11-29 04:32:51 +00:00
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="tooltip-text" translatable="yes">Change System Language</property>
2020-05-03 02:00:53 +00:00
<items>
<item id="AmericanEnglish" translatable="yes">American English</item>
<item id="BritishEnglish" translatable="yes">British English</item>
<item id="CanadianFrench" translatable="yes">Canadian French</item>
<item id="Chinese" translatable="yes">Chinese</item>
<item id="Dutch" translatable="yes">Dutch</item>
<item id="French" translatable="yes">French</item>
<item id="German" translatable="yes">German</item>
<item id="Italian" translatable="yes">Italian</item>
<item id="Japanese" translatable="yes">Japanese</item>
<item id="Korean" translatable="yes">Korean</item>
<item id="LatinAmericanSpanish" translatable="yes">Latin American Spanish</item>
<item id="Portuguese" translatable="yes">Portuguese</item>
<item id="Russian" translatable="yes">Russian</item>
<item id="SimplifiedChinese" translatable="yes">Simplified Chinese</item>
<item id="Spanish" translatable="yes">Spanish</item>
<item id="Taiwanese" translatable="yes">Taiwanese</item>
<item id="TraditionalChinese" translatable="yes">Traditional Chinese</item>
2021-10-28 21:06:45 +00:00
<item id="BrazilianPortuguese" translatable="yes">Brazilian Portuguese</item>
2020-05-03 02:00:53 +00:00
</items>
2019-11-29 04:32:51 +00:00
</object>
<packing>
2020-05-03 02:00:53 +00:00
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
2019-11-29 04:32:51 +00:00
</packing>
</child>
2020-05-03 02:00:53 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkBox" id="TimeZoneBox">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2019-11-29 04:32:51 +00:00
<child>
2020-05-03 02:00:53 +00:00
<object class="GtkLabel">
2019-11-29 04:32:51 +00:00
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="tooltip-text" translatable="yes">Change System TimeZone</property>
2020-05-03 02:00:53 +00:00
<property name="halign">end</property>
<property name="label" translatable="yes">System TimeZone:</property>
2019-11-29 04:32:51 +00:00
</object>
<packing>
2020-05-03 02:00:53 +00:00
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
<property name="position">1</property>
2019-11-29 04:32:51 +00:00
</packing>
</child>
<child>
2020-07-21 04:14:42 +00:00
<object class="GtkEntry" id="_systemTimeZoneEntry">
2019-11-29 04:32:51 +00:00
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
<property name="tooltip-text" translatable="yes">Change System TimeZone</property>
<property name="margin-left">5</property>
2020-07-21 04:14:42 +00:00
<property name="completion">_systemTimeZoneCompletion</property>
2019-11-29 04:32:51 +00:00
</object>
<packing>
2020-05-03 02:00:53 +00:00
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
2019-11-29 04:32:51 +00:00
</packing>
</child>
2020-05-03 02:00:53 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkBox" id="TimeBox">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2019-11-29 04:32:51 +00:00
<child>
2020-05-03 02:00:53 +00:00
<object class="GtkLabel">
2019-11-29 04:32:51 +00:00
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2021-01-24 23:02:00 +00:00
<property name="tooltip-text" translatable="yes">Change System Time</property>
2020-05-03 02:00:53 +00:00
<property name="halign">end</property>
<property name="label" translatable="yes">System Time:</property>
2019-11-29 04:32:51 +00:00
</object>
<packing>
2020-05-03 02:00:53 +00:00
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
<property name="position">0</property>
2019-11-29 04:32:51 +00:00
</packing>
</child>
<child>
2020-05-03 02:00:53 +00:00
<object class="GtkSpinButton" id="_systemTimeYearSpin">
2019-11-29 04:32:51 +00:00
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
2020-05-03 02:00:53 +00:00
<property name="text" translatable="yes">2000</property>
<property name="orientation">vertical</property>
<property name="adjustment">_systemTimeYearSpinAdjustment</property>
<property name="wrap">True</property>
<property name="value">2000</property>
2019-11-29 04:32:51 +00:00
</object>
<packing>
2020-05-03 02:00:53 +00:00
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
2019-11-29 04:32:51 +00:00
</packing>
</child>
<child>
2020-05-03 02:00:53 +00:00
<object class="GtkLabel">
2019-11-29 04:32:51 +00:00
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-05-03 02:00:53 +00:00
<property name="halign">end</property>
<property name="label">-</property>
2019-11-29 04:32:51 +00:00
</object>
<packing>
2020-05-03 02:00:53 +00:00
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
<property name="position">2</property>
2019-11-29 04:32:51 +00:00
</packing>
</child>
<child>
2020-05-03 02:00:53 +00:00
<object class="GtkSpinButton" id="_systemTimeMonthSpin">
2019-11-29 04:32:51 +00:00
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
2020-05-03 02:00:53 +00:00
<property name="text" translatable="yes">1</property>
<property name="orientation">vertical</property>
<property name="adjustment">_systemTimeMonthSpinAdjustment</property>
<property name="wrap">True</property>
<property name="value">1</property>
2019-11-29 04:32:51 +00:00
</object>
<packing>
2020-05-03 02:00:53 +00:00
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
2019-11-29 04:32:51 +00:00
</packing>
</child>
<child>
2020-05-03 02:00:53 +00:00
<object class="GtkLabel">
2019-11-29 04:32:51 +00:00
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-05-03 02:00:53 +00:00
<property name="halign">end</property>
<property name="label">-</property>
2019-11-29 04:32:51 +00:00
</object>
<packing>
2020-05-03 02:00:53 +00:00
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
<property name="position">4</property>
2019-11-29 04:32:51 +00:00
</packing>
</child>
<child>
2020-05-03 02:00:53 +00:00
<object class="GtkSpinButton" id="_systemTimeDaySpin">
2019-11-29 04:32:51 +00:00
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
2020-05-03 02:00:53 +00:00
<property name="text" translatable="yes">1</property>
<property name="orientation">vertical</property>
<property name="adjustment">_systemTimeDaySpinAdjustment</property>
<property name="wrap">True</property>
<property name="value">1</property>
2019-11-29 04:32:51 +00:00
</object>
<packing>
2020-05-03 02:00:53 +00:00
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">5</property>
2019-11-29 04:32:51 +00:00
</packing>
</child>
<child>
2020-05-03 02:00:53 +00:00
<object class="GtkSpinButton" id="_systemTimeHourSpin">
2019-11-29 04:32:51 +00:00
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
2020-05-03 02:00:53 +00:00
<property name="text" translatable="yes">0</property>
<property name="orientation">vertical</property>
<property name="adjustment">_systemTimeHourSpinAdjustment</property>
<property name="wrap">True</property>
2019-11-29 04:32:51 +00:00
</object>
<packing>
2020-05-03 02:00:53 +00:00
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">6</property>
2019-11-29 04:32:51 +00:00
</packing>
</child>
<child>
2020-05-03 02:00:53 +00:00
<object class="GtkLabel">
2019-11-29 04:32:51 +00:00
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-05-03 02:00:53 +00:00
<property name="halign">end</property>
<property name="label">:</property>
2019-11-29 04:32:51 +00:00
</object>
<packing>
2020-05-03 02:00:53 +00:00
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
<property name="position">7</property>
2019-11-29 04:32:51 +00:00
</packing>
</child>
<child>
2020-05-03 02:00:53 +00:00
<object class="GtkSpinButton" id="_systemTimeMinuteSpin">
2019-11-29 04:32:51 +00:00
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
2020-05-03 02:00:53 +00:00
<property name="text" translatable="yes">0</property>
<property name="orientation">vertical</property>
<property name="adjustment">_systemTimeMinuteSpinAdjustment</property>
<property name="wrap">True</property>
2019-11-29 04:32:51 +00:00
</object>
<packing>
2020-05-03 02:00:53 +00:00
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">8</property>
2019-11-29 04:32:51 +00:00
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
2020-05-03 02:00:53 +00:00
<property name="padding">5</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="_vSyncToggle">
<property name="label" translatable="yes">Enable VSync</property>
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="tooltip-text" translatable="yes">Enables or disables Vertical Sync</property>
2020-05-03 02:00:53 +00:00
<property name="halign">start</property>
2020-11-13 00:50:28 +00:00
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="draw-indicator">True</property>
2020-05-03 02:00:53 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing>
</child>
2020-06-16 18:28:02 +00:00
<child>
<object class="GtkCheckButton" id="_ptcToggle">
2021-01-29 03:20:02 +00:00
<property name="label" translatable="yes">Enable PPTC (Profiled Persistent Translation Cache)</property>
2020-06-16 18:28:02 +00:00
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="tooltip-text" translatable="yes">Enables or disables profiled translation cache persistency</property>
2020-06-16 18:28:02 +00:00
<property name="halign">start</property>
2020-11-13 00:50:28 +00:00
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="draw-indicator">True</property>
2020-06-16 18:28:02 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">6</property>
</packing>
</child>
2021-12-26 14:17:13 +00:00
<child>
<object class="GtkCheckButton" id="_internetToggle">
2022-07-23 15:05:51 +00:00
<property name="label" translatable="yes">Enable Guest Internet Access</property>
2021-12-26 14:17:13 +00:00
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="tooltip-text" translatable="yes">Enables guest Internet access. If enabled, the application will behave as if the emulated Switch console was connected to the Internet. Note that in some cases, applications may still access the Internet even with this option disabled</property>
<property name="halign">start</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">7</property>
</packing>
</child>
2020-05-03 02:00:53 +00:00
<child>
<object class="GtkCheckButton" id="_fsicToggle">
<property name="label" translatable="yes">Enable FS Integrity Checks</property>
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="tooltip-text" translatable="yes">Enables integrity checks on Game content files</property>
2020-05-03 02:00:53 +00:00
<property name="halign">start</property>
2020-11-13 00:50:28 +00:00
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="draw-indicator">True</property>
2020-05-03 02:00:53 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
2021-12-26 14:17:13 +00:00
<property name="position">8</property>
2020-05-03 02:00:53 +00:00
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
2020-07-03 23:16:49 +00:00
<child>
2020-08-09 20:46:06 +00:00
<object class="GtkBox" id="_audioBackendBox">
2020-07-03 23:16:49 +00:00
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-08-09 20:46:06 +00:00
<child>
<placeholder/>
</child>
2020-07-03 23:16:49 +00:00
<child>
<object class="GtkLabel">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2021-01-24 23:02:00 +00:00
<property name="tooltip-text" translatable="yes">Change Audio Backend</property>
2020-07-03 23:16:49 +00:00
<property name="halign">end</property>
2020-11-13 00:50:28 +00:00
<property name="margin-right">5</property>
2020-07-03 23:16:49 +00:00
<property name="label" translatable="yes">Audio Backend: </property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
<property name="position">2</property>
</packing>
</child>
POWER - Performance Optimizations With Extensive Ramifications (#2286)
* Refactoring of KMemoryManager class
* Replace some trivial uses of DRAM address with VA
* Get rid of GetDramAddressFromVa
* Abstracting more operations on derived page table class
* Run auto-format on KPageTableBase
* Managed to make TryConvertVaToPa private, few uses remains now
* Implement guest physical pages ref counting, remove manual freeing
* Make DoMmuOperation private and call new abstract methods only from the base class
* Pass pages count rather than size on Map/UnmapMemory
* Change memory managers to take host pointers
* Fix a guest memory leak and simplify KPageTable
* Expose new methods for host range query and mapping
* Some refactoring of MapPagesFromClientProcess to allow proper page ref counting and mapping without KPageLists
* Remove more uses of AddVaRangeToPageList, now only one remains (shared memory page checking)
* Add a SharedMemoryStorage class, will be useful for host mapping
* Sayonara AddVaRangeToPageList, you served us well
* Start to implement host memory mapping (WIP)
* Support memory tracking through host exception handling
* Fix some access violations from HLE service guest memory access and CPU
* Fix memory tracking
* Fix mapping list bugs, including a race and a error adding mapping ranges
* Simple page table for memory tracking
* Simple "volatile" region handle mode
* Update UBOs directly (experimental, rough)
* Fix the overlap check
* Only set non-modified buffers as volatile
* Fix some memory tracking issues
* Fix possible race in MapBufferFromClientProcess (block list updates were not locked)
* Write uniform update to memory immediately, only defer the buffer set.
* Fix some memory tracking issues
* Pass correct pages count on shared memory unmap
* Armeilleure Signal Handler v1 + Unix changes
Unix currently behaves like windows, rather than remapping physical
* Actually check if the host platform is unix
* Fix decommit on linux.
* Implement windows 10 placeholder shared memory, fix a buffer issue.
* Make PTC version something that will never match with master
* Remove testing variable for block count
* Add reference count for memory manager, fix dispose
Can still deadlock with OpenAL
* Add address validation, use page table for mapped check, add docs
Might clean up the page table traversing routines.
* Implement batched mapping/tracking.
* Move documentation, fix tests.
* Cleanup uniform buffer update stuff.
* Remove unnecessary assignment.
* Add unsafe host mapped memory switch
On by default. Would be good to turn this off for untrusted code (homebrew, exefs mods) and give the user the option to turn it on manually, though that requires some UI work.
* Remove C# exception handlers
They have issues due to current .NET limitations, so the meilleure one fully replaces them for now.
* Fix MapPhysicalMemory on the software MemoryManager.
* Null check for GetHostAddress, docs
* Add configuration for setting memory manager mode (not in UI yet)
* Add config to UI
* Fix type mismatch on Unix signal handler code emit
* Fix 6GB DRAM mode.
The size can be greater than `uint.MaxValue` when the DRAM is >4GB.
* Address some feedback.
* More detailed error if backing memory cannot be mapped.
* SetLastError on all OS functions for consistency
* Force pages dirty with UBO update instead of setting them directly.
Seems to be much faster across a few games. Need retesting.
* Rebase, configuration rework, fix mem tracking regression
* Fix race in FreePages
* Set memory managers null after decrementing ref count
* Remove readonly keyword, as this is now modified.
* Use a local variable for the signal handler rather than a register.
* Fix bug with buffer resize, and index/uniform buffer binding.
Should fix flickering in games.
* Add InvalidAccessHandler to MemoryTracking
Doesn't do anything yet
* Call invalid access handler on unmapped read/write.
Same rules as the regular memory manager.
* Make unsafe mapped memory its own MemoryManagerType
* Move FlushUboDirty into UpdateState.
* Buffer dirty cache, rather than ubo cache
Much cleaner, may be reusable for Inline2Memory updates.
* This doesn't return anything anymore.
* Add sigaction remove methods, correct a few function signatures.
* Return empty list of physical regions for size 0.
* Also on AddressSpaceManager
Co-authored-by: gdkchan <gab.dark.100@gmail.com>
2021-05-24 20:52:44 +00:00
<child>
<object class="GtkBox" id="_memoryManagerBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<placeholder/>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="tooltip-text" translatable="yes">Change how guest memory is mapped and accessed. Greatly affects emulated CPU performance.</property>
<property name="halign">end</property>
<property name="margin-right">5</property>
<property name="label" translatable="yes">Memory Manager Mode: </property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="_mmSoftware">
<property name="label" translatable="yes">Software</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="tooltip-text" translatable="yes">Use a software page table for address translation. Highest accuracy but slowest performance.</property>
<property name="halign">start</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="_mmHost">
<property name="label" translatable="yes">Host (fast)</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="tooltip-text" translatable="yes">Directly map memory in the host address space. Much faster JIT compilation and execution.</property>
<property name="halign">start</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="draw-indicator">True</property>
<property name="group">_mmSoftware</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="_mmHostUnsafe">
2022-07-23 15:05:51 +00:00
<property name="label" translatable="yes">Host Unchecked (fastest, unsafe)</property>
POWER - Performance Optimizations With Extensive Ramifications (#2286)
* Refactoring of KMemoryManager class
* Replace some trivial uses of DRAM address with VA
* Get rid of GetDramAddressFromVa
* Abstracting more operations on derived page table class
* Run auto-format on KPageTableBase
* Managed to make TryConvertVaToPa private, few uses remains now
* Implement guest physical pages ref counting, remove manual freeing
* Make DoMmuOperation private and call new abstract methods only from the base class
* Pass pages count rather than size on Map/UnmapMemory
* Change memory managers to take host pointers
* Fix a guest memory leak and simplify KPageTable
* Expose new methods for host range query and mapping
* Some refactoring of MapPagesFromClientProcess to allow proper page ref counting and mapping without KPageLists
* Remove more uses of AddVaRangeToPageList, now only one remains (shared memory page checking)
* Add a SharedMemoryStorage class, will be useful for host mapping
* Sayonara AddVaRangeToPageList, you served us well
* Start to implement host memory mapping (WIP)
* Support memory tracking through host exception handling
* Fix some access violations from HLE service guest memory access and CPU
* Fix memory tracking
* Fix mapping list bugs, including a race and a error adding mapping ranges
* Simple page table for memory tracking
* Simple "volatile" region handle mode
* Update UBOs directly (experimental, rough)
* Fix the overlap check
* Only set non-modified buffers as volatile
* Fix some memory tracking issues
* Fix possible race in MapBufferFromClientProcess (block list updates were not locked)
* Write uniform update to memory immediately, only defer the buffer set.
* Fix some memory tracking issues
* Pass correct pages count on shared memory unmap
* Armeilleure Signal Handler v1 + Unix changes
Unix currently behaves like windows, rather than remapping physical
* Actually check if the host platform is unix
* Fix decommit on linux.
* Implement windows 10 placeholder shared memory, fix a buffer issue.
* Make PTC version something that will never match with master
* Remove testing variable for block count
* Add reference count for memory manager, fix dispose
Can still deadlock with OpenAL
* Add address validation, use page table for mapped check, add docs
Might clean up the page table traversing routines.
* Implement batched mapping/tracking.
* Move documentation, fix tests.
* Cleanup uniform buffer update stuff.
* Remove unnecessary assignment.
* Add unsafe host mapped memory switch
On by default. Would be good to turn this off for untrusted code (homebrew, exefs mods) and give the user the option to turn it on manually, though that requires some UI work.
* Remove C# exception handlers
They have issues due to current .NET limitations, so the meilleure one fully replaces them for now.
* Fix MapPhysicalMemory on the software MemoryManager.
* Null check for GetHostAddress, docs
* Add configuration for setting memory manager mode (not in UI yet)
* Add config to UI
* Fix type mismatch on Unix signal handler code emit
* Fix 6GB DRAM mode.
The size can be greater than `uint.MaxValue` when the DRAM is >4GB.
* Address some feedback.
* More detailed error if backing memory cannot be mapped.
* SetLastError on all OS functions for consistency
* Force pages dirty with UBO update instead of setting them directly.
Seems to be much faster across a few games. Need retesting.
* Rebase, configuration rework, fix mem tracking regression
* Fix race in FreePages
* Set memory managers null after decrementing ref count
* Remove readonly keyword, as this is now modified.
* Use a local variable for the signal handler rather than a register.
* Fix bug with buffer resize, and index/uniform buffer binding.
Should fix flickering in games.
* Add InvalidAccessHandler to MemoryTracking
Doesn't do anything yet
* Call invalid access handler on unmapped read/write.
Same rules as the regular memory manager.
* Make unsafe mapped memory its own MemoryManagerType
* Move FlushUboDirty into UpdateState.
* Buffer dirty cache, rather than ubo cache
Much cleaner, may be reusable for Inline2Memory updates.
* This doesn't return anything anymore.
* Add sigaction remove methods, correct a few function signatures.
* Return empty list of physical regions for size 0.
* Also on AddressSpaceManager
Co-authored-by: gdkchan <gab.dark.100@gmail.com>
2021-05-24 20:52:44 +00:00
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="tooltip-text" translatable="yes">Directly map memory, but do not mask the address within the guest address space before access. Faster, but at the cost of safety. The guest application can access memory from anywhere in Ryujinx, so only run programs you trust with this mode.</property>
<property name="halign">start</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="draw-indicator">True</property>
<property name="group">_mmSoftware</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">5</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
<property name="position">3</property>
</packing>
</child>
2020-05-03 02:00:53 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkSeparator">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
2020-05-03 02:00:53 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkBox" id="CatHacks">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-05-03 02:00:53 +00:00
<property name="valign">start</property>
2020-11-13 00:50:28 +00:00
<property name="margin-left">5</property>
<property name="margin-right">5</property>
2020-05-03 02:00:53 +00:00
<property name="orientation">vertical</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-05-03 02:00:53 +00:00
<child>
<object class="GtkLabel">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-05-03 02:00:53 +00:00
<property name="halign">start</property>
2020-11-13 00:50:28 +00:00
<property name="margin-bottom">5</property>
2020-05-03 02:00:53 +00:00
<property name="label" translatable="yes">Hacks</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-05-03 02:00:53 +00:00
<property name="halign">start</property>
2020-11-13 00:50:28 +00:00
<property name="margin-bottom">5</property>
2022-07-23 15:05:51 +00:00
<property name="label" translatable="yes"> (may cause instability)</property>
2020-05-03 02:00:53 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
2019-11-29 04:32:51 +00:00
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
2020-05-03 02:00:53 +00:00
<property name="position">1</property>
2019-11-29 04:32:51 +00:00
</packing>
</child>
<child>
2020-05-03 02:00:53 +00:00
<object class="GtkBox">
2019-11-29 04:32:51 +00:00
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="margin-left">10</property>
<property name="margin-right">10</property>
2020-05-03 02:00:53 +00:00
<property name="orientation">vertical</property>
2021-04-04 12:06:59 +00:00
<child>
<object class="GtkCheckButton" id="_expandRamToggle">
2022-07-23 15:05:51 +00:00
<property name="label" translatable="yes">Expand DRAM Size to 6GB</property>
2021-04-04 12:06:59 +00:00
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="tooltip-text" translatable="yes">Expands the amount of memory on the emulated system from 4GB to 6GB</property>
<property name="halign">start</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
2020-05-03 02:00:53 +00:00
<child>
<object class="GtkCheckButton" id="_ignoreToggle">
<property name="label" translatable="yes">Ignore Missing Services</property>
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="tooltip-text" translatable="yes">Enable or disable ignoring missing services</property>
2020-05-03 02:00:53 +00:00
<property name="halign">start</property>
2020-11-13 00:50:28 +00:00
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="draw-indicator">True</property>
2020-05-03 02:00:53 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
2021-04-04 12:06:59 +00:00
<property name="position">1</property>
2020-05-03 02:00:53 +00:00
</packing>
</child>
2019-11-29 04:32:51 +00:00
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
2020-05-03 02:00:53 +00:00
<property name="position">2</property>
2019-09-02 16:03:57 +00:00
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
2020-05-03 02:00:53 +00:00
<property name="padding">5</property>
<property name="position">4</property>
2019-09-02 16:03:57 +00:00
</packing>
</child>
</object>
<packing>
2020-05-03 02:00:53 +00:00
<property name="position">2</property>
2019-09-02 16:03:57 +00:00
</packing>
</child>
<child type="tab">
<object class="GtkLabel">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-05-03 02:00:53 +00:00
<property name="halign">end</property>
<property name="label" translatable="yes">System</property>
2019-09-02 16:03:57 +00:00
</object>
<packing>
2020-05-03 02:00:53 +00:00
<property name="position">2</property>
2020-11-13 00:50:28 +00:00
<property name="tab-fill">False</property>
2019-09-02 16:03:57 +00:00
</packing>
</child>
<child>
2020-05-03 02:00:53 +00:00
<object class="GtkBox" id="TabGraphics">
2019-09-02 16:03:57 +00:00
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="margin-top">5</property>
2019-09-02 16:03:57 +00:00
<property name="orientation">vertical</property>
Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501)
* Initial Implementation
About as fast as nvidia GL multithreading, can be improved with faster command queuing.
* Struct based command list
Speeds up a bit. Still a lot of time lost to resource copy.
* Do shader init while the render thread is active.
* Introduce circular span pool V1
Ideally should be able to use structs instead of references for storing these spans on commands. Will try that next.
* Refactor SpanRef some more
Use a struct to represent SpanRef, rather than a reference.
* Flush buffers on background thread
* Use a span for UpdateRenderScale.
Much faster than copying the array.
* Calculate command size using reflection
* WIP parallel shaders
* Some minor optimisation
* Only 2 max refs per command now.
The command with 3 refs is gone. :relieved:
* Don't cast on the GPU side
* Remove redundant casts, force sync on window present
* Fix Shader Cache
* Fix host shader save.
* Fixup to work with new renderer stuff
* Make command Run static, use array of delegates as lookup
Profile says this takes less time than the previous way.
* Bring up to date
* Add settings toggle. Fix Muiltithreading Off mode.
* Fix warning.
* Release tracking lock for flushes
* Fix Conditional Render fast path with threaded gal
* Make handle iteration safe when releasing the lock
This is mostly temporary.
* Attempt to set backend threading on driver
Only really works on nvidia before launching a game.
* Fix race condition with BufferModifiedRangeList, exceptions in tracking actions
* Update buffer set commands
* Some cleanup
* Only use stutter workaround when using opengl renderer non-threaded
* Add host-conditional reservation of counter events
There has always been the possibility that conditional rendering could use a query object just as it is disposed by the counter queue. This change makes it so that when the host decides to use host conditional rendering, the query object is reserved so that it cannot be deleted. Counter events can optionally start reserved, as the threaded implementation can reserve them before the backend creates them, and there would otherwise be a short amount of time where the counter queue could dispose the event before a call to reserve it could be made.
* Address Feedback
* Make counter flush tracked again.
Hopefully does not cause any issues this time.
* Wait for FlushTo on the main queue thread.
Currently assumes only one thread will want to FlushTo (in this case, the GPU thread)
* Add SDL2 headless integration
* Add HLE macro commands.
Co-authored-by: Mary <mary@mary.zone>
2021-08-26 22:31:29 +00:00
<child>
<object class="GtkBox" id="CatFeatures">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">start</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-bottom">5</property>
<property name="label" translatable="yes">Features</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox" id="FeaturesOptions">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-left">10</property>
<property name="margin-right">10</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="tooltip-text" translatable="yes">Enable Graphics Backend Multithreading</property>
<property name="label" translatable="yes">Graphics Backend Multithreading:</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="_galThreading">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="tooltip-text" translatable="yes">Executes graphics backend commands on a second thread. Allows runtime multithreading of shader compilation, reduces stuttering, and improves performance on drivers without multithreading support of their own. Slightly varying peak performance on drivers with multithreading. Ryujinx may need to be restarted to correctly disable driver built-in multithreading, or you may need to do it manually to get the best performance.</property>
<property name="active-id">-1</property>
<items>
<item id="Auto" translatable="yes">Auto</item>
<item id="Off" translatable="yes">Off</item>
<item id="On" translatable="yes">On</item>
</items>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
<property name="position">0</property>
</packing>
</child>
2019-09-02 16:03:57 +00:00
<child>
2020-05-03 02:00:53 +00:00
<object class="GtkBox" id="CatEnhancements">
2019-09-02 16:03:57 +00:00
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
2019-09-02 16:03:57 +00:00
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2019-09-02 16:03:57 +00:00
<property name="halign">start</property>
2020-11-13 00:50:28 +00:00
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-bottom">5</property>
2020-05-03 02:00:53 +00:00
<property name="label" translatable="yes">Enhancements</property>
2019-09-02 16:03:57 +00:00
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
2020-05-03 02:00:53 +00:00
<object class="GtkBox" id="EnhancementOptions">
2019-09-02 16:03:57 +00:00
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="margin-left">10</property>
<property name="margin-right">10</property>
2019-09-02 16:03:57 +00:00
<property name="orientation">vertical</property>
2020-11-12 23:15:34 +00:00
<child>
<object class="GtkCheckButton" id="_shaderCacheToggle">
<property name="label" translatable="yes">Enable Shader Cache</property>
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="tooltip-text" translatable="yes">Enables or disables Shader Cache</property>
2020-11-12 23:15:34 +00:00
<property name="halign">start</property>
2020-11-13 00:50:28 +00:00
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="draw-indicator">True</property>
2020-11-12 23:15:34 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
2020-07-07 02:41:07 +00:00
<child>
<object class="GtkBox">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
2020-07-07 02:41:07 +00:00
<child>
<object class="GtkLabel">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="tooltip-text" translatable="yes">Resolution Scale applied to applicable render targets.</property>
2020-07-07 02:41:07 +00:00
<property name="label" translatable="yes">Resolution Scale:</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="_resScaleCombo">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="tooltip-text" translatable="yes">Resolution Scale applied to applicable render targets.</property>
<property name="active-id">1</property>
2020-07-07 02:41:07 +00:00
<items>
<item id="1" translatable="yes">Native (720p/1080p)</item>
<item id="2" translatable="yes">2x (1440p/2160p)</item>
<item id="3" translatable="yes">3x (2160p/3240p)</item>
<item id="4" translatable="yes">4x (2880p/4320p)</item>
<item id="-1" translatable="yes">Custom (not recommended)</item>
</items>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="_resScaleText">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
<property name="tooltip-text" translatable="yes">Floating point resolution scale, such as 1.5. Non-integral scales are more likely to cause issues or crash.</property>
2020-07-07 02:41:07 +00:00
<property name="valign">center</property>
2020-11-13 00:50:28 +00:00
<property name="caps-lock-warning">False</property>
<property name="placeholder-text">1.0</property>
<property name="input-purpose">number</property>
2020-07-07 02:41:07 +00:00
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
2020-11-12 23:15:34 +00:00
<property name="position">1</property>
2020-07-07 02:41:07 +00:00
</packing>
</child>
2020-03-30 21:38:52 +00:00
<child>
<object class="GtkBox">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
2020-03-30 21:38:52 +00:00
<child>
<object class="GtkLabel">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="tooltip-text" translatable="yes">Level of Anisotropic Filtering (set to Auto to use the value requested by the game)</property>
2020-03-30 21:38:52 +00:00
<property name="label" translatable="yes">Anisotropic Filtering:</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="_anisotropy">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="tooltip-text" translatable="yes">Level of Anisotropic Filtering (set to Auto to use the value requested by the game)</property>
<property name="active-id">-1</property>
2020-03-30 21:38:52 +00:00
<items>
<item id="-1" translatable="yes">Auto</item>
<item id="2" translatable="yes">2x</item>
<item id="4" translatable="yes">4x</item>
<item id="8" translatable="yes">8x</item>
<item id="16" translatable="yes">16x</item>
</items>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
2019-09-02 16:03:57 +00:00
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
2020-07-07 02:41:07 +00:00
<property name="position">1</property>
2019-09-02 16:03:57 +00:00
</packing>
</child>
2020-12-16 02:19:07 +00:00
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="tooltip-text" translatable="yes">Aspect Ratio applied to the renderer window.</property>
<property name="label" translatable="yes">Aspect Ratio:</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="_aspectRatio">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="tooltip-text" translatable="yes">Aspect Ratio applied to the renderer window.</property>
<property name="active-id">1</property>
<items>
<item id="0" translatable="yes">4:3</item>
<item id="1" translatable="yes">16:9</item>
<item id="2" translatable="yes">16:10</item>
<item id="3" translatable="yes">21:9</item>
<item id="4" translatable="yes">32:9</item>
<item id="5" translatable="yes">Stretch to Fit Window</item>
</items>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
<property name="position">3</property>
</packing>
</child>
2019-09-02 16:03:57 +00:00
</object>
<packing>
2020-05-03 02:00:53 +00:00
<property name="expand">False</property>
2019-09-02 16:03:57 +00:00
<property name="fill">True</property>
2020-11-12 23:15:34 +00:00
<property name="position">2</property>
2019-09-02 16:03:57 +00:00
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkSeparator">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-05-03 02:00:53 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkBox" id="CatDev">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
2020-05-03 02:00:53 +00:00
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-05-03 02:00:53 +00:00
<property name="halign">start</property>
2020-11-13 00:50:28 +00:00
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-bottom">5</property>
2020-05-03 02:00:53 +00:00
<property name="label" translatable="yes">Developer Options</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox" id="DevOptions">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="margin-left">10</property>
<property name="margin-right">10</property>
2020-05-03 02:00:53 +00:00
<property name="orientation">vertical</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
2020-05-03 02:00:53 +00:00
<child>
<object class="GtkLabel">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="tooltip-text" translatable="yes">Graphics Shaders Dump Path</property>
2020-05-03 02:00:53 +00:00
<property name="label" translatable="yes">Graphics Shaders Dump Path:</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="_graphicsShadersDumpPath">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
<property name="tooltip-text" translatable="yes">Graphics Shaders Dump Path</property>
2020-05-03 02:00:53 +00:00
<property name="valign">center</property>
2020-11-13 00:50:28 +00:00
<property name="caps-lock-warning">False</property>
2020-05-03 02:00:53 +00:00
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
2019-09-02 16:03:57 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
2020-05-03 02:00:53 +00:00
<property name="position">4</property>
2019-09-02 16:03:57 +00:00
</packing>
</child>
2020-05-03 02:00:53 +00:00
</object>
<packing>
<property name="position">3</property>
</packing>
</child>
<child type="tab">
<object class="GtkLabel">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-05-03 02:00:53 +00:00
<property name="label" translatable="yes">Graphics</property>
</object>
<packing>
<property name="position">3</property>
2020-11-13 00:50:28 +00:00
<property name="tab-fill">False</property>
2020-05-03 02:00:53 +00:00
</packing>
</child>
<child>
<object class="GtkBox" id="TabLogging">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">10</property>
<property name="margin-top">5</property>
2020-05-03 02:00:53 +00:00
<property name="orientation">vertical</property>
2019-09-02 16:03:57 +00:00
<child>
2020-05-03 02:00:53 +00:00
<object class="GtkBox" id="CatLogging">
2019-09-02 16:03:57 +00:00
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
2019-09-02 16:03:57 +00:00
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2019-09-02 16:03:57 +00:00
<property name="halign">start</property>
2020-11-13 00:50:28 +00:00
<property name="margin-bottom">5</property>
2019-09-02 16:03:57 +00:00
<property name="label" translatable="yes">Logging</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
2020-05-03 02:00:53 +00:00
<object class="GtkBox" id="LogggingOptions">
2019-09-02 16:03:57 +00:00
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-05-03 02:00:53 +00:00
<property name="valign">start</property>
2020-11-13 00:50:28 +00:00
<property name="margin-left">10</property>
<property name="margin-right">10</property>
2019-09-02 16:03:57 +00:00
<property name="orientation">vertical</property>
<child>
2020-05-03 02:00:53 +00:00
<object class="GtkCheckButton" id="_fileLogToggle">
<property name="label" translatable="yes">Enable Logging to File</property>
2019-09-02 16:03:57 +00:00
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="tooltip-text" translatable="yes">Enables or disables logging to a file on disk</property>
2020-05-03 02:00:53 +00:00
<property name="halign">start</property>
2020-11-13 00:50:28 +00:00
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="draw-indicator">True</property>
2019-09-02 16:03:57 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
2020-02-17 21:35:03 +00:00
<property name="position">0</property>
2019-09-02 16:03:57 +00:00
</packing>
</child>
<child>
<object class="GtkCheckButton" id="_stubLogToggle">
<property name="label" translatable="yes">Enable Stub Logs</property>
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="tooltip-text" translatable="yes">Enables printing stub log messages</property>
2019-09-02 16:03:57 +00:00
<property name="halign">start</property>
2020-11-13 00:50:28 +00:00
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="draw-indicator">True</property>
2019-09-02 16:03:57 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="_infoLogToggle">
<property name="label" translatable="yes">Enable Info Logs</property>
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="tooltip-text" translatable="yes">Enables printing info log messages</property>
2019-09-02 16:03:57 +00:00
<property name="halign">start</property>
2020-11-13 00:50:28 +00:00
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="draw-indicator">True</property>
2019-09-02 16:03:57 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="_warningLogToggle">
<property name="label" translatable="yes">Enable Warning Logs</property>
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="tooltip-text" translatable="yes">Enables printing warning log messages</property>
2019-09-02 16:03:57 +00:00
<property name="halign">start</property>
2020-11-13 00:50:28 +00:00
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="draw-indicator">True</property>
2019-09-02 16:03:57 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">5</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="_errorLogToggle">
<property name="label" translatable="yes">Enable Error Logs</property>
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="tooltip-text" translatable="yes">Enables printing error log messages</property>
2019-09-02 16:03:57 +00:00
<property name="halign">start</property>
2020-11-13 00:50:28 +00:00
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="draw-indicator">True</property>
2019-09-02 16:03:57 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">6</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="_guestLogToggle">
<property name="label" translatable="yes">Enable Guest Logs</property>
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="tooltip-text" translatable="yes">Enables printing guest log messages</property>
2019-09-02 16:03:57 +00:00
<property name="halign">start</property>
2020-11-13 00:50:28 +00:00
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="draw-indicator">True</property>
2019-09-02 16:03:57 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">7</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="_fsAccessLogToggle">
<property name="label" translatable="yes">Enable Fs Access Logs</property>
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="tooltip-text" translatable="yes">Enables printing fs access log messages</property>
2019-09-02 16:03:57 +00:00
<property name="halign">start</property>
2020-11-13 00:50:28 +00:00
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="draw-indicator">True</property>
2019-09-02 16:03:57 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">8</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2019-09-02 16:03:57 +00:00
<child>
<object class="GtkLabel">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="tooltip-text" translatable="yes">Enables FS access log output to the console. Possible modes are 0-3</property>
2019-09-02 16:03:57 +00:00
<property name="label" translatable="yes">Fs Global Access Log Mode:</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkSpinButton">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
<property name="tooltip-text" translatable="yes">Enables FS access log output to the console. Possible modes are 0-3</property>
2020-05-03 02:00:53 +00:00
<property name="text" translatable="yes">0</property>
2019-09-02 16:03:57 +00:00
<property name="adjustment">_fsLogSpinAdjustment</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
<property name="position">9</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
2020-05-03 02:00:53 +00:00
<property name="position">0</property>
2019-09-02 16:03:57 +00:00
</packing>
</child>
2020-08-02 14:41:24 +00:00
<child>
<object class="GtkBox" id="CatDevLogging">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-top">10</property>
2020-08-02 14:41:24 +00:00
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="tooltip-text" translatable="yes">Use with care</property>
2020-08-02 14:41:24 +00:00
<property name="halign">start</property>
2020-11-13 00:50:28 +00:00
<property name="margin-bottom">5</property>
2020-08-07 13:30:06 +00:00
<property name="label" translatable="yes">Developer Options (WARNING: Will reduce performance)</property>
2020-08-02 14:41:24 +00:00
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
2020-11-13 00:50:28 +00:00
<property name="position">0</property>
2020-08-02 14:41:24 +00:00
</packing>
</child>
<child>
<object class="GtkBox" id="DevLoggingOptions">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-08-02 14:41:24 +00:00
<property name="valign">start</property>
2020-11-13 00:50:28 +00:00
<property name="margin-left">10</property>
<property name="margin-right">10</property>
2020-08-02 14:41:24 +00:00
<property name="orientation">vertical</property>
2020-11-13 00:50:28 +00:00
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-top">5</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="tooltip-text" translatable="yes">Requires appropriate log levels enabled.</property>
<property name="label" translatable="yes">OpenGL Log Level</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
<property name="position">22</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="_graphicsDebugLevel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="tooltip-text" translatable="yes">Requires appropriate log levels enabled.</property>
<property name="margin-left">5</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">22</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
2020-08-02 14:41:24 +00:00
<child>
<object class="GtkCheckButton" id="_debugLogToggle">
<property name="label" translatable="yes">Enable Debug Logs</property>
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="tooltip-text" translatable="yes">Enables printing debug log messages</property>
2020-08-02 14:41:24 +00:00
<property name="halign">start</property>
2020-11-13 00:50:28 +00:00
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="draw-indicator">True</property>
2020-08-02 14:41:24 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">21</property>
</packing>
</child>
2022-02-18 00:08:07 +00:00
<child>
<object class="GtkCheckButton" id="_traceLogToggle">
<property name="label" translatable="yes">Enable Trace Logs</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="tooltip-text" translatable="yes">Enables printing trace log messages</property>
<property name="halign">start</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">22</property>
</packing>
</child>
2020-08-02 14:41:24 +00:00
</object>
2020-11-13 00:50:28 +00:00
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
2020-08-02 14:41:24 +00:00
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
<property name="position">22</property>
</packing>
</child>
2019-09-02 16:03:57 +00:00
</object>
<packing>
2020-05-03 02:00:53 +00:00
<property name="position">4</property>
2019-09-02 16:03:57 +00:00
</packing>
</child>
<child type="tab">
<object class="GtkLabel">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
2020-05-03 02:00:53 +00:00
<property name="label" translatable="yes">Logging</property>
2019-09-02 16:03:57 +00:00
</object>
<packing>
2020-05-03 02:00:53 +00:00
<property name="position">4</property>
2020-11-13 00:50:28 +00:00
<property name="tab-fill">False</property>
2019-09-02 16:03:57 +00:00
</packing>
</child>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
2020-05-03 02:00:53 +00:00
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButtonBox" id="_buttonBox">
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">False</property>
<property name="margin-right">5</property>
<property name="margin-top">3</property>
<property name="margin-bottom">3</property>
<property name="spacing">5</property>
<property name="layout-style">end</property>
2020-05-03 02:00:53 +00:00
<child>
<object class="GtkToggleButton" id="SaveToggle">
<property name="label" translatable="yes">Save</property>
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
<property name="receives-default">True</property>
2020-05-03 02:00:53 +00:00
<signal name="toggled" handler="SaveToggle_Activated" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
2020-11-13 00:50:28 +00:00
<property name="fill">False</property>
2020-05-03 02:00:53 +00:00
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="CloseToggle">
<property name="label" translatable="yes">Close</property>
<property name="visible">True</property>
2020-11-13 00:50:28 +00:00
<property name="can-focus">True</property>
<property name="receives-default">True</property>
2020-05-03 02:00:53 +00:00
<signal name="toggled" handler="CloseToggle_Activated" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
2020-11-13 00:50:28 +00:00
<property name="fill">False</property>
2020-05-03 02:00:53 +00:00
<property name="position">1</property>
</packing>
</child>
2020-11-13 00:50:28 +00:00
<child>
<object class="GtkButton">
<property name="label" translatable="yes">Apply</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<signal name="clicked" handler="ApplyToggle_Activated" swapped="no"/>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
2020-05-03 02:00:53 +00:00
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
2019-09-02 16:03:57 +00:00
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
</interface>