Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[
- Scripts/Game/BugCommands.lua
- ]]--
- Commands =
- {
- -- Bug needed for when using Trigger bug in B4Bug, info is used for all bugs
- StandardB4BugBug =
- {
- Name = "Standard B4Bug bug",
- Title = "Venice",
- Menu = "Bugs",
- AutoB4Bug = true,
- IsStandardBug = true,
- Information =
- {
- "Field" , "Issue Type" , "Bug",
- "Field" , "Priority" , "Minor (C, V3, L3)",
- "Field" , "Assignee" , "Automatic",
- "Field" , "Report Method" , "B4Bug",
- "Field" , "Milestone Hindering" , "None",
- "Field" , "Language" , "English",
- "Field" , "User Path" , "Probable",
- "RPCGet", "Game Level" , "LocalPlayer.getClientLevelName",
- "Field" , "Description" , "\
- Soldier position: ",
- "RPCGet", "Description" , "LocalPlayer.getPlayerPosition",
- "Field" , "Description" , "\
- Current camera position: ",
- "RPCGet", "Description" , "DebugCam.getCurrentCameraPosition",
- "Field" , "Environment" , "\
- OS Version: ",
- "RPCGet", "Environment" , "BugManager.getOSInfo",
- "Field" , "Environment" , "\
- GPU description: ",
- "RPCGet", "Environment" , "DxRenderer.AdapterDescription",
- "Field" , "Environment" , "\
- GPU driver version: ",
- "RPCGet", "Environment" , "DxRenderer.AdapterDriverVersion",
- "RPCGet", "Platform" , "BugManager.getPlatform",
- "RPCGet", "Reported By (Game Team)" , "BugManager.getReportedBy",
- "RPCGet", "Found in Change List (Game)" , "BugManager.getChangelist",
- "RPCGet", "Found in Change List (Frostbite)" , "BugManager.getFrostbiteChangelist",
- "RPCGet" , "Juice Session ID" , "BugManager.getjuiceSessionId",
- }
- },
- TestBug1 =
- {
- Name = "Testbug",
- Title = "Venice",
- Menu = "Bugs",
- AutoB4Bug = true,
- Information =
- {
- },
- RPCs =
- {
- },
- },
- TestCommand1 =
- {
- Name = "Testcommand 1",
- Title = "Venice",
- Menu = "QA Commands",
- AutoB4Bug = false,
- RPCs =
- {
- "DebugRender.DrawStatsEnable 1",
- "UI.DrawEnable 0",
- },
- ReverseRPCs =
- {
- "DebugRender.DrawStatsEnable 0",
- "UI.DrawEnable 1",
- },
- },
- TestCommand2 =
- {
- Name = "Testcommand 2",
- Title = "Venice",
- Menu = "QA Commands",
- AutoB4Bug = false,
- RPCs =
- {
- "Debug.DrawScreenCenterHelper 1",
- "Render.ForceFov 100",
- },
- ReverseRPCs =
- {
- "Debug.DrawScreenCenterHelper 0",
- "Render.ForceFov 65",
- },
- },
- AnimationCommand1 =
- {
- Name = "Animation Test",
- Title = "Venice",
- Menu = "Animation",
- AutoB4Bug = false,
- RPCs =
- {
- "AntDebug.DrawDebugInfo 1",
- "AntDebug.DrawSignals 1",
- "UI.DrawEnable 0",
- },
- ReverseRPCs =
- {
- "AntDebug.DrawDebugInfo 0",
- "AntDebug.DrawSignals 0",
- "UI.DrawEnable 1",
- },
- },
- WeaponCommand1 =
- {
- Name = "Show weapon info",
- Title = "Venice",
- Menu = "Weapons",
- AutoB4Bug = false,
- RPCs =
- {
- "AntDebug.DrawDebugInfo 1",
- "Debug.DrawScreenCenterHelper 1",
- "clientsoldier.debug.firingstats 1",
- },
- ReverseRPCs =
- {
- "AntDebug.DrawDebugInfo 0",
- "Debug.DrawScreenCenterHelper 0",
- "clientsoldier.debug.firingStats 0",
- },
- },
- }
- --[[
- Scripts/Game/Configure.lua
- ]]--
- --
- -- Game configuration script
- --
- -- Local helper functions
- function commandLine:lookup(name, default)
- local value = self[string.lower(name)]
- return value or default
- end
- local function cmdLineSwitch(switchName, fieldName, inTable)
- local table = inTable or Game
- if (commandLine:lookup(switchName)) then
- table[fieldName] = true
- end
- end
- function cmdLineOption(optionName, default)
- return commandLine:lookup(optionName, default)
- end
- local function readCfg(name)
- log:debug("reading cfg: " .. name)
- core.readKeyValueCfg(name, _G)
- end
- local function applySettings(settings)
- core.parseKeyValueCfgString(settings, _G)
- end
- -- Basic settings
- core.import("Scripts/Game/Settings.lua")
- -- Import old-school cfg files for backwards compatibility
- local defaultConfigFile = commandLine:lookup("defaultConfig")
- if defaultConfigFile then
- readCfg(defaultConfigFile)
- else
- readCfg("Scripts/Game.cfg")
- end
- --------------------------------------------------------------------------
- -- Handle any Drone override options
- --
- for i,v in ipairs(commandLine) do
- if string.lower(v) == "-customconfig" then
- if commandLine[i+1]:find("/") then
- readCfg(commandLine[i+1])
- else
- readCfg("Scripts/" .. commandLine[i+1])
- end
- end
- end
- local editorActive = false
- local liveEditingEnable = commandLine:lookup("core.liveeditingenable")
- if liveEditingEnable then
- if liveEditingEnable == "1" or liveEditingEnable == "true" then
- editorActive = true
- end
- end
- --------------------------------------------------------------------------
- -- Handle local overrides
- --
- -- This needs to run before we load the level cfg as we can specify the fast startup level name here!
- if not commandLine:lookup(\'noLocalCfg\', false) then
- -- Read common local cfg file
- readCfg("/local/local.cfg", _G)
- if editorActive == true then
- -- Read local cfg with editor specific settings
- readCfg("/local/localeditor.cfg", _G)
- else
- -- Read local cfg with standalone specific settings
- readCfg("/local/localgame.cfg", _G)
- end
- end
- --------------------------------------------------------------------------
- -- Handle level specific configuration
- --
- local levelName = commandLine:lookup("level")
- if not levelName then
- local gameTable = _G["Game"]
- if gameTable then
- levelName = gameTable["Level"]
- end
- end
- -- Level names without slashes are assumed to be shorthand for
- -- Levels/name/name to go with Venice\'s epic level naming convention
- if levelName and not string.find(levelName, "/") then
- levelName = "Levels/" .. levelName .. "/" .. levelName
- end
- if levelName then
- readCfg(levelName .. ".cfg")
- end
- --------------------------------------------------------------------------
- -- Handle commandline options
- --
- -- Commandline options effectively override any settings specified
- -- elsewhere.
- --
- if not Game then Game = {} end
- cmdLineSwitch("verbose", "Verbose")
- if Game.Verbose then
- print "------------Commandline parameters:"
- for k,v in pairs(commandLine) do print (k,v) end
- end
- -- Handle <Table>.<Member> settings
- if allowCommandlineSettings then
- for _,option in ipairs(commandLine) do
- local table,member = string.match(option, "^%-(%w+)%.(%w+)")
- if table and member then
- local value = commandLine[_ + 1]
- if not _G[table] then _G[table] = {} end
- _G[table][member] = value
- else
- local varName = string.match(option, "^%-([%w-]+)")
- if varName then
- local value = commandLine[_ + 1]
- if value then
- _G[varName] = value
- end
- end
- end
- end
- end
- --------------------------------------------------------------------------
- -- Force specific settings when running through FrostEd
- --
- if editorActive then
- Online.Backend = "Backend_Lan"
- Online.UseFallback = true
- Client.IsPresenceEnabled = false
- Server.IsPresenceEnabled = false
- applySettings([=[
- Server.forceStartMapOnLoad true
- Network.GhostCountWarning true
- Network.GhostCountWarningInfo true
- Game.DisablePreRound true
- ]=])
- end
- --
- core.import("Scripts/Game/DebugSettings.lua")
- --[[
- Scripts/Game/DebugSettings.lua
- ]]--
- core = require "Frost.Core"
- logging = require "Frost.Logging"
- local function applySettings(settings)
- core.parseKeyValueCfgString(settings, _G) end
- -- helpers
- local function getSetting(key)
- container, field = string.match(key, "(%w+)%.(%w+)");
- if container and field then
- if not _G[container] then
- _G[container] = {}
- end
- return _G[container][field]
- else
- return _G[key]
- end
- end
- local function setSetting(key, value)
- container, field = string.match(key, "(%w+)%.(%w+)");
- if container and field then
- if not _G[container] then
- _G[container] = {}
- end
- _G[container][field] = value
- else
- _G[key] = value
- end
- end
- -- thin-client settings: 0=Off 1=Console
- setSetting("thin-client", cmdLineOption("thinClient", getSetting("thin-client")))
- if getSetting("thin-client") == "1" then
- applySettings([=[
- RenderDevice.CreateMinimalWindow true
- Core.HardwareProfile Hardware_Low
- Core.HardwareGpuBias -1
- Server.DebrisClusterEnabled true
- Client.DebrisClusterEnabled false
- DebrisSystem.Enable false
- Client.WorldRenderEnabled false
- Client.EmittersEnabled false
- Client.TerrainEnabled false
- Client.MeshMergingEnabled false
- Client.OvergrowthEnabled false
- Client.OccludersEnabled true
- Decal.SystemEnable false
- Render.DebugRendererEnable false
- UI.HudEnable false
- UI.System UISystem_None
- EmitterSystem.Enable false
- Window.Fullscreen false
- Render.Enable false
- disable-input true
- scripted-input true
- use-script-input true
- disable-client-correction true
- disable-client-animations true
- Sound.Enable false
- disable-entities true
- disable-camera true
- Texture.LoadingEnabled false
- Texture.RenderTexturesEnabled false
- Mesh.LoadingEnabled false
- ShaderSystem.DatabaseLoadingEnable false
- disable-audio-loading true
- GameTime.ForceUseSleepTimer true
- ShaderSystem.DxFrameVertexBufferPoolSize 16
- ShaderSystem.FrameMemoryBufferSize 16
- PerformanceTracker.Enabled false
- ]=])
- end
- -- testingEnabled 0=Off, 1=On
- setSetting("testing-enabled", cmdLineOption("testingEnabled", getSetting("testing-enabled")))
- if getSetting("testing-enabled") == "1" then
- applySettings([=[
- Server.EnableMonkeyTestLayers true
- add-debug-entity true
- scripted-input true
- use-script-input true
- Juice.logClientTestingEvents true
- ]=])
- end
- --[[
- Scripts/Game/Settings.lua',
- ]]--
- --
- -- Define basic settings tables
- --
- Game = {
- LogFileEnable = true,
- }
- Client = {
- }
- Server = {
- }
- ShaderSystem = {
- DebugNonFiniteColor = { x=0, y=0, z=0 },
- }
- NetworkSettings = {
- Version = "V0.0",
- ProtocolVersion = 0,
- TitleId = 4,
- ClientPort = 1001,
- ServerPort = 1003,
- MaxGhostCount = 1024,
- MaxClientCount = 64,
- }
- Core = {
- }
- --[[
- Scripts/Game/Startup.lua
- ]]--
- --
- -- Game startup script
- --
- require "vfs"
- core = require "Frost.Core"
- logging = require "Frost.Logging"
- -- The global platform variable can be used to detect which platform
- -- we are currently executing on
- platform = dice.getCurrentPlatformName()
- -- Set up a logger which logs to the console (not stdout)
- -- By default, we only show warnings or worse. For more verbose
- -- diagnostics, you may set the level to INFO or DEBUG.
- log = logging.ingameConsole()
- log:setLevel(logging.DEBUG)
- core.import("Scripts/Game/Configure.lua")
- --[[
- Scripts/GlobalSettings.lua',
- ]]--
- --
- -- Global Settings
- --
- -- These are front-end settings exposed to the end-user. The idea is that
- -- settings that are interesting to the majority of end-users should be
- -- defined here to enable tools to query for exposed options.
- --
- -- This file is imported by Pipeline, Game, etc
- --
- -- *********************************************************
- -- NOTE: This is largely deprecated and will be phased out!
- -- *********************************************************
- GlobalSettings = {}
- GlobalSettings.Meta = {}
- local function ValidateSetting(name, value)
- assert(name and value)
- local meta = GlobalSettings.Meta[name]
- local lowerValue = string.lower(value)
- if meta then
- for _,v in ipairs(meta.validValues) do
- if string.lower(v[1]) == lowerValue then
- return v[1]
- end
- end
- -- We intentionally don\'t build this string in the loop above
- -- in an attempt to generate less ephemeral garbage
- local choices = nil
- for _,v in ipairs(meta.validValues) do
- if choices then
- choices = choices .. ", " .. v[1]
- else
- choices = v[1]
- end
- end
- error("Setting \'" .. name .. "\' cannot be set to specified value: " .. value .. ", valid values are " .. choices)
- else
- error("Undefined setting - \'" .. name .. "\'")
- end
- end
- local function DefineSetting(descriptionTable)
- assert(descriptionTable[1] and descriptionTable[2], "Settings must have name and default values!")
- local name = descriptionTable[1];
- local defaultValue = descriptionTable[2];
- GlobalSettings[name] = defaultValue
- GlobalSettings.Meta[name] = {}
- GlobalSettings.Meta[name].default = defaultValue
- if descriptionTable.description then
- GlobalSettings.Meta[name].description = descriptionTable.description
- end
- if descriptionTable.validValues then
- GlobalSettings.Meta[name].validValues = descriptionTable.validValues
- end
- if descriptionTable.commandLine then
- GlobalSettings.Meta[name].commandLine = descriptionTable.commandLine
- end
- if descriptionTable.envVar then
- GlobalSettings.Meta[name].envVar = descriptionTable.envVar
- end
- -- Validate default vs validValues
- ValidateSetting(name, defaultValue)
- end
- function ApplyCommandLineSettings(commandLine)
- for setting,meta in pairs(GlobalSettings.Meta) do
- if meta.commandLine then
- local options = meta.commandLine
- for _,entry in ipairs(options) do
- local k = entry[1]
- local v = entry[2]
- local value = commandLine[string.lower(k)]
- if value then
- if not v then
- SetSetting(setting, value, string.format(" (due to -%s %s)", k, value))
- else
- SetSetting(setting, v, string.format(" (due to -%s)", k))
- end
- end
- end
- end
- end
- end
- function ApplyEnvironmentVariableSettings()
- for setting,meta in pairs(GlobalSettings.Meta) do
- if meta.envVar then
- local envVarValue = os.getenv(meta.envVar)
- if envVarValue then
- SetSetting(setting, envVarValue)
- end
- end
- end
- end
- function SetSetting(settingName, value, source)
- if not GlobalSettings[settingName] then
- error("Attempted set of unknown setting \'" .. settingName .. "\'")
- else
- GlobalSettings[settingName] = ValidateSetting(settingName, value)
- if log then
- log:debug("Set setting " .. settingName .. " to value: " .. value .. (source or ""))
- end
- end
- end
- function GetGlobalSetting(settingName)
- if not GlobalSettings[settingName] then
- error("Attempted get of unknown setting \'" .. settingName .. "\'")
- else
- return GlobalSettings[settingName]
- end
- end
- --------------------------------------------------------------------------
- -- Setting definitions
- --
- DefineSetting {
- "Cache", "Enabled",
- validValues = {
- { "Enabled", "Normal cache mode" },
- { "Disabled", "No caching" },
- { "ReadOnly", "Only read from caches (never upload)" },
- { "WriteOnly", "Only write to caches (useful for fixing problems)" }
- },
- description = "Cache Control",
- commandLine = {
- { "cacheMode" },
- { "nocache", "Disabled" },
- { "readonlyCache", "ReadOnly" },
- { "writeOnlyCache", "WriteOnly" },
- { "cache", "Enabled" }
- },
- envVar = "PIPELINE_CACHE_MODE"
- }
- --[[
- Scripts/Packages/Frost/Core.lua
- ]]--
- --
- -- Various bits of Lua scaffolding
- --
- require "os"
- require "vfs"
- module("Frost.Core", package.seeall);
- -- Execute a script
- --
- -- If flags contains a "silent=true" flag, then no message
- -- will be emitted if the script can\'t be found
- --
- -- Execute a script, optionally returning an error message if it fails
- function import(script, friendlyName, flags)
- local name = friendlyName or script
- local success, err = pcall(dofile,script)
- if not success and not (flags and flags.silent) then
- error("Could not import script: " .. name .. " error: " .. err)
- end
- end
- -- Execute a new-style config file
- local function executeCfg(file)
- if log then
- log:debug(" Executing new style (lua) config file")
- end
- local script = file:read("*all")
- local func, err = loadstring(script)
- if func then
- func()
- else
- error(err)
- end
- end
- -- Parse a single line containing a key-value pair (and possibly some comments)
- function parseKeyValueCfgLine(line, targetTable)
- -- Remove comments
- line = string.gsub(line, "#.*", "")
- line = string.gsub(line, "//.*", "")
- -- Split into key, value pairs
- local key, value = string.match(line, "(%S+)%s+(.+)%s*");
- if key and value then
- -- Handle dotted key names
- local container, field = string.match(key, "(%w+)%.(%w+)");
- if container and field then
- if not targetTable[container] then
- targetTable[container] = {}
- end
- targetTable[container][field] = value;
- if log then
- log:debug(string.format("set %s.%s = %s (from key-value cfg line)", container, field, value))
- end
- else
- targetTable[key] = value;
- if log then
- log:debug(string.format("set %s = %s (from key-value cfg line)", key, value))
- end
- end
- end
- end
- -- Parse a string of key-value config entries
- function parseKeyValueCfgString(str, targetTable)
- for line in string.gmatch(str, "[^\
- ]*") do
- parseKeyValueCfgLine(line, targetTable)
- end
- end
- -- Parse an old-style key-value CFG file
- function readKeyValueCfg(file, targetTable)
- if log then
- log:debug("Reading cfg \'" .. file .. "\'")
- end
- local f = vfs.open(file, "r")
- if not f then
- -- File not found
- if log then
- log:debug("Failed to find file \'" .. file .. "\'")
- end
- return
- end
- local firstLine = true
- while true do
- local line = f:read("*line")
- if not line then
- break
- end
- if firstLine and line == "#!/bin/lua" then
- executeCfg(f)
- end
- parseKeyValueCfgLine(line, targetTable)
- end
- f:close();
- end
- --[[
- Scripts/Packages/Frost/Logging.lua
- ]]--
- local type, table, string, assert, _tostring = type, table, string, assert, tostring
- require "vfs"
- module("Frost.Logging", package.seeall)
- -- The DEBUG Level designates fine-grained informational events that are most
- -- useful to debug an application
- DEBUG = "DEBUG"
- -- The INFO level designates informational messages that highlight the
- -- progress of the application at coarse-grained level
- INFO = "INFO"
- -- The WARN level designates potentially harmful situations
- WARN = "WARN"
- -- The ERROR level designates error events that might still allow the
- -- application to continue running
- ERROR = "ERROR"
- -- The FATAL level designates very severe error events that will presumably
- -- lead the application to abort
- FATAL = "FATAL"
- local LEVEL = {
- [DEBUG] = 1,
- [INFO] = 2,
- [WARN] = 3,
- [ERROR] = 4,
- [FATAL] = 5,
- }
- -------------------------------------------------------------------------------
- -- Creates a new logger object
- -------------------------------------------------------------------------------
- function new(append)
- if type(append) ~= "function" then
- return nil, "Appender must be a function."
- end
- local logger = {}
- logger.level = DEBUG
- logger.append = append
- logger.setLevel = function (self, level)
- assert(LEVEL[level], string.format("undefined level `%s\'", tostring(level)))
- self.level = level
- end
- logger.log = function (self, level, message)
- assert(LEVEL[level], string.format("undefined level `%s\'", tostring(level)))
- if LEVEL[level] < LEVEL[self.level] then
- return
- end
- if type(message) ~= "string" then
- message = tostring(message)
- end
- return logger:append(level, message)
- end
- logger.debug = function (logger, message) return logger:log(DEBUG, message) end
- logger.info = function (logger, message) return logger:log(INFO, message) end
- logger.warn = function (logger, message) return logger:log(WARN, message) end
- logger.error = function (logger, message) return logger:log(ERROR, message) end
- logger.fatal = function (logger, message) return logger:log(FATAL, message) end
- return logger
- end
- -------------------------------------------------------------------------------
- -- Prepares the log message
- -------------------------------------------------------------------------------
- function prepareLogMsg(pattern, dt, level, message)
- local logMsg = pattern or "%date %level %message\
- "
- message = string.gsub(message, "%%", "%%%%")
- logMsg = string.gsub(logMsg, "%%date", dt)
- logMsg = string.gsub(logMsg, "%%level", level)
- logMsg = string.gsub(logMsg, "%%message", message)
- return logMsg
- end
- -------------------------------------------------------------------------------
- -- Converts a Lua value to a string
- --
- -- Converts Table fields in alphabetical order
- -------------------------------------------------------------------------------
- function tostring(value)
- local str = \'\'
- if (type(value) ~= \'table\') then
- if (type(value) == \'string\') then
- str = string.format("%q", value)
- else
- str = _tostring(value)
- end
- else
- local auxTable = {}
- table.foreach(value, function(i, v)
- if (tonumber(i) ~= i) then
- table.insert(auxTable, i)
- else
- table.insert(auxTable, tostring(i))
- end
- end)
- table.sort(auxTable)
- str = str..\'{\'
- local separator = ""
- local entry = ""
- table.foreachi (auxTable, function (i, fieldName)
- if ((tonumber(fieldName)) and (tonumber(fieldName) > 0)) then
- entry = tostring(value[tonumber(fieldName)])
- else
- entry = fieldName.." = "..tostring(value[fieldName])
- end
- str = str..separator..entry
- separator = ", "
- end)
- str = str..\'}\'
- end
- return str
- end
- --
- -- Print appender
- --
- function console(logPattern)
- return new( function(self, level, message)
- print(prepareLogMsg(logPattern, os.date(), level, message))
- return true
- end
- )
- end
- function ingameConsole()
- return new( function(self, level, message)
- ingamePrint(level, message)
- return true
- end
- )
- end
- --[[
- Scripts/Pipeline/Configuration.lua
- ]]--
- --
- -- Pipeline Configuration
- --
- -- This is an internal script used for configuring the pipeline. Normal
- -- users should typically not edit this file, as most end-user settings
- -- are exposed through the GlobalSettings.lua file
- --
- --
- -- Import common settings
- --
- core.import(allScriptsRoot .. "GlobalSettings.lua", "global settings");
- -- Import session startup script, if specified on commandLine
- --
- -- This is used by Drone to change settings
- if commandLine.startupscript then
- core.import("/data/" .. commandLine.startupScript, _G)
- end
- core.import(scriptsRoot .. "Settings.lua")
- -- -config commandLine switch is used by Drone to configure custom settings
- if commandLine.config then
- core.readKeyValueCfg("/data/Scripts/" .. commandLine.config, _G)
- end
- --------------------------------------------------------------------------
- -- Handle commandline options
- --
- -- Commandline options effectively override any settings specified
- -- elsewhere.
- --
- local function cmdLineSwitch(switchName, fieldName)
- if (commandLine[string.lower(switchName)]) then
- Pipeline[fieldName] = true
- end
- end
- local function cmdLineArg(switchName, fieldName)
- local entry = commandLine[string.lower(switchName)]
- if (entry) then
- Pipeline[fieldName] = entry
- --print("Set " .. fieldName .. " to " .. entry)
- end
- end
- cmdLineSwitch("debug", "DebugMode");
- cmdLineSwitch("validateData", "ValidateData");
- cmdLineSwitch("addToPerforce", "AddToPerforce");
- cmdLineSwitch("noconsole", "NoConsole");
- cmdLineSwitch("verbose", "Verbose");
- cmdLineSwitch("trace", "EnableTracing");
- cmdLineSwitch("nohal", "DisableHalDevice");
- cmdLineSwitch("trim", "TrimLayout");
- cmdLineSwitch("updateIndex", "UpdateIndexOnly");
- cmdLineArg("opfilter", "OpFilter")
- --
- -- Parse commandline options that may occur multiple times ("list" options)
- --
- ----------------------------------------------------------------------------------------
- --
- -- Diagnostics dump
- --
- if Pipeline.Verbose then
- print ""
- print "Pipeline settings summary:"
- print "------------------------------------------------------"
- for k,v in pairs(Pipeline) do
- print(k, v)
- end
- print ""
- print "Command line:"
- print "------------------------------------------------------"
- for _,v in pairs(commandLine) do
- print(_,v)
- end
- print ""
- end
- --[[
- Scripts/Pipeline/Settings.lua
- ]]--
- --
- -- Internal Pipeline settings
- --
- -- This is not really the best place to change settings locally,
- -- please see GlobalSettings.lua instead and use it if at all
- -- possible
- --
- local Dx10PathEnable = false
- local Dx10PlusPathEnable = true
- local Dx10Dot1PathEnable = false
- local Dx11PathEnable = true
- local AutoPathEnable = false
- local SkipAllPaths = false
- Pipeline =
- {
- Verbose = false,
- Rebuild = false,
- ShowReason = true,
- AddToPerforce = false,
- -- Debugging/profiling options
- Profiler = false,
- DebugMode = false,
- EmitPlaintextDbx = false,
- EnableTimingLog = false,
- BundleDebugging = false,
- ResourceDebugging = false,
- AsyncOpWrite = true,
- DumpOplogStats = false,
- --ServiceMode = true,
- }
- --------------------------------------------------------------
- Core =
- {
- LogLevel = "Info",
- StudioBus = "[email protected]" -- dice-bm150
- }
- Ant =
- {
- -- Setting this to true sometimes breaks reimport
- ShowSyncDialogOnReimport = false,
- }
- Havok =
- {
- WriteShapeLog = false,
- WriteMemoryLog = false,
- WriteMaterialsLog = false,
- ErrorOnStaticValidationError = true,
- DetailExport = true,
- LogTriangleDensity = true,
- HavokImportVersion = 1,
- }
- HavokGroupPhysicsEntity =
- {
- WriteShapeLog = false,
- WriteMemoryLog = false,
- WriteMaterialsLog = false,
- WriteGroupGeneralLog = false,
- WritePartInfoLog = false,
- ErrorOnStaticValidationError = true,
- DetailExport = true,
- LogTriangleDensity = true,
- HavokImportVersion = 1,
- AllowDefaultCollisionShape = true
- }
- Texture =
- {
- SkipMipmapsPs3Enable = true,
- CudaEnable = true,
- WaitOnCudaEnable = false,
- MultithreadedCompressionEnable = true,
- DefaultTextureGroup = "TextureGroups/Default";
- }
- ObjectBlueprint =
- {
- AllowDefaultPartMaterial = true,
- AllowDefaultEntityMaterial = true,
- }
- BlueprintImport =
- {
- UseDefaultRaycastRoot = false,
- OptimizeGeometries = true,
- ErrorOnSceneMismatch = true,
- }
- Mesh =
- {
- Verbose = false,
- ZOnlyMeshEnable = true,
- Ps3EdgeEnable = true,
- Ps3EdgeCompressPositionsEnable = true,
- Ps3EdgeCompressIndicesEnable = true,
- Ps3EdgeMinSubsetTriangleCount = 0,
- MinStreamingLodSize = 0,
- SootSkipShaderNames =
- {
- "Template",
- "Tmpl",
- "NoSoot"
- },
- WarningsAsErrorsEnable = false,
- -- EnlightenSaveInputMeshEnable = true,
- -- RadiosityPixelSize_Lower = 16.0,
- -- RadiosityPixelSize_Lowest = 8.0,
- -- RadiosityPixelSize_Low = 4.0,
- -- RadiosityPixelSize_Medium = 2.0,
- -- RadiosityPixelSize_High = 1.0,
- -- RadiosityPixelSize_Higher = 0.5,
- -- RadiosityPixelSize_Max = 0.25,
- }
- Enlighten =
- {
- -- Set this to false to prevent any dynamic enlighten data from beeing built and loaded into the game.
- -- This is useful for retail builds if only static enlighten data is allowed.
- DynamicEnable = true,
- }
- Level =
- {
- VoAnimTreesEnable = false,
- GroupTreeModelEntities = true,
- GroupStaticModelEntities = true,
- GroupMiddlegrowthModelEntities = true,
- OptimizeMaterialGrid = true,
- LogDetailedInstanceCounts = false
- }
- ShaderState =
- {
- TerrainDebugColorEnable = false,
- TerrainOverdrawModeEnable = false,
- DynamicEnvmapModeEnable = false,
- StripUnusedTextures = true,
- VanillaShadowmapsEnable = false,
- -- CascadedBox3ShadowmapsEnable = true,
- -- CascadedBox4ShadowmapsEnable = true,
- }
- ShaderProgramDatabase =
- {
- ShaderDebugInfoEnable = false,
- DxShaderDebugInfoEnable = false,
- Dx10PathEnable = Dx10PathEnable,
- Dx10PlusPathEnable = Dx10PlusPathEnable,
- Dx10Dot1PathEnable = Dx10Dot1PathEnable,
- Dx11PathEnable = Dx11PathEnable,
- AutoPathEnable = AutoPathEnable,
- SkipAllPaths = SkipAllPaths,
- Ps3OptimizationLevel = 3,
- Ps3BuildRandomizedShaders = false
- }
- ShaderDatabase =
- {
- ShaderDebugInfoEnable = false,
- DxShaderDebugInfoEnable = false,
- Dx10PathEnable = Dx10PathEnable,
- Dx10PlusPathEnable = Dx10PlusPathEnable,
- Dx10Dot1PathEnable = Dx10Dot1PathEnable,
- Dx11PathEnable = Dx11PathEnable,
- AutoPathEnable = AutoPathEnable,
- SkipAllPaths = SkipAllPaths,
- Ps3OptimizationLevel = 3,
- Ps3PackVertexElementsEnable = true,
- Ps3ForceHalfPrecisionEnable = false,
- Ps3ForceVertexDynamicBranchesEnable = false,
- Ps3ForcePixelDynamicBranchesEnable = false,
- ForceCompileInConstantsEnable = true,
- NonFiniteColoringEnable = false,
- ManualSourceChangeEnable = false,
- StateMetricsEnable = false,
- StateSolutionCacheEnable = false,
- SeparateWorldTransformEnable = false
- }
- Terrain =
- {
- SplineDecalsSubdivisionCount = 1,
- MaskFunctionsEnable = false,
- }
- TerrainStreamingTree =
- {
- OptimizeUsingProceduralMask = true
- }
- Award =
- {
- OutputAwardXml = true,
- OutputRankXml = true,
- InvalidAwardCodeCharacters = "-. ",
- AllowEmptyAwardCodes = false,
- CheckStatCategories = true,
- SetSpecificDataToChildAwards = true,
- }
- Persistence =
- {
- OutputXml = true,
- OutputBlazeProperties = true,
- DeltaGameReports = true,
- }
- Unlock =
- {
- ExportUnlocks = true
- }
- EmitterSystem =
- {
- DxAtlasSkipMipmaps = 0,
- Ps3AtlasSkipMipmaps = 0,
- XenonAtlasSkipMipmaps = 0,
- }
- Audio =
- {
- EnableDevelopmentFeatures = false,
- }
- UIActionscriptInjection =
- {
- RemoveTraces = true;
- }
- VeniceLevel =
- {
- GenerateCombatAreaTextures = false;
- }
- GameConfig =
- {
- AnimationProjectPath = "Animations/AntAnimations",
- }
- --[[
- Scripts/Pipeline/Startup.lua
- ]]--
- -- Pipeline startup script
- --
- -- This is executed very early, and can really only be used to
- -- configure settings.
- --
- -- The settings specified here will override any settings in the
- -- legacy settings file pipeline.config
- --
- core = require "Frost.Core"
- require "os"
- require "vfs"
- Environment = {}
- local userName = os.getenv("USERNAME")
- if userName then Environment.UserName = userName end
- branchName = os.getenv("BRANCH_NAME")
- if not branchName then
- error("Configuration error: BRANCH_NAME environment variable not set -- fix the .diceconfig file for this branch!")
- end
- -- This is a verification tag to make sure the script is in sync with runtime
- -- whenever something is changed that requires changes to be present on both
- -- the script end and the runtime end, this should be updated. The value is
- -- just an arbitrary string and has no semantic relevance
- local expectVerificationTag = "22062007"
- if verificationTag ~= expectVerificationTag then
- error("verification tag mismatch! Most likely, your data/Scripts folder is not right for your build!")
- end
- -- Execute configuration and setup scripts
- allScriptsRoot = "/Data/Scripts/"
- scriptsRoot = allScriptsRoot .. "Pipeline/"
- core.import(scriptsRoot .. "Configuration.lua")
- --[[
- Scripts/Server/Master.lua
- --]]
- print("Loading scripts...")
- serverSaveFilePath = "serverAdminSave.lua"
- dofile("Scripts/Server/Startup.lua")
- dofile("Scripts/Server/Shutdown.lua")
- dofile("Scripts/Server/Server.lua")
- dofile("Scripts/Server/Session.lua")
- print("Done loading scripts.")
- --[[
- Scripts/Server/Server.lua
- ]]--
- require "vfs"
- require "os"
- banList = {}
- levelList = {}
- currentLevelIndex = 0
- maxLevelIndex = 0
- function Server_LoadLevel()
- -- print("Server_LoadLevel called")
- end
- function Server_UnloadLevel()
- -- print("Server_UnloadLevel called")
- end
- function Server_LevelLoaded()
- -- print("Server_LevelLoaded called")
- end
- function Server_LevelUnloaded()
- -- print("Server_LevelUnloaded called")
- end
- ticks = 0
- function Server_ScriptTick()
- -- print("Server_ScriptTick called; ticks = " .. ticks)
- ticks = ticks + 1
- end
- function Server_PlayerBanned(onlineId, name)
- print("Server_PlayerBanned called: Player " .. onlineId .. " banned")
- banList[onlineId] = { ["time"]=os.time(), ["name"]=name }
- writeServerData()
- end
- function Server_UnbanPlayer(id)
- if (banList[id] ~= nil) then
- print("Player " .. id .. " unbanned")
- banList[id] = nil
- if (banList[id] ~= nil) then
- print("Player was not removed for some reason")
- end
- writeServerData()
- else
- print("No player with id " .. id .. " is banned")
- end
- end
- function Server_ListBans()
- --Server_PlayerBanned(174636, "gunnar")
- --Server_PlayerBanned(345636, "olle")
- for k,v in pairs(banList) do
- currentTime = os.date("%c", v.time)
- print("[" .. k .. "]: " .. v.name .. "," .. currentTime)
- end
- end
- function Server_LoadNextLevel()
- if (levelList[currentLevelIndex] ~= nil) then
- print("Loading level: " .. levelList[currentLevelIndex])
- loadNextLevel(levelList[currentLevelIndex])
- if (currentLevelIndex < maxLevelIndex) then
- currentLevelIndex = currentLevelIndex + 1
- else
- currentLevelIndex = 1
- end
- else
- print("Levelindex " .. currentLevelIndex .. " do not exist")
- end
- end
- function Server_AddLevel(levelName)
- maxLevelIndex = maxLevelIndex + 1
- levelList[maxLevelIndex] = levelName
- print("Added level \'" .. levelName .. "\' to level list")
- writeServerData()
- if (currentLevelIndex == 0) then
- currentLevelIndex = 1
- end
- end
- function Server_RemoveLevel(levelIndex)
- if (levelList[levelIndex] ~= nil) then
- print("Removing level \'" .. levelList[levelIndex] .. "\' at index: " .. levelIndex)
- --table.remove(levelList, levelIndex)
- for i=levelIndex,(maxLevelIndex-1),1 do
- levelList[i] = levelList[i+1]
- end
- table.remove(levelList, maxLevelIndex)
- maxLevelIndex = maxLevelIndex - 1
- writeServerData()
- if (currentLevelIndex > maxLevelIndex) then
- currentLevelIndex = maxLevelIndex
- end
- else
- print("No level at index: " .. levelIndex)
- end
- end
- function Server_ListLevels()
- for k,v in pairs(levelList) do
- if (k == currentLevelIndex) then
- print("[" .. k .. "]: " .. v .. " <<")
- else
- print("[" .. k .. "]: " .. v)
- end
- end
- end
- function writeServerData()
- local currentPlatform = string.lower(dice.getCurrentPlatformName())
- if (currentPlatform == "xenon" or currentPlatform == "ps3") then
- return
- end
- local f = vfs.open(serverSaveFilePath, "w")
- if not f then
- -- File not found
- return
- end
- serializedTable = tableToString(banList)
- f:write("banList = " .. serializedTable .. "\
- ")
- --print("Wrote to file: banList = " .. serializedTable)
- serializedTable = tableToString(levelList)
- f:write("levelList = " .. serializedTable .. "\
- ")
- --print("Wrote to file: levelList = " .. serializedTable)
- f:close()
- end
- --[[
- Scripts/Server/Session.lua
- ]]--
- require "vfs"
- require "os"
- function Session_PlayerJoined(id)
- print("Session_PlayerJoined called: Player " .. id .. " joined")
- end
- function Session_PlayerLeft(id)
- print("Session_PlayerLeft called: Player " .. id .. " left")
- end
- function Session_PlayerAuthenticated(id)
- print("Session_PlayerJoined called: Player " .. id .. " joined")
- if (banList[id] ~= nil) then
- print("Player " .. banList[id].name .. " is banned")
- kickPlayer(id)
- end
- end
- --[[
- Scripts/Server/Shutdown.lua
- ]]--
- function Shutdown()
- print("Shutdown called")
- end
- --[[
- Scripts/Server/Startup.lua
- ]]--
- function Startup()
- print("Startup called")
- local currentPlatform = string.lower(dice.getCurrentPlatformName())
- if (currentPlatform == "xenon" or currentPlatform == "ps3") then
- return
- end
- Frost.Core.import(serverSaveFilePath, "Server Admin file", {silent=true})
- print("Loaded banList")
- for k,v in pairs(banList) do
- currentTime = os.date("%c", v.time)
- print("[" .. k .. "]: " .. v.name .. "," .. currentTime)
- end
- print("Loaded levelList")
- for k,v in pairs(levelList) do
- maxLevelIndex = maxLevelIndex + 1
- print("[" .. k .. "]: " .. v)
- end
- if (maxLevelIndex > 0) then
- currentLevelIndex = 1
- end
- end
- --[[
- Scripts/UserOptions/DefaultValues.lua
- ]]--
- core = require "Frost.Core"
- logging = require "Frost.Logging"
- function makeConstant(t)
- return setmetatable({},
- {
- __index = function (_, n)
- if t[n] == nil then
- log:error("Invalid constant member \'" .. tostring(n) .. "\'")
- end
- return t[n]
- end,
- __newindex = function (t, n, v)
- log:error("Attempting to change constant " .. tostring(n) .. " to " .. tostring(v))
- end
- })
- end
- local constants = {
- Quality = makeConstant({
- Autodetect = -1,
- Low = 0,
- Medium = 1,
- High = 2,
- Ultra = 3,
- Custom = 4,
- On = 1,
- Off = 0,
- }),
- AnisotropicFilter = makeConstant({
- X1 = 0,
- X2 = 1,
- X4 = 2,
- X8 = 3,
- X16 = 4,
- }),
- AntiAliasingDeferred = makeConstant({
- Off = 0,
- MSAA2X = 1,
- MSAA4X = 2,
- }),
- AntiAliasingPost = makeConstant({
- Off = 0,
- Low = 1,
- Medium = 2,
- High = 3,
- }),
- AmbientOcclusion = makeConstant({
- Off = 0,
- SSAO = 1,
- HBAO = 2,
- }),
- MotionBlur = makeConstant({
- Off = 0,
- On = 1,
- }),
- }
- for k, v in pairs(constants) do
- _G[k] = v
- end
- dofile("Scripts/UserOptions/HardwareProfiles.lua")
- specs = hardwareSpecs[hardwareProfile]
- log:info("hardwareProfile : " .. hardwareProfile)
- cpuCount = specs[\'cpuCount\']
- cpuQuality = specs[\'cpuQuality\'] + hardwareCpuBias
- availableMemory = specs[\'availableMemory\']
- adapterName = specs[\'adapterName\']
- gpuQuality = specs[\'adapterQuality\'] + hardwareGpuBias
- gpuCount = specs[\'gpuCount\']
- availableGpuMemory = specs[\'availableGpuMemory\'] + hardwareGpuBias*256*1024*1024
- deviceSettings = specs[\'deviceSettings\']
- log:info("cpus : " .. cpuCount)
- log:info("memory : " .. availableMemory)
- log:info("adapter : " .. adapterName)
- log:info("gpu quality : " .. gpuQuality)
- log:info("gpuCount : " .. gpuCount)
- log:info("gpuMemory : " .. availableGpuMemory)
- settings = {}
- local function applySettings(settings)
- core.parseKeyValueCfgString(settings, _G) end
- defaultSettings = {
- Render = {
- [Quality.Autodetect] = { -- Auto detect, we fill this in when we\'re done autodetecting
- },
- [Quality.Low] = {
- TextureQuality = Quality.Low,
- ShadowQuality = Quality.Low,
- EffectsQuality = Quality.Low,
- MeshQuality = Quality.Low,
- TerrainQuality = Quality.Low,
- UndergrowthQuality = Quality.Low,
- AntiAliasingDeferred = AntiAliasingDeferred.Off,
- AntiAliasingPost = AntiAliasingPost.Off,
- AnisotropicFilter = AnisotropicFilter.X2,
- AmbientOcclusion = AmbientOcclusion.Off,
- MotionBlurEnabled = MotionBlur.Off,
- },
- [Quality.Medium] = {
- TextureQuality = Quality.Medium,
- ShadowQuality = Quality.Medium,
- EffectsQuality = Quality.Medium,
- MeshQuality = Quality.Medium,
- TerrainQuality = Quality.Medium,
- UndergrowthQuality = Quality.Medium,
- AntiAliasingDeferred = AntiAliasingDeferred.Off,
- AntiAliasingPost = AntiAliasingPost.Medium,
- AnisotropicFilter = AnisotropicFilter.X4,
- AmbientOcclusion = AmbientOcclusion.SSAO,
- MotionBlurEnabled = MotionBlur.Off,
- },
- [Quality.High] = {
- TextureQuality = Quality.High,
- ShadowQuality = Quality.High,
- EffectsQuality = Quality.High,
- MeshQuality = Quality.High,
- TerrainQuality = Quality.High,
- UndergrowthQuality = Quality.High,
- AntiAliasingDeferred = AntiAliasingDeferred.Off,
- AntiAliasingPost = AntiAliasingPost.High,
- AnisotropicFilter = AnisotropicFilter.X16,
- AmbientOcclusion = AmbientOcclusion.HBAO,
- MotionBlurEnabled = MotionBlur.On,
- },
- [Quality.Ultra] = {
- TextureQuality = Quality.Ultra,
- ShadowQuality = Quality.Ultra,
- EffectsQuality = Quality.Ultra,
- MeshQuality = Quality.Ultra,
- TerrainQuality = Quality.Ultra,
- UndergrowthQuality = Quality.Ultra,
- AntiAliasingDeferred = AntiAliasingDeferred.MSAA4X,
- AntiAliasingPost = AntiAliasingPost.High,
- AnisotropicFilter = AnisotropicFilter.X16,
- AmbientOcclusion = AmbientOcclusion.HBAO,
- MotionBlurEnabled = MotionBlur.On,
- },
- [Quality.Custom] = {
- -- There is a bug in LuaOptionSetManager where it can not handle empty tables, so we add this dummy option here for now (no time to fix the parser atm)
- OverallGraphicsQuality = Quality.Custom + 1
- }
- }
- }
- settings["OverallGraphicsQuality"] = 0 -- Show as autodetect in UI
- for setting, value in pairs(defaultSettings.Render[deviceSettings.baseQualityLevel]) do
- settings[setting] = value
- end
- for setting, value in pairs(deviceSettings.defaultSettings or {}) do
- settings[setting] = value
- end
- -- audio thread
- if cpuCount < 4 then
- applySettings("Audio.AudioCoreThread 0")
- else
- if (cpuCount < 6) then
- applySettings("Audio.AudioCoreThread 2")
- else
- applySettings("Audio.AudioCoreThread "..(cpuCount-1))
- end
- end
- -- audio
- if cpuQuality < 4 then
- settings[\'AudioQuality\'] = 0.0
- else
- settings[\'AudioQuality\'] = 1.0
- end
- -- physics
- if cpuQuality < 4 then
- settings[\'PhysicsQuality\'] = 0.0
- else
- settings[\'PhysicsQuality\'] = 1.0
- end
- -- animations
- if cpuQuality < 4 then
- settings[\'AnimationQuality\'] = 0.0
- else
- settings[\'AnimationQuality\'] = 1.0
- end
- -- textures
- if adapterName == "Xenon" or adapterName == "PS3" then
- settings[\'TextureQuality\'] = Quality.Medium
- elseif availableGpuMemory <= 512*1024*1024 then
- settings[\'TextureQuality\'] = Quality.Low
- elseif availableGpuMemory <= 768*1024*1024 then
- settings[\'TextureQuality\'] = Quality.Medium
- elseif availableGpuMemory <= 1024*1024*1024 then
- settings[\'TextureQuality\'] = Quality.High
- else
- settings[\'TextureQuality\'] = Quality.Ultra
- end
- -- resolution
- settings[\'ResolutionWidth\'] = defaultFullscreenWidth or 0
- settings[\'ResolutionHeight\'] = defaultFullscreenHeight or 0
- settings[\'ResolutionHertz\'] = defaultFullscreenRefreshRate or 0
- settings[\'FullscreenScreen\'] = 0
- settings[\'FullscreenEnabled\'] = defaultFullscreenEnabled or 0
- settings[\'VSyncEnabled\'] = defaultVSyncEnabled or 0
- -- Test to override auto detected values (using lua to allow use of constants)
- --core.readKeyValueCfg("/user/profile/settings/overrideAutodetect.cfg", settings) --will override autodetected values
- function vfs_loadfile(filename)
- local f = vfs.open(filename, "r")
- if f == nil then
- return false, "File not found!"
- end
- function getNextChunk()
- return f:read(128)
- end
- return load(getNextChunk, filename)
- end
- local overrideFilename = "/user/profile/settings/overrideAutodetect.lua"
- local executeAutoDetectOverride, e = vfs_loadfile(overrideFilename)
- function bind(f, param)
- return function(...)
- f(param, ...)
- end
- end
- if executeAutoDetectOverride then
- overrideSettings = setmetatable({},
- {
- __index = constants,
- __newindex = bind(function(s, t, n, v)
- if s[n] == nil then
- log:error("Trying to set unknown setting " .. n .. " to " .. tostring(n))
- elseif v == nil then
- log:error("Trying to set setting " .. n .. " to nil")
- else
- log:info("Overriding " .. n .. ": " .. tostring(v))
- s[n] = v
- end
- end, settings)
- })
- setfenv(executeAutoDetectOverride, overrideSettings)
- local success, e = pcall(executeAutoDetectOverride);
- if not success then
- log:info("Failed to parse \'" .. overrideFilename .. "\' " .. e)
- end
- else
- log:info("Override file error \'" .. overrideFilename .. "\': " .. e)
- end
- -- Last thing we do is to save the values we want for the autodetect setting
- -- (use the same keys as used for the low settings)
- for key, _ in pairs(defaultSettings.Render[Quality.Low]) do
- defaultSettings.Render[Quality.Autodetect][key] = settings[key]
- if settings[key] == nil then
- log:error("Setting " .. key .. " does not have an auto detected default value")
- end
- end
- --[[
- Scripts/UserOptions/HardwareProfiles.lua
- --]]
- function getGpuQuality(gpuName, gpuCount)
- if string.find(gpuName, "GeForce 8") or
- string.find(gpuName, "GeForce 9") then
- return 1
- elseif string.find(gpuName, "GeForce GTX 26") then
- return 2
- elseif string.find(gpuName, "GeForce GTX 2") or
- string.find(gpuName, "ATI Radeon HD 4870 X2") or
- string.find(gpuName, "ATI Radeon HD 5800 Series") or
- string.find(gpuName, "ATI Radeon HD 5900 Series") or
- string.find(gpuName, "AMD Radeon HD 68") or
- string.find(gpuName, "AMD Radeon HD 69") or
- string.find(gpuName, "GeForce GTX 4") or
- string.find(gpuName, "GeForce GTX 5") then
- if gpuCount > 1 then
- return 4
- else
- return 3
- end
- else
- return 1
- end
- end
- function getCpuQuality(cpuCount, cpuSpeed)
- return (cpuSpeed-1.2)*(cpuCount-1)
- end
- -- 2 cores, 3.0 gHz : 1.8
- -- 2 cores, 3.6 gHz : 2.4
- -- 4 cores, 2.0 gHz : 2.4
- -- 4 cores, 3.2 gHz : 6
- -- 8 cores, 1.8 gHz : 4.2
- -- 8 cores, 3.2 gHz : 14!! awesome
- vendorDB = {
- [0x1002] = dofile("Scripts/UserOptions/HardwareProfiles/ATI.lua"),
- [0x10DE] = dofile("Scripts/UserOptions/HardwareProfiles/nVidia.lua"),
- [0x8086] = dofile("Scripts/UserOptions/HardwareProfiles/Intel.lua")
- }
- -- Autodetect settings based on graphics card device id
- function getDeviceSettings(vendorId, deviceId, adapterName)
- if adapterName == "Xenon" then
- return { baseQualityLevel = Quality.Medium, defaultSettings = {}, consoleOverrides = "" }
- elseif adapterName == "PS3" then
- return { baseQualityLevel = Quality.High, defaultSettings = {}, consoleOverrides = "" }
- else
- return (vendorDB[vendorId] and vendorDB[vendorId][deviceId]) or { baseQualityLevel = Quality.Medium, defaultSettings = {}, consoleOverrides = "" }
- end
- end
- hardwareSpecs = {
- [0] = {
- cpuCount = detectedCpuCount,
- cpuQuality = getCpuQuality(detectedCpuCount, detectedCpuFreq),
- availableMemory = detectedAvailableMemory,
- adapterName = detectedAdapterName,
- gpuCount = detectedGpuCount,
- adapterQuality = getGpuQuality(detectedAdapterName, detectedGpuCount),
- availableGpuMemory = detectedAvailableGpuMemory,
- deviceSettings = getDeviceSettings(detectedVendorId, detectedDeviceId, detectedAdapterName)
- },
- [1] = {
- cpuCount = detectedCpuCount,
- cpuQuality = getCpuQuality(2, 2.3),
- availableMemory = 512*1024*1024,
- adapterName = "Faked Low",
- gpuCount = 1,
- adapterQuality = 0,
- availableGpuMemory = 512*1024*1024,
- deviceSettings = { baseQualityLevel = Quality.Low, defaultSettings = {}, consoleOverrides = "" }
- },
- [2] = {
- cpuCount = detectedCpuCount,
- cpuQuality = getCpuQuality(2, 3),
- availableMemory = 1*1024*1024*1024,
- adapterName = "Faked Medium",
- gpuCount = 1,
- adapterQuality = 1,
- availableGpuMemory = 768*1024*1024,
- deviceSettings = { baseQualityLevel = Quality.Medium, defaultSettings = {}, consoleOverrides = "" }
- },
- [3] = {
- cpuCount = detectedCpuCount,
- cpuQuality = getCpuQuality(4, 3),
- availableMemory = 1.5*1024*1024*1024,
- adapterName = "Faked High",
- gpuCount = 1,
- adapterQuality = 3,
- availableGpuMemory = 1*1024*1024*1024,
- deviceSettings = { baseQualityLevel = Quality.High, defaultSettings = {}, consoleOverrides = "" }
- },
- [4] = {
- cpuCount = detectedCpuCount,
- cpuQuality = getCpuQuality(8, 3),
- availableMemory = 2*1024*1024*1024,
- adapterName = "Faked Ultra",
- gpuCount = 2,
- adapterQuality = 4,
- availableGpuMemory = 2*1024*1024*1024,
- deviceSettings = { baseQualityLevel = Quality.Ultra, defaultSettings = {}, consoleOverrides = "" }
- },
- }
- vendorDB = nil
- --[[
- Scripts/UserOptions/HardwareProfiles/ATI.lua
- ]]--
- -- Settings database for ATI devices
- return {
- -- [0xHHHH] = { -- Example card
- -- baseQualityLevel = Quality.Low,
- -- defaultSettings = {
- -- TextureQuality = Quality.Low,
- -- ShadowQuality = Quality.Low,
- -- EffectsQuality = Quality.Low,
- -- },
- -- consoleOverrides = [=[
- -- WorldRender.MotionBlurEnable 0
- -- ]=]
- -- }
- [0x9598] = { baseQualityLevel = Quality.Low }, -- ATI All-in-Wonder HD
- [0x9519] = { baseQualityLevel = Quality.Low }, -- AMD FireStream 9170
- [0x9452] = { baseQualityLevel = Quality.Low }, -- AMD FireStream 9250
- [0x9450] = { baseQualityLevel = Quality.Low }, -- AMD FireStream 9270
- [0x688D] = { baseQualityLevel = Quality.Low }, -- AMD FireStream 9350
- [0x688C] = { baseQualityLevel = Quality.Low }, -- AMD FireStream 9370
- [0x94C7] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 2350
- [0x94C3] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 2350 Series
- [0x94C3] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 2400 Series
- [0x94C1] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 2400 Series
- [0x94CC] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 2400 Series
- [0x94C3] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 2400 LE
- [0x94C9] = { baseQualityLevel = Quality.Low }, -- ATI Mobility Radeon HD 2400
- [0x94C3] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 2400
- [0x94C1] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 2400
- [0x94C8] = { baseQualityLevel = Quality.Low }, -- ATI Mobility Radeon HD 2400 XT
- [0x94C1] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 2400 XT
- [0x9589] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 2600
- [0x9581] = { baseQualityLevel = Quality.Low }, -- ATI Mobility Radeon HD 2600
- [0x9583] = { baseQualityLevel = Quality.Low }, -- ATI Mobility Radeon HD 2600 XT
- [0x9588] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 2600 XT
- [0x958A] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 2600 X2 Series
- [0x9400] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 2900
- [0x9405] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 2900 GT
- [0x9400] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 2900 XT
- [0x9400] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 2900 XT
- [0x9616] = { baseQualityLevel = Quality.Low }, -- ATI Radeon 3000 Graphics
- [0x9611] = { baseQualityLevel = Quality.Low }, -- ATI Radeon 3100 Graphics
- [0x9613] = { baseQualityLevel = Quality.Low }, -- ATI Radeon 3100 Graphics
- [0x9612] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 3200 Graphics
- [0x9610] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 3200 Graphics
- [0x9614] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 3300 Graphics
- [0x95C0] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 3400 Series
- [0x95C5] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 3400 Series
- [0x95C4] = { baseQualityLevel = Quality.Low }, -- ATI Mobility Radeon HD 3400 Series
- [0x94C3] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 3410
- [0x95C2] = { baseQualityLevel = Quality.Low }, -- ATI Mobility Radeon HD 3430
- [0x95C5] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 3450
- [0x95C0] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 3550
- [0x95C5] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 3550
- [0x95C0] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 3570
- [0x9589] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 3600 Series
- [0x9598] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 3600 Series
- [0x9591] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 3600 Series
- [0x9581] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 3600 Series
- [0x9583] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 3600 Series
- [0x9589] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 3610
- [0x9591] = { baseQualityLevel = Quality.Low }, -- ATI Mobility Radeon HD 3650
- [0x9593] = { baseQualityLevel = Quality.Low }, -- ATI Mobility Radeon HD 3670
- [0x9501] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 3690
- [0x9505] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 3690
- [0x9598] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 3730
- [0x9598] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD3750
- [0x9501] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 3800 Series
- [0x9505] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 3800 Series
- [0x9507] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 3830
- [0x9505] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 3850
- [0x9504] = { baseQualityLevel = Quality.Low }, -- ATI Mobility Radeon HD 3850
- [0x9513] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 3850 X2
- [0x9506] = { baseQualityLevel = Quality.Medium }, -- ATI Mobility Radeon HD 3850 X2
- [0x9501] = { baseQualityLevel = Quality.Medium }, -- ATI Radeon HD 3870
- [0x950F] = { baseQualityLevel = Quality.Medium }, -- ATI Radeon HD 3870 X2
- [0x9508] = { baseQualityLevel = Quality.Medium }, -- ATI Mobility Radeon HD 3870
- [0x9509] = { baseQualityLevel = Quality.Medium }, -- ATI Mobility Radeon HD 3870 X2
- [0x9713] = { baseQualityLevel = Quality.Low }, -- ATI Mobility Radeon 4100
- [0x9712] = { baseQualityLevel = Quality.Low }, -- ATI Mobility Radeon HD 4200 Series
- [0x9710] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 4200
- [0x95C5] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 4230
- [0x9715] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 4250
- [0x95C5] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 4250
- [0x95C0] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 4250
- [0x9714] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 4290
- [0x9552] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 4300/4500 Series
- [0x954F] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 4300/4500 Series
- [0x9553] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 4300/4500 Series
- [0x9555] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD4300/HD4500 series
- [0x9552] = { baseQualityLevel = Quality.Low }, -- ATI Mobility Radeon HD 4300 Series
- [0x9555] = { baseQualityLevel = Quality.Low }, -- ATI Mobility Radeon HD 4300/4500 Series
- [0x954F] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 4450
- [0x9553] = { baseQualityLevel = Quality.Low }, -- ATI Mobility Radeon HD 4500/5100 Series
- [0x954F] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 4520
- [0x954F] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 4550
- [0x9540] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 4550
- [0x9555] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 4550
- [0x9598] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 4570
- [0x9598] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 4580
- [0x9540] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 4590
- [0x9490] = { baseQualityLevel = Quality.Medium }, -- ATI Radeon HD 4600 Series
- [0x9498] = { baseQualityLevel = Quality.Medium }, -- ATI Radeon HD 4600 Series
- [0x9598] = { baseQualityLevel = Quality.Medium }, -- ATI Radeon HD 4610
- [0x9498] = { baseQualityLevel = Quality.Medium }, -- ATI Radeon HD 4650
- [0x9480] = { baseQualityLevel = Quality.Medium }, -- ATI Mobility Radeon HD 4650
- [0x9498] = { baseQualityLevel = Quality.Medium }, -- ATI Radeon HD 4670
- [0x9488] = { baseQualityLevel = Quality.Medium }, -- ATI Mobility Radeon HD 4670
- [0x94B3] = { baseQualityLevel = Quality.Medium }, -- ATI Radeon HD 4770
- [0x9498] = { baseQualityLevel = Quality.Medium }, -- ATI Radeon HD 4700
- [0x944E] = { baseQualityLevel = Quality.Medium }, -- ATI Radeon HD 4700 Series
- [0x94B4] = { baseQualityLevel = Quality.Medium }, -- ATI Radeon HD 4700 Series
- [0x9490] = { baseQualityLevel = Quality.Medium }, -- ATI Radeon HD 4710
- [0x9498] = { baseQualityLevel = Quality.Medium }, -- ATI Radeon HD 4720
- [0x944E] = { baseQualityLevel = Quality.Medium }, -- ATI Radeon HD 4730 Series
- [0x9505] = { baseQualityLevel = Quality.Medium }, -- ATI Radeon HD 4730
- [0x9505] = { baseQualityLevel = Quality.Medium }, -- ATI Radeon HD 4750
- [0x9501] = { baseQualityLevel = Quality.Medium }, -- ATI Radeon HD 4750
- [0x94B3] = { baseQualityLevel = Quality.Medium }, -- ATI Radeon HD 4770
- [0x94B5] = { baseQualityLevel = Quality.Medium }, -- ATI Radeon HD 4770
- [0x9440] = { baseQualityLevel = Quality.High }, -- ATI Radeon HD 4800 Series
- [0x9442] = { baseQualityLevel = Quality.High }, -- ATI Radeon HD 4800 Series
- [0x944C] = { baseQualityLevel = Quality.High }, -- ATI Radeon HD 4800 Series
- [0x9460] = { baseQualityLevel = Quality.High }, -- ATI Radeon HD 4800 Series
- [0x9462] = { baseQualityLevel = Quality.High }, -- ATI Radeon HD 4800 Series
- [0x944A] = { baseQualityLevel = Quality.High }, -- ATI Radeon HD 4800 Series
- [0x944E] = { baseQualityLevel = Quality.High }, -- ATI Radeon HD 4810 Series
- [0x944E] = { baseQualityLevel = Quality.High }, -- ATI Radeon HD 4820
- [0x944C] = { baseQualityLevel = Quality.High }, -- ATI Radeon HD 4830
- [0x94A0] = { baseQualityLevel = Quality.High }, -- ATI Mobility Radeon HD 4830
- [0x944A] = { baseQualityLevel = Quality.High }, -- ATI Mobility Radeon HD 4850
- [0x9442] = { baseQualityLevel = Quality.High }, -- ATI Radeon HD 4850
- [0x9443] = { baseQualityLevel = Quality.Medium }, -- ATI Radeon HD 4850 X2
- [0x94A1] = { baseQualityLevel = Quality.High }, -- ATI Mobility Radeon HD 4860
- [0x945A] = { baseQualityLevel = Quality.High }, -- ATI Mobility Radeon HD 4870
- [0x9440] = { baseQualityLevel = Quality.High }, -- ATI Radeon HD 4870
- [0x9441] = { baseQualityLevel = Quality.High }, -- ATI Radeon HD 4870 X2
- [0x68E1] = { baseQualityLevel = Quality.Medium }, -- ATI Radeon HD 5400 Series
- [0x68F9] = { baseQualityLevel = Quality.Medium }, -- ATI Radeon HD 5400 Series
- [0x68E0] = { baseQualityLevel = Quality.Medium }, -- ATI Mobility Radeon HD 5400 Series
- [0x68E1] = { baseQualityLevel = Quality.Medium }, -- ATI Mobility Radeon HD 5400 Series
- [0x68E0] = { baseQualityLevel = Quality.Medium }, -- ATI Mobility Radeon HD 5400 Series
- [0x68E1] = { baseQualityLevel = Quality.Medium }, -- ATI Mobility Radeon HD 5430
- [0x68F9] = { baseQualityLevel = Quality.Medium }, -- ATI Radeon HD 5450
- [0x68F9] = { baseQualityLevel = Quality.Medium }, -- ATI Radeon HD 5470
- [0x68E1] = { baseQualityLevel = Quality.Medium }, -- ATI Radeon HD 5470
- [0x68F9] = { baseQualityLevel = Quality.Medium }, -- ATI Radeon HD 5490
- [0x68DA] = { baseQualityLevel = Quality.Medium }, -- ATI Radeon HD 5500 Series
- [0x68D9] = { baseQualityLevel = Quality.Medium }, -- ATI Radeon HD 5500 Series
- [0x68CA] = { baseQualityLevel = Quality.Medium }, -- ATI Radeon HD 5500 Series
- [0x68F9] = { baseQualityLevel = Quality.Medium }, -- ATI Radeon HD 5530
- [0x68D9] = { baseQualityLevel = Quality.Medium }, -- ATI Radeon HD 5570
- [0x68C7] = { baseQualityLevel = Quality.Medium }, -- ATI Mobility Radeon HD 5570
- [0x68B9] = { baseQualityLevel = Quality.Medium }, -- ATI Radeon HD 5600/5700
- [0x68D8] = { baseQualityLevel = Quality.Medium }, -- ATI Radeon HD 5600 Series
- [0x68D9] = { baseQualityLevel = Quality.Medium }, -- ATI Radeon HD 5630
- [0x68DA] = { baseQualityLevel = Quality.Medium }, -- ATI Radeon HD 5630
- [0x68C1] = { baseQualityLevel = Quality.Medium }, -- ATI Mobility Radeon HD 5650
- [0x68D8] = { baseQualityLevel = Quality.Medium }, -- ATI Radeon HD 5670
- [0x68D8] = { baseQualityLevel = Quality.Medium }, -- ATI Radeon HD 5690
- [0x68D8] = { baseQualityLevel = Quality.Medium }, -- ATI Radeon HD 5730
- [0x68C0] = { baseQualityLevel = Quality.Medium }, -- ATI Mobility Radeon HD 5700 Series
- [0x68BE] = { baseQualityLevel = Quality.Medium }, -- ATI Radeon HD 5700 Series
- [0x68B8] = { baseQualityLevel = Quality.Medium }, -- ATI Radeon HD 5700 Series
- [0x68C1] = { baseQualityLevel = Quality.High }, -- ATI Mobility Radeon HD 5750
- [0x689E] = { baseQualityLevel = Quality.High }, -- ATI Radeon HD 5800 Series
- [0x6899] = { baseQualityLevel = Quality.High }, -- ATI Radeon HD 5800 Series
- [0x6898] = { baseQualityLevel = Quality.High }, -- ATI Radeon HD 5800 Series
- [0x68A0] = { baseQualityLevel = Quality.High }, -- ATI Mobility Radeon HD 5800 Series
- [0x68A1] = { baseQualityLevel = Quality.High }, -- ATI Mobility Radeon HD 5800 Series
- [0x68A0] = { baseQualityLevel = Quality.High }, -- ATI Mobility Radeon HD 5800 Series
- [0x68A1] = { baseQualityLevel = Quality.High }, -- ATI Mobility Radeon HD 5800 Series
- [0x6899] = { baseQualityLevel = Quality.High }, -- ATI Radeon HD 5850X2
- [0x689C] = { baseQualityLevel = Quality.High }, -- ATI Radeon HD 5900 Series
- [0x9804] = { baseQualityLevel = Quality.Low }, -- AMD Radeon HD 6200 series Graphics
- [0x9805] = { baseQualityLevel = Quality.Low }, -- AMD Radeon HD 6200 series Graphics
- [0x68F9] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 6230
- [0x68E1] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 6230
- [0x68F9] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 6250
- [0x68E1] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 6250
- [0x9802] = { baseQualityLevel = Quality.Low }, -- AMD Radeon HD 6250
- [0x68F9] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 6290
- [0x9802] = { baseQualityLevel = Quality.Low }, -- AMD Radeon HD 6300 series Graphics
- [0x9803] = { baseQualityLevel = Quality.Low }, -- AMD Radeon HD 6300 series Graphics
- [0x68E5] = { baseQualityLevel = Quality.Low }, -- AMD Radeon HD 6300M Series
- [0x68E4] = { baseQualityLevel = Quality.Low }, -- AMD Radeon HD 6300M Series
- [0x9802] = { baseQualityLevel = Quality.Low }, -- AMD Radeon HD 6310
- [0x68F9] = { baseQualityLevel = Quality.Low }, -- AMD Radeon HD 6350
- [0x68E4] = { baseQualityLevel = Quality.Low }, -- AMD Radeon HD 6350M
- [0x68E5] = { baseQualityLevel = Quality.Low }, -- AMD Radeon HD 6330M
- [0x68E4] = { baseQualityLevel = Quality.Low }, -- AMD Radeon HD 6370M
- [0x68DA] = { baseQualityLevel = Quality.Low }, -- ATI Radeon HD 6390
- [0x6770] = { baseQualityLevel = Quality.Low }, -- AMD Radeon HD 6400 Series
- [0x6760] = { baseQualityLevel = Quality.Low }, -- AMD Radeon HD 6400M Series
- [0x6779] = { baseQualityLevel = Quality.Low }, -- AMD Radeon HD 6400 Series
- [0x6760] = { baseQualityLevel = Quality.Low }, -- AMD Radeon HD 6400M Series
- [0x6761] = { baseQualityLevel = Quality.Low }, -- AMD Radeon HD 6430M
- [0x6761] = { baseQualityLevel = Quality.Low }, -- AMD Radeon HD 6430M
- [0x6779] = { baseQualityLevel = Quality.Low }, -- AMD Radeon HD 6450
- [0x68C1] = { baseQualityLevel = Quality.Medium }, -- AMD Radeon HD 6500M/5600/5700 Series
- [0x6759] = { baseQualityLevel = Quality.Medium }, -- AMD Radeon HD 6500 Series
- [0x68C1] = { baseQualityLevel = Quality.Medium }, -- AMD Radeon HD 6500M Series
- [0x68D9] = { baseQualityLevel = Quality.Medium }, -- ATI Radeon HD 6510
- [0x68C0] = { baseQualityLevel = Quality.Medium }, -- AMD Radeon HD 6570M
- [0x68C0] = { baseQualityLevel = Quality.Medium }, -- AMD Radeon HD 6570M/5700 Series
- [0x6750] = { baseQualityLevel = Quality.Medium }, -- AMD Radeon HD 6600A Series
- [0x6758] = { baseQualityLevel = Quality.Medium }, -- AMD Radeon HD 6600 Series
- [0x6741] = { baseQualityLevel = Quality.Medium }, -- AMD Radeon 6600M and 6700M Series
- [0x6742] = { baseQualityLevel = Quality.Medium }, -- AMD Radeon HD 6625M Graphics
- [0x6740] = { baseQualityLevel = Quality.High }, -- AMD Radeon HD 6700M Series
- [0x68BA] = { baseQualityLevel = Quality.High }, -- AMD Radeon HD 6700 Series
- [0x68BF] = { baseQualityLevel = Quality.High }, -- AMD Radeon HD 6700 Series
- [0x673E] = { baseQualityLevel = Quality.High }, -- AMD Radeon HD 6700 Series
- [0x68B8] = { baseQualityLevel = Quality.High }, -- AMD Radeon HD 6700 Series
- [0x6741] = { baseQualityLevel = Quality.High }, -- AMD Radeon HD 6700M Series
- [0x68BE] = { baseQualityLevel = Quality.High }, -- AMD Radeon HD 6750
- [0x68BF] = { baseQualityLevel = Quality.High }, -- AMD Radeon HD 6750
- [0x68BA] = { baseQualityLevel = Quality.High }, -- AMD Radeon HD 6770
- [0x6740] = { baseQualityLevel = Quality.High }, -- AMD Radeon HD 6770M
- [0x68B8] = { baseQualityLevel = Quality.High }, -- AMD Radeon HD 6770
- [0x68A8] = { baseQualityLevel = Quality.High }, -- AMD Radeon HD 6800M Series
- [0x6738] = { baseQualityLevel = Quality.High }, -- AMD Radeon HD 6800 Series
- [0x6739] = { baseQualityLevel = Quality.High }, -- AMD Radeon HD 6800 Series
- [0x673E] = { baseQualityLevel = Quality.High }, -- AMD Radeon HD 6800 Series
- [0x689B] = { baseQualityLevel = Quality.High }, -- AMD Radeon HD 6800 Series
- [0x68A8] = { baseQualityLevel = Quality.High }, -- AMD Radeon HD 6800M Series
- [0x6720] = { baseQualityLevel = Quality.High }, -- AMD Radeon HD 6900M Series
- [0x6718] = { baseQualityLevel = Quality.High }, -- AMD Radeon HD 6900 Series
- [0x671F] = { baseQualityLevel = Quality.High }, -- AMD Radeon HD 6900 Series
- [0x671D] = { baseQualityLevel = Quality.High }, -- AMD Radeon HD 6990
- [0x6718] = { baseQualityLevel = Quality.High }, -- AMD Radeon HD 6900 Series
- [0x6720] = { baseQualityLevel = Quality.High }, -- AMD Radeon HD 6900M Series
- [0x6719] = { baseQualityLevel = Quality.High }, -- AMD Radeon HD 6900 Series
- }
- --[[
- Scripts/UserOptions/HardwareProfiles/Intel.lua
- ]]--
- -- Settings database for Intel devices
- return {
- -- [0xHHHH] = { -- Example card
- -- baseQualityLevel = Quality.High,
- -- defaultSettings = {
- -- TextureQuality = Quality.Low,
- -- ShadowQuality = Quality.Medium,
- -- EffectsQuality = Quality.High,
- -- },
- -- consoleOverrides = [=[
- -- WorldRender.MotionBlurEnable 0
- -- ]=]
- -- }
- }
- --[[
- Scripts/UserOptions/HardwareProfiles/nVidia.lua
- ]]--
- -- Settings database for nVidia devices
- return {
- -- [0xHHHH] = { -- Example card
- -- baseQualityLevel = Quality.Medium,
- -- defaultSettings = {
- -- TextureQuality = Quality.Low,
- -- ShadowQuality = Quality.Medium,
- -- EffectsQuality = Quality.Medium,
- -- },
- -- consoleOverrides = [=[
- -- WorldRender.MotionBlurEnable 0
- -- ]=]
- -- }
- [0x004E] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 4000
- [0x009D] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 4500
- [0x00CD] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 3450/4000 SDI
- [0x00CE] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 1400
- [0x00F8] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 3400/4400
- [0x014A] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro NVS 440
- [0x014C] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 540M
- [0x014D] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 550
- [0x014E] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 540
- [0x0165] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro NVS 285
- [0x0191] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8800 GTX
- [0x0193] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8800 GTS
- [0x0194] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8800 Ultra
- [0x0197] = { baseQualityLevel = Quality.Low }, -- NVIDIA Tesla C870
- [0x019D] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 5600
- [0x019E] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 4600
- [0x01DB] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro NVS 120M
- [0x01DE] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 350
- [0x0245] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro NVS 210S / NVIDIA GeForce 6150LE
- [0x029C] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 5500
- [0x029D] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 3500
- [0x029E] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 1500
- [0x029F] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 4500 X2
- [0x039C] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 560M
- [0x039E] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 560
- [0x0400] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8600 GTS
- [0x0401] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8600 GT
- [0x0402] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8600 GT
- [0x0403] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8600 GS
- [0x0404] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8400 GS
- [0x0405] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9500M GS
- [0x0406] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8300 GS
- [0x0407] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8600M GT
- [0x0408] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9650M GS
- [0x0409] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8700M GT
- [0x040A] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 370
- [0x040B] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro NVS 320M
- [0x040C] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 570M
- [0x040D] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 1600M
- [0x040E] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 570
- [0x040F] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 1700
- [0x0410] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 330
- [0x0420] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8400 SE
- [0x0421] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8500 GT
- [0x0422] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8400 GS
- [0x0423] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8300 GS
- [0x0424] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8400 GS
- [0x0425] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8600M GS
- [0x0426] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8400M GT
- [0x0427] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8400M GS
- [0x0428] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8400M G
- [0x0429] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro NVS 140M
- [0x042A] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro NVS 130M
- [0x042B] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro NVS 135M
- [0x042C] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9400 GT
- [0x042D] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 360M
- [0x042E] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9300M G
- [0x042F] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro NVS 290
- [0x053A] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 7050 PV / NVIDIA nForce 630a
- [0x053B] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 7050 PV / NVIDIA nForce 630a
- [0x053E] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 7025 / NVIDIA nForce 630a
- [0x05E0] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 295
- [0x05E1] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GTX 280
- [0x05E2] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GTX 260
- [0x05E3] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GTX 285
- [0x05E6] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GTX 275
- [0x05E7] = { baseQualityLevel = Quality.Medium }, -- NVIDIA Tesla C1060
- [0x05EA] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GTX 260
- [0x05EB] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 295
- [0x05F9] = { baseQualityLevel = Quality.Medium }, -- NVIDIA Quadro CX
- [0x05FD] = { baseQualityLevel = Quality.Medium }, -- NVIDIA Quadro FX 5800
- [0x05FE] = { baseQualityLevel = Quality.Medium }, -- NVIDIA Quadro FX 4800
- [0x05FF] = { baseQualityLevel = Quality.Medium }, -- NVIDIA Quadro FX 3800
- [0x0600] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8800 GTS 512
- [0x0601] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9800 GT
- [0x0602] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8800 GT
- [0x0603] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 230
- [0x0604] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9800 GX2
- [0x0605] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9800 GT
- [0x0606] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8800 GS
- [0x0607] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GTS 240
- [0x0608] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9800M GTX
- [0x0609] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8800M GTS
- [0x060A] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GTX 280M
- [0x060B] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9800M GT
- [0x060C] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8800M GTX
- [0x060F] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GTX 285M
- [0x0610] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9600 GSO
- [0x0611] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8800 GT
- [0x0612] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9800 GTX/9800 GTX+
- [0x0613] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9800 GTX+
- [0x0614] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9800 GT
- [0x0615] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GTS 250
- [0x0617] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9800M GTX
- [0x0618] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GTX 260M
- [0x0619] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 4700 X2
- [0x061A] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 3700
- [0x061B] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro VX 200
- [0x061C] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 3600M
- [0x061D] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 2800M
- [0x061E] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 3700M
- [0x061F] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 3800M
- [0x0621] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 230
- [0x0622] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9600 GT
- [0x0623] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9600 GS
- [0x0625] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9600 GSO 512
- [0x0626] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 130
- [0x0627] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 140
- [0x0628] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9800M GTS
- [0x062A] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9700M GTS
- [0x062B] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9800M GS
- [0x062C] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9800M GTS
- [0x062D] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9600 GT
- [0x062E] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9600 GT
- [0x0631] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GTS 160M
- [0x0635] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9600 GSO
- [0x0637] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9600 GT
- [0x0638] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 1800
- [0x063A] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 2700M
- [0x0640] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9500 GT
- [0x0641] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9400 GT
- [0x0643] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9500 GT
- [0x0644] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9500 GS
- [0x0645] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9500 GS
- [0x0646] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 120
- [0x0647] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9600M GT
- [0x0648] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9600M GS
- [0x0649] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9600M GT
- [0x064A] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9700M GT
- [0x064C] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9650M GT
- [0x0651] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce G 110M
- [0x0652] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 130M
- [0x0653] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 120M
- [0x0654] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 220M
- [0x0655] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 120
- [0x0656] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 120
- [0x0658] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 380
- [0x0659] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 580
- [0x065A] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 1700M
- [0x065B] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9400 GT
- [0x065C] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 770M
- [0x065F] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce G210
- [0x06C0] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 480
- [0x06C4] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 465
- [0x06CA] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 480M
- [0x06CD] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 470
- [0x06D1] = { baseQualityLevel = Quality.Medium }, -- NVIDIA Tesla C2050 / C2070
- [0x06D2] = { baseQualityLevel = Quality.Medium }, -- NVIDIA Tesla M2070
- [0x06D8] = { baseQualityLevel = Quality.Medium }, -- NVIDIA Quadro 6000
- [0x06D9] = { baseQualityLevel = Quality.Medium }, -- NVIDIA Quadro 5000
- [0x06DA] = { baseQualityLevel = Quality.Medium }, -- NVIDIA Quadro 5000M
- [0x06DC] = { baseQualityLevel = Quality.Medium }, -- NVIDIA Quadro 6000
- [0x06DD] = { baseQualityLevel = Quality.Medium }, -- NVIDIA Quadro 4000
- [0x06DE] = { baseQualityLevel = Quality.Medium }, -- NVIDIA Tesla T20 Processor
- [0x06DF] = { baseQualityLevel = Quality.Medium }, -- NVIDIA Tesla M2070-Q
- [0x06E0] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9300 GE
- [0x06E1] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9300 GS
- [0x06E2] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8400
- [0x06E3] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8400 SE
- [0x06E4] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8400 GS
- [0x06E6] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce G100
- [0x06E7] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9300 SE
- [0x06E8] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9200M GS
- [0x06E9] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9300M GS
- [0x06EA] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro NVS 150M
- [0x06EB] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro NVS 160M
- [0x06EC] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce G 105M
- [0x06EF] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce G 103M
- [0x06F1] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce G105M
- [0x06F8] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro NVS 420
- [0x06F9] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 370 LP
- [0x06FA] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro NVS 450
- [0x06FB] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 370M
- [0x06FD] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro NVS 295
- [0x06FF] = { baseQualityLevel = Quality.Low }, -- NVIDIA HICx16 + Graphics
- [0x07E0] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 7150 / NVIDIA nForce 630i
- [0x07E1] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 7100 / NVIDIA nForce 630i
- [0x07E2] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 7050 / NVIDIA nForce 630i
- [0x07E3] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 7050 / NVIDIA nForce 610i
- [0x07E5] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 7050 / NVIDIA nForce 620i
- [0x0840] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8200M
- [0x0844] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9100M G
- [0x0845] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8200M G
- [0x0846] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9200
- [0x0847] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9100
- [0x0848] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8300
- [0x0849] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8200
- [0x084A] = { baseQualityLevel = Quality.Low }, -- NVIDIA nForce 730a
- [0x084B] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9200
- [0x084C] = { baseQualityLevel = Quality.Low }, -- NVIDIA nForce 980a/780a SLI
- [0x084D] = { baseQualityLevel = Quality.Low }, -- NVIDIA nForce 750a SLI
- [0x084F] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8100 / nForce 720a
- [0x0860] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9400
- [0x0861] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9400
- [0x0862] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9400M G
- [0x0863] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9400M
- [0x0864] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9300
- [0x0865] = { baseQualityLevel = Quality.Low }, -- NVIDIA ION
- [0x0866] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9400M G
- [0x0867] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9400
- [0x0868] = { baseQualityLevel = Quality.Low }, -- NVIDIA nForce 760i SLI
- [0x0869] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9400
- [0x086A] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9400
- [0x086C] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9300 / nForce 730i
- [0x086D] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9200
- [0x086E] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9100M G
- [0x086F] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8200M G
- [0x0870] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9400M
- [0x0871] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9200
- [0x0872] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce G102M
- [0x0873] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce G102M
- [0x0874] = { baseQualityLevel = Quality.Low }, -- NVIDIA ION
- [0x0876] = { baseQualityLevel = Quality.Low }, -- NVIDIA ION
- [0x087A] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9400
- [0x087D] = { baseQualityLevel = Quality.Low }, -- NVIDIA ION
- [0x087E] = { baseQualityLevel = Quality.Low }, -- NVIDIA ION LE
- [0x087F] = { baseQualityLevel = Quality.Low }, -- NVIDIA ION LE
- [0x08A0] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 320M
- [0x08A4] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 320M
- [0x0A20] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 220
- [0x0A22] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 315
- [0x0A23] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 210
- [0x0A26] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 405
- [0x0A27] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 405
- [0x0A28] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 230M
- [0x0A29] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 330M
- [0x0A2A] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 230M
- [0x0A2B] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 330M
- [0x0A2C] = { baseQualityLevel = Quality.Low }, -- NVIDIA NVS 5100M
- [0x0A2D] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 320M
- [0x0A34] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 240M
- [0x0A35] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 325M
- [0x0A38] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro 400
- [0x0A3C] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 880M
- [0x0A60] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce G210
- [0x0A62] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 205
- [0x0A63] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 310
- [0x0A64] = { baseQualityLevel = Quality.Low }, -- NVIDIA ION
- [0x0A65] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 210
- [0x0A66] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 310
- [0x0A67] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 315
- [0x0A68] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce G105M
- [0x0A69] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce G105M
- [0x0A6A] = { baseQualityLevel = Quality.Low }, -- NVIDIA NVS 2100M
- [0x0A6C] = { baseQualityLevel = Quality.Low }, -- NVIDIA NVS 3100M
- [0x0A6E] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 305M
- [0x0A6F] = { baseQualityLevel = Quality.Low }, -- NVIDIA ION
- [0x0A70] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 310M
- [0x0A71] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 305M
- [0x0A72] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 310M
- [0x0A73] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 305M
- [0x0A74] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce G210M
- [0x0A75] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 310M
- [0x0A76] = { baseQualityLevel = Quality.Low }, -- NVIDIA ION
- [0x0A78] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 380 LP
- [0x0A7A] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 315M
- [0x0A7C] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 380M
- [0x0CA0] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 330
- [0x0CA2] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 320
- [0x0CA3] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 240
- [0x0CA4] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 340
- [0x0CA5] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 220
- [0x0CA7] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 330
- [0x0CA9] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GTS 250M
- [0x0CAC] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 220
- [0x0CAF] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 335M
- [0x0CB0] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GTS 350M
- [0x0CB1] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GTS 360M
- [0x0CBC] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 1800M
- [0x0DC0] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GT 440
- [0x0DC4] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GTS 450
- [0x0DC5] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GTS 450
- [0x0DC6] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GTS 450
- [0x0DCD] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GT 555M
- [0x0DCE] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GT 555M
- [0x0DD1] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GTX 460M
- [0x0DD2] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GT 445M
- [0x0DD3] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GT 435M
- [0x0DD6] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GT 550M
- [0x0DD8] = { baseQualityLevel = Quality.Medium }, -- NVIDIA Quadro 2000
- [0x0DDA] = { baseQualityLevel = Quality.Medium }, -- NVIDIA Quadro 2000M
- [0x0DE0] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GT 440
- [0x0DE1] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GT 430
- [0x0DE2] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GT 420
- [0x0DE5] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GT 530
- [0x0DEC] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GT 525M
- [0x0DED] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GT 520M
- [0x0DEE] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GT 415M
- [0x0DF0] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GT 425M
- [0x0DF1] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GT 420M
- [0x0DF2] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GT 435M
- [0x0DF3] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GT 420M
- [0x0DF4] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GT 540M
- [0x0DF5] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GT 525M
- [0x0DF6] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GT 550M
- [0x0DF7] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GT 520M
- [0x0DF8] = { baseQualityLevel = Quality.Medium }, -- NVIDIA Quadro 600
- [0x0DFA] = { baseQualityLevel = Quality.Medium }, -- NVIDIA Quadro 1000M
- [0x0E22] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 460
- [0x0E23] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 460 SE
- [0x0E24] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 460
- [0x0E30] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 470M
- [0x0E31] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 485M
- [0x0E3A] = { baseQualityLevel = Quality.Medium }, -- NVIDIA Quadro 3000M
- [0x0E3B] = { baseQualityLevel = Quality.Medium }, -- NVIDIA Quadro 4000M
- [0x1040] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GT 520
- [0x1050] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GT 520M
- [0x1054] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce 410M
- [0x1056] = { baseQualityLevel = Quality.Medium }, -- NVIDIA NVS 4200M
- [0x1057] = { baseQualityLevel = Quality.Medium }, -- NVIDIA NVS 4200M
- [0x1080] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 580
- [0x1081] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 570
- [0x1082] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 560 Ti
- [0x1084] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 560
- [0x1086] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 570
- [0x1088] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 590
- [0x1089] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 580
- [0x1091] = { baseQualityLevel = Quality.Medium }, -- NVIDIA Tesla M2090
- [0x109A] = { baseQualityLevel = Quality.Medium }, -- NVIDIA Quadro 5010M
- [0x109B] = { baseQualityLevel = Quality.Medium }, -- NVIDIA Quadro 7000
- [0x10C0] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce 9300 GS
- [0x10C3] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce 8400GS
- [0x10C5] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce 405
- [0x10D8] = { baseQualityLevel = Quality.Medium }, -- NVIDIA NVS 300
- [0x1200] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 560 Ti
- [0x1201] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 560
- [0x1241] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GT 545
- [0x1243] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GT 545
- [0x1244] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 550 Ti
- [0x1245] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GTS 450
- [0x1251] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 560M
- }
- --[[
- Scripts/UserOptions/Options.lua
- ]]--
- core = require "Frost.Core"
- logging = require "Frost.Logging"
- levelName = currentGameLevel or cmdLineOption(\'level\') or Game.Level
- if levelName then
- -- Level names without slashes are assumed to be shorthand for
- -- Levels/name/name to go with Venice\'s epic level naming convention
- if not string.find(levelName, "/") then
- levelName = "Levels/" .. levelName .. "/" .. levelName
- end
- Game.FastStartupEnable = true
- if not Game.Level then
- Game.Level = levelName
- end
- end
- function applySettings(settings)
- core.parseKeyValueCfgString(settings, _G)
- end
- function applyQualitySettings(name, qualityMap)
- local quality = settings[name]
- if quality == nil then
- log:error("Invalid setting \'" .. name .. "\'")
- return
- end
- local consoleCommands = qualityMap[quality]
- if consoleCommands == nil then
- log:error("Could not find console settings for \'" .. name .. "\' with quality " .. quality)
- else
- log:info("setting \'" .. name .. "\': " .. quality)
- applySettings(consoleCommands)
- end
- end
- dofile("Scripts/UserOptions/Options/Graphics.lua")
- dofile("Scripts/UserOptions/Options/Physics.lua")
- dofile("Scripts/UserOptions/Options/Sound.lua")
- dofile("Scripts/UserOptions/Options/Animations.lua")
- applySettings(deviceSettings.consoleOverrides or "")
- if not cmdLineOption(\'noLocalCfg\', false) then
- core.readKeyValueCfg("/local/local.cfg", _G)
- end
- if allowCommandlineSettings then
- for index,option in ipairs(commandLine) do
- local table,member = string.match(option, "^%-(%w+)%.(%w+)")
- if table and member then
- local value = commandLine[index+1]
- if not _G[table] then _G[table] = {} end
- _G[table][member] = value
- else
- local varName = string.match(option, "^%-([%w-]+)")
- if varName then
- local value = commandLine[index+1]
- if value then
- _G[varName] = value
- end
- end
- end
- end
- end
- --[[
- Scripts/UserOptions/Options/Animations.lua
- ]]--
- local quality = settings[\'AnimationQuality\']
- log:info("setting animation quality : "..quality)
- -- IMPORTANT:
- -- GameAnimation.TemporalLoddingFirstDistance *must* be slighly larger than the
- -- distance where IK is disabled in the animation project (EnableFootplanting_ESIG)
- -- for all quality levels.
- if(quality > 0.8) then
- applySettings([=[
- GameAnimation.TemporalLoddingFirstDistance 31.0
- GameAnimation.TemporalLoddingSecondDistance 40.0
- GameAnimation.TemporalLoddingThirdDistance 60.0
- GameAnimation.TemporalLoddingFourthDistance 90.0
- GameAnimation.TemporalLoddingFifthDistance 120.0
- GameAnimation.TemporalLoddingSixthDistance 208.0
- GameAnimation.TemporalLoddingFirstDeltaTime = 0.02
- GameAnimation.TemporalLoddingSecondDeltaTime = 0.04
- GameAnimation.TemporalLoddingThirdDeltaTime = 0.06
- GameAnimation.TemporalLoddingFourthDeltaTime = 0.08
- GameAnimation.TemporalLoddingFifthDeltaTime = 0.10
- GameAnimation.TemporalLoddingSixthDeltaTime = 0.12
- ]=])
- else
- applySettings([=[
- GameAnimation.TemporalLoddingFirstDistance 31.0
- GameAnimation.TemporalLoddingSecondDistance 40.0
- GameAnimation.TemporalLoddingThirdDistance 50.0
- GameAnimation.TemporalLoddingFourthDistance 90.0
- GameAnimation.TemporalLoddingFifthDistance 120.0
- GameAnimation.TemporalLoddingSixthDistance 208.0
- GameAnimation.TemporalLoddingFirstDeltaTime = 0.02
- GameAnimation.TemporalLoddingSecondDeltaTime = 0.04
- GameAnimation.TemporalLoddingThirdDeltaTime = 0.06
- GameAnimation.TemporalLoddingFourthDeltaTime = 0.08
- GameAnimation.TemporalLoddingFifthDeltaTime = 0.10
- GameAnimation.TemporalLoddingSixthDeltaTime = 0.12
- ]=])
- end
- --[[
- Scripts/UserOptions/Options/Graphics.lua
- ]]--
- ------ Common settings for all quality levels
- applySettings([=[
- ]=])
- ------ Texture Quality
- applyQualitySettings(\'TextureQuality\', {
- -- up to 512 mb
- [Quality.Low]=[=[
- Texture.SkipMipmapCount 2
- TextureStreaming.PoolSize 150000
- TerrainStreaming.HeightfieldAtlasSampleCountXFactor 1
- TerrainStreaming.HeightfieldAtlasSampleCountYFactor 1
- TerrainStreaming.MaskAtlasSampleCountXFactor 1
- TerrainStreaming.MaskAtlasSampleCountYFactor 1
- TerrainStreaming.ColorAtlasSampleCountXFactor 1
- TerrainStreaming.ColorAtlasSampleCountYFactor 1
- VisualTerrain.TextureAtlasSampleCountXFactor 1
- VisualTerrain.TextureAtlasSampleCountYFactor 1
- VisualTerrain.TextureRenderJobCount 1
- VisualTerrain.TextureRenderJobsLaunchedPerFrameCountMax 1
- VisualTerrain.Decal3dFarDrawDistanceScaleFactor 1.0
- ]=],
- -- up to 768 mb
- [Quality.Medium]=[=[
- Texture.SkipMipmapCount 1
- TextureStreaming.PoolSize 200000
- TerrainStreaming.HeightfieldAtlasSampleCountXFactor 1
- TerrainStreaming.HeightfieldAtlasSampleCountYFactor 2
- TerrainStreaming.MaskAtlasSampleCountXFactor 1
- TerrainStreaming.MaskAtlasSampleCountYFactor 2
- TerrainStreaming.ColorAtlasSampleCountXFactor 1
- TerrainStreaming.ColorAtlasSampleCountYFactor 2
- VisualTerrain.TextureAtlasSampleCountXFactor 1
- VisualTerrain.TextureAtlasSampleCountYFactor 2
- VisualTerrain.TextureRenderJobCount 2
- VisualTerrain.TextureRenderJobsLaunchedPerFrameCountMax 2
- VisualTerrain.Decal3dFarDrawDistanceScaleFactor 1.2
- ]=],
- -- up to 1G
- [Quality.High]=[=[
- Texture.SkipMipmapCount 0
- TextureStreaming.PoolSize 300000
- TerrainStreaming.HeightfieldAtlasSampleCountXFactor 1
- TerrainStreaming.HeightfieldAtlasSampleCountYFactor 2
- TerrainStreaming.MaskAtlasSampleCountXFactor 1
- TerrainStreaming.MaskAtlasSampleCountYFactor 2
- TerrainStreaming.ColorAtlasSampleCountXFactor 1
- TerrainStreaming.ColorAtlasSampleCountYFactor 2
- VisualTerrain.TextureAtlasSampleCountXFactor 1
- VisualTerrain.TextureAtlasSampleCountYFactor 2
- VisualTerrain.TextureRenderJobCount 4
- VisualTerrain.TextureRenderJobsLaunchedPerFrameCountMax 4
- VisualTerrain.Decal3dFarDrawDistanceScaleFactor 1.7
- ]=],
- -- 1 Gb or more
- [Quality.Ultra]=[=[
- Texture.SkipMipmapCount 0
- TextureStreaming.PoolSize 500000
- TerrainStreaming.HeightfieldAtlasSampleCountXFactor 2
- TerrainStreaming.HeightfieldAtlasSampleCountYFactor 2
- TerrainStreaming.MaskAtlasSampleCountXFactor 2
- TerrainStreaming.MaskAtlasSampleCountYFactor 2
- TerrainStreaming.ColorAtlasSampleCountXFactor 2
- TerrainStreaming.ColorAtlasSampleCountYFactor 2
- VisualTerrain.TextureAtlasSampleCountXFactor 2
- VisualTerrain.TextureAtlasSampleCountYFactor 2
- VisualTerrain.TextureRenderJobCount 4
- VisualTerrain.TextureRenderJobsLaunchedPerFrameCountMax 4
- VisualTerrain.Decal3dFarDrawDistanceScaleFactor 2
- ]=],
- })
- ------ Mesh Quality
- applyQualitySettings(\'MeshQuality\', {
- [Quality.Low]=[=[
- WorldRender.CullScreenAreaScale 1
- Mesh.GlobalLodScale 1
- Mesh.ShadowDistanceScale 1
- MeshStreaming.PoolSize 100000
- VegetationSystem.UseShadowLodOffset 1
- VegetationSystem.MaxActiveDistance 100
- VegetationSystem.MaxPreSimsPerJob 2
- VegetationSystem.SimulationMemKbClient 2048
- Render.EdgeModelViewDistance 50
- ]=],
- [Quality.Medium]=[=[
- WorldRender.CullScreenAreaScale 1.7
- Mesh.GlobalLodScale 1.7
- Mesh.ShadowDistanceScale 1.7
- MeshStreaming.PoolSize 100000
- VegetationSystem.UseShadowLodOffset 0
- VegetationSystem.MaxActiveDistance 200
- VegetationSystem.MaxPreSimsPerJob 3
- VegetationSystem.SimulationMemKbClient 2048
- Render.EdgeModelViewDistance 70
- ]=],
- [Quality.High]=[=[
- WorldRender.CullScreenAreaScale 3
- Mesh.GlobalLodScale 3
- Mesh.ShadowDistanceScale 3
- MeshStreaming.PoolSize 125000
- VegetationSystem.UseShadowLodOffset 0
- VegetationSystem.MaxActiveDistance 300
- VegetationSystem.MaxPreSimsPerJob 4
- VegetationSystem.SimulationMemKbClient 4096
- Render.EdgeModelViewDistance 100
- ]=],
- [Quality.Ultra]=[=[
- WorldRender.CullScreenAreaScale 4
- Mesh.GlobalLodScale 4
- Mesh.ShadowDistanceScale 4
- MeshStreaming.PoolSize 150000
- VegetationSystem.UseShadowLodOffset 0
- VegetationSystem.MaxActiveDistance 350
- VegetationSystem.MaxPreSimsPerJob 8
- VegetationSystem.SimulationMemKbClient 4096
- Render.EdgeModelViewDistance 150
- ]=],
- })
- ------ Effects Quality
- applyQualitySettings(\'EffectsQuality\', {
- [Quality.Low]=[=[
- EffectManager.EffectQuality 0
- EmitterSystem.QuadHalfResEnable 1
- WorldRender.SpotLightShadomapLevel QualityLevel_Low
- ]=],
- [Quality.Medium]=[=[
- EffectManager.EffectQuality 1
- EmitterSystem.QuadHalfResEnable 1
- WorldRender.SpotLightShadomapLevel QualityLevel_Medium
- ]=],
- [Quality.High]=[=[
- EffectManager.EffectQuality 2
- EmitterSystem.QuadHalfResEnable 1
- WorldRender.SpotLightShadomapLevel QualityLevel_High
- ]=],
- [Quality.Ultra]=[=[
- EffectManager.EffectQuality 2
- EmitterSystem.QuadHalfResEnable 0
- WorldRender.SpotLightShadomapLevel QualityLevel_Ultra
- ]=],
- })
- ------ Terrain Quality
- applyQualitySettings(\'TerrainQuality\', {
- [Quality.Low]=[=[
- VisualTerrain.DxDisplacementMappingEnable 0
- VisualTerrain.DxTessellatedTriWidth 12
- VisualTerrain.LodScale 1.0
- ]=],
- [Quality.Medium]=[=[
- VisualTerrain.DxDisplacementMappingEnable 0
- VisualTerrain.DxTessellatedTriWidth 12
- VisualTerrain.LodScale 1.1
- ]=],
- -- Only on DX11 cards
- [Quality.High]=[=[
- VisualTerrain.DxDisplacementMappingEnable 1
- VisualTerrain.DxTessellatedTriWidth 12
- VisualTerrain.LodScale 1.1
- ]=],
- [Quality.Ultra]=[=[
- VisualTerrain.DxDisplacementMappingEnable 1
- VisualTerrain.DxTessellatedTriWidth 9
- VisualTerrain.LodScale 1.1
- ]=],
- })
- ------ Terrain Decoration Quality
- applyQualitySettings(\'UndergrowthQuality\', {
- [Quality.Low]=[=[
- VisualTerrain.MeshScatteringBuildChannelCount 2
- VisualTerrain.MeshScatteringBuildChannelsLaunchedPerFrameCountMax 1
- VisualTerrain.MeshScatteringDensityScaleFactor 1
- VisualTerrain.MeshScatteringDistanceScaleFactor 1
- ]=],
- [Quality.Medium]=[=[
- VisualTerrain.MeshScatteringBuildChannelCount 4
- VisualTerrain.MeshScatteringBuildChannelsLaunchedPerFrameCountMax 2
- VisualTerrain.MeshScatteringDensityScaleFactor 1.2
- VisualTerrain.MeshScatteringDistanceScaleFactor 1.3
- ]=],
- [Quality.High]=[=[
- VisualTerrain.MeshScatteringBuildChannelCount 8
- VisualTerrain.MeshScatteringBuildChannelsLaunchedPerFrameCountMax 4
- VisualTerrain.MeshScatteringDensityScaleFactor 1.5
- VisualTerrain.MeshScatteringDistanceScaleFactor 1.7
- ]=],
- [Quality.Ultra]=[=[
- VisualTerrain.MeshScatteringBuildChannelCount 8
- VisualTerrain.MeshScatteringBuildChannelsLaunchedPerFrameCountMax 4
- VisualTerrain.MeshScatteringDensityScaleFactor 2.0
- VisualTerrain.MeshScatteringDistanceScaleFactor 2.3
- ]=],
- })
- ------ Shadow Quality
- applyQualitySettings(\'ShadowQuality\', {
- [Quality.Low]=[=[
- WorldRender.ShadowmapsEnable true
- WorldRender.ShadowmapViewDistance 100
- WorldRender.ShadowmapResolution 1024
- WorldRender.ShadowmapQuality 0
- WorldRender.TransparencyShadowmapsEnable 0
- ]=],
- [Quality.Medium]=[=[
- WorldRender.ShadowmapsEnable true
- WorldRender.ShadowmapViewDistance 100
- WorldRender.ShadowmapResolution 1024
- WorldRender.ShadowmapQuality 1
- WorldRender.TransparencyShadowmapsEnable 1
- ]=],
- [Quality.High]=[=[
- WorldRender.ShadowmapsEnable true
- WorldRender.ShadowmapViewDistance 200
- WorldRender.ShadowmapResolution 1536
- WorldRender.ShadowmapQuality 1
- WorldRender.TransparencyShadowmapsEnable 1
- ]=],
- [Quality.Ultra]=[=[
- WorldRender.ShadowmapsEnable true
- WorldRender.ShadowmapViewDistance 200
- WorldRender.ShadowmapResolution 2048
- WorldRender.ShadowmapQuality 1
- WorldRender.TransparencyShadowmapsEnable 1
- ]=],
- })
- ------ Antialiasing Deferred
- applyQualitySettings(\'AntiAliasingDeferred\', {
- [AntiAliasingDeferred.Off]=[=[
- WorldRender.MultisampleCount 1
- ]=],
- [AntiAliasingDeferred.MSAA2X]=[=[
- WorldRender.MultisampleCount 2
- ]=],
- [AntiAliasingDeferred.MSAA4X]=[=[
- WorldRender.MultisampleCount 4
- ]=],
- })
- ------ Antialiasing Post
- applyQualitySettings(\'AntiAliasingPost\', {
- [AntiAliasingPost.Off]=[=[
- WorldRender.FxaaEnable 0
- ]=],
- [AntiAliasingPost.Low]=[=[
- WorldRender.FxaaEnable 1
- WorldRender.FxaaQuality 0
- ]=],
- [AntiAliasingPost.Medium]=[=[
- WorldRender.FxaaEnable 1
- WorldRender.FxaaQuality 1
- ]=],
- [AntiAliasingPost.High]=[=[
- WorldRender.FxaaEnable 1
- WorldRender.FxaaQuality 2
- ]=],
- })
- ------ Ambient Occlusion
- applyQualitySettings(\'AmbientOcclusion\', {
- [AmbientOcclusion.Off]=[=[
- PostProcess.DynamicAOEnable 0
- ]=],
- [AmbientOcclusion.SSAO]=[=[
- PostProcess.DynamicAOEnable 1
- PostProcess.DynamicAOMethod DynamicAOMethod_SSAO
- ]=],
- [AmbientOcclusion.HBAO]=[=[
- PostProcess.DynamicAOEnable 1
- PostProcess.DynamicAOMethod DynamicAOMethod_HBAO
- ]=],
- })
- ------ Anisotropic filtering
- ShaderSystem = ShaderSystem or {}
- ShaderSystem.MaxAnisotropy = 2^settings[\'AnisotropicFilter\'] -- 1, 2, 4, 8, 16
- ------- Motion Blur
- WorldRender = WorldRender or {}
- WorldRender.MotionBlurEnable = settings[\'MotionBlurEnabled\']
- -- WorldRender.MotionBlurScale = settings[\'MotionBlur\'] / 5
- -- for some reason motion we get "attempt to perform arithmetic on field \'MotionBlur\' (a nil value)" when starting up so workaround by having a script default value to handle that case --johan
- WorldRender.MotionBlurScale = (settings[\'MotionBlur\'] or 0.5) / 5
- ------- Screen resolution
- RenderDevice = RenderDevice or {}
- RenderDevice.FullscreenWidth = settings[\'ResolutionWidth\']
- RenderDevice.FullscreenHeight = settings[\'ResolutionHeight\']
- RenderDevice.FullscreenRefreshRate = settings[\'ResolutionHertz\']
- RenderDevice.Fullscreen = settings[\'FullscreenEnabled\']
- RenderDevice.FullscreenOutputIndex = settings[\'FullscreenScreen\']
- RenderDevice.VSyncEnable = settings[\'VSyncEnabled\']
- PostProcess.UIBrightnessNorm = settings[\'Brightness\']
- --[[
- Scripts/UserOptions/Options/Physics.lua
- ]]--
- local quality = settings[\'PhysicsQuality\']
- log:info("setting physics quality : "..quality)
- if(quality > 0.8) then
- applySettings([=[
- Physics.EnableFollowWheelRaycasts true
- Physics.EnableASyncWheelRaycasts true
- ]=])
- else
- applySettings([=[
- Physics.EnableFollowWheelRaycasts false
- Physics.EnableASyncWheelRaycasts true
- ]=])
- end
- --[[
- Scripts/UserOptions/Options/Sound.lua
- ]]--
- local quality = settings[\'AudioQuality\']
- log:info("setting sound quality : "..quality)
- if(quality > 0.8) then
- applySettings([=[
- Audio.MaxAudibleSoundCount 15
- Audio.AudioCoreCpuLoadLimit 50
- ]=])
- else
- applySettings([=[
- Audio.MaxAudibleSoundCount 8
- Audio.AudioCoreCpuLoadLimit 30
- ]=])
- end
Advertisement
Add Comment
Please, Sign In to add comment