enable non srm games

This commit is contained in:
mjallen18
2025-02-24 16:26:58 -06:00
parent f34701bcbe
commit 5c0875d594
2 changed files with 92 additions and 15 deletions

View File

@@ -114,6 +114,12 @@ let
fileTypes = [ ".3ds" ".3DS" ".cia" ".CIA" ".cxi" ".CXI" ];
package = pkgs.citra-nightly;
};
"Non-SRM Shortcuts" = {
parserType = "Non-SRM Shortcuts";
romFolder = "";
fileTypes = [ ];
package = pkgs.steam;
};
};
# Create parser configuration
@@ -126,32 +132,32 @@ let
orderedConfig = [
# Basic parser configuration
{ name = "parserType"; value = "Glob"; }
{ name = "configTitle"; value = name; }
{ name = "parserType"; value = emu.parserType; }
{ name = "configTitle"; value = emu.configTitle; }
{ name = "steamDirectory"; value = "\${steamdirglobal}"; }
{ name = "romDirectory"; value = "${cfg.environmentVariables.romsDirectory}/${if emu.romFolder != "" then emu.romFolder else commonEmulatorConfigs.${name}.romFolder}"; }
{ name = "steamCategories"; value = [""]; }
{ name = "steamCategories"; value = emu.steamCategories; }
# Executable configuration
{ name = "executableArgs"; value = emu.extraArgs; }
{ name = "executableModifier"; value = "\"\${exePath}\""; }
{ name = "executableModifier"; value = emu.executableModifier; }
{ name = "startInDirectory"; value = "${cfg.environmentVariables.romsDirectory}/${if emu.romFolder != "" then emu.romFolder else commonEmulatorConfigs.${name}.romFolder}"; }
{ name = "titleModifier"; value = "\${fuzzyTitle}"; }
{ name = "titleModifier"; value = emu.titleModifier; }
# Controller settings
{ name = "fetchControllerTemplatesButton"; value = null; }
{ name = "removeControllersButton"; value = null; }
{ name = "steamInputEnabled"; value = "1"; }
{ name = "steamInputEnabled"; value = if emu.steamInputEnabled then "1" else "0"; }
# Image provider configuration
{ name = "imageProviders"; value = cfg.enabledProviders; }
{ name = "onlineImageQueries"; value = [ "\${fuzzyTitle}" ]; }
{ name = "imagePool"; value = "\${fuzzyTitle}"; }
{ name = "onlineImageQueries"; value = emu.onlineImageQueries; }
{ name = "imagePool"; value = emu.imagePool; }
# DRM and user account settings
{ name = "drmProtect"; value = false; }
{ name = "drmProtect"; value = emu.drmProtected; }
{ name = "userAccounts"; value = {
specifiedAccounts = [ "Global" ];
specifiedAccounts = emu.userAccounts;
}; }
# Parser-specific settings
@@ -162,8 +168,8 @@ let
# Executable details
{ name = "executable"; value = {
path = "${package}/bin/${binaryName}";
shortcutPassthrough = false;
appendArgsToExecutable = true;
shortcutPassthrough = emu.shortcutPassthrough;
appendArgsToExecutable = emu.appendArgsToExecutable;
}; }
# Title and fuzzy matching configuration

View File

@@ -262,24 +262,95 @@ in {
else if name == "mupen64plus" then pkgs.mupen64plus
else if name == "retroarch" then pkgs.retroarch
else if name == "flycast" then pkgs.flycast
else if name == "Non-SRM Shortcuts" then pkgs.steam
else pkgs.${name};
description = "Emulator package";
};
parserType = mkOption {
type = types.str;
default = "Glob";
description = "Parser type";
};
configTitle = mkOption {
type = types.str;
default = name;
description = "Configuration title";
};
romFolder = mkOption {
type = types.str;
default = "";
description = "Name of the ROM folder (defaults to common configuration)";
};
fileTypes = mkOption {
steamCategories = mkOption {
type = types.listOf types.str;
default = [];
description = "List of ROM file types (defaults to common configuration)";
default = [""];
description = "List of Steam categories";
};
extraArgs = mkOption {
type = types.str;
default = "--fullscreen \"\${filePath}\"";
description = "Additional emulator arguments";
};
executableModifier = mkOption {
type = types.str;
default = "\"\${exePath}\"";
description = "Executable modifier";
};
titleModifier = mkOption {
type = types.str;
default = "\${fuzzyTitle}";
description = "Title modifier";
};
# fetchControllerTemplatesButton = mkOption {
# type = types.str;
# default = null;
# description = "Fetch controller templates button";
# };
# removeControllersButton = mkOption {
# type = types.str;
# default = null;
# description = "Remove controller templates button";
# };
steamInputEnabled = mkOption {
type = types.bool;
default = false;
description = "Enable Steam input";
};
onlineImageQueries = mkOption {
type = types.listOf types.str;
default = [ "\${fuzzyTitle}" ];
description = "List of online image queries";
};
imagePool = mkOption {
type = types.str;
default = "\${fuzzyTitle}";
description = "image pool";
};
drmProtected = mkOption {
type = types.bool;
default = false;
description = "DRM protected";
};
userAccounts = mkOption {
type = types.listOf types.str;
default = [ "Global" ];
description = "List of user accounts";
};
fileTypes = mkOption {
type = types.listOf types.str;
default = [];
description = "List of ROM file types (defaults to common configuration)";
};
shortcutPassthrough = mkOption {
type = types.bool;
default = false;
description = "Enable shortcut passthrough";
};
appendArgsToExecutable = mkOption {
type = types.bool;
default = true;
description = "Append arguments to executable";
};
};
}));
default = {};