diff --git a/nix/steam_deck/configuration/roles/rpcs3/default.nix b/nix/steam_deck/configuration/roles/rpcs3/default.nix index dc944ab..6e72ffc 100644 --- a/nix/steam_deck/configuration/roles/rpcs3/default.nix +++ b/nix/steam_deck/configuration/roles/rpcs3/default.nix @@ -10,6 +10,9 @@ let export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${pkgs.libglvnd}/lib" exec ${pkgs.rpcs3}/bin/rpcs3 "''${@}" ''; + rpcs3_config_yaml = settingsFormat.generate "config.yml" config.me.rpcs3.config; + settingsFormat = pkgs.formats.yaml { }; + in { imports = [ ]; @@ -21,6 +24,33 @@ in example = true; description = "Whether we want to install rpcs3."; }; + + rpcs3.config = lib.mkOption rec { + apply = lib.recursiveUpdate default; + inherit (settingsFormat) type; + default = { + Core = { + "Use LLVM CPU" = "znver2"; + }; + VFS = { + "Enable /host_root/" = false; + }; + Video = { + "Write Color Buffers" = true; + VSync = true; + "Performance Overlay" = { + Enabled = false; + }; + }; + Miscellaneous = { + "Pause emulation on RPCS3 focus loss" = true; + "Start games in fullscreen mode" = true; + "Pause Emulation During Home Menu" = false; # true makes the home menu slow + }; + }; + example = null; + description = "RPCS3's config.yml in nix form."; + }; }; config = lib.mkIf config.me.rpcs3.enable ( @@ -31,15 +61,23 @@ in steam_rpcs3 ]; - # .config/rpcs3/config.yml - # .config/rpcs3/GuiConfigs/CurrentSettings.ini + home.file.".config/rpcs3/config.yml" = lib.mkIf (config.me.rpcs3.config != null) { + source = rpcs3_config_yaml; + }; + home.file.".config/rpcs3/GuiConfigs/CurrentSettings.ini" = { + source = ./files/CurrentSettings.ini; + }; + # TODO: Persist file .config/rpcs3/GuiConfigs/persistent_settings.dat # play times and recently played me.persist.directories = [ + ".config/rpcs3/games" # Location of ROMs. ".config/rpcs3/dev_hdd0" ".config/rpcs3/dev_hdd1" ".config/rpcs3/savestates" ".config/rpcs3/dev_usb000" ".config/rpcs3/dev_flash" # Seems to be where the firmware is installed. + ".config/rpcs3/input_configs" # Controller config. + ".config/rpcs3/Icons" # Game icons. ]; me.state.directories = [ ".cache/rpcs3" ]; diff --git a/nix/steam_deck/configuration/roles/rpcs3/files/CurrentSettings.ini b/nix/steam_deck/configuration/roles/rpcs3/files/CurrentSettings.ini new file mode 100644 index 0000000..b6354c4 --- /dev/null +++ b/nix/steam_deck/configuration/roles/rpcs3/files/CurrentSettings.ini @@ -0,0 +1,5 @@ +[Meta] +currentStylesheet=Darker Style by TheMitoSan + +[main_window] +infoBoxEnabledWelcome=false