Advertisement
Guest User

initfs

a guest
Feb 3rd, 2014
2,365
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 238.85 KB | None | 0 0
  1.  ÑÎ    °„N“2”Ð`rJµ‘êTjÀ?™¥k­ë±®E âÎÁym3ê@5uAi¶9”¸MÜ>W·f\Ÿ 7Ëß9WN™y>fÂæ*T|¬òîìe‹k÷Ü ÷Pð©0œ  ]‚È8£ªã @Ó¾›Gû@ìËB„b-äÿEn,be*ï    Þ3»'sõ¯G“Ô„dÛKó¹Hž13³® :t‚÷4,mÌ|£®¼}Yü±tá:SZ‘?+‚ïm#ÿˆrêü^H4eXÇ%t3eSE×[õ?úÆʲL™@ò{þž£‹JeKU‰q;Mì   ÆŸcýrÓs2öex                              {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{   ±í‚z$file qfs
  2. initfs_Win32 name default_settings.cfg payload 8Core.GameConfigurationName   gameconfigurations/warsaw
  3.  ‚Œ$file ‚fs
  4. initfs_Win32 name &Levels/SP/SP_Prologue/SP_Prologue.cfg payload 8Core.GameConfigurationName   gameconfigurations/warsaw
  5.  ‚Œ$file ‚fs
  6. initfs_Win32 name &Levels/SP/SP_Shanghai/SP_Shanghai.cfg payload 8Core.GameConfigurationName   gameconfigurations/warsaw
  7.  ‚…$file |fs
  8. initfs_Win32 name  Levels/SP/SP_Naval/SP_Naval.cfg payload 8Core.GameConfigurationName   gameconfigurations/warsaw
  9.  ‚Œ$file ‚fs
  10. initfs_Win32 name &Levels/SP/SP_Airfield/SP_Airfield.cfg payload 8Core.GameConfigurationName   gameconfigurations/warsaw
  11.  ‚‡$file ~fs
  12. initfs_Win32 name "Levels/SP/SP_Prison/SP_Prison.cfg payload 8Core.GameConfigurationName   gameconfigurations/warsaw
  13.  ‚$file xfs
  14. initfs_Win32 name Levels/SP/SP_Dam/SP_Dam.cfg payload 8Core.GameConfigurationName   gameconfigurations/warsaw
  15.  ‚ƒ$file zfs
  16. initfs_Win32 name Levels/SP/SP_Suez/SP_Suez.cfg payload 8Core.GameConfigurationName   gameconfigurations/warsaw
  17.  ‚‡$file ~fs
  18. initfs_Win32 name "Levels/MP/MP_Damage/MP_Damage.cfg payload 8Core.GameConfigurationName   gameconfigurations/warsaw
  19.  ‚‡$file ~fs
  20. initfs_Win32 name "Levels/MP/MP_Resort/MP_Resort.cfg payload 8Core.GameConfigurationName   gameconfigurations/warsaw
  21.  ‚Ž$file „fs
  22. initfs_Win32 name (Levels/MP/MP_Abandoned/MP_Abandoned.cfg payload 8Core.GameConfigurationName   gameconfigurations/warsaw
  23.  ‚Š$file €fs
  24. initfs_Win32 name $Levels/MP/MP_Flooded/MP_Flooded.cfg payload 8Core.GameConfigurationName   gameconfigurations/warsaw
  25.  ‚Š$file €fs
  26. initfs_Win32 name $Levels/MP/MP_Tremors/MP_Tremors.cfg payload 8Core.GameConfigurationName   gameconfigurations/warsaw
  27.  ‚…$file |fs
  28. initfs_Win32 name  Levels/MP/MP_Siege/MP_Siege.cfg payload 8Core.GameConfigurationName   gameconfigurations/warsaw
  29.  ‚Š$file €fs
  30. initfs_Win32 name $Levels/MP/MP_Journey/MP_Journey.cfg payload 8Core.GameConfigurationName   gameconfigurations/warsaw
  31.  ‚‡$file ~fs
  32. initfs_Win32 name "Levels/MP/MP_Prison/MP_Prison.cfg payload 8Core.GameConfigurationName   gameconfigurations/warsaw
  33.  ‚…$file |fs
  34. initfs_Win32 name  Levels/MP/MP_Naval/MP_Naval.cfg payload 8Core.GameConfigurationName   gameconfigurations/warsaw
  35.  ‚Š$file €fs
  36. initfs_Win32 name $Levels/MP/MP_TheDish/MP_TheDish.cfg payload 8Core.GameConfigurationName   gameconfigurations/warsaw
  37.  ‚$file †fs
  38. initfs_Win32 name *Levels/MP/MP_Playground/MP_Playground.cfg payload 8Core.GameConfigurationName   gameconfigurations/warsaw
  39.  ‚‚$file yfs
  40. initfs_Win32 name Levels/FrontEnd/FrontEnd.cfg payload 8Core.GameConfigurationName   gameconfigurations/warsaw
  41.  ‚„$file {fs
  42. initfs_Win32 name XP1/Levels/XP1_001/XP1_001.cfg payload 8Core.GameConfigurationName   gameconfigurations/warsaw
  43.  ‚„$file {fs
  44. initfs_Win32 name XP1/Levels/XP1_002/XP1_002.cfg payload 8Core.GameConfigurationName   gameconfigurations/warsaw
  45.  ‚„$file {fs
  46. initfs_Win32 name XP1/Levels/XP1_003/XP1_003.cfg payload 8Core.GameConfigurationName   gameconfigurations/warsaw
  47.  ‚„$file {fs
  48. initfs_Win32 name XP1/Levels/XP1_004/XP1_004.cfg payload 8Core.GameConfigurationName   gameconfigurations/warsaw
  49.   ‚ã$file Ùname database.dbmanifest payload ²<?xml version="1.0"    encoding="UTF-8"?>
  50. <Database id="Warsaw" family="Venice" displayName="WarsawDev Database" pipelineTag="Venice" licensee="BF">
  51.     <Settings>
  52.         <Setting name='UseSparseSerialization' value='false'/>
  53.     </Settings>
  54.    
  55.     <EditorSettings>
  56.         <EditorSetting Name="AudioSystemAsset">Sound/AudioSystem</EditorSetting>
  57.         <EditorSetting Name="SoundStatesAsset">Sound/SoundStates</EditorSetting>
  58.         <EditorSetting Name="VoiceOverSystemAsset">Sound/VO/VO_System</EditorSetting>
  59.         <EditorSetting Name="AdditionalGameViewConfigAsset">EditorData/GameViewConfigAsset</EditorSetting>
  60.         <EditorSetting Name="TagDatabaseHost">DICE-SQL2008</EditorSetting>
  61.         <EditorSetting Name="TagDatabaseName">warsaw_tags</EditorSetting>
  62.         <EditorSetting Name="TagDatabaseUser">FrostEd</EditorSetting>
  63.         <EditorSetting Name="TagDatabasePwd">CCei2E2hwTXZ</EditorSetting>
  64.     </EditorSettings>
  65.    
  66.     <!-- Domain configuration    
  67.       -->
  68.  
  69.     <Domain name="Source"   root="Source" isReadOnly="true">
  70.         <EmergencyBindings>
  71.             <Type name="TextureBaseAsset" target="Textures/white"/>
  72.             <Type name="ShaderGraph" target="Shaders/debug/black"/>
  73.         </EmergencyBindings>
  74.    <WellKnownNamedAssets>
  75.      <Type name="EntityPipeline.EditorMaterialGridData" target="Materials/MaterialGrid"/>
  76.      <Type name="Entity.EffectParameterList" target="FX/GlobalEffectParameterList"/>
  77.    </WellKnownNamedAssets>
  78.  </Domain>
  79.     <Domain name="Temp" root="db/Temp" isEphemeral='true'>
  80.         <Import domain="Source" readOnly='true'/>
  81.     </Domain>
  82.     <Domain name="Win32" root="Output/Win32" isEphemeral='true' isTargetDomain='true'/>
  83.     <Domain name="Xenon" root="Output/Xenon" isEphemeral='true' isTargetDomain='true'/>
  84.     <Domain name="Ps3" root="Output/Ps3" isEphemeral='true' isTargetDomain='true'/>
  85.     <Domain name="DedicatedServer" root="Output/Server" isEphemeral='true' isTargetDomain='true'/>
  86.     <Domain name="DedicatedServerGen3" root="Output/ServerGen3" isEphemeral='true' isTargetDomain='true'/>
  87.   <Domain   name="Gen4a" root="Output/Gen4a" isEphemeral='true' isTargetDomain='true'/>
  88.   <Domain   name="Gen4b" root="Output/Gen4b" isEphemeral='true' isTargetDomain='true'/>
  89.   <Domain   name="Editor" root="Output/Editor" isEphemeral='true'/>
  90. </Database>
  91.  ‚±$file §name Scripts/Game/BugCommands.lua payload ÷Commands =
  92. {  
  93.     -- Bug needed for when using Trigger bug in B4Bug, info is used for all bugs
  94.     StandardB4BugBug =
  95.     {
  96.         Name = "Standard B4Bug bug",
  97.         Title = "Venice",
  98.         Menu = "Bugs",
  99.         AutoB4Bug = true,
  100.         IsStandardBug = true,
  101.        
  102.         Information =
  103.         {
  104.             "Field" , "Issue Type" , "Bug",
  105.             "Field" , "Priority" , "Minor (C, V3, L3)",
  106.             "Field" , "Assignee" , "Automatic",
  107.             "Field" , "Report Method" , "B4Bug",
  108.             "Field" , "Milestone Hindering" , "None",
  109.             "Field" , "Language" , "English",
  110.             "Field" , "User Path" , "Probable",
  111.             "RPCGet", "Game Level" , "LocalPlayer.getClientLevelName",
  112.            
  113.             "Field" , "Description" , "\nSessionOId: ",
  114.             "RPCGet", "Description" , "BugManager.getSessionOId",
  115.             "Field" , "Description" , "\nFrostbite Release: ",
  116.             "RPCGet", "Description" , "BugManager.getFrostbiteRelease",
  117.             "Field" , "Description" , "\nSoldier position: ",
  118.             "RPCGet", "Description" , "LocalPlayer.getPlayerPosition",
  119.             "Field" , "Description" , "\nCurrent camera position: ",
  120.             "RPCGet", "Description" , "DebugCam.getCurrentCameraPosition",
  121.            
  122.             "Field" , "Environment" , "\nOS Version: ",
  123.             "RPCGet", "Environment" , "BugManager.getOSInfo",
  124.             "Field" , "Environment" , "\nGPU description: ",
  125.             "RPCGet", "Environment" , "DxRenderer.AdapterDescription",
  126.             "Field" , "Environment" , "\nGPU driver version: ",
  127.             "RPCGet", "Environment" , "DxRenderer.AdapterDriverVersion",
  128.            
  129.             "RPCGet", "Platform" , "BugManager.getPlatform",
  130.             "RPCGet", "Reported By (Game Team)" , "BugManager.getReportedBy",
  131.             "RPCGet", "Found in Change List (Game)" , "BugManager.getChangelist",
  132.             "RPCGet", "Found in Change List (Frostbite)" , "BugManager.getFrostbiteChangelist",
  133.             "RPCGet" , "Juice Session ID" , "BugManager.getjuiceSessionId",
  134.         },
  135.        
  136.         RPCs =
  137.         {
  138.             "BugManager.forwardTrace",
  139.         },
  140.     },
  141.        
  142.     TestBug1 =
  143.     {
  144.         Name = "Testbug",
  145.         Title = "Venice",
  146.         Menu = "Bugs",
  147.         AutoB4Bug = true,
  148.        
  149.         Information =
  150.         {
  151.         },
  152.        
  153.         RPCs =
  154.         {
  155.         },
  156.     },
  157.    
  158.     TestBug2 =
  159.     {
  160.         Name = "Biometricsbug",
  161.         Title = "Warsaw",
  162.         Menu = "Bugs",
  163.         AutoB4Bug = false,
  164.        
  165.         Information =
  166.         {
  167.         },
  168.        
  169.         RPCs =
  170.         {
  171.             "BugManager.RPCHandler"
  172.         },
  173.     },
  174.    
  175.     TestCommand1 =
  176.     {
  177.         Name = "Testcommand 1",
  178.         Title = "Venice",
  179.         Menu = "QA Commands",
  180.         AutoB4Bug = false,
  181.        
  182.         RPCs =
  183.         {
  184.             "DebugRender.DrawStatsEnable 1",
  185.             "UI.DrawEnable 0",
  186.         },
  187.        
  188.         ReverseRPCs =
  189.         {
  190.             "DebugRender.DrawStatsEnable 0",
  191.             "UI.DrawEnable 1",
  192.         },
  193.     },
  194.  
  195.     TestCommand2 =
  196.     {
  197.         Name = "Testcommand 2",
  198.         Title = "Venice",
  199.         Menu = "QA Commands",
  200.         AutoB4Bug = false,
  201.        
  202.         RPCs =
  203.         {
  204.             "Debug.DrawScreenCenterHelper 1",
  205.             "Render.ForceFov 100",
  206.         },
  207.        
  208.         ReverseRPCs =
  209.         {
  210.             "Debug.DrawScreenCenterHelper 0",
  211.             "Render.ForceFov 65",
  212.         },
  213.     },
  214.    
  215.     AnimationCommand1 =
  216.     {
  217.         Name = "Animation Test",
  218.         Title = "Venice",
  219.         Menu = "Animation",
  220.         AutoB4Bug = false,
  221.        
  222.         RPCs =
  223.         {
  224.             "AntDebug.DrawDebugInfo 1",
  225.             "AntDebug.DrawSignals 1",
  226.             "UI.DrawEnable 0",
  227.         },
  228.        
  229.         ReverseRPCs =
  230.         {
  231.             "AntDebug.DrawDebugInfo 0",
  232.             "AntDebug.DrawSignals 0",
  233.             "UI.DrawEnable 1",
  234.         },
  235.     },
  236.  
  237.     WeaponCommand1 =
  238.     {
  239.         Name = "Show weapon info",
  240.         Title = "Venice",
  241.         Menu = "Weapons",
  242.         AutoB4Bug = false,
  243.        
  244.         RPCs =
  245.         {
  246.             "AntDebug.DrawDebugInfo 1",
  247.             "Debug.DrawScreenCenterHelper 1",
  248.             "clientsoldier.debug.firingstats 1",
  249.         },
  250.        
  251.         ReverseRPCs =
  252.         {
  253.             "AntDebug.DrawDebugInfo 0",
  254.             "Debug.DrawScreenCenterHelper 0",
  255.             "clientsoldier.debug.firingStats 0",
  256.         },
  257.     }, 
  258.  
  259.     WeaponCommand2 =
  260.     {
  261.         Name = "Set next weapon",
  262.         Title = "Venice",
  263.         Menu = "Weapons",
  264.         AutoB4Bug = false,
  265.        
  266.         RPCs =
  267.         {
  268.             "LocalPlayer.setNextAvailableWeaponFromSet",
  269.         },
  270.        
  271.         ReverseRPCs =
  272.         {
  273.         },
  274.     }, 
  275. }
  276.  ‚ž#$file ”#name Scripts/Game/Configure.lua payload æ"--
  277. -- Game configuration script
  278. --
  279.  
  280. -- Local helper functions
  281. function commandLine:lookup(name, default)
  282.     local value = self[string.lower(name)]
  283.  
  284.     return value or default
  285. end
  286.  
  287. local function cmdLineSwitch(switchName, fieldName, inTable)
  288.     local table = inTable or Game
  289.  
  290.     if (commandLine:lookup(switchName)) then
  291.         table[fieldName] = true
  292.     end
  293. end
  294.  
  295. function cmdLineOption(optionName, default)
  296.     return commandLine:lookup(optionName, default)
  297. end
  298.  
  299. local function readCfg(name)
  300.     log:debug("reading cfg: " .. name)
  301.     core.readKeyValueCfg(name, _G)
  302. end
  303.  
  304. local function applySettings(settings)
  305.     core.parseKeyValueCfgString(settings, _G)
  306. end
  307.  
  308. -- Basic settings
  309.  
  310. core.import("Scripts/Game/Settings.lua")
  311.  
  312. -- Import old-school cfg files for backwards compatibility
  313. local defaultConfigFile = commandLine:lookup("defaultConfig")
  314. if defaultConfigFile then
  315.     readCfg(defaultConfigFile)
  316. else
  317.     readCfg("Scripts/Game.cfg")
  318. end
  319.  
  320. --------------------------------------------------------------------------
  321. -- Handle any Drone override options
  322. --
  323.  
  324. for i,v in ipairs(commandLine) do
  325.     if string.lower(v) == "-customconfig" then
  326.         if commandLine[i+1]:find("/") then
  327.             readCfg(commandLine[i+1])
  328.         else
  329.             readCfg("Scripts/" .. commandLine[i+1])
  330.         end
  331.     end
  332. end
  333.  
  334. local editorActive = false
  335. local liveEditingEnable = commandLine:lookup("core.liveeditingenable")
  336. if liveEditingEnable then
  337.     if liveEditingEnable == "1" or liveEditingEnable == "true" then
  338.         editorActive = true
  339.     end
  340. end
  341.  
  342. --------------------------------------------------------------------------
  343. -- Handle local overrides
  344. --
  345. -- This needs to run before we load the level cfg as we can specify the fast startup level name here!
  346.  
  347. if not commandLine:lookup('noLocalCfg', false) then
  348.     -- Read common local cfg file
  349.     readCfg("/local/local.cfg", _G)
  350.  
  351.     if editorActive == true then
  352.         -- Read local cfg with editor specific settings
  353.         readCfg("/local/localeditor.cfg", _G)
  354.     else
  355.         -- Read local cfg with standalone specific settings
  356.         readCfg("/local/localgame.cfg", _G)
  357.     end
  358. end
  359.  
  360. --------------------------------------------------------------------------
  361. -- Handle level specific configuration
  362. --
  363.  
  364. local levelName = commandLine:lookup("level")
  365. if not levelName then
  366.     local gameTable = _G["Game"]
  367.     if gameTable then
  368.         levelName = gameTable["Level"]
  369.     end
  370. end
  371.  
  372. -- Level names without slashes are assumed to be shorthand for
  373. -- Levels/[(SP|MP)/]name/name to go with Warsaw's epic level naming convention
  374. if levelName and not string.find(levelName, "/") then
  375.     if string.len(levelName) > 2 and (string.upper(string.sub(levelName, 1, 2)) == "SP" or string.upper(string.sub(levelName, 1, 2)) == "MP") then
  376.         levelName = "Levels/" .. string.sub(levelName, 1, 2) .. "/" .. levelName .. "/" .. levelName
  377.     else
  378.         levelName = "Levels/" .. levelName .. "/" .. levelName
  379.     end
  380.     _G["Game"]["Level"] = levelName
  381. end
  382.  
  383. if levelName then
  384.     readCfg(levelName .. ".cfg")
  385. end
  386.  
  387. --------------------------------------------------------------------------
  388. -- Handle commandline options
  389. --
  390. --   Commandline options effectively override any settings specified
  391. --   elsewhere.
  392. --
  393.  
  394. if not Game then Game = {} end
  395.  
  396. cmdLineSwitch("verbose", "Verbose")
  397.  
  398. if Game.Verbose then
  399.     print "------------Commandline parameters:"
  400.     for k,v in pairs(commandLine) do print (k,v) end
  401. end
  402.  
  403. -- Handle <Table>.<Member> settings
  404.  
  405. if allowCommandlineSettings then
  406.     for _,option in ipairs(commandLine) do
  407.         local table,member = string.match(option, "^%-(%w+)%.(%w+)")
  408.  
  409.         if table and member then
  410.             local value = commandLine[_ + 1]
  411.             if not _G[table] then _G[table] = {} end
  412.             _G[table][member] = value
  413.         else
  414.             local varName = string.match(option, "^%-([%w-]+)")
  415.             if varName then
  416.                 local value = commandLine[_ + 1]
  417.                 if value then
  418.                     _G[varName] = value
  419.                 end
  420.             end
  421.         end
  422.        
  423.     end
  424. end
  425.  
  426. --------------------------------------------------------------------------
  427. -- Force specific settings when running through FrostEd
  428. --
  429.  
  430. if editorActive then
  431.     Online.Backend = "Backend_Lan"
  432.     Online.UseFallback = true
  433.     Online.ClientIsPresenceEnabled = false
  434.     Online.ServerIsPresenceEnabled = false
  435.  
  436.     applySettings([=[
  437.         Server.forceStartMapOnLoad true
  438.         Network.GhostCountWarning true
  439.         Network.GhostCountWarningInfo true
  440.         Game.DisablePreRound true
  441.     ]=])
  442. end
  443.  
  444. --
  445.  
  446. core.import("Scripts/Game/DebugSettings.lua")
  447.   ‚‡$file ýname Scripts/Game/DebugSettings.lua payload Ë
  448. core = require "Frost.Core"
  449. logging = require "Frost.Logging"
  450.  
  451. local function applySettings(settings)
  452.     core.parseKeyValueCfgString(settings, _G) end
  453.    
  454. -- helpers
  455.  
  456. local function getSetting(key)
  457.     container, field = string.match(key, "(%w+)%.(%w+)");
  458.     if container and field then
  459.         if not _G[container] then
  460.             _G[container] = {}
  461.         end
  462.         return _G[container][field]
  463.     else
  464.         return _G[key]
  465.     end
  466. end
  467.  
  468. local function setSetting(key, value)
  469.     container, field = string.match(key, "(%w+)%.(%w+)");
  470.     if container and field then
  471.         if not _G[container] then
  472.             _G[container] = {}
  473.         end
  474.         _G[container][field] = value
  475.     else
  476.         _G[key] = value
  477.     end
  478. end
  479.  
  480. -- thin-client settings: 0=Off 1=Console
  481.  
  482. setSetting("thin-client", cmdLineOption("thinClient", getSetting("thin-client")))
  483.  
  484. if getSetting("thin-client") == "1" then
  485.     applySettings([=[
  486.         RenderDevice.NullDriverEnable true
  487.         RenderDevice.CreateMinimalWindow true
  488.         Core.HardwareProfile Hardware_Low
  489.         Core.HardwareGpuBias -1
  490.         DebrisSystem.Enable false
  491.         Client.WorldRenderEnabled false
  492.         Client.EmittersEnabled false
  493.         Client.TerrainEnabled false
  494.         Client.MeshMergingEnabled false
  495.         Client.OvergrowthEnabled false
  496.         Client.OccludersEnabled true
  497.         Decal.SystemEnable false
  498.         Render.DebugRendererEnable false
  499.         UI.HudEnable false
  500.         UI.System UISystem_None    
  501.         EmitterSystem.Enable false
  502.         Window.Fullscreen false
  503.         Render.Enable false
  504.         Render.NullRendererEnable true
  505.         disable-input true
  506.         scripted-input true
  507.         use-script-input true
  508.         disable-client-correction true
  509.         disable-client-animations true
  510.         Sound.Enable false
  511.         disable-entities true
  512.         disable-camera true
  513.         Texture.LoadingEnabled false
  514.         Texture.RenderTexturesEnabled false
  515.         Mesh.LoadingEnabled false
  516.         ShaderSystem.DatabaseLoadingEnable false
  517.         disable-audio-loading true
  518.         GameTime.ForceUseSleepTimer true
  519.         ShaderSystem.DxFrameVertexBufferPoolSize 16
  520.         ShaderSystem.FrameMemoryBufferSize 16
  521.         PerformanceTracker.Enabled false
  522.     ]=])
  523. end
  524.  
  525. -- testingEnabled 0=Off, 1=On
  526.  
  527. setSetting("testing-enabled", cmdLineOption("testingEnabled", getSetting("testing-enabled")))
  528.  
  529. if getSetting("testing-enabled") == "1" then
  530.     applySettings([=[
  531.         Server.EnableMonkeyTestLayers true
  532.         add-debug-entity true
  533.         scripted-input true
  534.         use-script-input true
  535.         Juice.logClientTestingEvents true
  536.     ]=])
  537. end
  538.  
  539.   ‚§$file name Scripts/Game/Settings.lua payload ð--
  540. -- Define basic settings tables
  541. --
  542.  
  543. Game = {
  544.     LogFileEnable = true,
  545. }
  546.  
  547. Client = {
  548. }
  549.  
  550. Server = {
  551. }
  552.  
  553. ShaderSystem = {
  554.     DebugNonFiniteColor = { x=0, y=0, z=0 },
  555. }
  556.  
  557. NetworkSettings = {
  558.     Version = "V0.0",
  559.     ProtocolVersion = 0,
  560.     TitleId = 4,
  561.     ClientPort = 1001,
  562.     ServerPort = 1003,
  563.     MaxGhostCount = 1024,
  564.     MaxClientCount = 64,
  565. }
  566.  
  567. Core = {
  568. }
  569.   ‚á$file ×name Scripts/Game/Startup.lua payload «--
  570. -- Game startup script
  571. --
  572.  
  573. require "vfs"
  574. core = require "Frost.Core"
  575. logging = require "Frost.Logging"
  576.  
  577. -- The global platform variable can be used to detect which platform
  578. -- we are currently executing on
  579.  
  580. platform = dice.getCurrentPlatformName()
  581.  
  582. -- Set up a logger which logs to the console (not stdout)
  583. -- By default, we only show warnings or worse. For more verbose
  584. -- diagnostics, you may set the level to INFO or DEBUG.
  585.  
  586. log = logging.ingameConsole()
  587. log:setLevel(logging.DEBUG)
  588.  
  589. core.import("Scripts/Game/Configure.lua")
  590.  
  591.   ‚¾!$file ´!name Scripts/GlobalSettings.lua payload †!--
  592. -- Global Settings
  593. --
  594. --  These are front-end settings exposed to the end-user. The idea is that
  595. --  settings that are interesting to the majority of end-users should be
  596. --  defined here to enable tools to query for exposed options.
  597. --
  598. --  This file is imported by Pipeline, Game, etc
  599. --
  600. -- *********************************************************
  601. -- NOTE: This is largely deprecated and will be phased out!
  602. -- *********************************************************
  603.  
  604. GlobalSettings = {}
  605. GlobalSettings.Meta = {}
  606.  
  607. local function ValidateSetting(name, value)
  608.     assert(name and value)
  609.  
  610.     local meta = GlobalSettings.Meta[name]
  611.     local lowerValue = string.lower(value)
  612.  
  613.     if meta then
  614.         for _,v in ipairs(meta.validValues) do
  615.             if string.lower(v[1]) == lowerValue then
  616.                 return v[1]
  617.             end
  618.         end
  619.  
  620.         -- We intentionally don't build this string in the loop above
  621.         -- in an attempt to generate less ephemeral garbage
  622.  
  623.         local choices = nil
  624.  
  625.         for _,v in ipairs(meta.validValues) do
  626.             if choices then
  627.                 choices = choices .. ", " .. v[1]
  628.             else
  629.                 choices = v[1]
  630.             end
  631.         end
  632.  
  633.         error("Setting '" .. name .. "' cannot be set to specified value: " .. value .. ", valid values are " .. choices)
  634.     else
  635.         error("Undefined setting - '" .. name .. "'")
  636.     end
  637. end
  638.  
  639. local function DefineSetting(descriptionTable)
  640.     assert(descriptionTable[1] and descriptionTable[2], "Settings must have name and default values!")
  641.    
  642.     local name = descriptionTable[1];
  643.     local defaultValue = descriptionTable[2];
  644.    
  645.     GlobalSettings[name] = defaultValue
  646.     GlobalSettings.Meta[name] = {}
  647.  
  648.     GlobalSettings.Meta[name].default = defaultValue
  649.    
  650.     if descriptionTable.description then
  651.         GlobalSettings.Meta[name].description = descriptionTable.description
  652.     end
  653.  
  654.     if descriptionTable.validValues then
  655.         GlobalSettings.Meta[name].validValues = descriptionTable.validValues
  656.     end
  657.  
  658.     if descriptionTable.commandLine then
  659.         GlobalSettings.Meta[name].commandLine = descriptionTable.commandLine
  660.     end
  661.  
  662.     if descriptionTable.envVar then
  663.         GlobalSettings.Meta[name].envVar = descriptionTable.envVar
  664.     end
  665.    
  666.     -- Validate default vs validValues
  667.     ValidateSetting(name, defaultValue)
  668. end
  669.  
  670. function ApplyCommandLineSettings(commandLine)
  671.     for setting,meta in pairs(GlobalSettings.Meta) do
  672.         if meta.commandLine then
  673.             local options = meta.commandLine
  674.  
  675.             for _,entry in ipairs(options) do
  676.                 local k = entry[1]
  677.                 local v = entry[2]
  678.  
  679.                 local value = commandLine[string.lower(k)]
  680.  
  681.                 if value then
  682.                     if not v then
  683.                         SetSetting(setting, value, string.format(" (due to -%s %s)", k, value))
  684.                     else
  685.                         SetSetting(setting, v, string.format(" (due to -%s)", k))
  686.                     end
  687.                 end
  688.             end
  689.         end
  690.     end
  691. end
  692.  
  693. function ApplyEnvironmentVariableSettings()
  694.     for setting,meta in pairs(GlobalSettings.Meta) do
  695.         if meta.envVar then
  696.             local envVarValue = os.getenv(meta.envVar)
  697.  
  698.             if envVarValue then
  699.                 SetSetting(setting, envVarValue)
  700.             end
  701.         end
  702.     end
  703. end
  704.  
  705.  
  706. function SetSetting(settingName, value, source)
  707.     if not GlobalSettings[settingName] then
  708.         error("Attempted set of unknown setting '" .. settingName .. "'")
  709.     else
  710.         GlobalSettings[settingName] = ValidateSetting(settingName, value)
  711.  
  712.         if log then
  713.             log:debug("Set setting " .. settingName .. " to value: " .. value .. (source or ""))
  714.         end
  715.     end
  716. end
  717.  
  718. function GetGlobalSetting(settingName)
  719.     if not GlobalSettings[settingName] then
  720.         error("Attempted get of unknown setting '" .. settingName .. "'")
  721.     else
  722.         return GlobalSettings[settingName]
  723.     end
  724. end
  725.  
  726. --------------------------------------------------------------------------
  727. -- Setting definitions
  728. --
  729.  
  730. DefineSetting {
  731.     "Cache", "Enabled",
  732.  
  733.     validValues = {
  734.         { "Enabled",        "Normal cache mode" },
  735.         { "Disabled",       "No caching" },
  736.         { "ReadOnly",       "Only read from caches (never upload)" },
  737.         { "WriteOnly",      "Only write to caches (useful for fixing problems)" }
  738.     },
  739.     description = "Cache Control",
  740.     commandLine = {
  741.         { "cacheMode" },
  742.         { "nocache",        "Disabled" },
  743.         { "readonlyCache",  "ReadOnly" },
  744.         { "writeOnlyCache", "WriteOnly" },
  745.         { "cache",          "Enabled" }
  746.     },
  747.     envVar = "PIPELINE_CACHE_MODE"
  748. }
  749.   ‚Ô$file Êname Scripts/MayaExport/Startup.lua payload ˜--
  750. -- MayaExport startup script
  751. --
  752.  
  753. MayaExport = {
  754.     -- When Verbose is set to true, the program will emit messages to stdout,
  755.     -- indicating what commands and responses are sent between the pipeline
  756.     -- and the exporter process
  757.    
  758.     Verbose = false,
  759.     IdleTimeout = 120,
  760.     MaxConcurrentSessionCount = 2,
  761.     SafeMode = true,
  762.    
  763.     contexts = {
  764.         -- Default context
  765.         {
  766.             name='default',
  767.             recycleMode='always',
  768.             enableButtonBasher=true
  769.         },
  770.         -- Granny Context
  771.         {
  772.             name='granny',
  773.             recycleMode='always',
  774.             enableButtonBasher=true
  775.         },
  776.         -- Import Context
  777.         {
  778.             name='import',
  779.             recycleMode='keepfileopened',
  780.             enableButtonBasher=true
  781.         },
  782.         -- Havok context
  783.         {
  784.             name='havok',
  785.             recycleMode='always',
  786.             enableButtonBasher=true
  787.         }
  788.     }
  789. }
  790.   ‚„$file úname  Scripts/Packages/Frost/Core.lua payload Ç--
  791. -- Various bits of Lua scaffolding
  792. --
  793.  
  794. require "os"
  795. require "vfs"
  796.  
  797. module("Frost.Core", package.seeall);
  798.  
  799. -- Execute a script
  800. --
  801. --   If flags contains a "silent=true" flag, then no message
  802. --   will be emitted if the script can't be found
  803. --
  804.  
  805. -- Execute a script, optionally returning an error message if it fails
  806.  
  807. function import(script, friendlyName, flags)
  808.     local name = friendlyName or script
  809.  
  810.     local success, err = pcall(dofile,script)
  811.    
  812.     if not success and not (flags and flags.silent) then
  813.         error("Could not import script: " .. name .. " error: " .. err)
  814.     end
  815. end
  816.  
  817. -- Execute a new-style config file
  818.  
  819. local function executeCfg(file)
  820.     if log then
  821.         log:debug("  Executing new style (lua) config file")
  822.     end
  823.  
  824.     local script = file:read("*all")
  825.  
  826.     local func, err = loadstring(script)
  827.  
  828.     if func then
  829.         func()
  830.     else
  831.         error(err)
  832.     end
  833. end
  834.  
  835. -- Parse a single line containing a key-value pair (and possibly some comments)
  836.  
  837. function parseKeyValueCfgLine(line, targetTable)
  838.     -- Remove comments
  839.  
  840.     line = string.gsub(line, "#.*", "")
  841.     line = string.gsub(line, "//.*", "")
  842.  
  843.     -- Split into key, value pairs
  844.     local key, value = string.match(line, "(%S+)%s+(.+)%s*")
  845.  
  846.     if key and value then
  847.         -- Handle dotted key names
  848.  
  849.         local currentTable = targetTable
  850.         local first, second
  851.         second = key
  852.         repeat
  853.             first, second = string.match(second, "([^%.]+)%.?(.*)")
  854.  
  855.             if first and second then
  856.                 if second:len() == 0 then
  857.                     currentTable[first] = value
  858.                     if log then
  859.                         log:debug(string.format("set %s = %s (from key-value cfg line)", key ,value))
  860.                     end
  861.                 else
  862.                     if not currentTable[first] then
  863.                         currentTable[first] = {}
  864.                     end
  865.                     currentTable = currentTable[first]
  866.                 end
  867.             end
  868.  
  869.         until not second or second:len() == 0
  870.     end
  871. end
  872.  
  873. -- Parse a string of key-value config entries
  874.  
  875. function parseKeyValueCfgString(str, targetTable)
  876.     for line in string.gmatch(str, "[^\n]*") do
  877.         parseKeyValueCfgLine(line, targetTable)
  878.     end
  879. end
  880.  
  881. -- Parse an old-style key-value CFG file
  882.  
  883. function readKeyValueCfg(file, targetTable)
  884.     if log then
  885.         log:debug("Reading cfg '" .. file .. "'")
  886.     end
  887.  
  888.     local f = vfs.open(file, "r")
  889.    
  890.     if not f then
  891.         -- File not found
  892.         if log then
  893.             log:debug("Failed to find file '" .. file .. "'")
  894.         end
  895.            
  896.         return
  897.     end
  898.  
  899.     local firstLine = true
  900.  
  901.     while true do
  902.         local line = f:read("*line")
  903.        
  904.         if not line then
  905.             break
  906.         end
  907.  
  908.         if firstLine and line == "#!/bin/lua" then
  909.             executeCfg(f)
  910.         end
  911.        
  912.         parseKeyValueCfgLine(line, targetTable)
  913.     end
  914.    
  915.     f:close();
  916. end
  917.   ‚Ç!$file ½!name #Scripts/Packages/Frost/Logging.lua payload ‡!-- Logging package
  918.  
  919. local type, table, string, assert, _tostring = type, table, string, assert, tostring
  920.  
  921. require "vfs"
  922.  
  923. module("Frost.Logging", package.seeall)
  924.  
  925. -- The DEBUG Level designates fine-grained informational events that are most
  926. -- useful to debug an application
  927. DEBUG = "DEBUG"
  928.  
  929. -- The INFO level designates informational messages that highlight the
  930. -- progress of the application at coarse-grained level
  931. INFO = "INFO"
  932.  
  933. -- The WARN level designates potentially harmful situations
  934. WARN = "WARN"
  935.  
  936. -- The ERROR level designates error events that might still allow the
  937. -- application to continue running
  938. ERROR = "ERROR"
  939.  
  940. -- The FATAL level designates very severe error events that will presumably
  941. -- lead the application to abort
  942. FATAL = "FATAL"
  943.  
  944. local LEVEL = {
  945.     [DEBUG] = 1,
  946.     [INFO]  = 2,
  947.     [WARN]  = 3,
  948.     [ERROR] = 4,
  949.     [FATAL] = 5,
  950. }
  951.  
  952.  
  953. -------------------------------------------------------------------------------
  954. -- Creates a new logger object
  955. -------------------------------------------------------------------------------
  956. function new(append)
  957.  
  958.     if type(append) ~= "function" then
  959.         return nil, "Appender must be a function."
  960.     end
  961.  
  962.     local logger = {}
  963.     logger.level = DEBUG
  964.         logger.append = append
  965.  
  966.     logger.setLevel = function (self, level)
  967.         assert(LEVEL[level], string.format("undefined level `%s'", tostring(level)))
  968.         self.level = level
  969.     end
  970.  
  971.     logger.log = function (self, level, message)
  972.         assert(LEVEL[level], string.format("undefined level `%s'", tostring(level)))
  973.         if LEVEL[level] < LEVEL[self.level] then
  974.             return
  975.         end
  976.         if type(message) ~= "string" then
  977.           message = tostring(message)
  978.         end
  979.         return logger:append(level, message)
  980.     end
  981.  
  982.     logger.debug = function (logger, message) return logger:log(DEBUG, message) end
  983.     logger.info  = function (logger, message) return logger:log(INFO,  message) end
  984.     logger.warn  = function (logger, message) return logger:log(WARN,  message) end
  985.     logger.error = function (logger, message) return logger:log(ERROR, message) end
  986.     logger.fatal = function (logger, message) return logger:log(FATAL, message) end
  987.     return logger
  988. end
  989.  
  990.  
  991. -------------------------------------------------------------------------------
  992. -- Prepares the log message
  993. -------------------------------------------------------------------------------
  994. function prepareLogMsg(pattern, dt, level, message)
  995.  
  996.     local logMsg = pattern or "%date %level %message\n"
  997.     message = string.gsub(message, "%%", "%%%%")
  998.     logMsg = string.gsub(logMsg, "%%date", dt)
  999.     logMsg = string.gsub(logMsg, "%%level", level)
  1000.     logMsg = string.gsub(logMsg, "%%message", message)
  1001.     return logMsg
  1002. end
  1003.  
  1004.  
  1005. -------------------------------------------------------------------------------
  1006. -- Converts a Lua value to a string
  1007. --
  1008. -- Converts Table fields in alphabetical order
  1009. -------------------------------------------------------------------------------
  1010. function tostring(value)
  1011.   local str = ''
  1012.  
  1013.   if (type(value) ~= 'table') then
  1014.     if (type(value) == 'string') then
  1015.       str = string.format("%q", value)
  1016.     else
  1017.       str = _tostring(value)
  1018.     end
  1019.   else
  1020.     local auxTable = {}
  1021.     table.foreach(value, function(i, v)
  1022.       if (tonumber(i) ~= i) then
  1023.         table.insert(auxTable, i)
  1024.       else
  1025.         table.insert(auxTable, tostring(i))
  1026.       end
  1027.     end)
  1028.     table.sort(auxTable)
  1029.  
  1030.     str = str..'{'
  1031.     local separator = ""
  1032.     local entry = ""
  1033.     table.foreachi (auxTable, function (i, fieldName)
  1034.       if ((tonumber(fieldName)) and (tonumber(fieldName) > 0)) then
  1035.         entry = tostring(value[tonumber(fieldName)])
  1036.       else
  1037.         entry = fieldName.." = "..tostring(value[fieldName])
  1038.       end
  1039.       str = str..separator..entry
  1040.       separator = ", "
  1041.     end)
  1042.     str = str..'}'
  1043.   end
  1044.   return str
  1045. end
  1046.  
  1047. --
  1048. -- Print appender
  1049. --
  1050.  
  1051. function console(logPattern)
  1052.  
  1053.     return new( function(self, level, message)
  1054.                     print(prepareLogMsg(logPattern, os.date(), level, message))
  1055.                     return true
  1056.                 end
  1057.               )
  1058. end
  1059.  
  1060. function ingameConsole()
  1061.  
  1062.     return new( function(self, level, message)
  1063.                     ingamePrint(level, message)
  1064.                     return true
  1065.                 end
  1066.               )
  1067. end
  1068.   ‚‘$file ‡name #Scripts/Pipeline/Configuration.lua payload Ñ--
  1069. -- Pipeline Configuration
  1070. --
  1071. --   This is an internal script used for configuring the pipeline. Normal
  1072. --   users should typically not edit this file, as most end-user settings
  1073. --   are exposed through the GlobalSettings.lua file
  1074. --
  1075.  
  1076. --
  1077. -- Import common settings
  1078. --
  1079.  
  1080. core.import(allScriptsRoot .. "GlobalSettings.lua", "global settings");
  1081.  
  1082. -- Import session startup script, if specified on commandLine
  1083. --
  1084. -- This is used by Drone to change settings
  1085.  
  1086. if commandLine.startupscript then
  1087.     core.import("/data/" .. commandLine.startupScript, _G)
  1088. end
  1089.  
  1090. core.import(scriptsRoot .. "Settings.lua")
  1091.  
  1092. --   -config commandLine switch is used by Drone to configure custom settings
  1093. if commandLine.config then
  1094.     core.readKeyValueCfg("/data/Scripts/" .. commandLine.config, _G)   
  1095. end
  1096.  
  1097. --------------------------------------------------------------------------
  1098. -- Handle commandline options
  1099. --
  1100. --   Commandline options effectively override any settings specified
  1101. --   elsewhere.
  1102. --
  1103.  
  1104. local function cmdLineSwitch(switchName, fieldName)
  1105.     if (commandLine[string.lower(switchName)]) then
  1106.         Pipeline[fieldName] = true
  1107.     end
  1108. end
  1109.  
  1110. local function cmdLineArg(switchName, fieldName)
  1111.     local entry = commandLine[string.lower(switchName)]
  1112.    
  1113.     if (entry) then
  1114.         Pipeline[fieldName] = entry
  1115.         --print("Set " .. fieldName .. " to " .. entry)
  1116.     end
  1117. end
  1118.  
  1119. cmdLineSwitch("debug", "DebugMode");
  1120. cmdLineSwitch("validateData", "ValidateData");
  1121. cmdLineSwitch("addToPerforce", "AddToPerforce");
  1122. cmdLineSwitch("noconsole", "NoConsole");
  1123. cmdLineSwitch("verbose", "Verbose");
  1124. cmdLineSwitch("trace", "EnableTracing");
  1125. cmdLineSwitch("nohal", "DisableHalDevice");
  1126. cmdLineSwitch("trim", "TrimLayout");
  1127. cmdLineSwitch("updateIndex", "UpdateIndexOnly");
  1128.  
  1129. cmdLineArg("opfilter", "OpFilter")
  1130.  
  1131. --
  1132. --  Parse commandline options that may occur multiple times ("list" options)
  1133. --
  1134.  
  1135. ----------------------------------------------------------------------------------------
  1136. --
  1137. -- Diagnostics dump
  1138. --
  1139.  
  1140. if Pipeline.Verbose then
  1141.     print ""
  1142.     print "Pipeline settings summary:"
  1143.     print "------------------------------------------------------"
  1144.    
  1145.     for k,v in pairs(Pipeline) do
  1146.         print(k, v)
  1147.     end
  1148.    
  1149.     print ""
  1150.  
  1151.     print "Command line:"
  1152.     print "------------------------------------------------------"
  1153.    
  1154.     for _,v in pairs(commandLine) do
  1155.         print(_,v)
  1156.     end
  1157.  
  1158.     print ""
  1159. end
  1160.   ‚Ï7$file Å7name Scripts/Pipeline/Settings.lua payload ”7--
  1161. -- Internal Pipeline settings
  1162. --
  1163. --   This is not really the best place to change settings locally,
  1164. --   please see GlobalSettings.lua instead and use it if at all
  1165. --   possible
  1166. --
  1167.  
  1168. local Dx10PathEnable = false
  1169. local Dx10PlusPathEnable = true
  1170. local Dx10Dot1PathEnable = false
  1171. local Dx11PathEnable = true
  1172. local AutoPathEnable = false
  1173. local SkipAllPaths = false
  1174.  
  1175. Pipeline =
  1176. {
  1177.     Verbose = false,
  1178.     ShowReason = true,
  1179.     AddToPerforce = false,
  1180.  
  1181.     -- Debugging/profiling options
  1182.     DebugMode = false,
  1183.     EmitPlaintextDbx = false,
  1184.     EnableTimingLog = false,
  1185.     BundleDebugging = false,
  1186.     ResourceDebugging = false,
  1187.  
  1188.     AsyncOpWrite = true,
  1189.     DumpOplogStats = false,
  1190.  
  1191.     --ServiceMode = true,
  1192. }
  1193.  
  1194. --------------------------------------------------------------
  1195.  
  1196. Core =
  1197. {
  1198.     LogLevel = "Info",
  1199.     StudioBus = "[email protected]"  -- dice-bm150
  1200. }
  1201.  
  1202. Ant =
  1203. {
  1204. --  Setting this to true sometimes breaks reimport
  1205.     ShowSyncDialogOnReimport = false,
  1206. --  Display a warning if 'allow' is true or an error if 'allow' false if an animset is built that requires the traditional runtime. Only relevant when FB_ANT_ROOTCONTROLLER_ENABLE is set to true in diceconfig.
  1207.     AllowTraditionalAssetsWithRootcontrollerEnabled = false,
  1208. }
  1209.  
  1210. Havok =
  1211. {
  1212.     WriteShapeLog = false,
  1213.     WriteMemoryLog = false,
  1214.     WriteMaterialsLog = false,
  1215.     ErrorOnStaticValidationError = true,   
  1216.     DetailExport = true,
  1217.     LogTriangleDensity = true,
  1218.     HavokImportVersion = 1,
  1219. }
  1220.  
  1221. HavokGroupPhysicsEntity =
  1222. {
  1223.     WriteShapeLog = false,
  1224.     WriteMemoryLog = false,
  1225.     WriteMaterialsLog = false,
  1226.     WriteGroupGeneralLog = false,
  1227.     WritePartInfoLog = false,
  1228.     ErrorOnStaticValidationError = true,   
  1229.     DetailExport = true,
  1230.     LogTriangleDensity = true,
  1231.     HavokImportVersion = 1,
  1232.  
  1233.     AllowDefaultCollisionShape = true
  1234. }
  1235.  
  1236. Texture =
  1237. {
  1238.     SkipMipmapsPs3Enable = true,
  1239.     CudaEnable = true,
  1240.     WaitOnCudaEnable = false,
  1241.     MultithreadedCompressionEnable = true,
  1242.     DefaultTextureGroup = "TextureGroups/Default";
  1243. }
  1244.  
  1245. ObjectBlueprint =
  1246. {
  1247.     AllowDefaultPartMaterial = true,
  1248.     AllowDefaultEntityMaterial = true,
  1249. }
  1250.  
  1251. BlueprintImport =
  1252. {
  1253.     UseDefaultRaycastRoot = false,
  1254.     OptimizeGeometries = true,
  1255.     ErrorOnSceneMismatch = true,
  1256. }
  1257.  
  1258. Mesh =
  1259. {
  1260.     Verbose = false,
  1261.     ZOnlyMeshEnable = true,
  1262.     Ps3EdgeEnable = true,
  1263.     Ps3EdgeCompressPositionsEnable = true, 
  1264.     Ps3EdgeCompressIndicesEnable = true,   
  1265.     Ps3EdgeMinSubsetTriangleCount = 0,
  1266.    
  1267.     MinStreamingLodSize = 0,
  1268.  
  1269.     Ps3EdgeKeepIndexBufferEnable = false,
  1270.    
  1271.     SootSkipShaderNames =
  1272.     {
  1273.         "Template",
  1274.         "Tmpl",
  1275.         "NoSoot"
  1276.     },
  1277.     WarningsAsErrorsEnable = false,
  1278.    
  1279.     -- EnlightenSaveInputMeshEnable = true,
  1280.     -- RadiosityPixelSize_Lower = 16.0,
  1281.     -- RadiosityPixelSize_Lowest = 8.0,
  1282.     -- RadiosityPixelSize_Low = 4.0,
  1283.     -- RadiosityPixelSize_Medium = 2.0,
  1284.     -- RadiosityPixelSize_High = 1.0,
  1285.     -- RadiosityPixelSize_Higher = 0.5,
  1286.     -- RadiosityPixelSize_Max = 0.25,
  1287.    
  1288.     -- LightmapDxtBlockSizeEnable = true,
  1289. }
  1290.  
  1291. Enlighten =
  1292. {
  1293.     -- Set this to false to prevent any dynamic enlighten data from beeing built and loaded into the game.
  1294.     -- This is useful for retail builds if only static enlighten data is allowed.
  1295.     DynamicEnable = true,
  1296. }
  1297.  
  1298. Level =
  1299. {
  1300.     VoAnimTreesEnable = false,
  1301.  
  1302.     SpatialSubdivision = true,
  1303.     EnableGroupLogs = false,
  1304.     GroupStaticModelEntities = true,
  1305.     GroupTreeModelEntities = true,
  1306.     GroupMiddlegrowthModelEntities = true,
  1307.    
  1308.     LogDetailedInstanceCounts = false  
  1309. }
  1310.  
  1311. SubLevel =
  1312. {
  1313.     SpatialSubdivision = true,
  1314.     EnableGroupLogs = false,
  1315.     OptimizeMaterialGrid = true,
  1316.     GroupStaticModelEntities = true,
  1317. }
  1318.  
  1319. BlueprintBundleCollection =
  1320. {
  1321.     InclusionWildcards =
  1322.     {
  1323. --      { Collection="MyBundleCollection1", Wildcard="MyWildcard1" },
  1324. --      { Collection="MyBundleCollection1", Wildcard="MyWildcard2" },
  1325. --      { Collection="MyBundleCollection2", Wildcard="MyWildcard3" }
  1326.     }
  1327. }
  1328.  
  1329. ShaderState =
  1330. {
  1331.     TerrainDebugColorEnable = false,
  1332.     TerrainOverdrawModeEnable = false,
  1333.     DynamicEnvmapModeEnable = true,
  1334.     DynamicEnvmapModeModernOnly = true,
  1335.    
  1336.     StripUnusedTextures = true,
  1337.  
  1338.     VanillaShadowmapsEnable = false,
  1339.  
  1340.     Win32QualityLevel = -1,
  1341.     XenonQualityLevel = 0,
  1342.     Ps3QualityLevel = 0,
  1343.     Gen4aQualityLevel = 2,
  1344.     Gen4bQualityLevel = 2      
  1345.  
  1346. --  CascadedBox3ShadowmapsEnable = true,
  1347. --  CascadedBox4ShadowmapsEnable = true,    
  1348. }
  1349.  
  1350. ShaderProgramDatabase =
  1351. {
  1352.     ShaderDebugInfoEnable = true,
  1353.     DxShaderDebugInfoEnable = false,
  1354.  
  1355.     Dx10PathEnable = Dx10PathEnable,   
  1356.     Dx10PlusPathEnable = Dx10PlusPathEnable,
  1357.     Dx10Dot1PathEnable = Dx10Dot1PathEnable,
  1358.     Dx11PathEnable = Dx11PathEnable,
  1359.     AutoPathEnable = AutoPathEnable,
  1360.     SkipAllPaths = SkipAllPaths,
  1361.  
  1362.     CacheEnable = true,
  1363.    
  1364.     Ps3OptimizationLevel = 3,
  1365.    
  1366.     DynamicEnvmapModeEnable = true,
  1367.     DynamicEnvmapModeModernOnly = true,
  1368.    
  1369.     Ps3BuildRandomizedShaders = false
  1370. }
  1371.  
  1372. ShaderDatabase =
  1373. {
  1374.     ShaderDebugInfoEnable = false,
  1375.     DxShaderDebugInfoEnable = false,
  1376.  
  1377.     Dx10PathEnable = Dx10PathEnable,   
  1378.     Dx10PlusPathEnable = Dx10PlusPathEnable,
  1379.     Dx10Dot1PathEnable = Dx10Dot1PathEnable,
  1380.     Dx11PathEnable = Dx11PathEnable,
  1381.     AutoPathEnable = AutoPathEnable,
  1382.     SkipAllPaths = SkipAllPaths,
  1383.  
  1384.     Ps3OptimizationLevel = 3,
  1385.  
  1386.     -- enabled by default in Warsaw when shipping, disable this locally if you want faster PS3 build times when changing shaders
  1387.     Ps3BuildRandomizedShaders = true,
  1388.  
  1389.     Ps3PackVertexElementsEnable = true,
  1390.     Ps3ForceHalfPrecisionEnable = false,
  1391.     Ps3ForceVertexDynamicBranchesEnable = false,
  1392.     Ps3ForcePixelDynamicBranchesEnable = false,
  1393.    
  1394.     ForceCompileInConstantsEnable = true,
  1395.     NonFiniteColoringEnable = false,
  1396.     ManualSourceChangeEnable = false,
  1397.     StateMetricsEnable = true,
  1398.     StateSolutionCacheEnable = false,
  1399.     SeparateWorldTransformEnable = false
  1400. }
  1401.  
  1402. Terrain =
  1403. {
  1404.     SplineDecalsSubdivisionCount = 1,
  1405.     MaskFunctionsEnable = false,
  1406. }
  1407.  
  1408. TerrainStreamingTree =
  1409. {
  1410.     OptimizeUsingProceduralMask = true
  1411. }
  1412.  
  1413. Award =
  1414. {
  1415.     OutputAwardXml = true,
  1416.     OutputRankXml = true,
  1417.     InvalidAwardCodeCharacters = "-. ",
  1418.     AllowEmptyAwardCodes = false,
  1419.     CheckStatCategories = true,
  1420.     SetSpecificDataToChildAwards = true,
  1421. }
  1422.  
  1423. Persistence =
  1424. {
  1425.     OutputXml = true,
  1426.     OutputBlazeProperties = true,
  1427.     DeltaGameReports = true,
  1428. }
  1429.  
  1430. Unlock =
  1431. {
  1432.     ExportUnlocks = true
  1433. }
  1434.  
  1435. AtlasTexture =
  1436. {
  1437.     SkipMipmaps = 0,
  1438.     SkipMipmapsPs3 = 0,
  1439.     SkipMipmapsXenon = 0,  
  1440.     SkipMipmapsGen4a = 0,
  1441.     SkipMipmapsGen4b = 0,
  1442.  
  1443.     MinMipmapCount = 6,
  1444.     MinMipmapCountPs3 = 4,
  1445.     MinMipmapCountXenon = 4,
  1446.     MinMipmapCountGen4a = 6,
  1447.     MinMipmapCountGen4b = 6,
  1448.  
  1449.     MinNormalMipmapCount = 4,
  1450.     MinNormalMipmapCountPs3 = 1,
  1451.     MinNormalMipmapCountXenon = 1,
  1452.     MinNormalMipmapCountGen4a = 3,
  1453.     MinNormalMipmapCountGen4b = 3,
  1454. }
  1455.  
  1456. Audio =
  1457. {
  1458.     EnableDevelopmentFeatures = false,
  1459.     EnableLocalizedSandboxes = false,
  1460. }
  1461.  
  1462. UIActionscriptInjection =
  1463. {
  1464.     RemoveTraces = true,
  1465.     DefinesToKeep =
  1466.     {
  1467.         --"LOG",
  1468.         --"DEBUG",
  1469.     }
  1470. }
  1471.  
  1472. UI =
  1473. {
  1474.     TextureGroupPath = "TextureGroups/UI",
  1475. }
  1476.  
  1477. VeniceLevel =
  1478. {
  1479.     GenerateCombatAreaTextures = false,
  1480. }
  1481.  
  1482. GameConfig =
  1483. {
  1484.     AnimationProjectPath = "Animations/AntAnimations",
  1485. }
  1486.  
  1487. SoldierWeaponBlueprint =
  1488. {
  1489.     DisableOnDemandLoading = false,
  1490. }
  1491.  
  1492.   ‚Ö$file Ìname Scripts/Pipeline/Startup.lua payload œ-- Pipeline startup script
  1493. --
  1494. --   This is executed very early, and can really only be used to
  1495. --   configure settings.
  1496. --
  1497. --   The settings specified here will override any settings in the
  1498. --   legacy settings file pipeline.config
  1499. --
  1500.  
  1501. core = require "Frost.Core"
  1502.  
  1503. require "os"
  1504. require "vfs"
  1505.  
  1506. Environment = {}
  1507.  
  1508. local userName = os.getenv("USERNAME")
  1509.  
  1510. if userName then Environment.UserName = userName end
  1511.  
  1512. branchName = os.getenv("BRANCH_NAME")
  1513.  
  1514. if not branchName then
  1515.     error("Configuration error: BRANCH_NAME environment variable not set -- fix the .diceconfig file for this branch!")
  1516. end
  1517.  
  1518. -- Execute configuration and setup scripts
  1519.  
  1520. allScriptsRoot = "/Data/Scripts/"
  1521. scriptsRoot = allScriptsRoot .. "Pipeline/"
  1522.  
  1523. core.import(scriptsRoot .. "Configuration.lua")
  1524.  
  1525.   ‚¼$file ²name Scripts/Server/Master.lua payload …print("Loading scripts...")
  1526.  
  1527. serverSaveFilePath = "serverAdminSave.lua"
  1528.  
  1529. dofile("Scripts/Server/Startup.lua")
  1530. dofile("Scripts/Server/Shutdown.lua")
  1531. dofile("Scripts/Server/Server.lua")
  1532. dofile("Scripts/Server/Session.lua")
  1533.  
  1534. print("Done loading scripts.")  ‚ü$file òname Scripts/Server/Server.lua payload Årequire "vfs"
  1535. require "os"
  1536.  
  1537. banList = {}
  1538. levelList = {}
  1539. currentLevelIndex = 0
  1540. maxLevelIndex = 0
  1541.  
  1542. function Server_LoadLevel()
  1543.  
  1544. --  print("Server_LoadLevel called")
  1545.  
  1546. end
  1547.  
  1548. function Server_UnloadLevel()
  1549.  
  1550. --  print("Server_UnloadLevel called")
  1551.  
  1552. end
  1553.  
  1554.  
  1555. function Server_LevelLoaded()
  1556.  
  1557. --  print("Server_LevelLoaded called")
  1558.  
  1559. end
  1560.  
  1561. function Server_LevelUnloaded()
  1562.  
  1563. --  print("Server_LevelUnloaded called")
  1564.  
  1565. end
  1566.  
  1567.  
  1568. ticks = 0
  1569.  
  1570. function Server_ScriptTick()
  1571.  
  1572. --  print("Server_ScriptTick called; ticks = " .. ticks)
  1573.  
  1574.   ticks = ticks + 1
  1575.  
  1576. end
  1577.  
  1578. function Server_PlayerBanned(onlineId, name)
  1579.  
  1580.   print("Server_PlayerBanned called: Player " .. onlineId .. " banned")
  1581.  
  1582.   banList[onlineId] = { ["time"]=os.time(), ["name"]=name }
  1583.  
  1584.   writeServerData()
  1585.  
  1586. end
  1587.  
  1588. function Server_UnbanPlayer(id)
  1589.  
  1590.   if (banList[id] ~= nil) then
  1591.     print("Player " .. id .. " unbanned")
  1592.     banList[id] = nil
  1593.    
  1594.     if (banList[id] ~= nil) then
  1595.       print("Player was not removed for some reason")
  1596.     end
  1597.    
  1598.     writeServerData()
  1599.   else
  1600.     print("No player with id " .. id .. " is banned")
  1601.   end
  1602.  
  1603. end
  1604.  
  1605. function Server_ListBans()
  1606.  
  1607.   --Server_PlayerBanned(174636, "gunnar")
  1608.   --Server_PlayerBanned(345636, "olle")
  1609.  
  1610.   for k,v in pairs(banList) do
  1611.     currentTime = os.date("%c", v.time)
  1612.     print("[" .. k .. "]: " .. v.name .. "," .. currentTime)
  1613.   end
  1614.  
  1615. end
  1616.  
  1617. function Server_LoadNextLevel()
  1618.  
  1619.   if (levelList[currentLevelIndex] ~= nil) then
  1620.     print("Loading level: " .. levelList[currentLevelIndex])
  1621.     loadNextLevel(levelList[currentLevelIndex])
  1622.     if (currentLevelIndex < maxLevelIndex) then
  1623.       currentLevelIndex = currentLevelIndex + 1
  1624.     else
  1625.       currentLevelIndex = 1
  1626.     end
  1627.   else
  1628.     print("Levelindex " .. currentLevelIndex .. " do not exist")
  1629.   end
  1630.  
  1631. end
  1632.  
  1633. function Server_AddLevel(levelName)
  1634.  
  1635.   maxLevelIndex = maxLevelIndex + 1
  1636.   levelList[maxLevelIndex] = levelName
  1637.   print("Added level '" .. levelName .. "' to level list")
  1638.   writeServerData()
  1639.   if (currentLevelIndex == 0) then
  1640.     currentLevelIndex = 1
  1641.   end
  1642.  
  1643. end
  1644.  
  1645. function Server_RemoveLevel(levelIndex)
  1646.  
  1647.   if (levelList[levelIndex] ~= nil) then
  1648.     print("Removing level '" .. levelList[levelIndex] .. "' at index: " .. levelIndex)
  1649.     --table.remove(levelList, levelIndex)
  1650.     for i=levelIndex,(maxLevelIndex-1),1 do
  1651.       levelList[i] = levelList[i+1]
  1652.     end
  1653.     table.remove(levelList, maxLevelIndex)
  1654.     maxLevelIndex = maxLevelIndex - 1
  1655.    
  1656.     writeServerData()
  1657.     if (currentLevelIndex > maxLevelIndex) then
  1658.       currentLevelIndex = maxLevelIndex
  1659.     end
  1660.   else
  1661.     print("No level at index: " .. levelIndex)
  1662.   end
  1663.  
  1664. end
  1665.  
  1666. function Server_ListLevels()
  1667.    
  1668.   for k,v in pairs(levelList) do
  1669.     if (k == currentLevelIndex) then
  1670.       print("[" .. k .. "]: " .. v .. " <<")
  1671.     else
  1672.       print("[" .. k .. "]: " .. v)
  1673.     end
  1674.   end
  1675.  
  1676. end
  1677.  
  1678. function writeServerData()
  1679.  
  1680.   local currentPlatform = string.lower(dice.getCurrentPlatformName())
  1681.   if (currentPlatform == "xenon" or currentPlatform == "ps3") then
  1682.     return
  1683.   end
  1684.  
  1685.   local f = vfs.open(serverSaveFilePath, "w")
  1686.  
  1687.   if not f then
  1688.     -- File not found
  1689.     return
  1690.   end
  1691.  
  1692.   serializedTable = tableToString(banList)
  1693.  
  1694.   f:write("banList = " .. serializedTable .. "\n")
  1695.  
  1696.   --print("Wrote to file: banList = " .. serializedTable)
  1697.  
  1698.   serializedTable = tableToString(levelList)
  1699.  
  1700.   f:write("levelList = " .. serializedTable .. "\n")
  1701.  
  1702.   --print("Wrote to file: levelList = " .. serializedTable)
  1703.  
  1704.   f:close()
  1705.  
  1706. end  ‚¡$file —name Scripts/Server/Session.lua payload érequire "vfs"
  1707. require "os"
  1708.  
  1709. function Session_PlayerJoined(id)
  1710.  
  1711.   print("Session_PlayerJoined called: Player " .. id .. " joined")
  1712.  
  1713. end
  1714.  
  1715. function Session_PlayerLeft(id)
  1716.  
  1717.   print("Session_PlayerLeft called: Player " .. id .. " left")
  1718.  
  1719. end
  1720.  
  1721. function Session_PlayerAuthenticated(id)
  1722.  
  1723.   print("Session_PlayerJoined called: Player " .. id .. " joined")
  1724.  
  1725.   if (banList[id] ~= nil) then
  1726.     print("Player " .. banList[id].name .. " is banned")
  1727.     kickPlayer(id)
  1728.   end
  1729.  
  1730. end  ‚q$file hname Scripts/Server/Shutdown.lua payload :function Shutdown()
  1731.  
  1732.   print("Shutdown called")
  1733.  
  1734. end
  1735.   ‚Ý$file Óname Scripts/Server/Startup.lua payload ¥function Startup()
  1736.  
  1737.   print("Startup called")
  1738.  
  1739.   local currentPlatform = string.lower(dice.getCurrentPlatformName())
  1740.   if (currentPlatform == "xenon" or currentPlatform == "ps3") then
  1741.     return
  1742.   end
  1743.  
  1744.   Frost.Core.import(serverSaveFilePath, "Server Admin file", {silent=true})
  1745.   print("Loaded banList")
  1746.   for k,v in pairs(banList) do
  1747.     currentTime = os.date("%c", v.time)
  1748.     print("[" .. k .. "]: " .. v.name .. "," .. currentTime)
  1749.   end
  1750.  
  1751.   print("Loaded levelList")
  1752.   for k,v in pairs(levelList) do
  1753.     maxLevelIndex = maxLevelIndex + 1
  1754.     print("[" .. k .. "]: " .. v)
  1755.   end
  1756.  
  1757.   if (maxLevelIndex > 0) then
  1758.     currentLevelIndex = 1
  1759.   end
  1760.  
  1761. end
  1762.   ‚œ<$file ’<name &Scripts/UserOptions/DefaultValues.lua payload Ù;core = require "Frost.Core"
  1763. logging = require "Frost.Logging"
  1764.  
  1765. function makeConstant(t)
  1766.     return setmetatable({},
  1767.     {
  1768.         __index = function (_, n)
  1769.             if t[n] == nil then
  1770.                 log:error("Invalid constant member '" .. tostring(n) .. "'")
  1771.             end
  1772.             return t[n]
  1773.         end,
  1774.  
  1775.         __newindex = function (t, n, v)
  1776.             log:error("Attempting to change constant " .. tostring(n) .. " to " .. tostring(v))
  1777.         end
  1778.     })
  1779. end
  1780.  
  1781. local constants = {
  1782.     Quality = makeConstant({
  1783.         Autodetect = -1,
  1784.         Low = 0,
  1785.         Medium = 1,
  1786.         High = 2,
  1787.         Ultra = 3,
  1788.         Custom = 4,
  1789.        
  1790.         On = 1,
  1791.         Off = 0,
  1792.     }),
  1793.  
  1794.     AnisotropicFilter = makeConstant({
  1795.         X1 = 0,
  1796.         X2 = 1,
  1797.         X4 = 2,
  1798.         X8 = 3,
  1799.         X16 = 4,
  1800.     }),
  1801.  
  1802.     AntiAliasingDeferred = makeConstant({
  1803.         Off = 0,
  1804.         MSAA2X = 1,
  1805.         MSAA4X = 2,
  1806.     }),
  1807.  
  1808.     AntiAliasingPost = makeConstant({
  1809.         Off = 0,
  1810.         Low = 1,
  1811.         Medium = 2,
  1812.         High = 3,
  1813.     }),
  1814.  
  1815.     AmbientOcclusion = makeConstant({
  1816.         Off = 0,
  1817.         SSAO = 1,
  1818.         HBAO = 2,
  1819.         HBAOFull = 3,
  1820.     }),
  1821.    
  1822.     MotionBlur = makeConstant({
  1823.         Off = 0,
  1824.         On = 1,
  1825.     }),
  1826. }
  1827.  
  1828. for k, v in pairs(constants) do
  1829.     _G[k] = v
  1830. end
  1831.  
  1832. dofile("Scripts/UserOptions/HardwareProfiles.lua")
  1833. specs = hardwareSpecs[hardwareProfile]
  1834. log:info("hardwareProfile : " .. hardwareProfile)
  1835. cpuCount = specs['cpuCount']
  1836. cpuQuality = specs['cpuQuality'] + hardwareCpuBias
  1837. availableMemory = specs['availableMemory']
  1838. adapterName = specs['adapterName']
  1839. gpuQuality = specs['adapterQuality'] + hardwareGpuBias
  1840. gpuCount = specs['gpuCount']
  1841. availableGpuMemory = specs['availableGpuMemory']
  1842. deviceSettings = specs['deviceSettings']
  1843.  
  1844. log:info("cpus : " .. cpuCount)
  1845. log:info("memory : " .. availableMemory)
  1846. log:info("adapter : " .. adapterName)
  1847. log:info("gpu quality : " .. gpuQuality)
  1848. log:info("gpuCount : " .. gpuCount)
  1849. log:info("gpuMemory : " .. availableGpuMemory)
  1850. log:info("isX86 : " .. isX86)
  1851.  
  1852.  
  1853. settings = {}
  1854.  
  1855. local function applySettings(settings)
  1856.     core.parseKeyValueCfgString(settings, _G) end
  1857.  
  1858. defaultSettings = {
  1859.     Render = {
  1860.         [Quality.Autodetect] = { -- Auto detect, we fill this in when we're done autodetecting
  1861.         },
  1862.  
  1863.         [Quality.Low] = {
  1864.             TextureQuality = Quality.Low,
  1865.             TextureFiltering = Quality.Low,
  1866.             LightingQuality = Quality.Low,
  1867.             EffectsQuality = Quality.Low,
  1868.             PostProcessQuality = Quality.Low,
  1869.             MeshQuality = Quality.Low,
  1870.             TerrainQuality = Quality.Low,
  1871.             UndergrowthQuality = Quality.Low,
  1872.            
  1873.             AntiAliasingDeferred = AntiAliasingDeferred.Off,
  1874.             AntiAliasingPost = AntiAliasingPost.Off,
  1875.             AnisotropicFilter = AnisotropicFilter.X2,
  1876.             AmbientOcclusion = AmbientOcclusion.Off,
  1877.            
  1878.             MotionBlurEnabled = MotionBlur.Off,
  1879.         },
  1880.  
  1881.         [Quality.Medium] = {
  1882.             TextureQuality = Quality.Medium,
  1883.             TextureFiltering = Quality.Medium,
  1884.             LightingQuality = Quality.Medium,
  1885.             EffectsQuality = Quality.Medium,
  1886.             PostProcessQuality = Quality.Medium,
  1887.             MeshQuality = Quality.Medium,
  1888.             TerrainQuality = Quality.Medium,
  1889.             UndergrowthQuality = Quality.Medium,
  1890.                        
  1891.             AntiAliasingDeferred = AntiAliasingDeferred.Off,
  1892.             AntiAliasingPost = AntiAliasingPost.Medium,
  1893.             AnisotropicFilter = AnisotropicFilter.X4,
  1894.             AmbientOcclusion = AmbientOcclusion.SSAO,
  1895.            
  1896.             MotionBlurEnabled = MotionBlur.Off,
  1897.         },
  1898.  
  1899.         [Quality.High] = {
  1900.             TextureQuality = Quality.High,
  1901.             TextureFiltering = Quality.High,
  1902.             LightingQuality = Quality.High,
  1903.             EffectsQuality = Quality.High,
  1904.             PostProcessQuality = Quality.High,
  1905.             MeshQuality = Quality.High,
  1906.             TerrainQuality = Quality.High,
  1907.             UndergrowthQuality = Quality.High,
  1908.            
  1909.             AntiAliasingDeferred = AntiAliasingDeferred.Off,
  1910.             AntiAliasingPost = AntiAliasingPost.High,
  1911.             AnisotropicFilter = AnisotropicFilter.X16,
  1912.             AmbientOcclusion = AmbientOcclusion.HBAO,
  1913.            
  1914.             MotionBlurEnabled = MotionBlur.On,
  1915.         },
  1916.    
  1917.         [Quality.Ultra] = {
  1918.             TextureQuality = Quality.Ultra,
  1919.             TextureFiltering = Quality.Ultra,
  1920.             LightingQuality = Quality.Ultra,
  1921.             EffectsQuality = Quality.Ultra,
  1922.             PostProcessQuality = Quality.Ultra,
  1923.             MeshQuality = Quality.Ultra,
  1924.             TerrainQuality = Quality.Ultra,
  1925.             UndergrowthQuality = Quality.Ultra,
  1926.            
  1927.             AntiAliasingDeferred = AntiAliasingDeferred.MSAA4X,
  1928.             AntiAliasingPost = AntiAliasingPost.High,
  1929.             AnisotropicFilter = AnisotropicFilter.X16,
  1930.             AmbientOcclusion = AmbientOcclusion.HBAO,
  1931.            
  1932.             MotionBlurEnabled = MotionBlur.On,
  1933.         },
  1934.        
  1935.         [Quality.Custom] = {
  1936.             -- 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)
  1937.             OverallGraphicsQuality = Quality.Custom + 1
  1938.         }
  1939.     }
  1940. }
  1941.  
  1942. settings["OverallGraphicsQuality"] = 0  -- Show as autodetect in UI
  1943. for setting, value in pairs(defaultSettings.Render[deviceSettings.baseQualityLevel]) do
  1944.     settings[setting] = value
  1945. end
  1946. for setting, value in pairs(deviceSettings.defaultSettings or {}) do
  1947.     settings[setting] = value
  1948. end
  1949.  
  1950. -- audio thread
  1951. if cpuCount < 4 then
  1952.     applySettings("Audio.AudioCoreThread 0")
  1953. else
  1954.     if (cpuCount < 6) then
  1955.         applySettings("Audio.AudioCoreThread 2")
  1956.     else
  1957.         applySettings("Audio.AudioCoreThread "..(cpuCount-1))
  1958.     end
  1959. end
  1960.  
  1961. -- audio
  1962. if cpuQuality < 4 then
  1963.     settings['AudioQuality'] = 0.0
  1964. else
  1965.     settings['AudioQuality'] = 1.0
  1966. end
  1967.  
  1968.  
  1969. -- physics
  1970. if cpuQuality < 4 then
  1971.     settings['PhysicsQuality'] = 0.0
  1972. else
  1973.     settings['PhysicsQuality'] = 1.0
  1974. end
  1975.  
  1976. -- animations
  1977. if cpuQuality < 4 then
  1978.     settings['AnimationQuality'] = 0.0
  1979. else
  1980.     settings['AnimationQuality'] = 1.0
  1981. end
  1982.  
  1983.  
  1984.  
  1985. -- resolution
  1986. settings['ResolutionWidth'] = defaultFullscreenWidth or 0
  1987. settings['ResolutionHeight'] = defaultFullscreenHeight or 0
  1988. settings['FullscreenRefreshRate'] = defaultFullscreenRefreshRate or 0.0
  1989. settings['FullscreenScreen'] = 0
  1990. settings['FullscreenEnabled'] = defaultFullscreenEnabled or 0
  1991. settings['VSyncEnabled'] = defaultVSyncEnabled or 0
  1992.  
  1993. -- Test to override auto detected values (using lua to allow use of constants)
  1994. --core.readKeyValueCfg("/user/profile/settings/overrideAutodetect.cfg", settings) --will override autodetected values
  1995. function vfs_loadfile(filename)
  1996.     local f = vfs.open(filename, "r")
  1997.  
  1998.     if f == nil then
  1999.         return false, "File not found!"
  2000.     end
  2001.    
  2002.     function getNextChunk()
  2003.         return f:read(128)
  2004.     end
  2005.    
  2006.     return load(getNextChunk, filename)
  2007. end
  2008.  
  2009. local overrideFilename = "/user/profile/settings/overrideAutodetect.lua"
  2010. local executeAutoDetectOverride, e = vfs_loadfile(overrideFilename)
  2011.  
  2012. function bind(f, param)
  2013.     return function(...)
  2014.         f(param, ...)
  2015.     end
  2016. end
  2017.  
  2018. if executeAutoDetectOverride then
  2019.     overrideSettings = setmetatable({},
  2020.     {
  2021.         __index = constants,
  2022.         __newindex = bind(function(s, t, n, v)
  2023.             if s[n] == nil then
  2024.                 log:error("Trying to set unknown setting " .. n .. " to " .. tostring(n))
  2025.             elseif v == nil then
  2026.                 log:error("Trying to set setting " .. n .. " to nil")
  2027.             else
  2028.                 log:info("Overriding " .. n .. ": " .. tostring(v))
  2029.                 s[n] = v
  2030.             end
  2031.         end, settings)
  2032.     })
  2033.  
  2034.     setfenv(executeAutoDetectOverride, overrideSettings)
  2035.     local success, e = pcall(executeAutoDetectOverride);
  2036.     if not success then
  2037.         log:info("Failed to parse '" .. overrideFilename .. "' " .. e)
  2038.     end
  2039. else
  2040.     log:info("Override file error '" .. overrideFilename .. "': " .. e)
  2041. end
  2042.  
  2043. -- Last thing we do is to save the values we want for the autodetect setting
  2044. -- (use the same keys as used for the low settings)
  2045. for key, _ in pairs(defaultSettings.Render[Quality.Low]) do
  2046.     defaultSettings.Render[Quality.Autodetect][key] = settings[key]
  2047.     if settings[key] == nil then
  2048.         log:error("Setting " .. key .. " does not have an auto detected default value")
  2049.     end
  2050. end
  2051.   ‚ÿ$file õname )Scripts/UserOptions/HardwareProfiles.lua payload ¹function getGpuQuality(gpuName, gpuCount)
  2052.     if string.find(gpuName, "GeForce 8") or
  2053.        string.find(gpuName, "GeForce 9") then
  2054.         return 1
  2055.     elseif string.find(gpuName, "GeForce GTX 26") then
  2056.         return 2
  2057.     elseif string.find(gpuName, "GeForce GTX 2") or
  2058.            string.find(gpuName, "ATI Radeon HD 4870 X2") or
  2059.            string.find(gpuName, "ATI Radeon HD 5800 Series") or
  2060.            string.find(gpuName, "ATI Radeon HD 5900 Series") or
  2061.            string.find(gpuName, "AMD Radeon HD 68") or
  2062.            string.find(gpuName, "AMD Radeon HD 69") or
  2063.            string.find(gpuName, "GeForce GTX 4") or
  2064.            string.find(gpuName, "GeForce GTX 5") then
  2065.         if gpuCount > 1 then
  2066.             return 4
  2067.         else
  2068.             return 3
  2069.         end
  2070.     else
  2071.         return 1
  2072.     end
  2073. end
  2074.  
  2075. function getCpuQuality(cpuCount, cpuSpeed)
  2076.     return (cpuSpeed-1.2)*(cpuCount-1)
  2077. end
  2078.  
  2079. -- 2 cores, 3.0 gHz : 1.8
  2080. -- 2 cores, 3.6 gHz : 2.4
  2081. -- 4 cores, 2.0 gHz : 2.4
  2082. -- 4 cores, 3.2 gHz : 6
  2083. -- 8 cores, 1.8 gHz : 4.2
  2084. -- 8 cores, 3.2 gHz : 14!! awesome
  2085.  
  2086. vendorDB = {
  2087.     [0x1002] = dofile("Scripts/UserOptions/HardwareProfiles/ATI.lua"),
  2088.     [0x10DE] = dofile("Scripts/UserOptions/HardwareProfiles/nVidia.lua"),
  2089.     [0x8086] = dofile("Scripts/UserOptions/HardwareProfiles/Intel.lua")
  2090. }
  2091.  
  2092. -- Autodetect settings based on graphics card device id
  2093. function getDeviceSettings(vendorId, deviceId, adapterName, isX86)
  2094.     if adapterName == "Xenon" then
  2095.         return { baseQualityLevel = Quality.Medium, defaultSettings = {}, consoleOverrides = "" }
  2096.     elseif adapterName == "PS3" then
  2097.         return { baseQualityLevel = Quality.High, defaultSettings = {}, consoleOverrides = "" }
  2098.     elseif isX86 == 1 then
  2099.         return { baseQualityLevel = Quality.Low, defaultSettings = {}, consoleOverrides = "" }
  2100.     else
  2101.         return (vendorDB[vendorId] and vendorDB[vendorId][deviceId]) or { baseQualityLevel = Quality.Medium, defaultSettings = {}, consoleOverrides = "" }
  2102.     end
  2103. end
  2104.  
  2105. hardwareSpecs = {
  2106.     [0] = {
  2107.         cpuCount = detectedCpuCount,
  2108.         cpuQuality = getCpuQuality(detectedCpuCount, detectedCpuFreq),
  2109.         availableMemory = detectedAvailableMemory,
  2110.         adapterName = detectedAdapterName,
  2111.         gpuCount = detectedGpuCount,
  2112.         adapterQuality = getGpuQuality(detectedAdapterName, detectedGpuCount),
  2113.         availableGpuMemory = detectedAvailableGpuMemory,
  2114.         deviceSettings = getDeviceSettings(detectedVendorId, detectedDeviceId, detectedAdapterName, isX86)
  2115.     },
  2116.  
  2117.     [1] = {
  2118.         cpuCount = detectedCpuCount,
  2119.         cpuQuality = getCpuQuality(2, 2.3),
  2120.         availableMemory = 512*1024*1024,
  2121.         adapterName = "Faked Low",
  2122.         gpuCount = 1,
  2123.         adapterQuality = 0,
  2124.         availableGpuMemory = 512*1024*1024,
  2125.         deviceSettings = { baseQualityLevel = Quality.Low, defaultSettings = {}, consoleOverrides = "" }
  2126.     },
  2127.  
  2128.     [2] = {
  2129.         cpuCount = detectedCpuCount,
  2130.         cpuQuality = getCpuQuality(2, 3),
  2131.         availableMemory = 1*1024*1024*1024,
  2132.         adapterName = "Faked Medium",
  2133.         gpuCount = 1,
  2134.         adapterQuality = 1,
  2135.         availableGpuMemory = 768*1024*1024,
  2136.         deviceSettings = { baseQualityLevel = Quality.Medium, defaultSettings = {}, consoleOverrides = "" }
  2137.     },
  2138.  
  2139.     [3] = {
  2140.         cpuCount = detectedCpuCount,
  2141.         cpuQuality = getCpuQuality(4, 3),
  2142.         availableMemory = 1.5*1024*1024*1024,
  2143.         adapterName = "Faked High",
  2144.         gpuCount = 1,
  2145.         adapterQuality = 3,
  2146.         availableGpuMemory = 1*1024*1024*1024,
  2147.         deviceSettings = { baseQualityLevel = Quality.High, defaultSettings = {}, consoleOverrides = "" }
  2148.     },
  2149.  
  2150.     [4] = {
  2151.         cpuCount = detectedCpuCount,
  2152.         cpuQuality = getCpuQuality(8, 3),
  2153.         availableMemory = 2*1024*1024*1024,
  2154.         adapterName = "Faked Ultra",
  2155.         gpuCount = 2,
  2156.         adapterQuality = 4,
  2157.         availableGpuMemory = 2*1024*1024*1024,
  2158.         deviceSettings = { baseQualityLevel = Quality.Ultra, defaultSettings = {}, consoleOverrides = "" }
  2159.     },
  2160. }
  2161.  
  2162. vendorDB = nil
  2163.   ‚¢Ì$file —Ìname -Scripts/UserOptions/HardwareProfiles/ATI.lua payload ÖË-- Settings database for ATI devices
  2164. return {
  2165. --  [0xHHHH] = { -- Example card
  2166. --      baseQualityLevel = Quality.Low,
  2167. --      defaultSettings = {
  2168. --          TextureQuality = Quality.Low,
  2169. --          ShadowQuality = Quality.Low,
  2170. --          EffectsQuality = Quality.Low,
  2171. --      },
  2172. --      consoleOverrides = [=[
  2173. --          WorldRender.MotionBlurEnable 0
  2174. --      ]=]
  2175. --  }
  2176.     [0x6718] = { baseQualityLevel = Quality.High }, --   "AMD Radeon HD 6900 Series"    Northern Islands
  2177.     [0x6719] = { baseQualityLevel = Quality.High }, --   "AMD Radeon HD 6900 Series"    Northern Islands
  2178.     [0x671C] = { baseQualityLevel = Quality.High }, --   "AMD Radeon HD 6900 Series"    Northern Islands
  2179.     [0x671D] = { baseQualityLevel = Quality.High }, --   "AMD Radeon HD 6900 Series"    Northern Islands
  2180.     [0x671F] = { baseQualityLevel = Quality.High }, --   "AMD Radeon HD 6900 Series"    Northern Islands
  2181.     [0x67B0] = { baseQualityLevel = Quality.Ultra }, -- Hawaii  Sea Islands
  2182.     [0x67B1] = { baseQualityLevel = Quality.High }, --  Hawaii  Sea Islands
  2183.     [0x67B9] = { baseQualityLevel = Quality.High }, --  Hawaii  Sea Islands
  2184.     [0x6798] = { baseQualityLevel = Quality.High }, --   "AMD Radeon HD 7900 Series"    Southern Islands
  2185.     [0x6799] = { baseQualityLevel = Quality.High }, --   "AMD Radeon HD 7900 Series"    Southern Islands
  2186.     [0x679A] = { baseQualityLevel = Quality.High }, --   "AMD Radeon HD 7900 Series"    Southern Islands
  2187.     [0x679B] = { baseQualityLevel = Quality.High }, --   "AMD Radeon HD 7900 Series"    Southern Islands
  2188.     [0x679B] = { baseQualityLevel = Quality.High }, --   "AMD Radeon HD 7900 Series"    Southern Islands
  2189.     [0x679E] = { baseQualityLevel = Quality.High }, --   "AMD Radeon HD 7800 Series"    Southern Islands
  2190.     [0x6810] = { baseQualityLevel = Quality.High }, --   "AMD Radeon(TM) HD 8800 Series"    Southern Islands
  2191.     [0x6811] = { baseQualityLevel = Quality.High }, --   "AMD Radeon(TM) HD 8800 Series"    Southern Islands
  2192.     [0x6818] = { baseQualityLevel = Quality.High }, --   "AMD Radeon HD 7800 Series"    Southern Islands
  2193.     [0x6819] = { baseQualityLevel = Quality.High }, --   "AMD Radeon HD 7800 Series"    Southern Islands
  2194.     [0x6837] = { baseQualityLevel = Quality.High }, --   "AMD Radeon HD7700 Series" Southern Islands
  2195.     [0x683D] = { baseQualityLevel = Quality.High }, --   "AMD Radeon HD 7700 Series"    Southern Islands
  2196.     [0x689B] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 6800 Series"    Evergreen
  2197.     [0x6738] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 6800 Series"    Northern Islands
  2198.     [0x6739] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 6800 Series"    Northern Islands
  2199.     [0x665C] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 7700 Series"    Sea Islands
  2200.     [0x683F] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 7700 Series"    Southern Islands
  2201.     [0x6720] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 6900M Series"   Northern Islands
  2202.     [0x673E] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 6700 Series"    Northern Islands
  2203.     [0x6742] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 8500/8600 Series"   Northern Islands
  2204.     [0x6742] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 8500/8600 Series"   Northern Islands
  2205.     [0x6742] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 8500/8600 Series"   Northern Islands
  2206.     [0x6742] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 8500/8600 Series"   Northern Islands
  2207.     [0x6742] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 8500/8600 Series"   Northern Islands
  2208.     [0x6742] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 8500/8600 Series"   Northern Islands
  2209.     [0x6758] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 6670"   Northern Islands
  2210.     [0x675B] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 8500/8600 Series"   Northern Islands
  2211.     [0x675D] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 8500/8600 Series"   Northern Islands
  2212.     [0x6610] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 8500/8600 Series"   Sea Islands
  2213.     [0x6611] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 8500/8600 Series"   Sea Islands
  2214.     [0x6613] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 8500/8600 Series"   Sea Islands
  2215.     [0x6649] = { baseQualityLevel = Quality.Medium }, --     "BONAIRE (6649)"   Sea Islands
  2216.     [0x6650] = { baseQualityLevel = Quality.Medium }, --     "BONAIRE (6650)"   Sea Islands
  2217.     [0x6651] = { baseQualityLevel = Quality.Medium }, --     "BONAIRE (6651)"   Sea Islands
  2218.     [0x6800] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 7970M"  Southern Islands
  2219.     [0x6800] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 7970M"  Southern Islands
  2220.     [0x6800] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 7970M"  Southern Islands
  2221.     [0x6800] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 7970M"  Southern Islands
  2222.     [0x6801] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon(TM) HD8970M"   Southern Islands
  2223.     [0x6801] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon(TM) HD8970M"   Southern Islands
  2224.     [0x6801] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon(TM) HD8970M"   Southern Islands
  2225.     [0x6801] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon(TM) HD8970M"   Southern Islands
  2226.     [0x6820] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 8800M Series"   Southern Islands
  2227.     [0x6820] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 8800M Series"   Southern Islands
  2228.     [0x6820] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 8800M Series"   Southern Islands
  2229.     [0x6820] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 8800M Series"   Southern Islands
  2230.     [0x6820] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 8800M Series"   Southern Islands
  2231.     [0x6820] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 8800M Series"   Southern Islands
  2232.     [0x6821] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 8800M Series"   Southern Islands
  2233.     [0x6821] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 8800M Series"   Southern Islands
  2234.     [0x6821] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 8800M Series"   Southern Islands
  2235.     [0x6821] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 8800M Series"   Southern Islands
  2236.     [0x6821] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 8800M Series"   Southern Islands
  2237.     [0x6821] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 8800M Series"   Southern Islands
  2238.     [0x6821] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 8800M Series"   Southern Islands
  2239.     [0x6823] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 8800M Series"   Southern Islands
  2240.     [0x6823] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 8800M Series"   Southern Islands
  2241.     [0x6823] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 8800M Series"   Southern Islands
  2242.     [0x6823] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 8800M Series"   Southern Islands
  2243.     [0x6823] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 8800M Series"   Southern Islands
  2244.     [0x6823] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 8800M Series"   Southern Islands
  2245.     [0x6823] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 8800M Series"   Southern Islands
  2246.     [0x682B] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 8800M Series"   Southern Islands
  2247.     [0x682B] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 8800M Series"   Southern Islands
  2248.     [0x682B] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 8800M Series"   Southern Islands
  2249.     [0x682B] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 8800M Series"   Southern Islands
  2250.     [0x682B] = { baseQualityLevel = Quality.Medium }, --     "AMD Radeon HD 8800M Series"   Southern Islands
  2251.     [0x6898] = { baseQualityLevel = Quality.Medium }, --     "ATI Radeon HD 5800 Series"    Evergreen
  2252.     [0x6899] = { baseQualityLevel = Quality.Medium }, --     "ATI Radeon HD 5800 Series"    Evergreen
  2253.     [0x689C] = { baseQualityLevel = Quality.Medium }, --     "ATI Radeon HD 5900 Series"    Evergreen
  2254.     [0x689D] = { baseQualityLevel = Quality.Medium }, --     "ATI Radeon HD 5900 Series"    Evergreen
  2255.     [0x689E] = { baseQualityLevel = Quality.Medium }, --     "ATI Radeon HD 5800 Series"    Evergreen
  2256.     [0x6880] = { baseQualityLevel = Quality.Low }, --    "EG LEXINGTON" Evergreen
  2257.     [0x6880] = { baseQualityLevel = Quality.Low }, --    "EG LEXINGTON" Evergreen
  2258.     [0x6880] = { baseQualityLevel = Quality.Low }, --    "EG LEXINGTON" Evergreen
  2259.     [0x6880] = { baseQualityLevel = Quality.Low }, --    "EG LEXINGTON" Evergreen
  2260.     [0x6888] = { baseQualityLevel = Quality.Low }, --    "ATI FirePro V8800 (FireGL) Graphics Adapter"  Evergreen
  2261.     [0x6889] = { baseQualityLevel = Quality.Low }, --    "ATI FirePro V7800 (FireGL) Graphics Adapter"  Evergreen
  2262.     [0x688A] = { baseQualityLevel = Quality.Low }, --    "ATI FirePro V9800 (FireGL) Graphics Adapter"  Evergreen
  2263.     [0x688C] = { baseQualityLevel = Quality.Low }, --    "AMD FireStream 9370"  Evergreen
  2264.     [0x688D] = { baseQualityLevel = Quality.Low }, --    "AMD FireStream 9350"  Evergreen
  2265.     [0x68A0] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5800 Series"   Evergreen
  2266.     [0x68A0] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5800 Series"   Evergreen
  2267.     [0x68A0] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5800 Series"   Evergreen
  2268.     [0x68A0] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5800 Series"   Evergreen
  2269.     [0x68A0] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5800 Series"   Evergreen
  2270.     [0x68A1] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5800 Series"   Evergreen
  2271.     [0x68A1] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5800 Series"   Evergreen
  2272.     [0x68A1] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5800 Series"   Evergreen
  2273.     [0x68A1] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5800 Series"   Evergreen
  2274.     [0x68A1] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5800 Series"   Evergreen
  2275.     [0x68A8] = { baseQualityLevel = Quality.Low }, --    "Radeon (TM) HD 6850M" Evergreen
  2276.     [0x68A8] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6800M Series"   Evergreen
  2277.     [0x68A9] = { baseQualityLevel = Quality.Low }, --    "ATI FirePro V5800 (FireGL) Graphics Adapter"  Evergreen
  2278.     [0x68B0] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5800 Series"   Evergreen
  2279.     [0x68B0] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5800 Series"   Evergreen
  2280.     [0x68B0] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5800 Series"   Evergreen
  2281.     [0x68B0] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5800 Series"   Evergreen
  2282.     [0x68B0] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5800 Series"   Evergreen
  2283.     [0x68B8] = { baseQualityLevel = Quality.Low }, --    "ATI Radeon HD 5700 Series"    Evergreen
  2284.     [0x68B9] = { baseQualityLevel = Quality.Low }, --    "ATI Radeon HD 5600/5700"  Evergreen
  2285.     [0x68BA] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6700 Series"    Evergreen
  2286.     [0x68BE] = { baseQualityLevel = Quality.Low }, --    "ATI Radeon HD 5700 Series"    Evergreen
  2287.     [0x68BF] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6700 Series"    Evergreen
  2288.     [0x68C0] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5000 Series"   Evergreen
  2289.     [0x68C0] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5000 Series"   Evergreen
  2290.     [0x68C0] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 6570"  Evergreen
  2291.     [0x68C0] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 6570"  Evergreen
  2292.     [0x68C0] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 6570"  Evergreen
  2293.     [0x68C0] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5000"  Evergreen
  2294.     [0x68C0] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5000"  Evergreen
  2295.     [0x68C0] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5000 Series"   Evergreen
  2296.     [0x68C0] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5000"  Evergreen
  2297.     [0x68C1] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5000 Series"   Evergreen
  2298.     [0x68C1] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5000 Series"   Evergreen
  2299.     [0x68C1] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5000 Series"   Evergreen
  2300.     [0x68C1] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5650"  Evergreen
  2301.     [0x68C1] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5650"  Evergreen
  2302.     [0x68C1] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 6550"  Evergreen
  2303.     [0x68C1] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5650"  Evergreen
  2304.     [0x68C1] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5000 Series"   Evergreen
  2305.     [0x68C1] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5000 Series"   Evergreen
  2306.     [0x68C1] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5000 Series"   Evergreen
  2307.     [0x68C7] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5570"  Evergreen
  2308.     [0x68C7] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5570"  Evergreen
  2309.     [0x68C7] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5570"  Evergreen
  2310.     [0x68C8] = { baseQualityLevel = Quality.Low }, --    "ATI FirePro V4800 (FireGL) Graphics Adapter"  Evergreen
  2311.     [0x68C9] = { baseQualityLevel = Quality.Low }, --    "ATI FirePro 3800 (FireGL) Graphics Adapter"   Evergreen
  2312.     [0x68D8] = { baseQualityLevel = Quality.Low }, --    "ATI Radeon HD 5670"   Evergreen
  2313.     [0x68D9] = { baseQualityLevel = Quality.Low }, --    "ATI Radeon HD 5570"   Evergreen
  2314.     [0x68DA] = { baseQualityLevel = Quality.Low }, --    "ATI Radeon HD 5500 Series"    Evergreen
  2315.     [0x68DE] = { baseQualityLevel = Quality.Low }, --    "EG REDWOOD"   Evergreen
  2316.     [0x68E0] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5000 Series"   Evergreen
  2317.     [0x68E0] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5000 Series"   Evergreen
  2318.     [0x68E0] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5470"  Evergreen
  2319.     [0x68E0] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5000 Series"   Evergreen
  2320.     [0x68E0] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5450"  Evergreen
  2321.     [0x68E0] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5470"  Evergreen
  2322.     [0x68E0] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5000 Series"   Evergreen
  2323.     [0x68E0] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5000 Series"   Evergreen
  2324.     [0x68E0] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5000 Series"   Evergreen
  2325.     [0x68E1] = { baseQualityLevel = Quality.Low }, --    "EG PARK"  Evergreen
  2326.     [0x68E1] = { baseQualityLevel = Quality.Low }, --    "EG PARK"  Evergreen
  2327.     [0x68E1] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5000 Series"   Evergreen
  2328.     [0x68E1] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5000 Series"   Evergreen
  2329.     [0x68E1] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 5000 Series"   Evergreen
  2330.     [0x68E4] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon Graphics" Evergreen
  2331.     [0x68E4] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 6370"  Evergreen
  2332.     [0x68E4] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 6370"  Evergreen
  2333.     [0x68E4] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 6370"  Evergreen
  2334.     [0x68E4] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6300M Series"   Evergreen
  2335.     [0x68E4] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon Graphics" Evergreen
  2336.     [0x68E4] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon Graphics" Evergreen
  2337.     [0x68E4] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6300M Series"   Evergreen
  2338.     [0x68E5] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon Graphics" Evergreen
  2339.     [0x68E5] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6300M Series"   Evergreen
  2340.     [0x68E5] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon Graphics" Evergreen
  2341.     [0x68E5] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon Graphics" Evergreen
  2342.     [0x68E5] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6300M Series"   Evergreen
  2343.     [0x68E8] = { baseQualityLevel = Quality.Low }, --    "EG CEDAR" Evergreen
  2344.     [0x68E9] = { baseQualityLevel = Quality.Low }, --    "ATI FirePro (FireGL) Graphics Adapter"    Evergreen
  2345.     [0x68F1] = { baseQualityLevel = Quality.Low }, --    "ATI FirePro (FireGL) Graphics Adapter"    Evergreen
  2346.     [0x68F2] = { baseQualityLevel = Quality.Low }, --    "AMD FirePro 2270 (ATI FireGL)"    Evergreen
  2347.     [0x68F8] = { baseQualityLevel = Quality.Low }, --    "EG CEDAR" Evergreen
  2348.     [0x68F9] = { baseQualityLevel = Quality.Low }, --    "ATI Radeon HD 5450"   Evergreen
  2349.     [0x68FA] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7300 Series"    Evergreen
  2350.     [0x68FE] = { baseQualityLevel = Quality.Low }, --    "EG CEDAR" Evergreen
  2351.     [0x9830] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 8400"   Kabini APU
  2352.     [0x9831] = { baseQualityLevel = Quality.Low }, --   "AMD Radeon HD 8400E"   Kabini APU
  2353.     [0x9832] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 8330"   Kabini APU
  2354.     [0x9833] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 8330E"  Kabini APU
  2355.     [0x9834] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 8210"   Kabini APU
  2356.     [0x9835] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 8210E"  Kabini APU
  2357.     [0x9836] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 8280"   Kabini APU
  2358.     [0x9837] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 8280E"  Kabini APU
  2359.     [0x9838] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 8240"   Kabini APU
  2360.     [0x9839] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 8180"   Kabini APU
  2361.     [0x983A] = { baseQualityLevel = Quality.Low }, --    "TM EMB 2C (983A)" Kabini APU
  2362.     [0x983B] = { baseQualityLevel = Quality.Low }, --    "TM 4C (983B)" Kabini APU
  2363.     [0x983C] = { baseQualityLevel = Quality.Low }, --    "TM EMB 4C (983C)" Kabini APU
  2364.     [0x983D] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 8250"   Kabini APU
  2365.     [0x983E] = { baseQualityLevel = Quality.Low }, --    "KB DT 4C (N-1) (983E)"    Kabini APU
  2366.     [0x983F] = { baseQualityLevel = Quality.Low }, --    "KB DT 2C (983F)"  Kabini APU
  2367.     [0x1304] = { baseQualityLevel = Quality.Low }, --    "KV SPECTRE MOBILE 35W (1304)" Kaveri APU
  2368.     [0x1305] = { baseQualityLevel = Quality.Low }, --    "KV SPECTRE DESKTOP 100W (1305)"   Kaveri APU
  2369.     [0x1306] = { baseQualityLevel = Quality.Low }, --    "KV SPECTRE SL MOBILE 35W (1306)"  Kaveri APU
  2370.     [0x1307] = { baseQualityLevel = Quality.Low }, --    "KV SPECTRE SL DESKTOP 100W (1307)"    Kaveri APU
  2371.     [0x9640] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6550D"  Llano APU
  2372.     [0x9641] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon(TM) HD 6620G"  Llano APU
  2373.     [0x9641] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6620G"  Llano APU
  2374.     [0x9642] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6370D"  Llano APU
  2375.     [0x9643] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon(TM) HD 6380G"  Llano APU
  2376.     [0x9643] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6380G"  Llano APU
  2377.     [0x9644] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6410D"  Llano APU
  2378.     [0x9645] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6410D"  Llano APU
  2379.     [0x9647] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon(TM) HD 6520G"  Llano APU
  2380.     [0x9647] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6520G"  Llano APU
  2381.     [0x9648] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon(TM) HD 6480G"  Llano APU
  2382.     [0x9648] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6480G"  Llano APU
  2383.     [0x9649] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon(TM) HD 6480G"  Llano APU
  2384.     [0x9649] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon(TM) HD 6480G"  Llano APU
  2385.     [0x964A] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6530D"  Llano APU
  2386.     [0x964E] = { baseQualityLevel = Quality.Low }, --    "SUMO 964E"    Llano APU
  2387.     [0x964F] = { baseQualityLevel = Quality.Low }, --    "SUMO 964F"    Llano APU
  2388.     [0x6700] = { baseQualityLevel = Quality.Low }, --    "ATI FirePro V (FireGL V) Graphics Adapter"    Northern Islands
  2389.     [0x6701] = { baseQualityLevel = Quality.Low }, --    "ATI FirePro V (FireGL V) Graphics Adapter"    Northern Islands
  2390.     [0x6702] = { baseQualityLevel = Quality.Low }, --    "ATI FirePro V (FireGL V) Graphics Adapter"    Northern Islands
  2391.     [0x6703] = { baseQualityLevel = Quality.Low }, --    "ATI FirePro V (FireGL V) Graphics Adapter"    Northern Islands
  2392.     [0x6704] = { baseQualityLevel = Quality.Low }, --    "ATI FirePro V (FireGL V) Graphics Adapter"    Northern Islands
  2393.     [0x6705] = { baseQualityLevel = Quality.Low }, --    "ATI FirePro V (FireGL V) Graphics Adapter"    Northern Islands
  2394.     [0x6706] = { baseQualityLevel = Quality.Low }, --    "ATI FirePro V (FireGL V) Graphics Adapter"    Northern Islands
  2395.     [0x6707] = { baseQualityLevel = Quality.Low }, --    "ATI FirePro V (FireGL V) Graphics Adapter"    Northern Islands
  2396.     [0x6708] = { baseQualityLevel = Quality.Low }, --    "ATI FirePro V (FireGL V) Graphics Adapter"    Northern Islands
  2397.     [0x6709] = { baseQualityLevel = Quality.Low }, --    "ATI FirePro V (FireGL V) Graphics Adapter"    Northern Islands
  2398.     [0x6721] = { baseQualityLevel = Quality.Low }, --    "Mobility Radeon HD 6000 series"   Northern Islands
  2399.     [0x6724] = { baseQualityLevel = Quality.Low }, --    "Mobility Radeon HD 6000 series"   Northern Islands
  2400.     [0x6725] = { baseQualityLevel = Quality.Low }, --    "Mobility Radeon HD 6000 series"   Northern Islands
  2401.     [0x6728] = { baseQualityLevel = Quality.Low }, --    "ATI FirePro V (FireGL V) Graphics Adapter"    Northern Islands
  2402.     [0x6729] = { baseQualityLevel = Quality.Low }, --    "ATI FirePro V (FireGL V) Graphics Adapter"    Northern Islands
  2403.     [0x6740] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 6000 series"   Northern Islands
  2404.     [0x6740] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6700M Series"   Northern Islands
  2405.     [0x6740] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 6000 series"   Northern Islands
  2406.     [0x6740] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6700M Series"   Northern Islands
  2407.     [0x6740] = { baseQualityLevel = Quality.Low }, --    "Radeon (TM) HD 6770M" Northern Islands
  2408.     [0x6740] = { baseQualityLevel = Quality.Low }, --    "Radeon (TM) HD 6770M" Northern Islands
  2409.     [0x6740] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon(TM) HD 6650M"  Northern Islands
  2410.     [0x6740] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon(TM) HD 6650M"  Northern Islands
  2411.     [0x6740] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon(TM) HD 7670M"  Northern Islands
  2412.     [0x6740] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6700M Series"   Northern Islands
  2413.     [0x6741] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6600M Series"   Northern Islands
  2414.     [0x6741] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 6000 series"   Northern Islands
  2415.     [0x6741] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon 6600M and 6700M Series"    Northern Islands
  2416.     [0x6741] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 6000 series"   Northern Islands
  2417.     [0x6741] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6650M"  Northern Islands
  2418.     [0x6741] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6650M"  Northern Islands
  2419.     [0x6741] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7650M"  Northern Islands
  2420.     [0x6741] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon 6600M and 6700M Series"    Northern Islands
  2421.     [0x6741] = { baseQualityLevel = Quality.Low }, --    "Radeon (TM) HD 6750M" Northern Islands
  2422.     [0x6741] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon(TM) HD 6630M"  Northern Islands
  2423.     [0x6741] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon 6600M and 6700M Series"    Northern Islands
  2424.     [0x6742] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6625M Graphics" Northern Islands
  2425.     [0x6743] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon E6760" Northern Islands
  2426.     [0x6743] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon E6760" Northern Islands
  2427.     [0x6743] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon E6760" Northern Islands
  2428.     [0x6744] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 6000 series"   Northern Islands
  2429.     [0x6744] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 6000 series"   Northern Islands
  2430.     [0x6749] = { baseQualityLevel = Quality.Low }, --    "ATI FirePro V (FireGL V) Graphics Adapter"    Northern Islands
  2431.     [0x674A] = { baseQualityLevel = Quality.Low }, --    "ATI FirePro V (FireGL V) Graphics Adapter"    Northern Islands
  2432.     [0x6750] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6500 series"    Northern Islands
  2433.     [0x6750] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6500 series"    Northern Islands
  2434.     [0x6750] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6600A Series"   Northern Islands
  2435.     [0x6751] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7600A Series"   Northern Islands
  2436.     [0x6759] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6570"   Northern Islands
  2437.     [0x675F] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 5500 Series"    Northern Islands
  2438.     [0x6760] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7400M Series"   Northern Islands
  2439.     [0x6760] = { baseQualityLevel = Quality.Low }, --    "Mobility Radeon HD 6000 series"   Northern Islands
  2440.     [0x6760] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7450M"  Northern Islands
  2441.     [0x6760] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7470M"  Northern Islands
  2442.     [0x6760] = { baseQualityLevel = Quality.Low }, --    "Radeon (TM) HD 6470M" Northern Islands
  2443.     [0x6760] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6400M Series"   Northern Islands
  2444.     [0x6760] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7400M Series"   Northern Islands
  2445.     [0x6760] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7400M Series"   Northern Islands
  2446.     [0x6761] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6430M"  Northern Islands
  2447.     [0x6761] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6430M"  Northern Islands
  2448.     [0x6763] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon E6460" Northern Islands
  2449.     [0x6764] = { baseQualityLevel = Quality.Low }, --    "Mobility Radeon HD 6000 series"   Northern Islands
  2450.     [0x6765] = { baseQualityLevel = Quality.Low }, --    "Mobility Radeon HD 6000 series"   Northern Islands
  2451.     [0x6768] = { baseQualityLevel = Quality.Low }, --    "ATI FirePro V (FireGL V) Graphics Adapter"    Northern Islands
  2452.     [0x6770] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6400 Series"    Northern Islands
  2453.     [0x6770] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6400 Series"    Northern Islands
  2454.     [0x6770] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6400 Series"    Northern Islands
  2455.     [0x6771] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon(TM) HD8490"    Northern Islands
  2456.     [0x6772] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7400A Series"   Northern Islands
  2457.     [0x6778] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7000 series"    Northern Islands
  2458.     [0x6779] = { baseQualityLevel = Quality.Low }, --    "AMD RADEON HD 6450"   Northern Islands
  2459.     [0x6779] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6450"   Northern Islands
  2460.     [0x677B] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7400 Series"    Northern Islands
  2461.     [0x9802] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6310 Graphics"  Ontario APU
  2462.     [0x9802] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6310 Graphics"  Ontario APU
  2463.     [0x9803] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6310 Graphics"  Ontario APU
  2464.     [0x9803] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6310 Graphics"  Ontario APU
  2465.     [0x9804] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6250 Graphics"  Ontario APU
  2466.     [0x9804] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6250 Graphics"  Ontario APU
  2467.     [0x9805] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6250 Graphics"  Ontario APU
  2468.     [0x9805] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6250 Graphics"  Ontario APU
  2469.     [0x9806] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6320 Graphics"  Ontario APU
  2470.     [0x9806] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6320 Graphics"  Ontario APU
  2471.     [0x9807] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 6290 Graphics"  Ontario APU
  2472.     [0x9808] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7340 Graphics"  Ontario APU
  2473.     [0x9808] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7340 Graphics"  Ontario APU
  2474.     [0x9809] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7310 Graphics"  Ontario APU
  2475.     [0x9809] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7310 Graphics"  Ontario APU
  2476.     [0x980A] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7290 Graphics"  Ontario APU
  2477.     [0x990B] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 8650G"  Richland APU
  2478.     [0x990C] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 8670D"  Richland APU
  2479.     [0x990D] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 8550G"  Richland APU
  2480.     [0x990E] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 8570D"  Richland APU
  2481.     [0x990F] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 8610G"  Richland APU
  2482.     [0x9990] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7520G"  Richland APU
  2483.     [0x9990] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7520G"  Richland APU
  2484.     [0x9990] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7520G"  Richland APU
  2485.     [0x9991] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7540D"  Richland APU
  2486.     [0x9992] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7420G"  Richland APU
  2487.     [0x9992] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7420G"  Richland APU
  2488.     [0x9993] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7480D"  Richland APU
  2489.     [0x9994] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7400G"  Richland APU
  2490.     [0x9995] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 8450G"  Richland APU
  2491.     [0x9996] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 8470D"  Richland APU
  2492.     [0x9997] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 8350G"  Richland APU
  2493.     [0x9998] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 8370D"  Richland APU
  2494.     [0x9999] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 8510G"  Richland APU
  2495.     [0x999A] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 8410G"  Richland APU
  2496.     [0x999B] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 8310G"  Richland APU
  2497.     [0x99A0] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7520G"  Richland APU
  2498.     [0x99A2] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7420G"  Richland APU
  2499.     [0x99A4] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7400G"  Richland APU
  2500.     [0x6600] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 8600/8700M" Sea Islands
  2501.     [0x6601] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon (TM) HD 8500M/8700M"   Sea Islands
  2502.     [0x6602] = { baseQualityLevel = Quality.Low }, --    "MARS (6602)"  Sea Islands
  2503.     [0x6603] = { baseQualityLevel = Quality.Low }, --    "MARS (6603)"  Sea Islands
  2504.     [0x6606] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 8790M"  Sea Islands
  2505.     [0x6607] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon (TM) HD8530M"  Sea Islands
  2506.     [0x6620] = { baseQualityLevel = Quality.Low }, --    "MARS (6620)"  Sea Islands
  2507.     [0x6621] = { baseQualityLevel = Quality.Low }, --    "MARS (6621)"  Sea Islands
  2508.     [0x6623] = { baseQualityLevel = Quality.Low }, --    "MARS (6623)"  Sea Islands
  2509.     [0x6631] = { baseQualityLevel = Quality.Low }, --    "OLAND (6631)" Sea Islands
  2510.     [0x6640] = { baseQualityLevel = Quality.Low }, --    "SATURN (6640)"    Sea Islands
  2511.     [0x6641] = { baseQualityLevel = Quality.Low }, --    "SATURN (6641)"    Sea Islands
  2512.     [0x6660] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 8600M Series"   Sea Islands
  2513.     [0x6663] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 8500M Series"   Sea Islands
  2514.     [0x6667] = { baseQualityLevel = Quality.Low }, --    "SUN (6667)"   Sea Islands
  2515.     [0x666F] = { baseQualityLevel = Quality.Low }, --    "SUN (666F)"   Sea Islands
  2516.     [0x6780] = { baseQualityLevel = Quality.Low }, --    "ATI FirePro V (FireGL V) Graphics Adapter"    Southern Islands
  2517.     [0x6784] = { baseQualityLevel = Quality.Low }, --    "ATI FirePro V (FireGL V) Graphics Adapter"    Southern Islands
  2518.     [0x6788] = { baseQualityLevel = Quality.Low }, --    "ATI FirePro V (FireGL V) Graphics Adapter"    Southern Islands
  2519.     [0x678A] = { baseQualityLevel = Quality.Low }, --    "ATI FirePro V (FireGL V) Graphics Adapter"    Southern Islands
  2520.     [0x6806] = { baseQualityLevel = Quality.Low }, --    "NEPTUNE (6806)"   Southern Islands
  2521.     [0x6808] = { baseQualityLevel = Quality.Low }, --    "ATI FirePro V(FireGL V) Graphics Adapter" Southern Islands
  2522.     [0x6809] = { baseQualityLevel = Quality.Low }, --    "ATI FirePro V(FireGL V) Graphics Adapter" Southern Islands
  2523.     [0x6820] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 8800M Series"   Southern Islands
  2524.     [0x6820] = { baseQualityLevel = Quality.Low }, --    "Radeon (TM) HD 7750M" Southern Islands
  2525.     [0x6825] = { baseQualityLevel = Quality.Low }, --    "HEATHROW XT"  Southern Islands
  2526.     [0x6825] = { baseQualityLevel = Quality.Low }, --    "CHELSEA PRO"  Southern Islands
  2527.     [0x6825] = { baseQualityLevel = Quality.Low }, --    "HEATHROW XT"  Southern Islands
  2528.     [0x6825] = { baseQualityLevel = Quality.Low }, --    "HEATHROW XT"  Southern Islands
  2529.     [0x6825] = { baseQualityLevel = Quality.Low }, --    "HEATHROW XT"  Southern Islands
  2530.     [0x6825] = { baseQualityLevel = Quality.Low }, --    "HEATHROW XT"  Southern Islands
  2531.     [0x6825] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7800M Series"   Southern Islands
  2532.     [0x6826] = { baseQualityLevel = Quality.Low }, --    "CHELSEA LP"   Southern Islands
  2533.     [0x6826] = { baseQualityLevel = Quality.Low }, --    "CHELSEA LP"   Southern Islands
  2534.     [0x6826] = { baseQualityLevel = Quality.Low }, --    "CHELSEA LP"   Southern Islands
  2535.     [0x6826] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7700M Series"   Southern Islands
  2536.     [0x6827] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7800M Series"   Southern Islands
  2537.     [0x6827] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7800M Series"   Southern Islands
  2538.     [0x6827] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7800M Series"   Southern Islands
  2539.     [0x6827] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7800M Series"   Southern Islands
  2540.     [0x6827] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7800M Series"   Southern Islands
  2541.     [0x6827] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7800M Series"   Southern Islands
  2542.     [0x6827] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7800M Series"   Southern Islands
  2543.     [0x6828] = { baseQualityLevel = Quality.Low }, --    "ATI FirePro V(FireGL V) Graphics Adapter" Southern Islands
  2544.     [0x682D] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7700M Series"   Southern Islands
  2545.     [0x682D] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7700M Series"   Southern Islands
  2546.     [0x682D] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7700M Series"   Southern Islands
  2547.     [0x682D] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7700M Series"   Southern Islands
  2548.     [0x682D] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7700M Series"   Southern Islands
  2549.     [0x682D] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7700M Series"   Southern Islands
  2550.     [0x682D] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7700M Series"   Southern Islands
  2551.     [0x682F] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7700M Series"   Southern Islands
  2552.     [0x682F] = { baseQualityLevel = Quality.Low }, --    "Radeon (TM) HD 7750M" Southern Islands
  2553.     [0x682F] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7700M Series"   Southern Islands
  2554.     [0x682F] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7700M Series"   Southern Islands
  2555.     [0x682F] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7700M Series"   Southern Islands
  2556.     [0x682F] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7700M Series"   Southern Islands
  2557.     [0x682F] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7700M Series"   Southern Islands
  2558.     [0x682F] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7700M Series"   Southern Islands
  2559.     [0x6830] = { baseQualityLevel = Quality.Low }, --    "GREAT WALL"   Southern Islands
  2560.     [0x6830] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7800M Series"   Southern Islands
  2561.     [0x6831] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7700M Series"   Southern Islands
  2562.     [0x6840] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7600M Series"   Southern Islands
  2563.     [0x6840] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7600M Series"   Southern Islands
  2564.     [0x6840] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7600M Series"   Southern Islands
  2565.     [0x6840] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7600M Series"   Southern Islands
  2566.     [0x6840] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7600M Series"   Southern Islands
  2567.     [0x6840] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7600M Series"   Southern Islands
  2568.     [0x6840] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7600M Series"   Southern Islands
  2569.     [0x6840] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7600M Series"   Southern Islands
  2570.     [0x6840] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7600M Series"   Southern Islands
  2571.     [0x6841] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7500M/7600M Series" Southern Islands
  2572.     [0x6841] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7500M/7600M Series" Southern Islands
  2573.     [0x6841] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7500M/7600M Series" Southern Islands
  2574.     [0x6841] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7500M/7600M Series" Southern Islands
  2575.     [0x6841] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7500M/7600M Series" Southern Islands
  2576.     [0x6841] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7500M/7600M Series" Southern Islands
  2577.     [0x6841] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7570M"  Southern Islands
  2578.     [0x6841] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7650M"  Southern Islands
  2579.     [0x6841] = { baseQualityLevel = Quality.Low }, --    "Radeon (TM)  HD 7570M"    Southern Islands
  2580.     [0x6841] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7500M/7600M Series" Southern Islands
  2581.     [0x6841] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7500M/7600M Series" Southern Islands
  2582.     [0x6841] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7500M/7600M Series" Southern Islands
  2583.     [0x6842] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7000M Series"   Southern Islands
  2584.     [0x6842] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7000M Series"   Southern Islands
  2585.     [0x6842] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7000M Series"   Southern Islands
  2586.     [0x6842] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7000M Series"   Southern Islands
  2587.     [0x6842] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7000M Series"   Southern Islands
  2588.     [0x6842] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7000M Series"   Southern Islands
  2589.     [0x6842] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7000M Series"   Southern Islands
  2590.     [0x6842] = { baseQualityLevel = Quality.Low }, --    "ATI Mobility Radeon HD 6000 series"   Southern Islands
  2591.     [0x6842] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7000M Series"   Southern Islands
  2592.     [0x6843] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7670M"  Southern Islands
  2593.     [0x6849] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7400 Series"    Southern Islands
  2594.     [0x684C] = { baseQualityLevel = Quality.Low }, --    "ATI FirePro V(FireGL V) Graphics Adapter" Southern Islands
  2595.     [0x6850] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7400 Series"    Southern Islands
  2596.     [0x6858] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7400 Series"    Southern Islands
  2597.     [0x6859] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7400 Series"    Southern Islands
  2598.     [0x9900] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7660G"  Trinity APU
  2599.     [0x9900] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7660G"  Trinity APU
  2600.     [0x9900] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7660G"  Trinity APU
  2601.     [0x9901] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7660D"  Trinity APU
  2602.     [0x9903] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7640G"  Trinity APU
  2603.     [0x9903] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7640G"  Trinity APU
  2604.     [0x9903] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7640G"  Trinity APU
  2605.     [0x9904] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7560D"  Trinity APU
  2606.     [0x9905] = { baseQualityLevel = Quality.Low }, --    "ATI FirePro A300 Series(FireGL V) Graphics Adapter"   Trinity APU
  2607.     [0x9906] = { baseQualityLevel = Quality.Low }, --    "AMD FirePro A300 Series (FireGL V) Graphics Adapter"  Trinity APU
  2608.     [0x9907] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7620G"  Trinity APU
  2609.     [0x9908] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7600G"  Trinity APU
  2610.     [0x9909] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7500G"  Trinity APU
  2611.     [0x990A] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7500G"  Trinity APU
  2612.     [0x9910] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7660G"  Trinity APU
  2613.     [0x9913] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7640G"  Trinity APU
  2614.     [0x9917] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7620G"  Trinity APU
  2615.     [0x9918] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7600G"  Trinity APU
  2616.     [0x9919] = { baseQualityLevel = Quality.Low }, --    "AMD Radeon HD 7500G"  Trinity APU
  2617. }
  2618.   ‚Ú4$file Ð4name /Scripts/UserOptions/HardwareProfiles/Intel.lua payload Ž4-- Settings database for Intel devices
  2619. return {
  2620. --  [0xHHHH] = { -- Example card
  2621. --      baseQualityLevel = Quality.High,
  2622. --      defaultSettings = {
  2623. --          TextureQuality = Quality.Low,
  2624. --          ShadowQuality = Quality.Medium,
  2625. --          EffectsQuality = Quality.High,
  2626. --      },
  2627. --      consoleOverrides = [=[
  2628. --          WorldRender.MotionBlurEnable 0
  2629. --      ]=]
  2630. --  }
  2631.  
  2632.     [0x2982] = { baseQualityLevel = Quality.Low    }, -- SM4   ; Intel(R) G35 Express Chipset Family
  2633.     [0x2983] = { baseQualityLevel = Quality.Low    }, -- SM4   ; Intel(R) G35 Express Chipset Family
  2634.     [0x2A02] = { baseQualityLevel = Quality.Low    }, -- SM4   ; Mobile Intel(R) 965 Express Chipset Family
  2635.     [0x2A03] = { baseQualityLevel = Quality.Low    }, -- SM4   ; Mobile Intel(R) 965 Express Chipset Family
  2636.     [0x2A12] = { baseQualityLevel = Quality.Low    }, -- SM4   ; Mobile Intel(R) 965 Express Chipset Family
  2637.     [0x2A13] = { baseQualityLevel = Quality.Low    }, -- SM4   ; Mobile Intel(R) 965 Express Chipset Family
  2638.     [0x2A42] = { baseQualityLevel = Quality.Low    }, -- SM4   ; Mobile Intel(R) 4 Series Express Chipset Family
  2639.     [0x2A43] = { baseQualityLevel = Quality.Low    }, -- SM4   ; Mobile Intel(R) 4 Series Express Chipset Family
  2640.     [0x2E02] = { baseQualityLevel = Quality.Low    }, -- SM4   ; Intel(R) 4 Series Express Chipset
  2641.     [0x2E03] = { baseQualityLevel = Quality.Low    }, -- SM4   ; Intel(R) 4 Series Express Chipset
  2642.     [0x2E22] = { baseQualityLevel = Quality.Low    }, -- SM4   ; Intel(R) G45/G43 Express Chipset
  2643.     [0x2E23] = { baseQualityLevel = Quality.Low    }, -- SM4   ; Intel(R) G45/G43 Express Chipset
  2644.     [0x2E12] = { baseQualityLevel = Quality.Low    }, -- SM4   ; Intel(R) Q45/Q43 Express Chipset
  2645.     [0x2E13] = { baseQualityLevel = Quality.Low    }, -- SM4   ; Intel(R) Q45/Q43 Express Chipset
  2646.     [0x2E32] = { baseQualityLevel = Quality.Low    }, -- SM4   ; Intel(R) G41 Express Chipset
  2647.     [0x2E33] = { baseQualityLevel = Quality.Low    }, -- SM4   ; Intel(R) G41 Express Chipset
  2648.     [0x2E42] = { baseQualityLevel = Quality.Low    }, -- SM4   ; Intel(R) B43 Express Chipset
  2649.     [0x2E43] = { baseQualityLevel = Quality.Low    }, -- SM4   ; Intel(R) B43 Express Chipset
  2650.     [0x2E92] = { baseQualityLevel = Quality.Low    }, -- SM4   ; Intel(R) B43 Express Chipset
  2651.     [0x2E93] = { baseQualityLevel = Quality.Low    }, -- SM4   ; Intel(R) B43 Express Chipset
  2652.     [0x0046] = { baseQualityLevel = Quality.Low    }, -- SM4   ; Intel(R) HD Graphics - Core i3/i5/i7 Mobile Processors
  2653.     [0x0042] = { baseQualityLevel = Quality.Low    }, -- SM4   ; Intel(R) HD Graphics - Core i3/i5 + Pentium G9650 Processors
  2654.     [0x0106] = { baseQualityLevel = Quality.Low    }, -- SM4.1 ; Intel(R) HD Graphics 2000 - Mobile SandyBridge GT1
  2655.     [0x0102] = { baseQualityLevel = Quality.Low    }, -- SM4.1 ; Intel(R) HD Graphics 2000 - Desktop SandyBridge GT1
  2656.     [0x010A] = { baseQualityLevel = Quality.Low    }, -- SM4.1 ; Intel(R) HD Graphics 3000 - Server SandyBridge
  2657.     [0x0152] = { baseQualityLevel = Quality.Low    }, -- SM5.0 ; Intel(R) HD Graphics 2500 - Desktop IvyBridge GT1
  2658.     [0x0156] = { baseQualityLevel = Quality.Low    }, -- SM5.0 ; Intel(R) HD Graphics 2500 - Mobile IvyBridge GT1
  2659.     [0x015A] = { baseQualityLevel = Quality.Low    }, -- SM5.0 ; Intel(R) HD Graphics 2500 - Server IvyBridge GT1
  2660.     [0x015E] = { baseQualityLevel = Quality.Low    }, -- SM5.0 ; Intel(R) HD Graphics 2500 - Reserved - IvyBridge GT1
  2661.     [0x0A06] = { baseQualityLevel = Quality.Low    }, -- SM5.0 ; 4th Gen Intel(R) Core processor graphics - Mobile Haswell - ULT GT1
  2662.     [0x0A0E] = { baseQualityLevel = Quality.Low    }, -- SM5.0 ; 4th Gen Intel(R) Core processor graphics - Reserved Haswell - ULT GT1
  2663.     [0x0402] = { baseQualityLevel = Quality.Low    }, -- SM5.0 ; 4th Gen Intel(R) Core processor graphics - Desktop Haswell GT1
  2664.     [0x0406] = { baseQualityLevel = Quality.Low    }, -- SM5.0 ; 4th Gen Intel(R) Core processor graphics - Mobile Haswell GT1
  2665.     [0x040A] = { baseQualityLevel = Quality.Low    }, -- SM5.0 ; 4th Gen Intel(R) Core processor graphics - Server Haswell GT1
  2666.     [0x0112] = { baseQualityLevel = Quality.Low    }, -- SM4.1 ; Intel(R) HD Graphics 3000 - Desktop SandyBridge GT2
  2667.     [0x0122] = { baseQualityLevel = Quality.Low    }, -- SM4.1 ; Intel(R) HD Graphics 3000 - Desktop SandyBridge GT2+
  2668.     [0x0116] = { baseQualityLevel = Quality.Low    }, -- SM4.1 ; Intel(R) HD Graphics 3000 - Mobile SandyBridge GT2
  2669.     [0x0126] = { baseQualityLevel = Quality.Low    }, -- SM4.1 ; Intel(R) HD Graphics 3000 - Mobile SandyBrdige GT2+
  2670.     [0x0162] = { baseQualityLevel = Quality.Low    }, -- SM5.0 ; Intel(R) HD Graphics 4000 - Desktop IvyBridge GT2
  2671.     [0x0166] = { baseQualityLevel = Quality.Low    }, -- SM5.0 ; Intel(R) HD Graphics 4000 - Mobile IvyBridge GT2
  2672.     [0x016A] = { baseQualityLevel = Quality.Low    }, -- SM5.0 ; Intel(R) HD Graphics 4000 - Server IvyBrdige GT2
  2673.     [0x0D12] = { baseQualityLevel = Quality.Low    }, -- SM5.0 ; 4th Gen Intel(R) Core processor graphics - Mobile Haswell - ULT GT2
  2674.     [0x0D16] = { baseQualityLevel = Quality.Low    }, -- SM5.0 ; 4th Gen Intel(R) Core processor graphics HD 4600 - Mobile Haswell - ULT GT2
  2675.     [0x0416] = { baseQualityLevel = Quality.Low    }, -- SM5.0 ; 4th Gen Intel(R) Core processor graphics - Mobile Haswell GT2
  2676.     [0x041B] = { baseQualityLevel = Quality.Low    }, -- SM5.0 ; 4th Gen Intel(R) Core processor graphics - Workstation Haswell GT2
  2677.     [0x041A] = { baseQualityLevel = Quality.Low    }, -- SM5.0 ; 4th Gen Intel(R) Core processor graphics - Server Haswell GT2
  2678.     [0x0A1E] = { baseQualityLevel = Quality.Low    }, -- SM5.0 ; 4th Gen Intel(R) Core processor graphics HD 4200 - Mobile Haswell - ULT GT2
  2679.     [0x0A16] = { baseQualityLevel = Quality.Low    }, -- SM5.0 ; 4th Gen Intel(R) Core processor graphics HD 4400 - Mobile Haswell - ULT GT2
  2680.     [0x041E] = { baseQualityLevel = Quality.Low    }, -- SM5.0 ; 4th Gen Intel(R) Core processor graphics HD 4400 - Reserved Haswell
  2681.     [0x0412] = { baseQualityLevel = Quality.Low    }, -- SM5.0 ; 4th Gen Intel(R) Core processor graphics HD 4600 - Desktop Haswell GT2
  2682.     [0x0A26] = { baseQualityLevel = Quality.Low    }, -- SM5.0 ; 4th Gen Intel(r) Core processor graphics HD 5000 - Mobile Haswell - ULT GT3
  2683.     [0x0A2E] = { baseQualityLevel = Quality.Medium }, -- SM5.0 ; 4th Gen Intel(R) Core processor graphics HD 5100 Iris - Mobile Haswell - ULT GT3
  2684.     [0x0D26] = { baseQualityLevel = Quality.Medium }, -- SM5.0 ; 4th Gen Intel(R) Core processor graphics HD 5200 Iris Pro -  Mobile GT3
  2685.     [0x0D22] = { baseQualityLevel = Quality.Medium }, -- SM5.0 ; 4th Gen Intel(R) Core processor graphics HD 5200 Iris Pro - Desktop GT3
  2686.     [0x0D2A] = { baseQualityLevel = Quality.Medium }, -- SM5.0 ; 4th Gen Intel(R) Core processor graphics Iris Pro - Server GT3
  2687. }
  2688.   ‚Ûï$file Ðïname 0Scripts/UserOptions/HardwareProfiles/nVidia.lua payload Œï-- Settings database for nVidia devices
  2689. return {
  2690. --  [0xHHHH] = { -- Example card
  2691. --      baseQualityLevel = Quality.Medium,
  2692. --      defaultSettings = {
  2693. --          TextureQuality = Quality.Low,
  2694. --          ShadowQuality = Quality.Medium,
  2695. --          EffectsQuality = Quality.Medium,
  2696. --      },
  2697. --      consoleOverrides = [=[
  2698. --          WorldRender.MotionBlurEnable 0
  2699. --      ]=]
  2700. --  }
  2701.     [0x0191] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8800 GTX
  2702.     [0x0193] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8800 GTS
  2703.     [0x0194] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8800 Ultra
  2704.     [0x019D] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 5600
  2705.     [0x019E] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 4600
  2706.     [0x0400] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8600 GTS
  2707.     [0x0401] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8600 GT
  2708.     [0x0402] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8600 GT
  2709.     [0x0403] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8600 GS
  2710.     [0x0404] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8400 GS
  2711.     [0x0405] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9500M GS
  2712.     [0x0406] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8300 GS
  2713.     [0x0407] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8600M GT
  2714.     [0x0408] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9650M GS
  2715.     [0x0409] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8700M GT
  2716.     [0x040A] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 370
  2717.     [0x040B] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro NVS 320M
  2718.     [0x040C] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 570M
  2719.     [0x040D] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 1600M
  2720.     [0x040E] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 570
  2721.     [0x040F] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 1700
  2722.     [0x0410] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 330
  2723.     [0x0420] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8400 SE
  2724.     [0x0421] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8500 GT
  2725.     [0x0422] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8400 GS
  2726.     [0x0423] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8300 GS
  2727.     [0x0424] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8400 GS  
  2728.     [0x0425] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8600M GS
  2729.     [0x0426] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8400M GT
  2730.     [0x0427] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8400M GS
  2731.     [0x0428] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8400M G
  2732.     [0x0429] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro NVS 140M
  2733.     [0x042A] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro NVS 130M
  2734.     [0x042B] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro NVS 135M
  2735.     [0x042C] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9400 GT
  2736.     [0x042D] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 360M
  2737.     [0x042E] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9300M G
  2738.     [0x042F] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro NVS 290
  2739.     [0x05E0] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GTX 295
  2740.     [0x05E1] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GTX 280
  2741.     [0x05E2] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GTX 260
  2742.     [0x05E3] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GTX 285
  2743.     [0x05E6] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GTX 275
  2744.     [0x05EA] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GTX 260
  2745.     [0x05EB] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GTX 295
  2746.     [0x05F9] = { baseQualityLevel = Quality.Medium }, -- NVIDIA Quadro CX
  2747.     [0x05FD] = { baseQualityLevel = Quality.Medium }, -- NVIDIA Quadro FX 5800
  2748.     [0x05FE] = { baseQualityLevel = Quality.Medium }, -- NVIDIA Quadro FX 4800
  2749.     [0x05FF] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 3800
  2750.     [0x0600] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8800 GTS 512
  2751.     [0x0601] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9800 GT
  2752.     [0x0602] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8800 GT
  2753.     [0x0603] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 230
  2754.     [0x0604] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9800 GX2
  2755.     [0x0605] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9800 GT
  2756.     [0x0606] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8800 GS
  2757.     [0x0607] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GTS 240
  2758.     [0x0608] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9800M GTX
  2759.     [0x0609] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8800M GTS
  2760.     [0x060A] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GTX 280M
  2761.     [0x060B] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9800M GT
  2762.     [0x060C] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8800M GTX
  2763.     [0x060F] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GTX 285M
  2764.     [0x0610] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9600 GSO
  2765.     [0x0611] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8800 GT
  2766.     [0x0612] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9800 GTX/9800 GTX+
  2767.     [0x0613] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9800 GTX+
  2768.     [0x0614] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9800 GT  
  2769.     [0x0615] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GTS 250
  2770.     [0x0617] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9800M GTX
  2771.     [0x0618] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GTX 260M
  2772.     [0x0619] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 4700 X2
  2773.     [0x061A] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 3700
  2774.     [0x061B] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro VX 200
  2775.     [0x061C] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 3600M
  2776.     [0x061D] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 2800M
  2777.     [0x061E] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 3700M
  2778.     [0x061F] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 3800M
  2779.     [0x0621] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 230
  2780.     [0x0622] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9600 GT
  2781.     [0x0623] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9600 GS
  2782.     [0x0625] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9600 GSO 512
  2783.     [0x0626] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 130
  2784.     [0x0627] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 140
  2785.     [0x0628] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9800M GTS
  2786.     [0x062A] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9700M GTS
  2787.     [0x062B] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9800M GS
  2788.     [0x062C] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9800M GTS  
  2789.     [0x062D] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9600 GT
  2790.     [0x062E] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9600 GT  
  2791.     [0x0631] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GTS 160M
  2792.     [0x0635] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9600 GSO
  2793.     [0x0637] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9600 GT  
  2794.     [0x0638] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 1800
  2795.     [0x063A] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 2700M
  2796.     [0x0640] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9500 GT
  2797.     [0x0641] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9400 GT
  2798.     [0x0643] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9500 GT
  2799.     [0x0644] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9500 GS
  2800.     [0x0645] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9500 GS
  2801.     [0x0646] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 120
  2802.     [0x0647] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9600M GT
  2803.     [0x0648] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9600M GS
  2804.     [0x0649] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9600M GT
  2805.     [0x064A] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9700M GT
  2806.     [0x064B] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9500M G
  2807.     [0x064C] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9650M GT
  2808.     [0x0651] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce G 110M
  2809.     [0x0652] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 130M
  2810.     [0x0653] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 120M
  2811.     [0x0654] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 320M
  2812.     [0x0655] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 120
  2813.     [0x0656] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 120  
  2814.     [0x0658] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 380
  2815.     [0x0659] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 580
  2816.     [0x065A] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 1700M
  2817.     [0x065B] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9400 GT  
  2818.     [0x065C] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 770M
  2819.     [0x065F] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce G210
  2820.     [0x06C0] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 480
  2821.     [0x06C4] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 465
  2822.     [0x06CA] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 480M
  2823.     [0x06CD] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 470
  2824.     [0x06D8] = { baseQualityLevel = Quality.Medium }, -- NVIDIA Quadro 6000
  2825.     [0x06D9] = { baseQualityLevel = Quality.Medium }, -- NVIDIA Quadro 5000
  2826.     [0x06DA] = { baseQualityLevel = Quality.Medium }, -- NVIDIA Quadro 5000M
  2827.     [0x06DC] = { baseQualityLevel = Quality.Medium }, -- NVIDIA Quadro 6000  
  2828.     [0x06DD] = { baseQualityLevel = Quality.Medium }, -- NVIDIA Quadro 4000
  2829.     [0x06E0] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9300 GE
  2830.     [0x06E1] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9300 GS
  2831.     [0x06E2] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8400
  2832.     [0x06E3] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8400 SE
  2833.     [0x06E4] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8400 GS    
  2834.     [0x06E6] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce G100
  2835.     [0x06E7] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9300 SE
  2836.     [0x06E8] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9200M GS
  2837.     [0x06E9] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9300M GS
  2838.     [0x06EA] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro NVS 150M
  2839.     [0x06EB] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro NVS 160M
  2840.     [0x06EC] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce G 105M
  2841.     [0x06EF] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce G 103M
  2842.     [0x06F1] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce G105M
  2843.     [0x06F8] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro NVS 420
  2844.     [0x06F9] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 370 LP
  2845.     [0x06FA] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro NVS 450
  2846.     [0x06FB] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 370M
  2847.     [0x06FD] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro NVS 295
  2848.     [0x06FF] = { baseQualityLevel = Quality.Low }, -- NVIDIA HICx16 + Graphics
  2849.     [0x0840] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8200M
  2850.     [0x0844] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9100M G
  2851.     [0x0845] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8200M G
  2852.     [0x0846] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9200
  2853.     [0x0847] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9100
  2854.     [0x0848] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8300
  2855.     [0x0849] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8200
  2856.     [0x084A] = { baseQualityLevel = Quality.Low }, -- NVIDIA nForce 730a
  2857.     [0x084B] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9200  
  2858.     [0x084C] = { baseQualityLevel = Quality.Low }, -- NVIDIA nForce 980a/780a SLI
  2859.     [0x084D] = { baseQualityLevel = Quality.Low }, -- NVIDIA nForce 750a SLI
  2860.     [0x084F] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8100 / nForce 720a
  2861.     [0x0860] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9400
  2862.     [0x0861] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9400
  2863.     [0x0862] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9400M G
  2864.     [0x0863] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9400M
  2865.     [0x0864] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9300
  2866.     [0x0865] = { baseQualityLevel = Quality.Low }, -- NVIDIA ION    
  2867.     [0x0866] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9400M G
  2868.     [0x0867] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9400
  2869.     [0x0868] = { baseQualityLevel = Quality.Low }, -- NVIDIA nForce 760i SLI
  2870.     [0x0869] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9400  
  2871.     [0x086A] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9400  
  2872.     [0x086C] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9300 / nForce 730i
  2873.     [0x086D] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9200  
  2874.     [0x086E] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9100M G
  2875.     [0x086F] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8200M G
  2876.     [0x0870] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9400M        
  2877.     [0x0871] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9200    
  2878.     [0x0872] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce G102M
  2879.     [0x0873] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce G102M  
  2880.     [0x0874] = { baseQualityLevel = Quality.Low }, -- NVIDIA ION    
  2881.     [0x0876] = { baseQualityLevel = Quality.Low }, -- NVIDIA ION
  2882.     [0x087A] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9400    
  2883.     [0x087D] = { baseQualityLevel = Quality.Low }, -- NVIDIA ION      
  2884.     [0x087E] = { baseQualityLevel = Quality.Low }, -- NVIDIA ION LE
  2885.     [0x087F] = { baseQualityLevel = Quality.Low }, -- NVIDIA ION LE
  2886.     [0x08A0] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 320M
  2887.     [0x08A2] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 320M  
  2888.     [0x08A3] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 320M  
  2889.     [0x08A4] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 320M    
  2890.     [0x0A20] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 220
  2891.     [0x0A22] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 315
  2892.     [0x0A23] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 210
  2893.     [0x0A26] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 405
  2894.     [0x0A27] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 405
  2895.     [0x0A28] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 230M
  2896.     [0x0A29] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 330M
  2897.     [0x0A2A] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 230M
  2898.     [0x0A2B] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 330M
  2899.     [0x0A2C] = { baseQualityLevel = Quality.Low }, -- NVIDIA NVS 5100M
  2900.     [0x0A2D] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 320M
  2901.     [0x0A32] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 415
  2902.     [0x0A34] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 240M
  2903.     [0x0A35] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 325M
  2904.     [0x0A38] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro 400
  2905.     [0x0A3C] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 880M
  2906.     [0x0A60] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce G210
  2907.     [0x0A62] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 205
  2908.     [0x0A63] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 310
  2909.     [0x0A64] = { baseQualityLevel = Quality.Low }, -- NVIDIA ION
  2910.     [0x0A65] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 210
  2911.     [0x0A66] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 310
  2912.     [0x0A67] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 315
  2913.     [0x0A68] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce G105M
  2914.     [0x0A69] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce G105M
  2915.     [0x0A6A] = { baseQualityLevel = Quality.Low }, -- NVIDIA NVS 2100M
  2916.     [0x0A6C] = { baseQualityLevel = Quality.Low }, -- NVIDIA NVS 3100M
  2917.     [0x0A6E] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 305M
  2918.     [0x0A6F] = { baseQualityLevel = Quality.Low }, -- NVIDIA ION  
  2919.     [0x0A70] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 310M
  2920.     [0x0A71] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 305M
  2921.     [0x0A72] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 310M          
  2922.     [0x0A73] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 305M
  2923.     [0x0A74] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce G210M
  2924.     [0x0A75] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 310M              
  2925.     [0x0A76] = { baseQualityLevel = Quality.Low }, -- NVIDIA ION    
  2926.     [0x0A78] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 380 LP
  2927.     [0x0A7A] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 405
  2928.     [0x0A7C] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 380M
  2929.     [0x0CA0] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 330
  2930.     [0x0CA2] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 320
  2931.     [0x0CA3] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 240
  2932.     [0x0CA4] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 340
  2933.     [0x0CA5] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 220  
  2934.     [0x0CA7] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 330  
  2935.     [0x0CA9] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GTS 250M
  2936.     [0x0CAC] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 220  
  2937.     [0x0CAF] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 335M
  2938.     [0x0CB0] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GTS 350M
  2939.     [0x0CB1] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GTS 360M
  2940.     [0x0CBC] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro FX 1800M
  2941.     [0x0DC0] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 440
  2942.     [0x0DC4] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GTS 450
  2943.     [0x0DC5] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GTS 450
  2944.     [0x0DC6] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GTS 450  
  2945.     [0x0DCD] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GT 555M
  2946.     [0x0DCE] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GT 555M
  2947.     [0x0DD1] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GTX 460M
  2948.     [0x0DD2] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 445M
  2949.     [0x0DD3] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 435M
  2950.     [0x0DD6] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 550M  
  2951.     [0x0DD8] = { baseQualityLevel = Quality.Medium }, -- NVIDIA Quadro 2000
  2952.     [0x0DDA] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro 2000M
  2953.     [0x0DE0] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 440
  2954.     [0x0DE1] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 430
  2955.     [0x0DE2] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 420
  2956.     [0x0DE3] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 635M
  2957.     [0x0DE4] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 520
  2958.     [0x0DE5] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 530
  2959.     [0x0DE8] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 620M
  2960.     [0x0DE9] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 630M
  2961.     [0x0DEA] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 610M
  2962.     [0x105B] = { baseQualityLevel = Quality.Low }, -- GeForce 705M
  2963.     [0x1295] = { baseQualityLevel = Quality.Low }, -- GeForce 710M
  2964.     [0x1298] = { baseQualityLevel = Quality.Medium }, -- GeForce GT 720M
  2965.     [0x0DEB] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GT 555M
  2966.     [0x0DEC] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GT 525M
  2967.     [0x0DED] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GT 520M
  2968.     [0x0DEE] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 415M
  2969.     [0x0DEF] = { baseQualityLevel = Quality.Low }, -- NVIDIA NVS 5400M
  2970.     [0x0DF0] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 425M
  2971.     [0x0DF1] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 420M
  2972.     [0x0DF2] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 435M
  2973.     [0x0DF3] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 420M
  2974.     [0x0DF4] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 540M
  2975.     [0x0DF5] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 525M
  2976.     [0x0DF6] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 550M
  2977.     [0x0DF7] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 520M
  2978.     [0x0DF8] = { baseQualityLevel = Quality.Medium }, -- NVIDIA Quadro 600
  2979.     [0x0DF9] = { baseQualityLevel = Quality.Medium }, -- NVIDIA Quadro 500M
  2980.     [0x0DFA] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro 1000M
  2981.     [0x0DFC] = { baseQualityLevel = Quality.Low }, -- NVIDIA NVS 5200M
  2982.     [0x1290] = { baseQualityLevel = Quality.Low }, -- GeForce GT 730M (GDDR5)
  2983.     [0x0FE1] = { baseQualityLevel = Quality.Low }, -- GeForce GT 730M (DDR3)
  2984.     [0x1291] = { baseQualityLevel = Quality.Low }, -- GeForce GT 735M
  2985.     [0x0E22] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 460
  2986.     [0x0E23] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 460 SE
  2987.     [0x0E24] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 460
  2988.     [0x0E30] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 470M
  2989.     [0x0E31] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 485M
  2990.     [0x0E3A] = { baseQualityLevel = Quality.High }, -- NVIDIA Quadro 3000M
  2991.     [0x0E3B] = { baseQualityLevel = Quality.High }, -- NVIDIA Quadro 4000M
  2992.     [0x0F00] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 630
  2993.     [0x0F01] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 620
  2994.     [0x0FC0] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GT 640
  2995.     [0x0FC1] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GT 640
  2996.     [0x0FC2] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 630
  2997.     [0x0FC6] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GTX 650
  2998.     [0x0FD1] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GT 650M
  2999.     [0x0FD2] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 640M
  3000.     [0x0FD3] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 640M LE
  3001.     [0x0FD4] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GTX 660M
  3002.     [0x0FD5] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GT 650M
  3003.     [0x0FD8] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GT 640M
  3004.     [0x0FD9] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GT 645M
  3005.     [0x0FE0] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GTX 660M
  3006.     [0x0FDF] = { baseQualityLevel = Quality.Medium }, -- GeForce GT 740M (DDR3)
  3007.     [0x1292] = { baseQualityLevel = Quality.Medium }, -- GeForce GT 740M
  3008.     [0x1293] = { baseQualityLevel = Quality.Medium }, -- GeForce GT 740M
  3009.     [0x1294] = { baseQualityLevel = Quality.Medium }, -- GeForce GT 740M (GDDR5)
  3010.     [0x0FF9] = { baseQualityLevel = Quality.Medium }, -- NVIDIA Quadro K2000D
  3011.     [0x0FFA] = { baseQualityLevel = Quality.Medium }, -- NVIDIA Quadro K600
  3012.     [0x0FFB] = { baseQualityLevel = Quality.Medium }, -- NVIDIA Quadro K2000M
  3013.     [0x0FFC] = { baseQualityLevel = Quality.Medium }, -- NVIDIA Quadro K1000M
  3014.     [0x0FFD] = { baseQualityLevel = Quality.Low }, -- NVIDIA NVS 510
  3015.     [0x0FFE] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro K2000
  3016.     [0x0FFF] = { baseQualityLevel = Quality.Low }, -- NVIDIA Quadro 410
  3017.     [0x1040] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 520
  3018.     [0x1042] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 510
  3019.     [0x1048] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 605
  3020.     [0x1049] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 620
  3021.     [0x104A] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 610
  3022.     [0x1050] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 520M
  3023.     [0x1051] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 520MX
  3024.     [0x1052] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 520M      
  3025.     [0x1054] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 410M
  3026.     [0x1055] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 410M
  3027.     [0x1056] = { baseQualityLevel = Quality.Low }, -- NVIDIA NVS 4200M
  3028.     [0x1057] = { baseQualityLevel = Quality.Low }, -- NVIDIA NVS 4200M
  3029.     [0x1058] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 610M
  3030.     [0x1059] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 610M
  3031.     [0x105A] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 610M      
  3032.     [0x107D] = { baseQualityLevel = Quality.Low }, -- NVIDIA NVS 310
  3033.     [0x1080] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 580
  3034.     [0x1081] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 570
  3035.     [0x1082] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 560 Ti
  3036.     [0x1084] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 560
  3037.     [0x1086] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 570
  3038.     [0x1087] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 560 Ti
  3039.     [0x1088] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 590
  3040.     [0x1089] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 580
  3041.     [0x108B] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 580  
  3042.     [0x109A] = { baseQualityLevel = Quality.Medium }, -- NVIDIA Quadro 5010M
  3043.     [0x109B] = { baseQualityLevel = Quality.High }, -- NVIDIA Quadro 7000
  3044.     [0x10C0] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 9300 GS
  3045.     [0x10C3] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 8400GS
  3046.     [0x10C5] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce 405  
  3047.     [0x10D8] = { baseQualityLevel = Quality.Low }, -- NVIDIA NVS 300
  3048.     [0x1140] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 620M        
  3049.     [0x1180] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 680
  3050.     [0x1183] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 660 Ti
  3051.     [0x1185] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 660
  3052.     [0x1188] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 690
  3053.     [0x1189] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 670
  3054.     [0x11A0] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 680M
  3055.     [0x11A1] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 670MX
  3056.     [0x11A2] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 675MX
  3057.     [0x11A3] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 680MX
  3058.     [0x11A7] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 675MX
  3059.     [0x11BA] = { baseQualityLevel = Quality.High }, -- NVIDIA Quadro K5000
  3060.     [0x11BC] = { baseQualityLevel = Quality.High }, -- NVIDIA Quadro K5000M
  3061.     [0x11BD] = { baseQualityLevel = Quality.High }, -- NVIDIA Quadro K4000M
  3062.     [0x11BE] = { baseQualityLevel = Quality.High }, -- NVIDIA Quadro K3000M
  3063.     [0x11BF] = { baseQualityLevel = Quality.High }, -- NVIDIA GRID K2
  3064.     [0x11C0] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 660
  3065.     [0x11C6] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 650 Ti
  3066.     [0x11FA] = { baseQualityLevel = Quality.High }, -- NVIDIA Quadro K4000
  3067.     [0x1200] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 560 Ti  
  3068.     [0x1201] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 560
  3069.     [0x1205] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 460 v2
  3070.     [0x1206] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce  GTX 555
  3071.     [0x1207] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GT 645
  3072.     [0x1208] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 560 SE
  3073.     [0x1210] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 570M
  3074.     [0x1211] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 580M
  3075.     [0x1212] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 675M
  3076.     [0x1213] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 670M
  3077.     [0x1241] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GT 545
  3078.     [0x1243] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GT 545
  3079.     [0x1244] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GTX 550 Ti
  3080.     [0x1245] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GTS 450  
  3081.     [0x1246] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GT 550M
  3082.     [0x1247] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 635M
  3083.     [0x1248] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GT 555M
  3084.     [0x1249] = { baseQualityLevel = Quality.Low }, -- NVIDIA GeForce GTS 450    
  3085.     [0x124B] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GT 640  
  3086.     [0x124D] = { baseQualityLevel = Quality.Medium }, -- NVIDIA GeForce GT 555M
  3087.     [0x1251] = { baseQualityLevel = Quality.High }, -- NVIDIA GeForce GTX 560M
  3088.     [0x0FE2] = { baseQualityLevel = Quality.Medium }, -- GeForce GT 745M (DDR3)
  3089.     [0x0FE3] = { baseQualityLevel = Quality.Medium }, -- GeForce GT 745M (GDDR5)
  3090.     [0x0FE9] = { baseQualityLevel = Quality.High }, -- GeForce GT 750M (DDR3)
  3091.     [0x0FE4] = { baseQualityLevel = Quality.High }, -- GeForce GT 750M (GDDR5)
  3092.     [0x0FEA] = { baseQualityLevel = Quality.High }, -- GeForce GT 755M
  3093.     [0x0FCD] = { baseQualityLevel = Quality.High }, -- GeForce GT 755M
  3094.     [0x11E3] = { baseQualityLevel = Quality.High }, -- GeForce GTX 760M
  3095.     [0x11E1] = { baseQualityLevel = Quality.High }, -- GeForce GTX 765M
  3096.     [0x11E2] = { baseQualityLevel = Quality.High }, -- GeForce GTX 765M
  3097.     [0x11E0] = { baseQualityLevel = Quality.High }, -- GeForce GTX 770M
  3098.     [0x119E] = { baseQualityLevel = Quality.High }, -- GeForce GTX 780M
  3099.     [0x119F] = { baseQualityLevel = Quality.High }, -- GeForce GTX 780M
  3100.     [0x1187] = { baseQualityLevel = Quality.High }, -- GeForce GTX 760
  3101.     [0x119F] = { baseQualityLevel = Quality.High }, -- GeForce GTX 780M
  3102.     [0x1184] = { baseQualityLevel = Quality.High }, -- GeForce GTX 770
  3103.     [0x1004] = { baseQualityLevel = Quality.High }, -- GeForce GTX 780
  3104.     [0x1005] = { baseQualityLevel = Quality.Ultra }, -- GeForce GTX TITAN
  3105. }
  3106.   ‚¨$file žname  Scripts/UserOptions/Options.lua payload ëcore = require "Frost.Core"
  3107. logging = require "Frost.Logging"
  3108.  
  3109. levelName = currentGameLevel or cmdLineOption('level') or Game.Level
  3110. if levelName then
  3111.     -- Level names without slashes are assumed to be shorthand for
  3112.     -- Levels/name/name to go with Venice's epic level naming convention
  3113.     if not string.find(levelName, "/") then
  3114.         levelName = "Levels/" .. levelName .. "/" .. levelName
  3115.     end
  3116.  
  3117.     Game.FastStartupEnable = true
  3118.     if not Game.Level then
  3119.         Game.Level = levelName
  3120.     end
  3121. end
  3122.  
  3123.  
  3124. function applySettings(settings)
  3125.     core.parseKeyValueCfgString(settings, _G)
  3126. end
  3127.  
  3128. function applyQualitySettings(name, qualityMap)
  3129.     local quality = settings[name]
  3130.     if quality == nil then
  3131.         log:error("Invalid setting '" .. name .. "'")
  3132.         return
  3133.     end
  3134.    
  3135.     local consoleCommands = qualityMap[quality]
  3136.     if consoleCommands == nil then
  3137.         log:error("Could not find console settings for '" .. name .. "' with quality " .. quality)
  3138.     else
  3139.         log:info("setting '" .. name .. "': " .. quality)
  3140.         applySettings(consoleCommands)
  3141.     end
  3142. end
  3143.  
  3144. dofile("Scripts/UserOptions/Options/Graphics.lua")
  3145. dofile("Scripts/UserOptions/Options/Physics.lua")
  3146. dofile("Scripts/UserOptions/Options/Sound.lua")
  3147. dofile("Scripts/UserOptions/Options/Animations.lua")
  3148.  
  3149. applySettings(deviceSettings.consoleOverrides or "")
  3150.  
  3151. if not cmdLineOption('noLocalCfg', false) then
  3152.     core.readKeyValueCfg("/local/local.cfg", _G)
  3153. end
  3154.  
  3155. if allowCommandlineSettings then
  3156.     for index,option in ipairs(commandLine) do
  3157.         local table,member = string.match(option, "^%-(%w+)%.(%w+)")
  3158.  
  3159.         if table and member then
  3160.             local value = commandLine[index+1]
  3161.             if not _G[table] then _G[table] = {} end
  3162.             _G[table][member] = value
  3163.         else
  3164.             local varName = string.match(option, "^%-([%w-]+)")
  3165.             if varName then
  3166.                 local value = commandLine[index+1]
  3167.                 if value then
  3168.                     _G[varName] = value
  3169.                 end
  3170.             end
  3171.         end
  3172.     end
  3173. end
  3174.  
  3175.   ‚ç
  3176. $file Ý
  3177. name +Scripts/UserOptions/Options/Animations.lua payload Ÿ
  3178. local quality = settings['AnimationQuality']
  3179. log:info("setting animation quality : "..quality)
  3180.  
  3181. -- IMPORTANT:
  3182. -- GameAnimation.TemporalLoddingFirstDistance *must* be slighly larger than the
  3183. -- distance where IK is disabled in the animation project (EnableFootplanting_ESIG)
  3184. -- for all quality levels.
  3185.  
  3186. if(quality > 0.8) then
  3187.     applySettings([=[
  3188.  
  3189.     GameAnimation.TemporalLoddingFirstDistance 10000.0
  3190.     GameAnimation.TemporalLoddingSecondDistance 10000.0
  3191.     GameAnimation.TemporalLoddingThirdDistance 10000.0
  3192.     GameAnimation.TemporalLoddingFourthDistance 10000.0
  3193.     GameAnimation.TemporalLoddingFifthDistance 10000.0
  3194.     GameAnimation.TemporalLoddingSixthDistance 10000.0
  3195.  
  3196.     GameAnimation.TemporalLoddingFirstDeltaTime = 0.02
  3197.     GameAnimation.TemporalLoddingSecondDeltaTime = 0.04
  3198.     GameAnimation.TemporalLoddingThirdDeltaTime = 0.06
  3199.     GameAnimation.TemporalLoddingFourthDeltaTime = 0.08
  3200.     GameAnimation.TemporalLoddingFifthDeltaTime = 0.10
  3201.     GameAnimation.TemporalLoddingSixthDeltaTime = 0.12
  3202.  
  3203.   ]=])
  3204. else
  3205.     applySettings([=[
  3206.  
  3207.     GameAnimation.TemporalLoddingFirstDistance 10000.0
  3208.     GameAnimation.TemporalLoddingSecondDistance 10000.0
  3209.     GameAnimation.TemporalLoddingThirdDistance 10000.0
  3210.     GameAnimation.TemporalLoddingFourthDistance 10000.0
  3211.     GameAnimation.TemporalLoddingFifthDistance 10000.0
  3212.     GameAnimation.TemporalLoddingSixthDistance 10000.0
  3213.  
  3214.     GameAnimation.TemporalLoddingFirstDeltaTime = 0.02
  3215.     GameAnimation.TemporalLoddingSecondDeltaTime = 0.04
  3216.     GameAnimation.TemporalLoddingThirdDeltaTime = 0.06
  3217.     GameAnimation.TemporalLoddingFourthDeltaTime = 0.08
  3218.     GameAnimation.TemporalLoddingFifthDeltaTime = 0.10
  3219.     GameAnimation.TemporalLoddingSixthDeltaTime = 0.12
  3220.  
  3221.   ]=])
  3222. end
  3223.   ‚…•$file ú”name )Scripts/UserOptions/Options/Graphics.lua payload ½”------ Common settings for all quality levels
  3224. applySettings([=[
  3225. ]=])
  3226.  
  3227.  
  3228. ------ Texture Quality
  3229. -- ShaderQuality level: This should really be its own user setting
  3230. applyQualitySettings('TextureQuality', {
  3231.  
  3232.     [Quality.Low]=[=[
  3233.         Texture.SkipMipmapCount 1
  3234.         TextureStreaming.PoolSize 230000
  3235.         TerrainStreaming.HeightfieldAtlasSampleCountXFactor 1
  3236.         TerrainStreaming.HeightfieldAtlasSampleCountYFactor 1
  3237.         TerrainStreaming.MaskAtlasSampleCountXFactor 1
  3238.         TerrainStreaming.MaskAtlasSampleCountYFactor 1
  3239.         TerrainStreaming.ColorAtlasSampleCountXFactor 1
  3240.         TerrainStreaming.ColorAtlasSampleCountYFactor 1
  3241.         VisualTerrain.TextureAtlasSampleCountXFactor 1
  3242.         VisualTerrain.TextureAtlasSampleCountYFactor 1
  3243.         VisualTerrain.TextureRenderJobCount 1
  3244.         VisualTerrain.TextureRenderJobsLaunchedPerFrameCountMax 1
  3245.         VisualTerrain.TextureSkipMipSpeed 20
  3246.         VisualTerrain.Decal3dFarDrawDistanceScaleFactor 1.0
  3247.        
  3248.         WorldRender.SkyEnvmapResolution 128
  3249.         WorldRender.DynamicEnvmapResolution 128
  3250.        
  3251.         ShaderSystem.ShaderQualityLevel QualityLevel_Low
  3252.     ]=],
  3253.  
  3254.     -- 768 - 1 GB
  3255.     [Quality.Medium]=[=[
  3256.         Texture.SkipMipmapCount 1
  3257.         TextureStreaming.PoolSize 300000
  3258.         TerrainStreaming.HeightfieldAtlasSampleCountXFactor 1
  3259.         TerrainStreaming.HeightfieldAtlasSampleCountYFactor 2
  3260.         TerrainStreaming.MaskAtlasSampleCountXFactor 1
  3261.         TerrainStreaming.MaskAtlasSampleCountYFactor 2
  3262.         TerrainStreaming.ColorAtlasSampleCountXFactor 1
  3263.         TerrainStreaming.ColorAtlasSampleCountYFactor 2
  3264.         VisualTerrain.TextureAtlasSampleCountXFactor 1
  3265.         VisualTerrain.TextureAtlasSampleCountYFactor 2
  3266.         VisualTerrain.TextureRenderJobCount 1
  3267.         VisualTerrain.TextureRenderJobsLaunchedPerFrameCountMax 1
  3268.         VisualTerrain.TextureSkipMipSpeed 20
  3269.         VisualTerrain.Decal3dFarDrawDistanceScaleFactor 1.2
  3270.        
  3271.         WorldRender.SkyEnvmapResolution 256
  3272.         WorldRender.DynamicEnvmapResolution 256
  3273.        
  3274.         ShaderSystem.ShaderQualityLevel QualityLevel_Medium
  3275.     ]=],
  3276.    
  3277.     -- 1 - 2 GB
  3278.     [Quality.High]=[=[
  3279.         Texture.SkipMipmapCount 0
  3280.         TextureStreaming.PoolSize 450000
  3281.         TerrainStreaming.HeightfieldAtlasSampleCountXFactor 1
  3282.         TerrainStreaming.HeightfieldAtlasSampleCountYFactor 2
  3283.         TerrainStreaming.MaskAtlasSampleCountXFactor 1
  3284.         TerrainStreaming.MaskAtlasSampleCountYFactor 2
  3285.         TerrainStreaming.ColorAtlasSampleCountXFactor 1
  3286.         TerrainStreaming.ColorAtlasSampleCountYFactor 2
  3287.         VisualTerrain.TextureAtlasSampleCountXFactor 1
  3288.         VisualTerrain.TextureAtlasSampleCountYFactor 2
  3289.         VisualTerrain.TextureRenderJobCount 2
  3290.         VisualTerrain.TextureRenderJobsLaunchedPerFrameCountMax 2
  3291.         VisualTerrain.TextureSkipMipSpeed 30
  3292.         VisualTerrain.Decal3dFarDrawDistanceScaleFactor 1.7
  3293.        
  3294.         WorldRender.SkyEnvmapResolution 512
  3295.         WorldRender.DynamicEnvmapResolution 256
  3296.        
  3297.         ShaderSystem.ShaderQualityLevel QualityLevel_High
  3298.     ]=],
  3299.  
  3300.     -- 2 Gb or more
  3301.     [Quality.Ultra]=[=[
  3302.         Texture.SkipMipmapCount 0
  3303.         TextureStreaming.PoolSize 750000
  3304.         TerrainStreaming.HeightfieldAtlasSampleCountXFactor 2
  3305.         TerrainStreaming.HeightfieldAtlasSampleCountYFactor 2
  3306.         TerrainStreaming.MaskAtlasSampleCountXFactor 2
  3307.         TerrainStreaming.MaskAtlasSampleCountYFactor 2
  3308.         TerrainStreaming.ColorAtlasSampleCountXFactor 2
  3309.         TerrainStreaming.ColorAtlasSampleCountYFactor 2
  3310.         VisualTerrain.TextureAtlasSampleCountXFactor 2
  3311.         VisualTerrain.TextureAtlasSampleCountYFactor 2
  3312.         VisualTerrain.TextureRenderJobCount 3
  3313.         VisualTerrain.TextureRenderJobsLaunchedPerFrameCountMax 3
  3314.         VisualTerrain.TextureSkipMipSpeed 40
  3315.         VisualTerrain.Decal3dFarDrawDistanceScaleFactor 2
  3316.        
  3317.         WorldRender.SkyEnvmapResolution 512
  3318.         WorldRender.DynamicEnvmapResolution 512
  3319.        
  3320.         ShaderSystem.ShaderQualityLevel QualityLevel_Ultra
  3321.     ]=],
  3322. })
  3323.  
  3324. ------ Texture filtering Quality
  3325. applyQualitySettings('TextureFiltering', {
  3326.     [Quality.Low]=[=[
  3327.         ShaderSystem.MaxAnisotropyLow 1
  3328.         ShaderSystem.MaxAnisotropyMedium 1
  3329.         ShaderSystem.MaxAnisotropyHigh 2
  3330.         ShaderSystem.MaxAnisotropyUltra 4
  3331.     ]=],
  3332.     [Quality.Medium]=[=[
  3333.         ShaderSystem.MaxAnisotropyLow 1
  3334.         ShaderSystem.MaxAnisotropyMedium 2
  3335.         ShaderSystem.MaxAnisotropyHigh 4
  3336.         ShaderSystem.MaxAnisotropyUltra 4
  3337.     ]=],
  3338.     [Quality.High]=[=[
  3339.         ShaderSystem.MaxAnisotropyLow 2
  3340.         ShaderSystem.MaxAnisotropyMedium 4
  3341.         ShaderSystem.MaxAnisotropyHigh 4
  3342.         ShaderSystem.MaxAnisotropyUltra 8
  3343.     ]=],
  3344.     [Quality.Ultra]=[=[
  3345.         ShaderSystem.MaxAnisotropyLow 4
  3346.         ShaderSystem.MaxAnisotropyMedium 8
  3347.         ShaderSystem.MaxAnisotropyHigh 8
  3348.         ShaderSystem.MaxAnisotropyUltra 16
  3349.     ]=],
  3350. })
  3351.  
  3352. ------ Mesh Quality
  3353. applyQualitySettings('MeshQuality', {
  3354.     [Quality.Low]=[=[
  3355.         WorldRender.CullScreenAreaScale 1
  3356.         Mesh.GlobalLodScale 1
  3357.         Mesh.ShadowDistanceScale 1
  3358.         Mesh.TessellationEnable 0
  3359.         MeshStreaming.PoolSize 135000
  3360.        
  3361.         VegetationSystem.MaxActiveDistance 100
  3362.         VegetationSystem.MaxPreSimsPerJob 2
  3363.         VegetationSystem.SimulationMemKbClient 2048
  3364.        
  3365.         Render.EdgeModelViewDistance 50
  3366.        
  3367.         Decal.RingBufferMaxVertexCount 8192
  3368.         Decal.StaticBufferMaxVertexCount 16384
  3369.  
  3370.         WaterInteract.WaterQualityLevel Low
  3371.     ]=],
  3372.     [Quality.Medium]=[=[
  3373.         WorldRender.CullScreenAreaScale 1.25
  3374.         Mesh.GlobalLodScale 1.25
  3375.         Mesh.ShadowDistanceScale 1.25
  3376.         Mesh.TessellationEnable 0
  3377.         MeshStreaming.PoolSize 175000
  3378.        
  3379.         VegetationSystem.MaxActiveDistance 200
  3380.         VegetationSystem.MaxPreSimsPerJob 3
  3381.         VegetationSystem.SimulationMemKbClient 2048
  3382.        
  3383.         Decal.RingBufferMaxVertexCount 8192
  3384.         Decal.StaticBufferMaxVertexCount 16384
  3385.        
  3386.         Render.EdgeModelViewDistance 70
  3387.         Tessellation.Enable 0
  3388.  
  3389.         WaterInteract.WaterQualityLevel Medium
  3390.     ]=],
  3391.     [Quality.High]=[=[
  3392.         WorldRender.CullScreenAreaScale 1.5
  3393.         Mesh.GlobalLodScale 1.5
  3394.         Mesh.ShadowDistanceScale 1.5
  3395.         Mesh.TessellationEnable 1
  3396.         Mesh.TessellationMaxFactor 7
  3397.         MeshStreaming.PoolSize 200000
  3398.        
  3399.         VegetationSystem.MaxActiveDistance 300
  3400.         VegetationSystem.MaxPreSimsPerJob 4
  3401.         VegetationSystem.SimulationMemKbClient 4096
  3402.        
  3403.         Render.EdgeModelViewDistance 100
  3404.  
  3405.         Decal.RingBufferMaxVertexCount 12288
  3406.         Decal.StaticBufferMaxVertexCount 32768
  3407.        
  3408.         WaterInteract.WaterQualityLevel High
  3409.     ]=],
  3410.     [Quality.Ultra]=[=[
  3411.         WorldRender.CullScreenAreaScale 1.75
  3412.         Mesh.GlobalLodScale 1.5
  3413.         Mesh.ShadowDistanceScale 1.75
  3414.         Mesh.TessellationEnable 1
  3415.         Mesh.TessellationMaxFactor 15
  3416.         MeshStreaming.PoolSize 250000
  3417.        
  3418.         VegetationSystem.MaxActiveDistance 350
  3419.         VegetationSystem.MaxPreSimsPerJob 8
  3420.         VegetationSystem.SimulationMemKbClient 4096
  3421.        
  3422.         Render.EdgeModelViewDistance 150
  3423.  
  3424.         Decal.RingBufferMaxVertexCount 12288
  3425.         Decal.StaticBufferMaxVertexCount 32768
  3426.        
  3427.         WaterInteract.WaterQualityLevel Ultra
  3428.     ]=],
  3429. })
  3430.  
  3431.  
  3432.  
  3433. -- can't use High or Medium quality on DX10 as QuadMaxCount is above 8192 which is the max size for 1d textures
  3434. -- this is a workaround for bug http://frostbite.ea.com:8080/browse/WAR-40148
  3435. if dx10 == 1 and (settings['EffectsQuality'] == Quality.High or settings['EffectsQuality'] == Quality.Ultra) then
  3436.     log:info("clamping effects quality to medium due to DX10 limitations")
  3437.     settings['EffectsQuality'] = Quality.Medium
  3438. end
  3439.  
  3440. ------ Effects Quality
  3441. -- On Ultra, force transparent surfaces to be rendered at full res in order to conserve transparent
  3442. -- sorting with full res. particles
  3443. applyQualitySettings('EffectsQuality', {
  3444.     [Quality.Low]=[=[
  3445.         DynamicTextureAtlas.EmitterBaseWidth 4096
  3446.         DynamicTextureAtlas.EmitterBaseHeight 4096
  3447.         DynamicTextureAtlas.EmitterBaseMipmapCount 5
  3448.         DynamicTextureAtlas.EmitterBaseSkipmipsCount 1
  3449.         DynamicTextureAtlas.EmitterNormalWidth 1024
  3450.         DynamicTextureAtlas.EmitterNormalHeight 1024
  3451.         DynamicTextureAtlas.EmitterNormalMipmapCount 3
  3452.         DynamicTextureAtlas.EmitterNormalSkipmipsCount 1
  3453.         EmitterSystem.QuadHalfResEnable 1
  3454.         EmitterSystem.QuadMaxCount 6000
  3455.         EmitterSystem.MeshMaxCount 2000
  3456.         EmitterSystem.CollisionRayCastMaxCount 50
  3457.         EmitterSystem.EmitterQualityLevel Low
  3458.         EffectSystem.EffectQualityLevel Low
  3459.         WorldRender.HalfResLensFlaresEnable 1
  3460.     ]=],
  3461.     [Quality.Medium]=[=[
  3462.         DynamicTextureAtlas.EmitterBaseWidth 4096
  3463.         DynamicTextureAtlas.EmitterBaseHeight 4096
  3464.         DynamicTextureAtlas.EmitterBaseMipmapCount 5
  3465.         DynamicTextureAtlas.EmitterBaseSkipmipsCount 1
  3466.         DynamicTextureAtlas.EmitterNormalWidth 1024
  3467.         DynamicTextureAtlas.EmitterNormalHeight 1024
  3468.         DynamicTextureAtlas.EmitterNormalMipmapCount 3
  3469.         DynamicTextureAtlas.EmitterNormalSkipmipsCount 1
  3470.         EmitterSystem.QuadHalfResEnable 1
  3471.         EmitterSystem.QuadMaxCount 8000
  3472.         EmitterSystem.MeshMaxCount 3000
  3473.         EmitterSystem.CollisionRayCastMaxCount 100
  3474.         EmitterSystem.EmitterQualityLevel Medium
  3475.         EffectSystem.EffectQualityLevel Medium
  3476.         WorldRender.HalfResLensFlaresEnable 1
  3477.     ]=],
  3478.     [Quality.High]=[=[
  3479.         DynamicTextureAtlas.EmitterBaseWidth 8192
  3480.         DynamicTextureAtlas.EmitterBaseHeight 8192
  3481.         DynamicTextureAtlas.EmitterBaseMipmapCount 6
  3482.         DynamicTextureAtlas.EmitterBaseSkipmipsCount 0
  3483.         DynamicTextureAtlas.EmitterNormalWidth 2048
  3484.         DynamicTextureAtlas.EmitterNormalHeight 2048
  3485.         DynamicTextureAtlas.EmitterNormalMipmapCount 4
  3486.         DynamicTextureAtlas.EmitterNormalSkipmipsCount 0
  3487.         EmitterSystem.QuadHalfResEnable 1
  3488.         EmitterSystem.QuadMaxCount 12000
  3489.         EmitterSystem.MeshMaxCount 4000
  3490.         EmitterSystem.CollisionRayCastMaxCount 150
  3491.         EmitterSystem.EmitterQualityLevel High
  3492.         EffectSystem.EffectQualityLevel High
  3493.         WorldRender.HalfResLensFlaresEnable 0
  3494.     ]=],
  3495.     [Quality.Ultra]=[=[
  3496.         DynamicTextureAtlas.EmitterBaseWidth 8192
  3497.         DynamicTextureAtlas.EmitterBaseHeight 8192
  3498.         DynamicTextureAtlas.EmitterBaseMipmapCount 6
  3499.         DynamicTextureAtlas.EmitterBaseSkipmipsCount 0
  3500.         DynamicTextureAtlas.EmitterNormalWidth 2048
  3501.         DynamicTextureAtlas.EmitterNormalHeight 2048
  3502.         DynamicTextureAtlas.EmitterNormalMipmapCount 4
  3503.         DynamicTextureAtlas.EmitterNormalSkipmipsCount 0
  3504.         EmitterSystem.QuadHalfResEnable 0
  3505.         EmitterSystem.QuadMaxCount 16000
  3506.         EmitterSystem.MeshMaxCount 8000
  3507.         EmitterSystem.CollisionRayCastMaxCount 250
  3508.         EmitterSystem.EmitterQualityLevel Ultra
  3509.         EffectSystem.EffectQualityLevel Ultra
  3510.  
  3511.         WorldRender.HalfResLensFlaresEnable 0
  3512.         WorldRender.ForceFullResEnable 1
  3513.     ]=],
  3514. })
  3515.  
  3516. ------ PostProcess Quality
  3517. applyQualitySettings('PostProcessQuality', {
  3518.     [Quality.Low]=[=[
  3519.         PostProcess.SpriteDofEnable 0
  3520.         PostProcess.DofMethod DofMethod_Gaussian
  3521.         PostProcess.BlurMethod BlurMethod_Gaussian
  3522.         PostProcess.BloomQuarterResEnable 1    
  3523.         WorldRender.DistortionEnable 0
  3524.         WorldRender.MotionBlurEnable 0
  3525.         WorldRender.FastHdrEnable 1
  3526.         WorldRender.RenderScaleResampleMode ScaleResampleMode_Linear
  3527.     ]=],
  3528.     [Quality.Medium]=[=[
  3529.         PostProcess.SpriteDofEnable 0
  3530.         PostProcess.DofMethod DofMethod_Gaussian
  3531.         PostProcess.BlurMethod BlurMethod_Gaussian
  3532.         PostProcess.BloomQuarterResEnable 0
  3533.         WorldRender.DistortionEnable 1
  3534.         WorldRender.MotionBlurEnable 0
  3535.         WorldRender.FastHdrEnable 1
  3536.         WorldRender.RenderScaleResampleMode ScaleResampleMode_Linear
  3537.     ]=],
  3538.     [Quality.High]=[=[
  3539.         PostProcess.SpriteDofEnable 1
  3540.         PostProcess.DofMethod DofMethod_Sprite
  3541.         PostProcess.BlurMethod BlurMethod_Sprite
  3542.         PostProcess.BloomQuarterResEnable 0
  3543.         WorldRender.DistortionEnable 1
  3544.         WorldRender.MotionBlurEnable 1
  3545.         WorldRender.MotionBlurMaxSampleCount 16
  3546.         WorldRender.FastHdrEnable 0
  3547.         WorldRender.RenderScaleResampleMode ScaleResampleMode_BicubicSharp
  3548.     ]=],
  3549.     [Quality.Ultra]=[=[
  3550.         PostProcess.SpriteDofEnable 1
  3551.         PostProcess.DofMethod DofMethod_Sprite
  3552.         PostProcess.BlurMethod BlurMethod_Sprite
  3553.         PostProcess.BloomQuarterResEnable 0
  3554.         WorldRender.DistortionEnable 1
  3555.         WorldRender.MotionBlurEnable 1
  3556.         WorldRender.MotionBlurMaxSampleCount 20
  3557.         WorldRender.FastHdrEnable 0
  3558.         WorldRender.RenderScaleResampleMode ScaleResampleMode_BicubicSharp
  3559.     ]=],
  3560. })
  3561.  
  3562.  
  3563. ------ Terrain Quality
  3564. applyQualitySettings('TerrainQuality', {
  3565.     [Quality.Low]=[=[
  3566.         VisualTerrain.DxDisplacementMappingEnable 0
  3567.         VisualTerrain.DxTessellatedTriWidth 12
  3568.         VisualTerrain.LodScale 1.0
  3569.     ]=],
  3570.     [Quality.Medium]=[=[
  3571.         VisualTerrain.DxDisplacementMappingEnable 0
  3572.         VisualTerrain.DxTessellatedTriWidth 12
  3573.         VisualTerrain.LodScale 1.1
  3574.     ]=],
  3575.     -- Only on DX11 cards
  3576.     [Quality.High]=[=[
  3577.         VisualTerrain.DxDisplacementMappingEnable 1
  3578.         VisualTerrain.DxTessellatedTriWidth 12
  3579.         VisualTerrain.LodScale 1.1
  3580.     ]=],
  3581.     [Quality.Ultra]=[=[
  3582.         VisualTerrain.DxDisplacementMappingEnable 1
  3583.         VisualTerrain.DxTessellatedTriWidth 9
  3584.         VisualTerrain.LodScale 1.1
  3585.     ]=],
  3586. })
  3587.  
  3588.  
  3589. ------ Terrain Decoration Quality
  3590. applyQualitySettings('UndergrowthQuality', {
  3591.     [Quality.Low]=[=[
  3592.         VisualTerrain.MeshScatteringBuildChannelCount 2
  3593.         VisualTerrain.MeshScatteringBuildChannelsLaunchedPerFrameCountMax 1
  3594.         VisualTerrain.MeshScatteringDensityScaleFactor 1
  3595.         VisualTerrain.MeshScatteringDistanceScaleFactor 1
  3596.         VisualTerrain.MeshScatteringInstancesPerCellMax 2048
  3597.         VisualTerrain.MeshScatteringQualityLevel Low
  3598.     ]=],
  3599.     [Quality.Medium]=[=[
  3600.         VisualTerrain.MeshScatteringBuildChannelCount 4
  3601.         VisualTerrain.MeshScatteringBuildChannelsLaunchedPerFrameCountMax 2
  3602.         VisualTerrain.MeshScatteringDistanceScaleFactor 1.25
  3603.         VisualTerrain.MeshScatteringDensityScaleFactor 1
  3604.         VisualTerrain.MeshScatteringInstancesPerCellMax 3072
  3605.         VisualTerrain.MeshScatteringQualityLevel Medium
  3606.     ]=],
  3607.     [Quality.High]=[=[
  3608.         VisualTerrain.MeshScatteringBuildChannelCount 6
  3609.         VisualTerrain.MeshScatteringBuildChannelsLaunchedPerFrameCountMax 4
  3610.         VisualTerrain.MeshScatteringDistanceScaleFactor 1.5
  3611.         VisualTerrain.MeshScatteringDensityScaleFactor 1
  3612.         VisualTerrain.MeshScatteringInstancesPerCellMax 4096
  3613.         VisualTerrain.MeshScatteringQualityLevel High
  3614.     ]=],
  3615.     [Quality.Ultra]=[=[
  3616.         VisualTerrain.MeshScatteringBuildChannelCount 8
  3617.         VisualTerrain.MeshScatteringBuildChannelsLaunchedPerFrameCountMax 4
  3618.         VisualTerrain.MeshScatteringDistanceScaleFactor 2
  3619.         VisualTerrain.MeshScatteringDensityScaleFactor 1
  3620.         VisualTerrain.MeshScatteringInstancesPerCellMax 4096
  3621.         VisualTerrain.MeshScatteringQualityLevel Ultra
  3622.     ]=],
  3623. })
  3624.  
  3625.  
  3626. ------ Light quality (previously ShadowQuality)
  3627. applyQualitySettings('LightingQuality', {
  3628.     [Quality.Low]=[=[
  3629.         WorldRender.ShadowmapsEnable true
  3630.         WorldRender.ShadowmapViewDistance 140
  3631.         WorldRender.ShadowmapResolution 700
  3632.         WorldRender.ShadowmapSliceCount 3
  3633.         WorldRender.ShadowmapQuality 0
  3634.         WorldRender.TransparencyShadowmapsEnable 0
  3635.         WorldRender.SpotLightShadowmapLevel QualityLevel_Low
  3636.         WorldRender.SpotLightsAsConeLightsLevel QualityLevel_Low
  3637.         Mesh.CastSunShadowQualityLevel Low
  3638.         Mesh.CastDynamicEnvmapQualityLevel Low
  3639.         Mesh.CastPlanarReflectionQualityLevel Low
  3640.         VegetationSystem.UseShadowLodOffset 1
  3641.         WorldRender.SubSurfaceScatteringEnable 0
  3642.         Enlighten.CubeMapsEnable 0
  3643.     ]=],
  3644.     [Quality.Medium]=[=[
  3645.         WorldRender.ShadowmapsEnable true
  3646.         WorldRender.ShadowmapViewDistance 140
  3647.         WorldRender.ShadowmapResolution 896
  3648.         WorldRender.ShadowmapSliceCount 4
  3649.         WorldRender.ShadowmapQuality 1
  3650.         WorldRender.TransparencyShadowmapsEnable 0
  3651.         WorldRender.SpotLightShadowmapLevel QualityLevel_Medium
  3652.         WorldRender.SpotLightsAsConeLightsLevel QualityLevel_Medium
  3653.         Mesh.CastSunShadowQualityLevel Medium
  3654.         Mesh.CastDynamicEnvmapQualityLevel Medium
  3655.         Mesh.CastPlanarReflectionQualityLevel Medium
  3656.         VegetationSystem.UseShadowLodOffset 1
  3657.         WorldRender.SubSurfaceScatteringEnable 0
  3658.         Enlighten.CubeMapsEnable 0
  3659.     ]=],
  3660.     [Quality.High]=[=[
  3661.         WorldRender.ShadowmapsEnable true
  3662.         WorldRender.ShadowmapViewDistance 200
  3663.         WorldRender.ShadowmapResolution 1296
  3664.         WorldRender.ShadowmapSliceCount 4
  3665.         WorldRender.ShadowmapQuality 1
  3666.         WorldRender.TransparencyShadowmapsEnable 1
  3667.         WorldRender.SpotLightShadowmapLevel QualityLevel_High
  3668.         WorldRender.SpotLightsAsConeLightsLevel QualityLevel_High
  3669.         Mesh.CastSunShadowQualityLevel High
  3670.         Mesh.CastDynamicEnvmapQualityLevel High
  3671.         Mesh.CastPlanarReflectionQualityLevel High
  3672.         VegetationSystem.UseShadowLodOffset 0
  3673.         WorldRender.SubSurfaceScatteringEnable 1
  3674.         Enlighten.CubeMapsEnable 1
  3675.     ]=],
  3676.     [Quality.Ultra]=[=[
  3677.         WorldRender.ShadowmapsEnable true
  3678.         WorldRender.ShadowmapViewDistance 250
  3679.         WorldRender.ShadowmapResolution 1600
  3680.         WorldRender.ShadowmapSliceCount 4
  3681.         WorldRender.ShadowmapQuality 1
  3682.         WorldRender.TransparencyShadowmapsEnable 1
  3683.         WorldRender.SpotLightShadowmapLevel QualityLevel_Ultra
  3684.         WorldRender.SpotLightsAsConeLightsLevel QualityLevel_Ultra
  3685.         Mesh.CastSunShadowQualityLevel Ultra
  3686.         Mesh.CastDynamicEnvmapQualityLevel Ultra
  3687.         Mesh.CastPlanarReflectionQualityLevel Ultra
  3688.         VegetationSystem.UseShadowLodOffset 0
  3689.         WorldRender.SubSurfaceScatteringEnable 1
  3690.         Enlighten.CubeMapsEnable 1
  3691.     ]=],
  3692. })
  3693.  
  3694.  
  3695. ------ Antialiasing Deferred
  3696. applyQualitySettings('AntiAliasingDeferred', {
  3697.     [AntiAliasingDeferred.Off]=[=[
  3698.         WorldRender.MultisampleCount 1
  3699.     ]=],
  3700.     [AntiAliasingDeferred.MSAA2X]=[=[
  3701.         WorldRender.MultisampleCount 2
  3702.     ]=],
  3703.     [AntiAliasingDeferred.MSAA4X]=[=[
  3704.         WorldRender.MultisampleCount 4
  3705.     ]=],
  3706. })
  3707.  
  3708.    
  3709. ------ Antialiasing Post
  3710. applyQualitySettings('AntiAliasingPost', {
  3711.     [AntiAliasingPost.Off]=[=[
  3712.         WorldRender.PostProcessAntialiasingMode PostProcessAAMode_None
  3713.     ]=],
  3714.     [AntiAliasingPost.Low]=[=[
  3715.         WorldRender.PostProcessAntialiasingMode PostProcessAAMode_FxaaLow
  3716.     ]=],
  3717.     [AntiAliasingPost.Medium]=[=[
  3718.         WorldRender.PostProcessAntialiasingMode PostProcessAAMode_FxaaMedium
  3719.     ]=],
  3720.     [AntiAliasingPost.High]=[=[
  3721.         WorldRender.PostProcessAntialiasingMode PostProcessAAMode_FxaaHigh
  3722.     ]=],
  3723. })
  3724.  
  3725.  
  3726. ------ Ambient Occlusion
  3727. applyQualitySettings('AmbientOcclusion', {
  3728.     [AmbientOcclusion.Off]=[=[
  3729.         PostProcess.DynamicAOEnable 0
  3730.         PostProcess.HbaoHalfResEnable 1
  3731.     ]=],
  3732.     [AmbientOcclusion.SSAO]=[=[
  3733.         PostProcess.DynamicAOEnable 1
  3734.         PostProcess.DynamicAOMethod DynamicAOMethod_SSAO
  3735.         PostProcess.HbaoHalfResEnable 1
  3736.     ]=],
  3737.     [AmbientOcclusion.HBAO]=[=[
  3738.         PostProcess.DynamicAOEnable 1
  3739.         PostProcess.DynamicAOMethod DynamicAOMethod_HBAO
  3740.         PostProcess.HbaoHalfResEnable 1
  3741.     ]=],
  3742.     [AmbientOcclusion.HBAOFull]=[=[
  3743.         PostProcess.DynamicAOEnable 1
  3744.         PostProcess.DynamicAOMethod DynamicAOMethod_HBAO
  3745.         PostProcess.HbaoHalfResEnable 0
  3746.     ]=],
  3747. })
  3748.  
  3749. ------- Motion Blur
  3750. WorldRender = WorldRender or {}
  3751. -- 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
  3752. WorldRender.MotionBlurScale = (settings['MotionBlur'] or 1.0)
  3753.  
  3754.  
  3755. ------- Weapon DOF
  3756. PostProcess.IronsightsDofEnable = settings['WeaponDOF']
  3757.  
  3758. ------- Screen resolution
  3759. RenderDevice = RenderDevice or {}
  3760. RenderDevice.FullscreenWidth = settings['ResolutionWidth']
  3761. RenderDevice.FullscreenHeight = settings['ResolutionHeight']
  3762. RenderDevice.FullscreenRefreshRate = settings['FullscreenRefreshRate']
  3763. RenderDevice.Fullscreen = settings['FullscreenEnabled']
  3764. RenderDevice.FullscreenOutputIndex = settings['FullscreenScreen']
  3765. RenderDevice.VSyncEnable = settings['VSyncEnabled']
  3766. RenderDevice.StereoEnable = settings['Stereoscopy']
  3767. RenderDevice.StereoDepth = settings['StereoConvergence']
  3768.  
  3769. -------- Resolution scale
  3770. Render.ResolutionScale = settings['ResolutionScale']
  3771.  
  3772. -------- Brightness
  3773. PostProcess.UIBrightnessNorm = settings['Brightness']
  3774.   ‚¨$file žname (Scripts/UserOptions/Options/Physics.lua payload ãlocal quality = settings['PhysicsQuality']
  3775. log:info("setting physics quality : "..quality)
  3776. if(quality > 0.8) then
  3777.     applySettings([=[
  3778.             Physics.EnableFollowWheelRaycasts true
  3779.             Physics.EnableASyncWheelRaycasts true
  3780.   ]=])
  3781. else
  3782.     applySettings([=[
  3783.             Physics.EnableFollowWheelRaycasts false
  3784.             Physics.EnableASyncWheelRaycasts true
  3785.   ]=])
  3786. end
  3787.   ‚€$file öname &Scripts/UserOptions/Options/Sound.lua payload ½local quality = settings['AudioQuality']
  3788. log:info("setting sound quality : "..quality)
  3789. if(quality > 0.8) then
  3790.     applySettings([=[
  3791.             Audio.MaxAudibleSoundCount 15
  3792.             Audio.AudioCoreCpuLoadLimit 50
  3793.   ]=])
  3794. else
  3795.     applySettings([=[
  3796.             Audio.MaxAudibleSoundCount 8
  3797.             Audio.AudioCoreCpuLoadLimit 30
  3798.   ]=])
  3799. end
  3800.   ‚’$file ˆname !Scripts/BuildMonkeyAutosmoke.cfg payload Ô#!/bin/lua
  3801.  
  3802. core = require "Frost.Core"
  3803.  
  3804. log:debug("Parsing 'BuildMonkeyAutosmoke.cfg' settings")
  3805.  
  3806. local function applySettings(settings)
  3807.     core.parseKeyValueCfgString(settings, _G)
  3808. end
  3809.  
  3810. applySettings [=[
  3811.  
  3812. Core.IgnoreAlways           true
  3813.  
  3814. Core.Heartbeat              true
  3815. Core.HeartbeatInterval          20
  3816. Client.UseMouseAndKeyboardSystem    false
  3817.  
  3818. RenderDevice.NvidiaMinDriverVersion 18585
  3819.  
  3820. Online.ClientIsPresenceEnabled false
  3821. Online.ServerIsPresenceEnabled false
  3822.  
  3823. ]=]
  3824.   ‚Ì$file Âname Scripts/BuildMonkeyXenon.cfg payload ’#!/bin/lua
  3825.  
  3826. core = require "Frost.Core"
  3827.  
  3828. log:debug("Parsing 'BuildMonkeyXenon.cfg' settings")
  3829.  
  3830. local function applySettings(settings)
  3831.     core.parseKeyValueCfgString(settings, _G)
  3832. end
  3833.  
  3834. applySettings [=[
  3835.  
  3836. Core.IgnoreAlways           true
  3837. Client.UseMouseAndKeyboardSystem    false
  3838.  
  3839. SoldierTest.maxCountTestSoldier 23
  3840.  
  3841. Online.ClientIsPresenceEnabled false
  3842. Online.ServerIsPresenceEnabled false
  3843.  
  3844. ]=]
  3845.   ‚í
  3846. $file ã
  3847. name Scripts/Checkins.cfg payload »
  3848. Code Win32;//Frostbite/Sandboxes/Venice/TnT/Code/;\\dice-monkeyfarm\Logs\Venice.Code.Win32\Logs
  3849. Code Win64;//Frostbite/Sandboxes/Venice/TnT/Code/;\\dice-monkeyfarm\Logs\Venice.Code.Win64\Logs
  3850. Code Xenon;//Frostbite/Sandboxes/Venice/TnT/Code/;\\dice-monkeyfarm\Logs\Venice.Code.Xenon\Logs
  3851. Code PS3;//Frostbite/Sandboxes/Venice/TnT/Code/;\\dice-monkeyfarm\Logs\Venice.Code.PS3\Logs
  3852. No Master Win32;//Frostbite/Sandboxes/Venice/TnT/Code/;\\dice-monkeyfarm\Logs\Venice.NoMaster.Win32\Logs
  3853. # Removed these, since they don't trigger on checkins:
  3854. #No Master Xenon;//Frostbite/Sandboxes/Venice/TnT/Code/;\\dice-monkeyfarm\Logs\Venice.NoMaster.Xenon\Logs
  3855. #No Master PS3;//Frostbite/Sandboxes/Venice/TnT/Code/;\\dice-monkeyfarm\Logs\Venice.NoMaster.PS3\Logs
  3856. #No Master PS3 (GCC);//Frostbite/Sandboxes/Venice/TnT/Code/;\\dice-monkeyfarm\Logs\Venice.NoMaster.PS3GCC\Logs
  3857. #Editor;//Frostbite/Sandboxes/Venice/TnT/Code/;\\dice-monkeyfarm\Logs\Venice.EditorSmoke\Logs
  3858. Data Win32;//Venice/Sandboxes/Venice/Data/;\\dice-monkeyfarm\Logs\Venice.DataSmoke.Win32\Logs
  3859. Data Win64;//Venice/Sandboxes/Venice/Data/;\\dice-monkeyfarm\Logs\Venice.DataSmoke.Win64\Logs
  3860. Data Xenon;//Venice/Sandboxes/Venice/Data/;\\dice-monkeyfarm\Logs\Venice.DataSmoke.Xenon\Logs
  3861. Data PS3;//Venice/Sandboxes/Venice/Data/;\\dice-monkeyfarm\Logs\Venice.DataSmoke.PS3\Logs
  3862.  ‚w$file nname Scripts/DisablePresence.cfg payload @Client.IsPresenceEnabled false
  3863. Server.IsPresenceEnabled false
  3864.  ‚à $file Ö name Scripts/FrostTest.cfg payload ­ #!/bin/lua
  3865.  
  3866. core = require "Frost.Core"
  3867.  
  3868. log:debug("Parsing 'FrostTest.cfg' settings")
  3869.  
  3870. local function applySettings(settings)
  3871.     core.parseKeyValueCfgString(settings, _G)
  3872. end
  3873.  
  3874. applySettings [=[
  3875.  
  3876. Game.LogFileEnable true
  3877. Online.ClientIsPresenceEnabled false
  3878. Online.ServerIsPresenceEnabled false
  3879.  
  3880. Client.IsInternetSimulationEnabled false
  3881. Server.IsInternetSimulationEnabled false
  3882.  
  3883. Server.PacketDrops                0
  3884. Server.DropSpikeChance            0
  3885. Server.DuplicationChance          0
  3886. Server.CorruptionChance           0
  3887. Client.PacketDrops                0
  3888. Client.DropSpikeChance            0
  3889. Client.DuplicationChance          0
  3890. Client.CorruptionChance           0
  3891.  
  3892. PerformanceTracker.JuiceLogPerformance false
  3893. Core.DisplayAsserts false
  3894. Core.EnableJuiceTelemetry true
  3895. Core.EnableJuice        true
  3896. CrashDump.WarnBeforeDoingMemoryDump false
  3897. Core.JuiceValidateAsAssert false
  3898. Core.ValidateAsWarning true
  3899.  
  3900. #Core.JuiceServerIP 10.20.96.118
  3901.  
  3902. Juice.AlternativeNamingScheme true
  3903.  
  3904. Core.HardwareProfile Hardware_Low
  3905. Render.SkipMipmapCount  4
  3906.  
  3907. #temporary disabled as we currently get an assert spam
  3908. #Demo.RecordDemoFileName /temp/demo/BuildMonkeySession
  3909.  
  3910. #UdpSocket.ReusePort true
  3911. #Network.IncrementServerPortOnFail false
  3912.  
  3913. UI.SpawnOnPressEnter true
  3914.  
  3915. Inventory.postSpawnEquipping true
  3916.  
  3917. Game.DisablePreRound true
  3918. Player.ignoreLevelWarmUpTimers true
  3919. Player.allowDefaultSpawnPointSelection true
  3920.  
  3921. Window.Width 800
  3922. Window.Height 600
  3923. Window.Fullscreen false
  3924.  
  3925. Player.allowRandomSpawnPointSelection true
  3926.  
  3927. UI.SkipIntroVideoSequence true
  3928.  
  3929. ]=]
  3930.  
  3931.  ‚¢$file ˜name !Scripts/FrostTestPerformance.cfg payload ä
  3932. #!/bin/lua
  3933.  
  3934. core = require "Frost.Core"
  3935.  
  3936. log:debug("Parsing 'FrostTestPerformance.cfg' settings")
  3937.  
  3938. local function applySettings(settings)
  3939.     core.parseKeyValueCfgString(settings, _G)
  3940. end
  3941.  
  3942. applySettings [=[
  3943.  
  3944. Game.LogFileEnable true
  3945. Client.IsInternetSimulationEnabled false
  3946. Server.IsInternetSimulationEnabled false
  3947.  
  3948. Server.PacketDrops                0
  3949. Server.DropSpikeChance            0
  3950. Server.DuplicationChance          0
  3951. Server.CorruptionChance           0
  3952. Client.PacketDrops                0
  3953. Client.DropSpikeChance            0
  3954. Client.DuplicationChance          0
  3955. Client.CorruptionChance           0
  3956.  
  3957. ShaderSystem.DrawStats true
  3958. PerformanceTracker.Interval 99999
  3959. Render.PerfOverlayVisible true
  3960.  
  3961. PerformanceTracker.JuiceLogPerformance true
  3962. Core.DisplayAsserts false
  3963. Core.EnableJuiceTelemetry true
  3964. Core.EnableJuice        true
  3965. CrashDump.WarnBeforeDoingMemoryDump false
  3966. Core.JuiceValidateAsAssert false
  3967. Core.ValidateAsWarning true
  3968.  
  3969. Juice.AlternativeNamingScheme true
  3970. UdpSocket.ReusePort true
  3971. Network.IncrementServerPortOnFail false
  3972.  
  3973. UI.SpawnOnPressEnter true
  3974.  
  3975. Inventory.postSpawnEquipping true
  3976.  
  3977. Game.DisablePreRound true
  3978. Tickets.DisableTicketBleed true
  3979.  
  3980. ServerMetrics.TickTelemetryEnabled false
  3981. ServerMetrics.PerformanceTelemetryEnabled true
  3982. ServerMetrics.PerformanceProfileStateEnabled true
  3983. ServerMetrics.JuiceTelemetryEnabled true
  3984. ServerMetrics.DbxReportEnabled true
  3985.  
  3986. Player.allowRandomSpawnPointSelection true
  3987.  
  3988. Client.LoadingTimeOut 99999
  3989. Client.LoadedTimeOut 99999
  3990. Client.IngameTimeOut 99999
  3991. Server.IngameTimeOut 99999
  3992. Server.LoadingTimeOut 99999
  3993. BFServer.NoInteractivityTimeoutTime 999999
  3994.  
  3995. Online.Environment Development
  3996. Online.ClientIsPresenceEnabled false
  3997. Online.ServerIsPresenceEnabled false
  3998.  
  3999. ]=]
  4000.  ‚¢$file ˜name !Scripts/FrostTestPlaythrough.cfg payload ä
  4001. #!/bin/lua
  4002.  
  4003. core = require "Frost.Core"
  4004.  
  4005. log:debug("Parsing 'FrostTestPlaythrough.cfg' settings")
  4006.  
  4007. local function applySettings(settings)
  4008.     core.parseKeyValueCfgString(settings, _G)
  4009. end
  4010.  
  4011. applySettings [=[
  4012.  
  4013. Game.LogFileEnable true
  4014. Client.IsInternetSimulationEnabled false
  4015. Server.IsInternetSimulationEnabled false
  4016.  
  4017. Server.PacketDrops                0
  4018. Server.DropSpikeChance            0
  4019. Server.DuplicationChance          0
  4020. Server.CorruptionChance           0
  4021. Client.PacketDrops                0
  4022. Client.DropSpikeChance            0
  4023. Client.DuplicationChance          0
  4024. Client.CorruptionChance           0
  4025.  
  4026. ShaderSystem.DrawStats true
  4027. PerformanceTracker.Interval 99999
  4028. Render.PerfOverlayVisible true
  4029.  
  4030. PerformanceTracker.JuiceLogPerformance true
  4031. Core.DisplayAsserts false
  4032. Core.EnableJuiceTelemetry true
  4033. Core.EnableJuice        true
  4034. CrashDump.WarnBeforeDoingMemoryDump false
  4035. Core.JuiceValidateAsAssert false
  4036. Core.ValidateAsWarning true
  4037.  
  4038. Juice.AlternativeNamingScheme true
  4039. UdpSocket.ReusePort true
  4040. Network.IncrementServerPortOnFail false
  4041.  
  4042. UI.SpawnOnPressEnter true
  4043.  
  4044. Inventory.postSpawnEquipping true
  4045.  
  4046. Game.DisablePreRound true
  4047. Tickets.DisableTicketBleed true
  4048.  
  4049. ServerMetrics.TickTelemetryEnabled false
  4050. ServerMetrics.PerformanceTelemetryEnabled true
  4051. ServerMetrics.PerformanceProfileStateEnabled true
  4052. ServerMetrics.JuiceTelemetryEnabled true
  4053. ServerMetrics.DbxReportEnabled true
  4054.  
  4055. Player.allowRandomSpawnPointSelection true
  4056.  
  4057. Client.LoadingTimeOut 99999
  4058. Client.LoadedTimeOut 99999
  4059. Client.IngameTimeOut 99999
  4060. Server.IngameTimeOut 99999
  4061. Server.LoadingTimeOut 99999
  4062. BFServer.NoInteractivityTimeoutTime 999999
  4063.  
  4064. Online.Environment Development
  4065. Online.ClientIsPresenceEnabled false
  4066. Online.ServerIsPresenceEnabled false
  4067.  
  4068. ]=]
  4069.  ‚‰÷$file þöname Scripts/Game.cfg payload Ùö#!/bin/lua
  4070.  
  4071. core = require "Frost.Core"
  4072.  
  4073. log:debug("Parsing 'Game.cfg' settings")
  4074.  
  4075. local function applySettings(settings)
  4076.     core.parseKeyValueCfgString(settings, _G)
  4077. end
  4078.  
  4079. local function append(table, value)
  4080.     table[#table+1] = value
  4081. end
  4082.  
  4083. --
  4084. -- Note that this is now actually a Lua script (signified by the first line
  4085. -- of this file), to allow conditionals and more advanced settings processing
  4086. --
  4087. -- There are two ways to set settings. One is by editing the key-value string
  4088. -- block below, the other is to actually use Lua code to set settings.
  4089. --
  4090.  
  4091.  
  4092. applySettings [=[
  4093.  
  4094. #Disable performance tracker
  4095. PerformanceTracker.Enabled false
  4096.  
  4097. Game.Level Levels/Frontend/Frontend
  4098. #Game.DefaultLayerInclusion GameMode=ConquestLarge
  4099. #Game.StartPoint E3_Demo
  4100.  
  4101. Server.DebrisClusterEnabled       true
  4102. Server.WaterPhysicsEnabled        true
  4103. Server.IsDesertingAllowed         false
  4104. Server.IsRenderDamageEvents       false
  4105. Server.IsStatsEnabled             false
  4106. Server.IsNetworkStatsEnabled      false
  4107. Server.IsAiEnabled                true
  4108. Server.AILooksIntoCamera          false
  4109. Server.IsDestructionEnabled       true
  4110. Server.IsTreeDestructionEnabled   true
  4111. Server.IsSoldierAnimationEnabled  true
  4112. Server.IsSoldierDetailedCollisionEnabled true
  4113. Server.DisableCutscenes           false
  4114. Server.HavokVisualDebugger        false
  4115. Server.ShowTriggerDebugText       false
  4116. Server.TimeoutGame                false
  4117. Server.TimeoutTime                9999.0 // 5.0
  4118. Server.SaveGameVersion            7
  4119.  
  4120. Server.JobEnable                  true
  4121.    
  4122. Server.ThreadedLoadingEnable      true
  4123.  
  4124. enable-category-lookup-error-trigger false
  4125. Server.FallBackToSquadSpawn false
  4126.  
  4127. Server.Playlist DefaultPlayList
  4128. Server.forceCurrentMapOnLoad true
  4129. Server.forceStartMapOnLoad false
  4130. BFServer.ServerType OFFICIAL
  4131. ServerMapSequencer.DebugOutput true
  4132.  
  4133. Player.ignoreLevelWarmUpTimers true
  4134.  
  4135. Client.IsSpectator                false
  4136. #Client.ScreenshotToFile          true
  4137. Client.OccludersEnabled           true
  4138. Client.DebrisClusterEnabled       true
  4139. Client.TerrainEnabled             true
  4140. Client.WaterPhysicsEnabled        true
  4141. Client.PauseGameOnStartUp         false
  4142. Client.RenderTags                 false
  4143. Client.EffectsEnabled             true
  4144. Client.EmittersEnabled            true
  4145. Client.OnDamageSpottingEnabled    false
  4146.  
  4147. #Client.ServerIp                   10.20.102.99
  4148. #Client.SecondaryServerIp          10.20.102.63
  4149.  
  4150. Client.DrawStats  false
  4151. Client.DrawFpsStats  true
  4152. Client.DrawObjectLimits  true
  4153. Client.DrawNetworkStats false
  4154.  
  4155. Client.Team                       0
  4156. Client.Kit                        0
  4157.  
  4158. Persistence.AllUnlocksAlwaysUnlocked false
  4159.  
  4160. #Client.SpawnPoint
  4161. Client.InvertPitch                false
  4162. Client.InvertPadPcRightStick      false
  4163. //Flip Y-axis for non-pilots (Infantry and Land Vehicles)
  4164. Client.Scheme0FlipY               false
  4165. //Flip Y-axis for pilots (Air Vehicles)
  4166. Client.Scheme1FlipY               false
  4167. Client.AimScale                   1.0
  4168. Client.HavokVisualDebugger        false
  4169. Client.HavokVDBShowsEffectsWorld  false
  4170.  
  4171. Client.IncomingFrequency 15.0
  4172. Client.IncomingRate 128000
  4173. Client.OutgoingRate 64000
  4174.  
  4175. Server.OutgoingFrequency 10.0
  4176. Server.OutgoingRate 128000
  4177. Server.IncomingRate 64000
  4178.  
  4179. // Internet simulation start (only active in multiplayer)
  4180. Server.UseDebugSocket false
  4181. Server.OverrideRemoteInternetSimulation false
  4182. Server.AllowOverrideInternetSimulation false
  4183.  
  4184. Server.IncomingInternetSimulation.Enable true
  4185. Server.IncomingInternetSimulation.ReorderRatioMin 0.0
  4186. Server.IncomingInternetSimulation.ReorderRatioMax 0.0
  4187. Server.IncomingInternetSimulation.LatencyMin 0.020
  4188. Server.IncomingInternetSimulation.LatencyMax 0.100
  4189. Server.IncomingInternetSimulation.LatencyVariance 0.25
  4190. Server.IncomingInternetSimulation.DuplicateRatioMin 0.0
  4191. Server.IncomingInternetSimulation.DuplicateRatioMax 0.0
  4192. Server.IncomingInternetSimulation.DropRatioMin 0.002
  4193. Server.IncomingInternetSimulation.DropRatioMax 0.010
  4194. Server.IncomingInternetSimulation.CorruptRatioMin 0.0
  4195. Server.IncomingInternetSimulation.CorruptRatioMax 0.0
  4196. Server.IncomingInternetSimulation.SizeRatioMin 0.0
  4197. Server.IncomingInternetSimulation.SizeRatioMax 0.0
  4198. Server.IncomingInternetSimulation.SpikeDurationMin 0.0
  4199. Server.IncomingInternetSimulation.SpikeDurationMax 0.0
  4200. Server.IncomingInternetSimulation.SpikeDurationVariance 0.0
  4201. Server.IncomingInternetSimulation.SpikeCooldownMin 0.0
  4202. Server.IncomingInternetSimulation.SpikeCooldownMax 0.0
  4203. Server.IncomingInternetSimulation.SpikeCooldownVariance 0.0
  4204.  
  4205. Server.OutgoingInternetSimulation.Enable true
  4206. Server.OutgoingInternetSimulation.ReorderRatioMin 0.0
  4207. Server.OutgoingInternetSimulation.ReorderRatioMax 0.0
  4208. Server.OutgoingInternetSimulation.LatencyMin 0.020
  4209. Server.OutgoingInternetSimulation.LatencyMax 0.100
  4210. Server.OutgoingInternetSimulation.LatencyVariance 0.25
  4211. Server.OutgoingInternetSimulation.DuplicateRatioMin 0.0
  4212. Server.OutgoingInternetSimulation.DuplicateRatioMax 0.0
  4213. Server.OutgoingInternetSimulation.DropRatioMin 0.002
  4214. Server.OutgoingInternetSimulation.DropRatioMax 0.010
  4215. Server.OutgoingInternetSimulation.CorruptRatioMin 0.0
  4216. Server.OutgoingInternetSimulation.CorruptRatioMax 0.0
  4217. Server.OutgoingInternetSimulation.SizeRatioMin 0.0
  4218. Server.OutgoingInternetSimulation.SizeRatioMax 0.0
  4219. Server.OutgoingInternetSimulation.SpikeDurationMin 0.0
  4220. Server.OutgoingInternetSimulation.SpikeDurationMax 0.0
  4221. Server.OutgoingInternetSimulation.SpikeDurationVariance 0.0
  4222. Server.OutgoingInternetSimulation.SpikeCooldownMin 0.0
  4223. Server.OutgoingInternetSimulation.SpikeCooldownMax 0.0
  4224. Server.OutgoingInternetSimulation.SpikeCooldownVariance 0.0
  4225.  
  4226. Client.UseDebugSocket false
  4227. Client.OverrideRemoteInternetSimulation false
  4228. Client.AllowOverrideInternetSimulation true
  4229.  
  4230. Client.IncomingInternetSimulation.Enable false
  4231. Client.IncomingInternetSimulation.ReorderRatioMin 0.0
  4232. Client.IncomingInternetSimulation.ReorderRatioMax 0.0
  4233. Client.IncomingInternetSimulation.LatencyMin 0.020
  4234. Client.IncomingInternetSimulation.LatencyMax 0.100
  4235. Client.IncomingInternetSimulation.LatencyVariance 0.25
  4236. Client.IncomingInternetSimulation.DuplicateRatioMin 0.0
  4237. Client.IncomingInternetSimulation.DuplicateRatioMax 0.0
  4238. Client.IncomingInternetSimulation.DropRatioMin 0.002
  4239. Client.IncomingInternetSimulation.DropRatioMax 0.010
  4240. Client.IncomingInternetSimulation.CorruptRatioMin 0.0
  4241. Client.IncomingInternetSimulation.CorruptRatioMax 0.0
  4242. Client.IncomingInternetSimulation.SizeRatioMin 0.0
  4243. Client.IncomingInternetSimulation.SizeRatioMax 0.0
  4244. Client.IncomingInternetSimulation.SpikeDurationMin 0.0
  4245. Client.IncomingInternetSimulation.SpikeDurationMax 0.0
  4246. Client.IncomingInternetSimulation.SpikeDurationVariance 0.0
  4247. Client.IncomingInternetSimulation.SpikeCooldownMin 0.0
  4248. Client.IncomingInternetSimulation.SpikeCooldownMax 0.0
  4249. Client.IncomingInternetSimulation.SpikeCooldownVariance 0.0
  4250.  
  4251. Client.OutgoingInternetSimulation.Enable false
  4252. Client.OutgoingInternetSimulation.ReorderRatioMin 0.0
  4253. Client.OutgoingInternetSimulation.ReorderRatioMax 0.0
  4254. Client.OutgoingInternetSimulation.LatencyMin 0.020
  4255. Client.OutgoingInternetSimulation.LatencyMax 0.100
  4256. Client.OutgoingInternetSimulation.LatencyVariance 0.25
  4257. Client.OutgoingInternetSimulation.DuplicateRatioMin 0.0
  4258. Client.OutgoingInternetSimulation.DuplicateRatioMax 0.0
  4259. Client.OutgoingInternetSimulation.DropRatioMin 0.002
  4260. Client.OutgoingInternetSimulation.DropRatioMax 0.010
  4261. Client.OutgoingInternetSimulation.CorruptRatioMin 0.0
  4262. Client.OutgoingInternetSimulation.CorruptRatioMax 0.0
  4263. Client.OutgoingInternetSimulation.SizeRatioMin 0.0
  4264. Client.OutgoingInternetSimulation.SizeRatioMax 0.0
  4265. Client.OutgoingInternetSimulation.SpikeDurationMin 0.0
  4266. Client.OutgoingInternetSimulation.SpikeDurationMax 0.0
  4267. Client.OutgoingInternetSimulation.SpikeDurationVariance 0.0
  4268. Client.OutgoingInternetSimulation.SpikeCooldownMin 0.0
  4269. Client.OutgoingInternetSimulation.SpikeCooldownMax 0.0
  4270. Client.OutgoingInternetSimulation.SpikeCooldownVariance 0.0
  4271. // Internet simulation end
  4272.  
  4273.  
  4274. Client.ThreadedLoadingEnable      true
  4275. Client.VisualFrameInterpolation   true
  4276.  
  4277. Client.AsyncClientBulletEntity    true
  4278.  
  4279. UI.AmpServerEnabled               false
  4280. UI.AmpWaitForServerConnection     false
  4281. UI.AmpPort                        7534
  4282. UI.OnScreenTraces                 false
  4283. UI.ShowDebugStringTag             false
  4284. UI.OutputEnabled                  false
  4285. UI.VerboseOutputEnabled           false
  4286. // Language can be set to override the language that is getting sent from the web
  4287. UI.Language                       LanguageFormat_Undefined
  4288. UI.FontCacheTextureWidth          1024
  4289. UI.FontCacheTextureHeight         1024
  4290. UI.RenderCommandBufferSize        327680
  4291. UI.RenderVertexBufferSize         360448
  4292. UI.RenderIndexBufferSize          98304
  4293. UI.RenderPcBufferScale            4
  4294. UI.DisableMoviesOnConsoles        true
  4295. UI.MaxMinimapIconsPc              256
  4296. UI.MaxMinimapIconsConsole         64
  4297.  
  4298. Minimap.TileFadeInSpeed           8
  4299. Minimap.TileFadeOutSpeed          16
  4300.  
  4301. Core.LogLevel                     Info
  4302. Core.EnableMemoryDump             false
  4303. Core.CrashOnFatalErrors           true
  4304. Core.ProfileDirectoryName         Battlefield 4
  4305. Core.BugSubmitTool                BST_B4Bug
  4306. Core.InitSeed                     xa37dd45ffe100bfffcc9753aabac325f07cb3fa231144fe2e33ae4783feead2b8a73ff021fac326df0ef9753ab9cdf6573ddff0312fab0b0ff39779eaff312a4f5de65892ffee33a44569bebf21f66d22e54a22347efd375981188743afd99baacc342d88a99321235798725fedcbf43252669dade32415fee89da543bf23d4ex
  4307.  
  4308. Game.LogFileEnable true
  4309. Game.LogFileCollisionMode LFCM_Rotate
  4310.  
  4311. WaterInteract.GridCount 16
  4312.  
  4313. Decal.RingBufferMaxVertexCount 15000
  4314. Decal.StaticBufferMaxVertexCount 1000000
  4315. Decal.DebugWarningsEnable false
  4316.  
  4317. Render.DrawFpsMethod 1
  4318.  
  4319. DebugRender.DxMaxVertexCount 262144
  4320.  
  4321. //Set the Near Plane to 0.06 to help fix the most major clipping issues on weapon animations. -akertz
  4322. Render.NearPlane 0.06
  4323.  
  4324. Render.XenonBufferTwoFramesEnable 1
  4325.  
  4326. Occlusion.NormalViewDistance 400
  4327. Occlusion.TerrainViewDistance 2000
  4328. VisualTerrain.OccludedMinDistance 128
  4329.  
  4330. Enlighten.SpotLightShadowsEnable false
  4331.  
  4332. TextureStreaming.Enable 1
  4333. TextureStreaming.PoolSize 200000
  4334. TextureStreaming.OnDemandPoolSize 16000
  4335. TextureStreaming.MinTextureSize 50000
  4336.  
  4337. # Should really be the new default value
  4338. VisualTerrain.DecalOffsetY 0.04
  4339.  
  4340. //terrain crater test, DepthFactor should be 1 by default though. -mnellfors
  4341. Terrain.ModifierDepthFactor 1
  4342. Terrain.ModifierSlopeMax 0.7
  4343.  
  4344. TerrainStreaming.DataLoadJobCount 192
  4345.  
  4346. Physics.RemoveRagdollWhenWoken false
  4347. Physics.RemoveFromWorldOnCollisionOverflow false
  4348. Physics.SingleStepCharacter true
  4349. Physics.HeightfieldRSXStreaming true
  4350. #Physics.EnableClientWheelRaycasts true2
  4351.  
  4352. ragdoll-settle-angularvelocity 0.05
  4353. ragdoll-settle-linearvelocity 0.05
  4354. ragdoll-settle-minactivetime 5
  4355.  
  4356. GameAnimation.RespawnOnResourceReload false
  4357. GameAnimation.UseAnimationDrivenCharacter true
  4358. GameAnimation.TemporalLoddingFirstDistance 10000
  4359. GameAnimation.TemporalLoddingSecondDistance 10000
  4360. GameAnimation.TemporalLoddingThirdDistance 10000
  4361. GameAnimation.TemporalLoddingFourthDistance 10000
  4362. GameAnimation.TemporalLoddingFifthDistance 10000
  4363. GameAnimation.TemporalLoddingSixthDistance 10000
  4364.  
  4365. EmitterSystem.QuadGroupsJoinNiceAndSimple true
  4366.  
  4367. # Damage blood decals, conditions: !occluded, alive, !immortal, bullet dmg, dmg > 0
  4368. SoldierDecalComponent.SpawnSplashOnDamageEnabled true
  4369. SoldierDecalComponent.SpawnSplashOnDamageCooldown 3.0
  4370.  
  4371. # Raycasts (two atm) detecting entities around explosion (clientside only)
  4372. Explosion.SecondaryMaterialImpactRaycastsEnabled true
  4373.  
  4374. Audio.ReverbAllocSize 983040
  4375.  
  4376. BFServer.NoInteractivityTimeoutTime 300
  4377. BFServer.NoInteractivityThresholdLimit 0.1
  4378. BFServer.DefaultVoiceChannel Squad
  4379. BFServer.AlwaysAllowedToSpectate true
  4380.  
  4381. Game.IsGodMode                  false
  4382. Game.IsJesusMode                false
  4383. Game.useSingleWeaponSelector    true
  4384. Game.UseSpeedBasedDetailedCollision true
  4385. Game.AwardsTracking true
  4386. Game.HasUnlimitedAmmo           false
  4387. Game.HasUnlimitedMags           false
  4388. Game.AutoAimEnabled     false
  4389. Game.DifficultyIndex      -1 // Debug difficulty index to data GameConfigurations/Game_Difficulty_Settings.dbx
  4390. //Game.DisablePreRound      true
  4391.  
  4392. #Don't turn this on, use the weapon data to control the FOV instead.
  4393. #SoldierRender.WeaponFovEnable  false
  4394.  
  4395. UI.ConstructibleList Objects/Constructibles/Constructibles
  4396. UI.BatchingEnable true
  4397. UI.MaxVertexCount 32768
  4398. UI.RenderTargetMipmapGenEnable true
  4399. UI.PostProcessSystemEnable true
  4400. UI.PostProcessEnable true
  4401. UI.PostProcessMipmapgenEnable false
  4402.  
  4403. UIMessageComp.debugRendering    false
  4404.  
  4405. UICoopComp.UnlockAllLevels  false
  4406. UILevelComp.UnlockAllSpLevels   false
  4407.  
  4408. Client.UseMouseAndKeyboardSystem    true
  4409. Core.EnableDbErrorPolicy true
  4410.  
  4411. Core.EnableJuice false
  4412. Core.JuiceServerIP               10.20.96.118
  4413. Core.JuiceLogLevel      Info
  4414. Juice.AlternativeNamingScheme true
  4415.  
  4416. Core.MemoryStatsEnabled true
  4417. Memory.DrawStats true
  4418.  
  4419. DebugRender.TextQueueMaxLineCount 10
  4420. DebugRender.TextQueueTimeVisible 10.0
  4421. proximity-interact-distance 4.0
  4422.  
  4423. Occlusion.MaxTriangleCount 30000
  4424.  
  4425. Core.DisplayAsserts true
  4426.  
  4427. uiqueue-delay 10
  4428. kill-message-delay 0
  4429.  
  4430. Blaze.ServerAutoAccountCreation true
  4431.  
  4432.  
  4433. SoldierTest.spawnEnabled false
  4434. SoldierTest.scriptsEnabled false
  4435. controllableEntityJobsEnabled true
  4436.  
  4437. DisplayObjective false;
  4438. DisplayMapMarkers false;
  4439.  
  4440. #
  4441. # ANT settings
  4442. #
  4443.  
  4444. Ant.EnableJobs true
  4445.  
  4446. # Memory Budget Size is a pure cosmetical vars to help content creators manage the memory
  4447. antDebug.MemoryBudgetSize 20
  4448.  
  4449. # Vars
  4450. Ant.MaxInterpolationSlots 100
  4451. Soldier.cameraLagEffect 0
  4452. Ant.BlockOnJobs true
  4453. Ant.ClientEmulatesServer false
  4454. Ant.UseCameraFov false
  4455. Ant.UseWeaponFov false
  4456. Soldier.animate3pWhenIn1p true
  4457. Ant.InterpolatePoses true
  4458.  
  4459. // Allow variable length ticks to be used for console MP
  4460. Ant.AllowVariableTickLength true
  4461.  
  4462. Ant.ReducedInterpolationDistance 10.0
  4463. Ant.TrajectoryOnlyInterpolationDistance 100.0
  4464. Ant.CheckGiantSoldiers 0.0
  4465.  
  4466. Ant.LeanSignalClamp 2
  4467. Ant.LeanSignalScale 1.2
  4468.  
  4469.  
  4470. Customization.dropGearVelocityScale 0.7
  4471.  
  4472. Core.Heartbeat          false
  4473. Core.HeartbeatInterval  2
  4474.  
  4475. Core.HardwareProfile Hardware_AutoDetect
  4476.  
  4477. Network.TitleId 5
  4478. Network.ClientPort 25100
  4479. Network.ServerPort 25200
  4480. Network.MaxGhostCount 8192
  4481. Network.MaxClientCount 70
  4482. Network.UseFrameManager true
  4483. Network.MaxServerFrameSize 4096
  4484. //Network.MaxClientFrameSize 2048
  4485.  
  4486. //Network.ClientConnectionDebugFilePrefix client
  4487. //Network.ServerConnectionDebugFilePrefix server
  4488.  
  4489. //Demo.TimeDemo demos/perf/demo0
  4490. //Demo.PauseOnStartup true
  4491. //Demo.StartProfilingOnFrame 400
  4492. //Demo.StopProfilingOnFrame 600
  4493. //Demo.LockToPlayerName JLORD1
  4494. //Demo.ForcedDeltaTickCount 0
  4495. //Demo.RecordDemoFileName demos/perf/demo0
  4496. //Demo.PlaybackDemoFileName demos/perf/demo0
  4497.  
  4498. // These are still here since bumping SettingsBuilder after changing the default values didn't work.
  4499. // 70 = 64 max regular players (soldiers) + 2 commanders + 4 max spectator players
  4500. // Note that MaxPlayerCount also affects AI players in single player.
  4501. Game.MaxPlayerCount 70
  4502. Game.MaxSpectatorCount 4
  4503.  
  4504. Game.CurrentSKU WW
  4505. Core.AvailableLanguages *
  4506.  
  4507. Online.PunkBusterActivateServer true
  4508. Online.PunkBusterActivateClient true
  4509. Online.FairFightEnabled true
  4510.  
  4511. VeniceOnline.ServiceNameOverride null
  4512. VeniceOnline.ClientGameConfigurationOverride null
  4513.  
  4514. Online.ClientIsPresenceEnabled true
  4515. Online.ServerIsPresenceEnabled true
  4516. Online.Environment OnlineEnvironment_Production
  4517.  
  4518. Online.PingSite ams
  4519. Online.BlazeLogLevel 1
  4520. blaze-connecting-messages true
  4521.  
  4522. // TEMPORARY SETTINGS. NOT FOR RETAIL (but Warsaw Core X)
  4523. UIMessageComp.DisplayUnlocalizedSubtitles 1
  4524.  
  4525. WorldRender.ShadowmapAccumEnable 1
  4526. WorldRender.ShadowmapResolution 608
  4527. WorldRender.ShadowmapSliceCount 4
  4528. WorldRender.ShadowmapQuality 1
  4529.  
  4530. # Smoothness for AlphaTestSimple (mostly vegetation)
  4531. WorldRender.GBufferAlphaTestSimpleSmoothness 0.3
  4532.  
  4533.  
  4534. Enlighten.JobCount 4
  4535. Enlighten.MaxPerFrameSolveTime 3.0
  4536.  
  4537.  
  4538. DebugMenu.ToggleFreeFlying true
  4539.  
  4540.  
  4541. ]=]
  4542.  
  4543. local platformCmd = cmdLineOption('platform')
  4544. local gamePlatform = 'win32'
  4545.  
  4546. if platformCmd then
  4547.     gamePlatform = platformCmd:lower()
  4548. else
  4549.     gamePlatform = platform:lower()
  4550. end
  4551.  
  4552. -- Protocol version configuration
  4553. if gamePlatform:lower() == 'ps3' then
  4554.     Network.ProtocolVersion = '5004'
  4555. elseif gamePlatform == 'xenon' then
  4556.     Network.ProtocolVersion = '6004'
  4557. elseif gamePlatform == 'gen4a' then
  4558.     Network.ProtocolVersion = '7004'
  4559. elseif gamePlatform == 'gen4b' then
  4560.     Network.ProtocolVersion = '8006'
  4561. else
  4562.     Network.ProtocolVersion = '4004'
  4563. end
  4564.  
  4565. -- Network timeout values
  4566. if config:lower() == 'debug' or config:lower() == 'release' then
  4567.     Network.ConnectTimeout = 99999
  4568.     Client.LoadingTimeOut = 99999
  4569.     Client.LoadedTimeOut = 99999
  4570.     Client.IngameTimeOut = 99999
  4571.     Server.IngameTimeOut = 99999
  4572.     Server.LoadingTimeOut = 99999
  4573. else
  4574.     Network.ConnectTimeout = 15
  4575.     Client.LoadingTimeOut = 15
  4576.     Client.LoadedTimeOut = 15
  4577.     Client.IngameTimeOut = 15
  4578.     Server.IngameTimeOut = 15
  4579.     Server.LoadingTimeOut = 15
  4580. end
  4581.  
  4582. if platform == 'Win32' then
  4583. applySettings [=[
  4584.  
  4585.  
  4586.     # enable this again once AMD 13.9 drivers are available for 3xxx and 4xxx cards
  4587.     RenderDevice.MinDriverRequired 0
  4588.  
  4589.     ShaderSystem.FrameMemoryBufferSize 33554432
  4590.  
  4591.     Client.LoadMenu 0
  4592.     Client.IgnoreClientFireRateMultiplier true
  4593.     Client.SampleInputEveryVisualFrame true
  4594.  
  4595.     Blaze.ClientAutoAccountCreation true
  4596.  
  4597.     Origin.ForceLogin true
  4598.     Origin.AutoLogin true
  4599.    
  4600.     VisualTerrain.VertexBufferHeightsEnable 0
  4601.     VisualTerrain.MeshScatteringInvisibleCellFovFactor 1
  4602.     VisualTerrain.PatchSlotCount 736
  4603.     VisualTerrain.MeshScatteringInstancesPerCellMax 4096
  4604.    
  4605.     WorldRender.DynamicEnvmapEnable 1
  4606.     WorldRender.DynamicEnvmapResolution 512
  4607.  
  4608.     EmitterSystem.UpdateJobEnable false
  4609.        
  4610.     # Due to differences in codecs and data sizes on Win32 compared to console this needs to be quite big
  4611.     Audio.DataManagerCacheSize 104857600
  4612.     Audio.DelayLineAllocSize 5242880
  4613.  
  4614.     PostProcess.SpriteDofEnable true
  4615.  
  4616.     WorldRender.SpotLightShadowmapEnable 1
  4617.     WorldRender.SpotLightShadowmapResolution 1024
  4618.    
  4619.     # average method instead of minimum
  4620.     Render.DrawFpsMethod 1
  4621.    
  4622.     DebrisSystem.DebrisPoolSize 4096
  4623.  
  4624.     Deploy.PCNavigationEnabled true
  4625.  
  4626.     GameTime.EnableSinglePlayerFixedTick 0
  4627.     BFServer.MaxNumSoldierCorpses 10
  4628. ]=]
  4629.  
  4630.     local onlineEnvironment = cmdLineOption('onlineEnvironment')
  4631.     if onlineEnvironment then
  4632.         onlineEnvironment = string.lower(onlineEnvironment)
  4633.         if onlineEnvironment == "dev" then
  4634.             applySettings [=[
  4635.                 Online.Environment OnlineEnvironment_Development
  4636.             ]=]
  4637.         elseif onlineEnvironment == "test" then
  4638.             applySettings [=[
  4639.                 Online.Environment OnlineEnvironment_Test
  4640.             ]=]
  4641.         elseif onlineEnvironment == "cert" then
  4642.             applySettings [=[
  4643.                 Online.Environment OnlineEnvironment_Certification
  4644.             ]=]
  4645.         end
  4646.     end
  4647.  
  4648.     local onlineService = cmdLineOption('onlineService')
  4649.     if onlineService then
  4650.         onlineService = string.lower(onlineService)
  4651.         if onlineService ~= "default" then
  4652.             local blazeServiceName = "battlefield-4-pc-" .. onlineService
  4653.  
  4654.             Online.ServiceNameOverride = blazeServiceName
  4655.             VeniceOnline.ServiceNameOverride = blazeServiceName
  4656.         end
  4657.     end
  4658.  
  4659.     local webEndpoint = cmdLineOption('webEndpoint')
  4660.     if webEndpoint then
  4661.         webEndpoint = string.lower(webEndpoint)
  4662.         local webEndpointDomain = "https://" .. webEndpoint .. ".battlelog.com"
  4663.         if string.find(webEndpoint, ".battlelog") then
  4664.             webEndpointDomain = "https://" .. webEndpoint .. ".battlefield.com"
  4665.         end
  4666.  
  4667.         Online.BattlelogApiUrl = webEndpointDomain
  4668.         VeniceOnline.BattlelogApiUrl = webEndpointDomain
  4669.     end
  4670.  
  4671.     local webMode = commandLine:lookup("webmode")
  4672.     if webMode then
  4673.         webMode = string.lower(webMode)
  4674.     end
  4675.  
  4676.     if webMode == "sp" then
  4677.         applySettings [=[
  4678.             Client.SkipFastLevelLoad 1
  4679.             # HACK: Workaround until VeniceOnline settings are put in the proper DDF settings namespace
  4680.             Online.EnableSnowroller 1
  4681.             VeniceOnline.EnableSnowroller 1
  4682.             Window.Minimized 1
  4683.         ]=]
  4684.    
  4685.     elseif webMode == "spoffline" then
  4686.         applySettings [=[
  4687.             Game.Level Levels/FrontEnd/FrontEnd
  4688.         ]=]
  4689.    
  4690.     elseif webMode == "mp" then
  4691.         applySettings [=[
  4692.             Client.SkipFastLevelLoad 1
  4693.             # HACK: Workaround until VeniceOnline settings are put in the proper DDF settings namespace
  4694.             Online.EnableSnowroller 1
  4695.             VeniceOnline.EnableSnowroller 1
  4696.             Window.Minimized 1
  4697.         ]=]
  4698.  
  4699.     else
  4700.         webMode = nil
  4701.  
  4702.         applySettings [=[
  4703.             Online.ForceOnline false
  4704.             Blaze.ForceDirectLogin false
  4705.             # Blaze.ClientAutoAccountCreation should already be set to true
  4706.         ]=]
  4707.     end
  4708.  
  4709.     -- Common webMode options.
  4710.     if webMode then
  4711.         applySettings [=[
  4712.             Core.DisplayAsserts 0
  4713.             VeniceOnline.EnableQoS false
  4714.             Origin.Enabled true
  4715.             Origin.AutoLogin false
  4716.         ]=]
  4717.     end
  4718. end
  4719.  
  4720. if platform == 'Gen4a' or platform == 'Gen4b' then
  4721. applySettings [=[
  4722.  
  4723.     # Settings copied from UserOptions, ideally should just run the UserOptions instead
  4724.  
  4725.     Texture.SkipMipmapCount 0
  4726.     TextureStreaming.PoolSize 800000
  4727.     TextureStreaming.OnDemandPoolSize 16000
  4728.  
  4729.     TerrainStreaming.HeightfieldAtlasSampleCountXFactor 1
  4730.     TerrainStreaming.HeightfieldAtlasSampleCountYFactor 2
  4731.     TerrainStreaming.MaskAtlasSampleCountXFactor 1
  4732.     TerrainStreaming.MaskAtlasSampleCountYFactor 2
  4733.     TerrainStreaming.ColorAtlasSampleCountXFactor 1
  4734.     TerrainStreaming.ColorAtlasSampleCountYFactor 2
  4735.     VisualTerrain.TextureAtlasSampleCountXFactor 1
  4736.     VisualTerrain.TextureAtlasSampleCountYFactor 2
  4737.     VisualTerrain.TextureRenderJobCount 1
  4738.     VisualTerrain.TextureRenderJobsLaunchedPerFrameCountMax 1
  4739.     VisualTerrain.TextureSkipMipSpeed 30
  4740.     #VisualTerrain.Decal3dFarDrawDistanceScaleFactor 1.7
  4741.     VisualTerrain.TextureDirtyNodeCapacity 256
  4742.     VisualTerrain.PatchSlotCount 736
  4743.  
  4744.     VisualTerrain.VertexBufferHeightsEnable 0
  4745.     VisualTerrain.DxDisplacementMappingEnable 0
  4746.     VisualTerrain.DxTessellatedTriWidth 12
  4747.  
  4748.     VisualTerrain.MeshScatteringQualityLevel QualityLevel_High
  4749.     VisualTerrain.MeshScatteringBuildChannelCount 2
  4750.     VisualTerrain.MeshScatteringBuildChannelsLaunchedPerFrameCountMax 1
  4751.     #VisualTerrain.MeshScatteringDistanceScaleFactor 1.7
  4752.     #VisualTerrain.MeshScatteringInstancesPerCellMax 4096
  4753.  
  4754.     WorldRender.CullScreenAreaScale 1.75
  4755.     Mesh.GlobalLodScale 1.5
  4756.     Mesh.ShadowDistanceScale 1.5
  4757.  
  4758.     MeshStreaming.PoolSize 250000
  4759.     Mesh.CastSunShadowQualityLevel High
  4760.     Mesh.CastDynamicEnvmapQualityLevel High
  4761.     Mesh.CastPlanarReflectionQualityLevel High
  4762.     #VegetationSystem.UseShadowLodOffset 0
  4763.     #VegetationSystem.MaxActiveDistance 300
  4764.     #VegetationSystem.MaxPreSimsPerJob 4
  4765.     VegetationSystem.SimulationMemKbClient 4096
  4766.     #Render.EdgeModelViewDistance 100
  4767.  
  4768.     WorldRender.SpotLightsAsConeLightsLevel QualityLevel_Medium
  4769.     WorldRender.SpotLightShadomapLevel QualityLevel_High
  4770.     EffectSystem.EffectQualityLevel QualityLevel_High
  4771.     EmitterSystem.EmitterQualityLevel QualityLevel_High
  4772.     EmitterSystem.QuadHalfResEnable 1
  4773.     EmitterSystem.QuadMaxCount 16000
  4774.     EmitterSystem.MeshMaxCount 8000
  4775.     EmitterSystem.CollisionRayCastMaxCount 50
  4776.     EmitterSystem.ProximityPhysicsEntitiesMaxCount 20
  4777.     EmitterSystem.SkipUpdateMaxCount 2
  4778.     EmitterSystem.ScreenAreaCullingMinTotalArea 50
  4779.     EmitterSystem.ScreenAreaCullingMaxTotalArea 90
  4780.     EmitterSystem.ScreenAreaCullingMaxMultiplier 0.35
  4781.  
  4782.     DynamicTextureAtlas.EmitterBaseWidth 8192
  4783.     DynamicTextureAtlas.EmitterBaseHeight 8192
  4784.     DynamicTextureAtlas.EmitterBaseMipmapCount 6
  4785.     DynamicTextureAtlas.EmitterBaseSkipmipsCount 0
  4786.     DynamicTextureAtlas.EmitterNormalWidth 2048
  4787.     DynamicTextureAtlas.EmitterNormalHeight 2048
  4788.     DynamicTextureAtlas.EmitterNormalMipmapCount 4
  4789.     DynamicTextureAtlas.EmitterNormalSkipmipsCount 0
  4790.  
  4791.     # Shadow
  4792.     WorldRender.ShadowmapViewDistance 140
  4793.     WorldRender.ShadowmapResolution 896
  4794.     WorldRender.ShadowmapSliceCount 4
  4795.     WorldRender.ShadowmapQuality QualityLevel_Medium
  4796.     WorldRender.TransparencyShadowmapsEnable 1
  4797.     WorldRender.SpotLightShadowmapLevel QualityLevel_Medium
  4798.  
  4799.     WorldRender.PostProcessAntialiasingMode PostProcessAAMode_FxaaHigh
  4800.     WorldRender.MotionBlurEnable 1
  4801.     WorldRender.PlanarReflectionEnable 1
  4802.     WorldRender.DistortionEnable 1
  4803.     WorldRender.DynamicEnvmapEnable 0
  4804.     WorldRender.SkyEnvmapResolution 256
  4805.     WorldRender.DynamicEnvmapResolution 256
  4806.    
  4807.     PostProcess.DynamicAOEnable 1
  4808.     PostProcess.DynamicAOMethod DynamicAOMethod_HBAO
  4809.  
  4810.     # Due to differences in codecs and data sizes on Gen4 compared to Gen3 this needs to be quite big
  4811.     Audio.DataManagerCacheSize 104857600
  4812.     Audio.DelayLineAllocSize 5242880
  4813.  
  4814.    Audio.AudioCoreSystemJobsEnabled 1
  4815.    Audio.AudioCoreWatchDogThreadEnabled 1
  4816.    Audio.AudioCoreMiniumMixAhead 0.016
  4817.    Audio.AudioCoreTargetMixAhead 0.073
  4818.  
  4819.     Client.SampleInputEveryVisualFrame true
  4820.  
  4821.     # Allow fixing of singleplayer framerate only < 30 fps
  4822.     GameTime.EnableSinglePlayerFixedTick 1
  4823.    
  4824.     # Disable animation if smaller than this many pixels
  4825.     Ant.AutoCullPixelSize 10
  4826.  
  4827.     BFServer.MaxNumSoldierCorpses 10
  4828.     GameTime.DoubleNoTickWait 0
  4829.  
  4830.     Enlighten.LightProbeLookupTableGridRes 64
  4831. ]=]
  4832. end
  4833.  
  4834. if platform == 'Gen4a' then
  4835. applySettings [=[
  4836.  
  4837.     # run at 720p
  4838.     Render.ResolutionScale 0.6667
  4839.  
  4840.     ]=]
  4841. end
  4842.  
  4843. if platform == 'Gen4b' then
  4844. applySettings [=[
  4845.  
  4846.     # run at 1600x900p
  4847.     Render.ResolutionScale 0.83333333
  4848.  
  4849.     Audio.AudioCoreMiniumMixAhead 0.032
  4850.  
  4851.     ]=]
  4852. end
  4853.  
  4854.  
  4855. if platform == 'Ps3' or platform == 'Xenon' then
  4856. applySettings [=[
  4857.  
  4858.     Client.VSyncEnable 1
  4859.  
  4860.     Ant.MaxInterpolationSlots 32
  4861.  
  4862.    Audio.AudioCoreSystemJobsEnabled 1
  4863.    Audio.AudioCoreWatchDogThreadEnabled 1
  4864.    Audio.AudioCoreMiniumMixAhead 0.016
  4865.    Audio.AudioCoreTargetMixAhead 0.073
  4866.  
  4867.     Audio.DelayLineAllocSize 1179648
  4868.  
  4869.     # saves 10 mb of memory on xenon
  4870.     UI.ScreenshotEnable 0
  4871.    
  4872.     Decal.RingBufferMaxVertexCount 8192
  4873.     Decal.StaticBufferMaxVertexCount 16384
  4874.        
  4875.     MeshStreaming.MaxPendingLoadCount 2
  4876.     TextureStreaming.MaxPendingLoadCount 4
  4877.     TextureStreaming.MaxMipmapCount 13
  4878.     TextureStreaming.DefragFrameTransferLimit 1500
  4879.    
  4880.     TerrainStreaming.ActiveFreeStreamingDataLoadJobCount 1
  4881.  
  4882.     Network.MaxClientCount 26
  4883.     Game.MaxSpectatorCount 0
  4884.  
  4885.  
  4886.     WorldRender.SpotLightShadowmapEnable 1
  4887.     WorldRender.SpotLightShadowmapResolution 512
  4888.     WorldRender.SpotLightShadowmapLevel QualityLevel_Low
  4889.  
  4890.     WorldRender.PlanarReflectionEnable 0
  4891.     WorldRender.DynamicEnvmapEnable 0
  4892.     Enlighten.CubeMapsEnable 0
  4893.    
  4894.     DynamicTextureAtlas.EmitterBaseWidth 2048
  4895.     DynamicTextureAtlas.EmitterBaseHeight 2048
  4896.     DynamicTextureAtlas.EmitterBaseMipmapCount 4
  4897.     DynamicTextureAtlas.EmitterNormalWidth 128
  4898.     DynamicTextureAtlas.EmitterNormalHeight 128
  4899.     DynamicTextureAtlas.EmitterNormalMipmapCount 1
  4900.    
  4901.     VisualTerrain.LodScale 0.5
  4902.     VisualTerrain.TextureLevelOffset 2
  4903.     VisualTerrain.TextureSamplesPerMeterMax 16
  4904.  
  4905.     DebrisSystem.DebrisPoolSize 512
  4906.  
  4907.     WaterInteract.WaterQualityLevel QualityLevel_Low
  4908.  
  4909.     Minimap.MipBias 1.0
  4910.  
  4911.     GameTime.EnableSinglePlayerFixedTick 1
  4912.  
  4913.     # Disable animation if smaller than this many pixels
  4914.     Ant.AutoCullPixelSize 30
  4915.        
  4916.     PostProcess.IronsightsDofEnable 0
  4917.  
  4918.     BFServer.MaxNumSoldierCorpses 5
  4919. ]=]
  4920. end
  4921.  
  4922. if platform == 'Ps3' then
  4923. applySettings [=[
  4924.  
  4925.     TextureStreaming.PoolSize 40000
  4926.     TextureStreaming.OnDemandPoolSize 2000
  4927.     MeshStreaming.PoolSize 50000
  4928.     MeshStreaming.Ps3CellPoolSize 18000
  4929.  
  4930.     VegetationSystem.MaxActiveDistance 100
  4931.  
  4932.     Occlusion.MaxTriangleCount 5000
  4933.  
  4934.     Audio.DataManagerCacheSize 8925184
  4935.     Audio.DataManagerCacheRsxSize 20971520
  4936.    
  4937.     # ShaderSystem.FrameMemoryBufferSize 3670016
  4938.     ShaderSystem.FrameMemoryBufferSize 5000000
  4939.  
  4940.     Render.Ps3FrameLocalBufferSize 5242880
  4941.     Render.Ps3FrameMainBufferSize 5242880
  4942.     PostProcess.Ps3EdgeMlaaEnable 1
  4943.    
  4944.     Render.Ps3Res1280x704Enable 1
  4945.    
  4946.     VisualTerrain.MeshScatteringInstanceOcclusionCullEnable 1
  4947.  
  4948.     EmitterSystem.UpdateJobEnable false
  4949.     EmitterSystem.ScreenAreaCullingStart 0.2
  4950.     EmitterSystem.ScreenAreaCullingEnd 1.2
  4951. ]=]
  4952.  
  4953.     local superbundles = cmdLineOption('super')
  4954.     if not superbundles then
  4955.         applySettings [=[
  4956.         # Enable DVD emulation when running from Avalanche.
  4957.         Core.HttpDvdSimulation 1
  4958.         Core.HttpDvdSeekPenalty 120
  4959.         # Assume texture/mesh chunks are located on HDD. This disables DVD simulation seek penalties for them.
  4960.         TurboLoader.EmulateChunksOnHdd 2   
  4961.     ]=]
  4962.     end
  4963. end
  4964.  
  4965. if platform == 'Xenon' then
  4966. applySettings [=[
  4967.  
  4968.     # use larger pool on Xenon due to more padding in textures caused by tile restrictions
  4969.     DestructionVolume.TexturePoolSize 524416
  4970.     DestructionVolume.TexturePoolHeadroomSize 32768
  4971.  
  4972.     Render.XenonRingBufferSize 2621440
  4973.  
  4974.     VegetationSystem.MaxActiveDistance 100
  4975.  
  4976.     TextureStreaming.PoolSize 65000
  4977.     TextureStreaming.OnDemandPoolSize 2000
  4978.     MeshStreaming.PoolSize 40000
  4979.  
  4980.     MeshStreaming.XenonFinalPoolSizeAdjustment 0
  4981.     MeshStreaming.XenonRetailPoolSizeAdjustment 0
  4982.     TextureStreaming.XenonFinalPoolSizeAdjustment 0
  4983.     TextureStreaming.XenonRetailPoolSizeAdjustment 5000
  4984.  
  4985.     Occlusion.MaxTriangleCount 5000
  4986.  
  4987.     Audio.DataManagerCacheSize 26214400
  4988.  
  4989.     ShaderSystem.FrameMemoryBufferSize 6000000
  4990.     ShaderSystem.XenonDispatchCmdBufferSize 1048576
  4991.  
  4992.     WorldRender.FastHdrEnable true
  4993.  
  4994.     VisualTerrain.VertexBufferHeightsEnable 0
  4995.    
  4996.     PostProcess.LUTGammaR 1.3
  4997.     PostProcess.LUTGammaG 1.3
  4998.     PostProcess.LUTGammaB 1.3
  4999.     PostProcess.LUTGammaCurbOffset 0.1
  5000.    
  5001. ]=]
  5002.  
  5003.     local superbundles = cmdLineOption('super')
  5004.     if superbundles then
  5005.         applySettings [=[
  5006.             #temporary disable all free streaming on xbox until the hd install flow is finished, that way we can still create the hd superbundle and thus make sure to fit on disc
  5007.             #Game.ForceDisableFreeStreaming true
  5008.         ]=]
  5009.     else
  5010.         applySettings [=[
  5011.             # Enable DVD emulation when running from Avalanche.
  5012.             Core.HttpDvdSimulation 1
  5013.             Core.HttpDvdSeekPenalty 120
  5014.             # Assume texture/mesh chunks are located on HDD. This disables DVD simulation seek penalties for them.
  5015.             TurboLoader.EmulateChunksOnHdd 2   
  5016.         ]=]
  5017.     end
  5018. end
  5019.  
  5020.  
  5021. local level = cmdLineOption('level')
  5022. if level then
  5023.     log:debug("Level specified on commandline, enabling fast startup")
  5024.  
  5025.     -- Level names without slashes are assumed to be shorthand for
  5026.     -- Levels/name/name to go with Venice's epic level naming convention
  5027.     if not string.find(level, "/") then
  5028.         level = "Levels/" .. level .. "/" .. level
  5029.     end
  5030.  
  5031.     Game.Level = level
  5032. end
  5033.  
  5034. local dedicatedServer = cmdLineOption('dedicated')
  5035. if dedicatedServer then
  5036.     if gamePlatform == 'win32' then
  5037.         applySettings [=[
  5038.             Server.QueryProviderEnabled true
  5039.         ]=]
  5040.     end
  5041.     if gamePlatform == 'ps3' or gamePlatform == 'xenon' then
  5042.         applySettings [=[
  5043.             Network.MaxClientCount 26
  5044.             Game.MaxSpectatorCount 0
  5045.         ]=]
  5046.     end
  5047.     applySettings [=[
  5048.         Server.ThreadingEnable false
  5049.         Ant.EnableJobs false
  5050.         GameAnimation.ServerEnable false
  5051.  
  5052.         ServerMetrics.Enabled false
  5053.         ServerMetrics.TransactionTelemetryEnabled true
  5054.  
  5055.         ServerMetrics.PerformanceTelemetryEnabled true
  5056.         ServerMetrics.PerformanceProfileStateEnabled true
  5057.     ]=]
  5058.    
  5059.     local level = cmdLineOption('level')
  5060.     if not level then
  5061.         applySettings [=[
  5062.         #HACK: We need to set a level that always exists on the server, unfortunatley there is no such level so we just pick MP_Siege...z
  5063.         Game.Level Levels/MP/MP_Siege/MP_Siege
  5064.         Game.DefaultLayerInclusion GameMode=ConquestSmall0
  5065.     ]=]
  5066.     end
  5067.  
  5068.     local protocolVersionCmd = cmdLineOption('protocolVersion')
  5069.     if protocolVersionCmd then
  5070.         Network.ProtocolVersion = protocolVersionCmd
  5071.     end
  5072. end
  5073.  
  5074. local battlelog = cmdLineOption('battlelogURL')
  5075. if battlelog then
  5076.     Online.BattlelogReportURL = battlelog
  5077.     VeniceOnline.BattlelogReportURL = battlelog
  5078. end
  5079.  
  5080. local startPoint = cmdLineOption('startpoint')
  5081. if startPoint then
  5082.     Game.StartPoint = startPoint
  5083. end
  5084.  
  5085. if Game.StartPoint and (string.find(Game.StartPoint, "E3_") or string.find(Game.StartPoint, "E3 ")) then
  5086.     applySettings [=[
  5087.         VeniceUI.PlatformOverride xenon
  5088.         Vehicle.UpsideDownDamage false
  5089.     ]=]
  5090. end
  5091.   ‚Ž$file „name Scripts/Gen4aGame.cfg payload \-url http://10.20.108.73:1338 -host 10.20.108.73 -hostUser dicemonkey -hostUserDomain DICE
  5092.   ‚Ž$file „name Scripts/Gen4bGame.cfg payload \-url http://10.20.108.73:1338 -host 10.20.108.73 -hostUser dicemonkey -hostUserDomain DICE
  5093.   ‚¸$file ®name Scripts/Local.cfg payload ‰// Try and not add things to game.cfg if it's not meant to be checked in!
  5094. // Add here settings that you would like to override
  5095.  
  5096.  
  5097. //
  5098.  ‚ý$file óname Scripts/LocalE3Win32.cfg payload ÇClient.DrawFps 0
  5099. ShaderSystem.DrawStats 0
  5100. Client.DrawObjectLimits 0
  5101. Core.DisplayAsserts 0
  5102. Window.Fullscreen 1
  5103. Core.MemoryStatsEnabled 0
  5104.  
  5105. -- Should be on for SP Levels
  5106. -- GameTime.ForceDeltaTickCount 1
  5107.  
  5108. -- Uncomment line below to remove all logging and prevent harmful log spam during MP test
  5109. -- Core.LogLevel CllFatalAssert
  5110.  
  5111.  
  5112.  
  5113. -- In case of emergency
  5114.  
  5115. -- WorldRender.TransparencyShadowmapsEnable 1
  5116. -- WorldRender.ShadowmapViewDistance 200
  5117. -- WorldRender.ShadowmapResolution 2048
  5118. -- WorldRender.ShadowmapQuality 1
  5119. -- WorldRender.ShadowmapViewDistance 100
  5120. -- WorldRender.FxaaEnable 1
  5121. -- WorldRender.MotionBlurEnable 1
  5122. -- PostProcess.DynamicAOEnable 1
  5123.  
  5124. -- WorldRender.MultisampleCount 4
  5125.  ‚ø$file îname Scripts/LocalEditor.cfg payload Ã// Try and not add things to game.cfg if it's not meant to be checked in!
  5126. // Add here settings that you would like to override
  5127. // This file is executed when Frostbite is launched from FrostEd
  5128.   ‚‹$file name Scripts/LocalGame.cfg payload Ø// Try and not add things to game.cfg if it's not meant to be checked in!
  5129. // Add here settings that you would like to override
  5130. // This file is executed when Frostbite is executed separately (i.e not from FrostEd)
  5131.  ‚°$file ¦name Scripts/PlaytestCommon.cfg payload øclient-matchmaking-map0           paris_line2
  5132. client-matchmaking-map1           mp_berlin
  5133. blaze-server-state-change-logging true
  5134.  
  5135. ShaderSystem.Dx10DelayedShaderLoadingEnable false
  5136.  
  5137. Game.Level            Levels/GarrisonTest/GarrisonTest
  5138.  
  5139. Game.HasUnlimitedMags           false
  5140.  
  5141. Core.EnableJuice true
  5142. Core.EnableBitstreamTypeVerification false
  5143. Core.JuiceUserType      jutDev
  5144. Core.AssertLimit 5
  5145.  
  5146. Client.IsPresenceEnabled          true
  5147. Client.SecondaryServerIp          10.20.102.69
  5148. Client.MemoryStatsEnabled false
  5149. Server.IsPresenceEnabled          false
  5150.  
  5151. //Client.LoadingTimeout 240
  5152. //Client.LoadedTimeout  60
  5153. //Client.IngameTimeout  15
  5154. //Server.IngameTimeout  30
  5155. //Server.LoadingTimeout 60
  5156.  
  5157. // Internet simulation (only active in multiplayer)
  5158. Client.MinLatency                 0.1
  5159. Client.MaxLatency                 0.1
  5160.  
  5161. RenderDevice.NvidiaMinDriverRequired false
  5162.  
  5163. // Online.MatchmakeImmediately true
  5164. // Online.MatchmakingToken fooo
  5165. Online.BlazeWalUrl 10.20.102.120:1246
  5166. Online.EnableSnowroller true
  5167. Online.SnowrollerOrphanTimeout 10
  5168.  
  5169. LanServerBackend.fakeStatsDownload true
  5170. blaze-offline-notification true
  5171.  
  5172. // Game.EnableSurveys   true
  5173.  
  5174. // Client.IncomingRate 512000
  5175. // Server.OutgoingRate 512000
  5176.  
  5177. Client.IncomingRate 150000
  5178. Server.OutgoingRate 150000
  5179. Network.TimeNudgeGhostFrequencyFactor 0
  5180.  
  5181. Network.UseFrameManager true
  5182. // Network.MaxServerFrameSize 4096
  5183. Network.MaxServerFrameSize 2048
  5184. // Physics.SingleStepCharacter false
  5185.  
  5186. // Window.Fullscreen true
  5187. Window.FullscreenAutosize true
  5188.  
  5189. UIScreenshotComp.SceenshotInfos bighead,558,11,743,195,40,40;smallhead,558,11,743,195,18,18;smallupper,430,0,894,464,122,106;home_my_soldier,141,14,396,236,210,187;bigupper,430,0,894,464,290,252;full,362,0,902,800,250,371;
  5190.  
  5191.  
  5192. // Player.zeroRespawnTimeOnSuicide true
  5193.  
  5194. FragalyzerRecorder.StartAutoTrackOnSquadCreate true
  5195.  
  5196. DebugRender.TextQueueMaxLineCount 3
  5197.  
  5198. Player.ignoreLevelWarmUpTimers true
  5199.  
  5200. Core.HardwareCpuBias -1
  5201. Core.HardwareGpuBias -0.5
  5202.  
  5203. Network.TimeNudgeBias 0.05
  5204.  
  5205. Core.DialogLevel 9
  5206.  
  5207. UIScreenshotComp.ScreenshotInfos bighead,558,11,743,195,40,40;smallhead,558,11,743,195,18,18;smallupper,430,0,894,464,122,106;home_my_soldier,141,14,396,236,210,187;bigupper,430,0,894,464,290,252;full,362,0,902,800,250,371;
  5208.  
  5209. Core.Heartbeat          true
  5210. Core.HeartbeatInterval  30
  5211.  
  5212. // for when using the beta.venice.dice.se site
  5213. // Server.BlazeServiceName bf3-beta-2009-pc
  5214.  
  5215. // newline
  5216.  ‚Ì$file Âname Scripts/PlaytestLocal.cfg payload •Game.HasUnlimitedMags true
  5217. Explosion.TriggerMaskVolumes true
  5218. Ant.ForceLodDistance 0
  5219. SoldierTest.spawnEnabled true
  5220. SoldierTest.scriptsEnabled true  ‚õ $file ë name Scripts/PlaytestServer.cfg payload ½ //Server Level
  5221. #Game.Level     Levels/Level_01/Level_01
  5222. Game.Level      Levels/Level_02/Level_02
  5223. #Game.Level     Levels/Level_03/Level_03
  5224. #Game.Level     Levels/Level_04/Level_04
  5225. #Game.Level     Levels/Level_05/Level_05
  5226. #Game.Level     Levels/Level_06/Level_06
  5227. Game.Level      Levels/Testrange_Rome_MP05/Testrange_Rome_MP05
  5228.  
  5229. //Game mode (16/64 player)
  5230. #Game.DefaultLayerInclusion       StartupMode=Game;GameMode=ConquestSmall
  5231. Game.DefaultLayerInclusion        StartupMode=Game;GameMode=KingOfTheHill
  5232. #Game.DefaultLayerInclusion       StartupMode=Game;GameMode=ConquestLarge
  5233.  
  5234. Network.MaxClientCount 24
  5235. GameSettings.MaxPlayerCount 24
  5236.  
  5237. Server.IsPresenceEnabled          true
  5238. Server.QueryPortOffset            100
  5239. Core.DisplayAsserts     false
  5240. CrashDump.WarnBeforeDoingMemoryDump false
  5241.  
  5242. // Allow players to spawn even if server blaze connection is down
  5243. Server.statisticsFallback true
  5244.  
  5245. ServerMetrics.Enabled true
  5246. ServerMetrics.PerformanceProfileStateEnabled true
  5247. ServerMetrics.PerformanceTelemetryEnabled true
  5248.  
  5249. // Internet simulation (only active in multiplayer)
  5250. Server.MinLatency                 0.1
  5251. Server.MaxLatency                 0.1
  5252.  
  5253. Demo.RecordDemoFilename demo/PlaytestRecording0
  5254. Demo.AllowOverwrite false
  5255.  
  5256. GameReport.DebugOutput true
  5257.  
  5258. # Server.Playlist Level_01_only
  5259. Server.forcePlaylist false
  5260. Server.forceStartMapOnLoad false
  5261. Game.DisablePreRound false
  5262.  
  5263. # SoldierTest.spawnEnabled true
  5264. # SoldierTest.scriptsEnabled true
  5265.  
  5266. // Just to remember the newline  ‚$file …name Scripts/ProtocolVersion.cfg payload WNetwork.Version           "V0.74"
  5267. Network.ProtocolVersion                       74
  5268.  ‚Œ$file ‚name Scripts/PS3Game.cfg payload \-url http://10.20.108.73:1338 -host 10.20.108.73 -hostUser dicemonkey -hostUserDomain DICE
  5269.  ‚Î$file Äname Scripts/Server.Gen4a.cfg payload ˜-super layout.toc
  5270. -server
  5271. -dedicated
  5272.  
  5273. -platform gen4a
  5274.  
  5275. -Core.DisplayAsserts false
  5276. -Core.IgnoreAlways true
  5277.  
  5278. -Core.EnableJuice false
  5279.  
  5280. -CrashDump.WarnBeforeDoingMemoryDump false
  5281.  
  5282. -Game.CloseDuplicateApps 0
  5283.  
  5284. -ServerMetrics.Enabled 0
  5285. -ServerMetrics.TransactionTelemetryEnabled 1
  5286. -ServerMetrics.PerformanceTelemetryEnabled 1
  5287. -ServerMetrics.PerformanceProfileStateEnabled 1
  5288.  
  5289. -TransactionLog.OutputLevel 1
  5290.  
  5291. -ServerMetrics.DbxReportEnabled 0
  5292.  
  5293. -VeniceOnline.QueueCapacityOverride 0
  5294.  
  5295. -Client.LoadingTimeOut 15
  5296. -Client.LoadedTimeOut 15
  5297. -Client.IngameTimeOut 15
  5298. -Server.IngameTimeOut 15
  5299. -Server.LoadingTimeOut 15
  5300.  
  5301. -Server.IsReconfigurable true
  5302.  ‚Î$file Äname Scripts/Server.Gen4b.cfg payload ˜-super layout.toc
  5303. -server
  5304. -dedicated
  5305.  
  5306. -platform gen4b
  5307.  
  5308. -Core.DisplayAsserts false
  5309. -Core.IgnoreAlways true
  5310.  
  5311. -Core.EnableJuice false
  5312.  
  5313. -CrashDump.WarnBeforeDoingMemoryDump false
  5314.  
  5315. -Game.CloseDuplicateApps 0
  5316.  
  5317. -ServerMetrics.Enabled 0
  5318. -ServerMetrics.TransactionTelemetryEnabled 1
  5319. -ServerMetrics.PerformanceTelemetryEnabled 1
  5320. -ServerMetrics.PerformanceProfileStateEnabled 1
  5321.  
  5322. -TransactionLog.OutputLevel 1
  5323.  
  5324. -ServerMetrics.DbxReportEnabled 0
  5325.  
  5326. -VeniceOnline.QueueCapacityOverride 0
  5327.  
  5328. -Client.LoadingTimeOut 15
  5329. -Client.LoadedTimeOut 15
  5330. -Client.IngameTimeOut 15
  5331. -Server.IngameTimeOut 15
  5332. -Server.LoadingTimeOut 15
  5333.  
  5334. -Server.IsReconfigurable true
  5335.  ‚Ë$file Áname Scripts/Server.PS3.cfg payload —-super layout.toc
  5336. -server
  5337. -dedicated
  5338.  
  5339. -platform ps3
  5340.  
  5341. -Core.DisplayAsserts false
  5342. -Core.IgnoreAlways true
  5343.  
  5344. -Core.EnableJuice false
  5345.  
  5346. -CrashDump.WarnBeforeDoingMemoryDump false
  5347.  
  5348. -Game.CloseDuplicateApps 0
  5349.  
  5350. -ServerMetrics.Enabled 0
  5351. -ServerMetrics.TransactionTelemetryEnabled 1
  5352. -ServerMetrics.PerformanceTelemetryEnabled 1
  5353. -ServerMetrics.PerformanceProfileStateEnabled 1
  5354.  
  5355. -TransactionLog.OutputLevel 1
  5356.  
  5357. -ServerMetrics.DbxReportEnabled 0
  5358.  
  5359. -Online.QueueCapacityOverride 20
  5360.  
  5361. -Client.LoadingTimeOut 15
  5362. -Client.LoadedTimeOut 15
  5363. -Client.IngameTimeOut 15
  5364. -Server.IngameTimeOut 15
  5365. -Server.LoadingTimeOut 15
  5366.  
  5367. -Online.ServerIsReconfigurable true
  5368.  ‚ß$file Õname Scripts/Server.Win32.cfg payload ©-super layout.toc
  5369. -server
  5370. -dedicated
  5371.  
  5372. -Core.DisplayAsserts false
  5373. -Core.IgnoreAlways true
  5374.  
  5375. -Core.EnableJuice false
  5376.  
  5377. -CrashDump.WarnBeforeDoingMemoryDump false
  5378.  
  5379. -Game.CloseDuplicateApps 0
  5380.  
  5381. -ServerMetrics.Enabled 0
  5382. -ServerMetrics.TransactionTelemetryEnabled 1
  5383. -ServerMetrics.PerformanceTelemetryEnabled 1
  5384. -ServerMetrics.PerformanceProfileStateEnabled 1
  5385.  
  5386. -TransactionLog.OutputLevel 1
  5387.  
  5388. -ServerMetrics.DbxReportEnabled 0
  5389.  
  5390. -Online.QueueCapacityOverride 20
  5391.  
  5392. -Client.LoadingTimeOut 15
  5393. -Client.LoadedTimeOut 15
  5394. -Client.IngameTimeOut 15
  5395. -Server.IngameTimeOut 15
  5396. -Server.LoadingTimeOut 15
  5397.  
  5398. -Server.IsReconfigurable false
  5399.  
  5400. -BFServer.TeamSwitchImbalanceLimit 4
  5401.  ‚Ï$file Åname Scripts/Server.Xenon.cfg payload ™-super layout.toc
  5402. -server
  5403. -dedicated
  5404.  
  5405. -platform xenon
  5406.  
  5407. -Core.DisplayAsserts false
  5408. -Core.IgnoreAlways true
  5409.  
  5410. -Core.EnableJuice false
  5411.  
  5412. -CrashDump.WarnBeforeDoingMemoryDump false
  5413.  
  5414. -Game.CloseDuplicateApps 0
  5415.  
  5416. -ServerMetrics.Enabled 0
  5417. -ServerMetrics.TransactionTelemetryEnabled 1
  5418. -ServerMetrics.PerformanceTelemetryEnabled 1
  5419. -ServerMetrics.PerformanceProfileStateEnabled 1
  5420.  
  5421. -TransactionLog.OutputLevel 1
  5422.  
  5423. -ServerMetrics.DbxReportEnabled 0
  5424.  
  5425. -Online.QueueCapacityOverride 20
  5426.  
  5427. -Client.LoadingTimeOut 15
  5428. -Client.LoadedTimeOut 15
  5429. -Client.IngameTimeOut 15
  5430. -Server.IngameTimeOut 15
  5431. -Server.LoadingTimeOut 15
  5432.  
  5433. -Online.ServerIsReconfigurable true
  5434.  ‚’$file ˆname Scripts/TestLevel.cfg payload ßGame.FastStartupEnable            true
  5435. Game.Level                        ../EditorLevels/TestLevel
  5436. Server.IsAiEnabled                false
  5437. Server.IsGodMode                  true
  5438. UI.HudEnable                      false
  5439.  ‚ö=$file ì=name Scripts/WarsawAILocalGame.cfg payload »=--
  5440. -- Helper config file which could be useful generally, but is right now targeted at Warsaw AI developers.
  5441. -- Example localgame.cfg
  5442. --
  5443. -----------------------------------------------
  5444. --#!/bin/lua
  5445. --
  5446. --cfg = {
  5447. --  level = 'airf,beach', -- format <level-substring>[,<startpoint-substring>]
  5448. -- 
  5449. --  remoteDesktop = 0,
  5450. --  aiDev = 1,
  5451. --  onlineDevelopment = 1,
  5452. --  scriptedPlaythrough = 0,
  5453. --  cheatAllUnlocks = 1,
  5454. --
  5455. --  extra = [=[
  5456. --      Game.IsGodMode 1
  5457. --  ]=]
  5458. --}
  5459. --
  5460. --cfgPs3 = {
  5461. --  noLogging = 1,
  5462. --
  5463. --  extra = [=[
  5464. --  ]=]
  5465. --}
  5466. --
  5467. --dofile("Scripts/WarsawAILocalGame.cfg")
  5468. -----------------------------------------------
  5469.  
  5470. -----------------------------------------------------------------
  5471.  
  5472. -- List of common levels and start points here. cfg.level will search throught
  5473. local levels = {
  5474.     { 'Levels/SP/SP_Airfield/SP_Airfield', { 'Ocean', 'Beach_Landing', 'Park_Area', 'UnderWater_Scene', 'Office_Complex_flankers', 'Traffic_Bridge'} },
  5475.     { 'Levels/SP/SP_Dam/SP_Dam', { "Level_Start","DamA_CityEntryEncounter","DamA_OuterCityReachEncounter","DamA_InnerCityReachEncounter","DamA_BridgeVistaScene","DamA_BridgeBattleEncounter","DamA_GetToEncampmentScene","DamB_MotorbikeRide","DamB_InfiltrateDam","DamB_InsideDam","DamB_DamBombPlacement","DamB_DamEscape","DamB_MudSlide","DamC_WashedUpEncounter","DamC_SquadRegroupScene","DamC_FloodedCityEncounter","DamC_RetakingTeAirfieldEncounter","DamC_LeavingTheCity"} },
  5476.     { 'Levels/SP/SP_Shanghai/SP_Shanghai', { } },
  5477.     { 'Levels/SP/SP_Prison/SP_Prison', {"A:_Torture_Scene","A:_Prison_Introduction","A:_Knife_Fight_Scene","A:_Dima_Walkthrough","A:_Gear_Up_Encounter","A:_Maintenance_Area_Encounter","A:_Cut_the_Power_Event","A:_Manual_Lock_Encounter","A:_Molotov_Encounter","B:_Prisoner_processing_room","A:_Return_to_Cellblock","B:_monitor_room","A:_Bohai_Assault","B:_torture_hallway","B:_empty_torture_hallway","B:_reception_tear_gas","B:_kitchen_explosion","B:_hanna_&_irish_torture_hall","B:_ventilation_exit","C:_Kitchen_Exit","C:_rappel_scene","C:_the_slide","C:_Helipad_reach","C:_tram_attack","C:_tram_defend","C:_Tram_Descent","C:_Tram_Crash"} },
  5478.     { 'Levels/SP/SP_Naval/SP_Naval', {"Level_Start","NavalA_MedBay","NavalA_IrishMeeting","NavalA_GarrisonBriefing","NavalA_RHIB_Entry","NavalB_TitanEntryPoint","NavalB_SwimmingTutorial","NavalB_SurvivorsScene","NavalB_FloodedCorridor","NavalB_PRE_TiltedHangar","NavalB_POST_TiltedHangar","NavalB_HullScene","NavalB_IntelRoomScene","NavalB_IntelEncounter","NavalB_HullBreachEncounter","NavalC_Battle_TitanFlightDeckEncounterOne","NavalC_Battle_SeaBattle","NavalC_WellDeckEncounter","NavalC_MidDeckEncounter","NavalC_FlightDeckEncounterOne","NavalC_BridgeScene"} },
  5479.     { 'Levels/SP/SP_Prologue/SP_Prologue', {"Construction_Site_Encounter", "Safe_House_scene"}},
  5480.     { 'Levels/SP/SP_Journey/SP_Journey', {}},
  5481.     { 'Levels/Test/Sp_Core_Design_Enemy_Archetypes/Sp_Core_Design_Enemy_Archetypes', { } },
  5482.     { 'Levels/Test/Sp_Core_Design_Squad/Sp_Core_Design_Squad', { } },
  5483.     { 'Levels/Test/Testrange_AI2/Testrange_AI2', { } },
  5484.     { 'Levels/Test/Testrange_CannedAnimations/Testrange_CannedAnimations', { } },
  5485.     { 'Levels/Test/Testrange_BugRepro/Testrange_BugRepro', {'WAR-3868' } },
  5486.     { 'Levels/Test/AutoSmoke_AI/AutoSmoke_AI', { } },
  5487.     { 'Levels/MP/MP_Siege/MP_Siege', { } },
  5488.     { 'Levels/Test/Multiplayer_Reference/Multiplayer_Reference', { } },
  5489.     { 'Levels/Test/SP_Core_Design_Scripting/SP_Core_Design_Scripting', {"Core_CoverSelection", "Core_SquadMovement"}},
  5490.     { 'Levels/Test/Testrange_Cover/Testrange_Cover', { } },
  5491.     { 'Levels/Test/Testrange_MPAnimation/Testrange_MPAnimation', { } },
  5492. }
  5493.  
  5494. -----------------------------------------------------------------
  5495.  
  5496. core = require "Frost.Core"
  5497.  
  5498. function applySettings(settings)
  5499.     core.parseKeyValueCfgString(settings, _G)
  5500. end
  5501.  
  5502. local editorActive = false
  5503. local liveEditingEnable = commandLine:lookup("core.liveeditingenable")
  5504. if liveEditingEnable then
  5505.     if liveEditingEnable == "1" or liveEditingEnable == "true" then
  5506.         editorActive = true
  5507.     end
  5508. end
  5509.  
  5510. local function nocaseRegex(s)
  5511.  s = string.gsub(s, "%a", function (c)
  5512.        return string.format("[%s%s]", string.lower(c),
  5513.                                       string.upper(c))
  5514.      end)
  5515.  return s
  5516. end
  5517.  
  5518. -- Determine if a config value is true
  5519. local function cfgTrue(value)
  5520.  
  5521.     if type(value) == type(true) then
  5522.         return value
  5523.     end
  5524.  
  5525.     if value == nil then
  5526.         return false
  5527.     end
  5528.     return (value ~= 0)
  5529. end
  5530.  
  5531.  
  5532. local function parseLevelAndStart(las)
  5533.     local query = { '@', '@' }
  5534.     local levelAndStart = { nil, nil }
  5535.  
  5536.     if las == nil then
  5537.         return levelAndStart
  5538.     end
  5539.    
  5540.        local i = 1
  5541.  
  5542.     for token in las:gmatch("[^%s,]+") do
  5543.         query[i] = nocaseRegex(token)
  5544.         i = i + 1
  5545.     end
  5546.  
  5547.     for _, v in ipairs(levels) do
  5548.         if nil ~= v[1]:match(query[1]) then
  5549.             levelAndStart[1] = v[1]
  5550.             for _, sv in ipairs(v[2]) do
  5551.  
  5552.                 if nil ~= sv:match(query[2]) then
  5553.                     levelAndStart[2] = sv
  5554.                 end
  5555.             end
  5556.             break
  5557.         end
  5558.     end
  5559.        return levelAndStart
  5560.  
  5561. end
  5562.  
  5563. local function mergeTable(dst_table, src_table)
  5564.     if src_table ~= nil then
  5565.         extra = dst_table.extra
  5566.         for k,v in pairs(src_table) do dst_table[k] = v end
  5567.         dst_table.extra = extra .. src_table.extra 
  5568.     end
  5569. end
  5570.  
  5571.  
  5572. if platform == 'Ps3' then
  5573.     mergeTable(cfg, cfgPs3)
  5574. end
  5575.  
  5576. if platform == 'Xenon' then
  5577.     mergeTable(cfg, cfgXenon)
  5578. end
  5579.  
  5580. if platform == 'Win32' then
  5581.     mergeTable(cfg, cfgWin32)
  5582. end
  5583.  
  5584. -------------------------------------------------------------------
  5585. -- cfg can be used below
  5586. -------------------------------------------------------------------
  5587.  
  5588. -- Don't set the level when starting from the editor
  5589. if editorActive == false then
  5590.     local levelStartInfo = parseLevelAndStart(cfg.level)
  5591.     if (levelStartInfo[1] ~= nil) then
  5592.         applySettings(string.format("Game.Level %s", levelStartInfo[1]))
  5593.     end
  5594.     if (levelStartInfo[2] ~= nil) then
  5595.         applySettings(string.format("Game.StartPoint %s", levelStartInfo[2]))
  5596.     end
  5597. end
  5598.  
  5599. if cfgTrue(cfg.remoteDesktop) then
  5600. applySettings [=[
  5601.     Window.Fullscreen 0
  5602.     Window.Width 380
  5603.     Window.Height 200
  5604. ]=]
  5605. end
  5606.  
  5607. if cfgTrue(cfg.aiDev) then
  5608. applySettings [=[
  5609.     Client.PadRumbleEnabled 0
  5610.  
  5611.     DebugMenu.AlwaysAllowModeToggle 1
  5612.     Debug.TickGameByPressingT 1
  5613.     DebugMenu.ToggleFreeFlying 1
  5614.  
  5615.     Ai2.detailedTraceEnabled 1
  5616.     Ai2.traceBufferSizePerFrameKb 60
  5617.     Ai2.traceLengthSeconds 60
  5618.     ant.RecordReplay 1
  5619.     Ai2.drawSuppressionInfo 1
  5620.     Ai2.drawPlayerDamage 1
  5621.  
  5622.     #Min shelfade cl: 907708
  5623.     #Sikta med i, k, l, j pa tangentbordet.
  5624.     #Skjut med n, zooma med m.
  5625. ]=]
  5626.     if cfgTrue(cfg.hugeTrace) then
  5627.     applySettings [=[
  5628.         Ai2.traceBufferSizePerFrameKb 100
  5629.         Ai2.traceLengthSeconds 300
  5630.         ant.ReplayBufferSizeClient 500000000
  5631.     ]=]
  5632.     end
  5633. end
  5634.  
  5635.  
  5636. if cfgTrue(cfg.onlineDevelopment) then
  5637. applySettings [=[
  5638.     Server.IsPresenceEnabled false
  5639.     Client.IsPresenceEnabled false
  5640.     Online.Environment OnlineEnvironment_Development
  5641.     Client.LoadingTimeOut 99999
  5642.     Client.LoadedTimeOut  99999
  5643.     Client.IngameTimeOut  99999
  5644.     Server.IngameTimeOut  99999
  5645.     Server.LoadingTimeOut 99999
  5646.     Online.ClientIsPresenceEnabled false
  5647.     Origin.Enabled false
  5648.     BFServer.NoInteractivityTimeoutTime 99999
  5649.     BFServer.NoInteractivityThresholdLimit 0.0
  5650. ]=]
  5651. end
  5652.  
  5653. if cfgTrue(cfg.scriptedPlaythrough) then
  5654. applySettings [=[
  5655.     Game.ScriptedPlaythrough 1
  5656. ]=]
  5657. end
  5658.  
  5659. if cfgTrue(cfg.cheatAllUnlocks) then
  5660. applySettings [=[
  5661.     SyncedBFSettings.AllUnlocksUnlocked true
  5662. ]=]
  5663. end
  5664.  
  5665. if cfgTrue(cfg.noLogging) then
  5666. applySettings [=[
  5667.     Core.LogLevel CllNone
  5668. ]=]
  5669. end
  5670.  
  5671. if cfgTrue(cfg.dvdEmulation) then
  5672. applySettings [=[
  5673.     Core.HttpDvdSimulation 1
  5674.     Core.HttpDvdSeekPenalty 200
  5675.     MeshStreaming.DynamicLoadingEnable 0
  5676.     TextureStreaming.DynamicLoadingEnable 0
  5677. ]=]
  5678. end
  5679.  
  5680. if cfgTrue(cfg.fastRendering) then
  5681. applySettings [=[
  5682.     Core.HardwareProfile Hardware_LowEnd
  5683.     WorldRender.ViewMode Diffuse
  5684. ]=]
  5685. end
  5686.  
  5687. applySettings(cfg.extra)
  5688.   ‚‹$file name Scripts/Win32Microscope.cfg payload Ò+Microscope.TraceFile D:\Temp\Microscope\1011240-PC-2\Data\trace-full.fbj
  5689. +Microscope.DataDir D:\Temp\Microscope\1011240-PC-2\Data
  5690. +Microscope.SymPath %TNT_ROOT%\Local\bin
  5691. +Microscope.SymConf %TNT_ROOT%\bin\TraceAnalyzer\LeakAnalyze.yaml
  5692. +Microscope.MemoryCategorisationFile %GAME_DATA_DIR%\Scripts\MicroscopeMemoryCategories.yaml
  5693.  
  5694.   ‚‰$file ÿname Scripts/Win32MicroscopeCli.cfg payload Í+Microscope.SymPath %TNT_ROOT%\Local\bin
  5695. +Microscope.SymConf %TNT_ROOT%\bin\TraceAnalyzer\LeakAnalyze.yaml
  5696. +Microscope.MemoryCategorisationFile %GAME_DATA_DIR%\Scripts\MicroscopeMemoryCategories.yaml
  5697.  
  5698.   ‚Ž$file „name Scripts/XenonGame.cfg payload \-url http://10.20.108.73:1338 -host 10.20.108.73 -hostUser dicemonkey -hostUserDomain DICE
  5699.   ‚á $file × name Scripts/Debug/cycleMpLevels payload ¨ Core.LogLevel FatalAssert
  5700.  
  5701. server.loadLevel Levels/MP/MP_Abandoned/MP_Abandoned
  5702. sleep 60
  5703. server.restartLevel
  5704. sleep 60
  5705. server.endRound 0
  5706. sleep 60
  5707. server.endRound 1
  5708. sleep 60
  5709.  
  5710. server.loadLevel Levels/MP/MP_Damage/MP_Damage
  5711. sleep 60
  5712. server.restartLevel
  5713. sleep 60
  5714. server.endRound 0
  5715. sleep 60
  5716. server.endRound 1
  5717. sleep 60
  5718.  
  5719. server.loadLevel Levels/MP/MP_Flooded/MP_Flooded
  5720. sleep 60
  5721. server.restartLevel
  5722. sleep 60
  5723. server.endRound 0
  5724. sleep 60
  5725. server.endRound 1
  5726. sleep 60
  5727.  
  5728. server.loadLevel Levels/MP/MP_Journey/MP_Journey
  5729. sleep 60
  5730. server.restartLevel
  5731. sleep 60
  5732. server.endRound 0
  5733. sleep 60
  5734. server.endRound 1
  5735. sleep 60
  5736.  
  5737. server.loadLevel Levels/MP/MP_Naval/MP_Naval
  5738. sleep 60
  5739. server.restartLevel
  5740. sleep 60
  5741. server.endRound 0
  5742. sleep 60
  5743. server.endRound 1
  5744. sleep 60
  5745.  
  5746. server.loadLevel Levels/MP/MP_Prison/MP_Prison
  5747. sleep 60
  5748. server.restartLevel
  5749. sleep 60
  5750. server.endRound 0
  5751. sleep 60
  5752. server.endRound 1
  5753. sleep 60
  5754.  
  5755. server.loadLevel Levels/MP/MP_Resort/MP_Resort
  5756. sleep 60
  5757. server.restartLevel
  5758. sleep 60
  5759. server.endRound 0
  5760. sleep 60
  5761. server.endRound 1
  5762. sleep 60
  5763.  
  5764. server.loadLevel Levels/MP/MP_Siege/MP_Siege
  5765. sleep 60
  5766. server.restartLevel
  5767. sleep 60
  5768. server.endRound 0
  5769. sleep 60
  5770. server.endRound 1
  5771. sleep 60
  5772.  
  5773. server.loadLevel Levels/MP/MP_TheDish/MP_TheDish
  5774. sleep 60
  5775. server.restartLevel
  5776. sleep 60
  5777. server.endRound 0
  5778. sleep 60
  5779. server.endRound 1
  5780. sleep 60
  5781.  
  5782. server.loadLevel Levels/MP/MP_Tremors/MP_Tremors
  5783. sleep 60
  5784. server.restartLevel
  5785. sleep 60
  5786. server.endRound 0
  5787. sleep 60
  5788. server.endRound 1
  5789. sleep 60
  5790.  
  5791. main.playCommands Scripts/Debug/cycleMpLevels
  5792.   ‚­ $file £   name Scripts/Debug/cycleSpLevels payload ôCore.LogLevel FatalAssert
  5793.  
  5794. server.loadLevel Levels/SP_Prologue/SP_Prologue
  5795. sleep 60
  5796. server.restartLevel
  5797. sleep 240
  5798. client.restartFromLastCheckpoint
  5799. sleep 60
  5800.  
  5801. server.loadLevel Levels/SP_Shanghai/SP_Shanghai
  5802. sleep 60
  5803. server.restartLevel
  5804. sleep 180
  5805. client.restartFromLastCheckpoint
  5806. sleep 60
  5807.  
  5808. server.loadLevel Levels/SP_Naval/SP_Naval
  5809. sleep 60
  5810. server.restartLevel
  5811. sleep 180
  5812. client.restartFromLastCheckpoint
  5813. sleep 60
  5814.  
  5815. server.loadLevel Levels/SP_Airfield/SP_Airfield
  5816. sleep 60
  5817. server.restartLevel
  5818. sleep 180
  5819. client.restartFromLastCheckpoint
  5820. sleep 60
  5821.  
  5822. server.loadLevel Levels/SP_Prison/SP_Prison
  5823. sleep 60
  5824. server.restartLevel
  5825. sleep 180
  5826. client.restartFromLastCheckpoint
  5827. sleep 60
  5828.  
  5829. server.loadLevel Levels/SP_Journey/SP_Journey
  5830. sleep 60
  5831. server.restartLevel
  5832. sleep 180
  5833. client.restartFromLastCheckpoint
  5834. sleep 60
  5835.  
  5836. server.loadLevel Levels/SP_Dam/SP_Dam
  5837. sleep 60
  5838. server.restartLevel
  5839. sleep 180
  5840. client.restartFromLastCheckpoint
  5841. sleep 60
  5842.  
  5843. server.loadLevel Levels/SP_Suez/SP_Suez
  5844. sleep 60
  5845. server.restartLevel
  5846. sleep 180
  5847. client.restartFromLastCheckpoint
  5848. sleep 60
  5849.  
  5850. main.playCommands Scripts/Debug/cycleSpLevels  ‚ë $file á name 'Scripts/Debug/cycleSpLevelsViaMainMenu payload § Core.LogLevel FatalAssert
  5851.  
  5852. server.loadLevel Levels/SP_Prologue/SP_Prologue
  5853. sleep 60
  5854. server.restartLevel
  5855. sleep 240
  5856. client.restartFromLastCheckpoint
  5857. sleep 60
  5858. server.loadLevel Levels/FrontEnd/FrontEnd
  5859. sleep 30
  5860.  
  5861. server.loadLevel Levels/SP_Shanghai/SP_Shanghai
  5862. sleep 60
  5863. server.restartLevel
  5864. sleep 180
  5865. client.restartFromLastCheckpoint
  5866. sleep 60
  5867. server.loadLevel Levels/FrontEnd/FrontEnd
  5868. sleep 30
  5869.  
  5870. server.loadLevel Levels/SP_Naval/SP_Naval
  5871. sleep 60
  5872. server.restartLevel
  5873. sleep 180
  5874. client.restartFromLastCheckpoint
  5875. sleep 60
  5876. server.loadLevel Levels/FrontEnd/FrontEnd
  5877. sleep 30
  5878.  
  5879. server.loadLevel Levels/SP_Airfield/SP_Airfield
  5880. sleep 60
  5881. server.restartLevel
  5882. sleep 180
  5883. client.restartFromLastCheckpoint
  5884. sleep 60
  5885. server.loadLevel Levels/FrontEnd/FrontEnd
  5886. sleep 30
  5887.  
  5888. server.loadLevel Levels/SP_Prison/SP_Prison
  5889. sleep 60
  5890. server.restartLevel
  5891. sleep 180
  5892. client.restartFromLastCheckpoint
  5893. sleep 60
  5894. server.loadLevel Levels/FrontEnd/FrontEnd
  5895. sleep 30
  5896.  
  5897. server.loadLevel Levels/SP_Journey/SP_Journey
  5898. sleep 60
  5899. server.restartLevel
  5900. sleep 180
  5901. client.restartFromLastCheckpoint
  5902. sleep 60
  5903. server.loadLevel Levels/FrontEnd/FrontEnd
  5904. sleep 30
  5905.  
  5906. server.loadLevel Levels/SP_Dam/SP_Dam
  5907. sleep 60
  5908. server.restartLevel
  5909. sleep 180
  5910. client.restartFromLastCheckpoint
  5911. sleep 60
  5912. server.loadLevel Levels/FrontEnd/FrontEnd
  5913. sleep 30
  5914.  
  5915. server.loadLevel Levels/SP_Suez/SP_Suez
  5916. sleep 60
  5917. server.restartLevel
  5918. sleep 180
  5919. client.restartFromLastCheckpoint
  5920. sleep 60
  5921. server.loadLevel Levels/FrontEnd/FrontEnd
  5922. sleep 30
  5923.  
  5924. main.playCommands Scripts/Debug/cycleSpLevelsViaMainMenu  ‚—$file name Scripts/Debug/eorLevel payload dCore.LogLevel FatalAssert
  5925.  
  5926. server.endRound 1
  5927. sleep 90
  5928.  
  5929. main.playCommands Scripts/Debug/eorLevel  ‚¶$file ¬name Scripts/Debug/joinMultiplayer payload |client.joinMultiplayer 10.20.104.109
  5930. sleep 60
  5931. client.exitGame
  5932. sleep 30
  5933.  
  5934. main.playCommands Scripts/Debug/joinMultiplayer  ‚ž&$file ”&name Scripts/Debug/PseudoNames.txt payload ã%Golonka
  5935. HjorteN
  5936. RonjaRoevardotter
  5937. LillaMy
  5938. RauLHernandez
  5939. CherryStyle
  5940. HerrRandig
  5941. Evertzzon
  5942. Kardemumma911
  5943. GameGuy
  5944. RueDkatrine
  5945. candymoNster
  5946. jiggamah
  5947. SICKnezz
  5948. goLonka33
  5949. FarFaRkatt
  5950. MormorANKA
  5951. RalfEvertsson
  5952. Fyrtiofemm
  5953. PimPom
  5954. PomPim
  5955. SlemSlataN
  5956. Koettboulear
  5957. AddeRenalin
  5958. Mandariny25
  5959. SeanKudde
  5960. Commandersson
  5961. chorizoYTLE
  5962. kravmarktbanane
  5963. AwesumChoptur
  5964. raphaelloo
  5965. TraunMull
  5966. GolonkaGaMe
  5967. GolonkaTEAM
  5968. firradefiskeN
  5969. Binjancolada
  5970. kaffEfiltret99
  5971. Golonka
  5972. HjorteN
  5973. RonjaRoevardotter
  5974. LillaMy
  5975. RauLHernandez
  5976. CherryStyle
  5977. HerrRandig
  5978. Evertzzon
  5979. Kardemumma911
  5980. GameGuy
  5981. RueDkatrine
  5982. candymoNster
  5983. SICKnezz
  5984. goLonka30
  5985. FarFaRkatt
  5986. MormorAnkaz
  5987. RalfEvertsson
  5988. Fyrtiofemm
  5989. PomPim
  5990. SlemZLtN
  5991. Koettboul
  5992. AddeRenalinisH
  5993. Mandariny25
  5994. SeanKudde
  5995. BlasterMaster4
  5996. chorizohunter5
  5997. kravmarkt
  5998. TeleporteradTamburin
  5999. [BETA]Beauty Cockroach
  6000. [BETA]Dreaded Goldbeast
  6001. [BETA]Intense Grizzly
  6002. [BETA]Sugar Pet
  6003. [BETA]Pointless Lamb
  6004. [BETA]TapirTapir
  6005. [BETA]Screamy Moose
  6006. [BETA]Cheetah Ivory
  6007. [BETA]Skinny Doe
  6008. [BETA]Disco Warm Llama
  6009. [BETA]Tapir Stony
  6010. [BETA]Forgotten Hammer
  6011. [BETA]Mare Cute
  6012. [BETA]Reborn Chipmunk
  6013. [BETA]Swift Mandrill
  6014. [BETA]Drunken Mandrill
  6015. [BETA]Antelope Gold
  6016. [BETA]Screamy Snake
  6017. [BETA]Swift Honey
  6018. [BETA]El Baby
  6019. [BETA]Ox Old
  6020. [BETA]Der Girl
  6021. [BETA]Strong Fast Kitten
  6022. [BETA]Sleepy Tumbler
  6023. [BETA]Beau Hammer
  6024. [BETA]RangerRanger
  6025. [BETA]Color Prince
  6026. [BETA]Pointless Mutant
  6027. [BETA]Lefty Rabbit
  6028. [BETA]Fairy Moving
  6029. [BETA]Intense Fatty Iris
  6030. [BETA]Yellow Man
  6031. [BETA]Canary Disco
  6032. [BETA]Rotten Crocodile
  6033. [BETA]The Panda
  6034. [BETA]El Eagle
  6035. [BETA]Dog Rapid
  6036. [BETA]Chicken Knife
  6037. [BETA]Helpless Ranger
  6038. [BETA]Dusty Hare
  6039. [BETA]Small Pig
  6040. [BETA]Mule Solid
  6041. [BETA]Fox Left-handed
  6042. [BETA]Mini Dangerous Baby
  6043. [BETA]Beaver Solid
  6044. [BETA]OtterOtter
  6045. [BETA]Honey Rhino
  6046. [BETA]Professor Morbid
  6047. [BETA]Raw Toddler
  6048. [BETA]Tasty Airmen
  6049. [ZETA]Beau Scissor
  6050. [ZETA]Screaming Mutant
  6051. [ZETA]Young Elf
  6052. [ZETA]Gutsy Hyena
  6053. [ZETA]Meaty Buffalo
  6054. [ZETA]Rusty Trustee
  6055. [ZETA]The Star
  6056. [ZETA]Hidden Wriggler
  6057. [ZETA]Rebel Kid
  6058. [ZETA]Los Genius
  6059. [ZETA]Stormy Grizzly
  6060. [ZETA]ItchyCow
  6061. [ZETA]Sleepy King
  6062. [ZETA]Slimy Baroness
  6063. [ZETA]Fast Hammer
  6064. [ZETA]Little Mole
  6065. [ZETA]Hungry Koala
  6066. [ZETA]Lone Waterbuck
  6067. [ZETA]Forgotten Student
  6068. [ZETA]Swallow Maximum
  6069. [ZETA]El Devil
  6070. [ZETA]Los Pioneer
  6071. [ZETA]Polar-bear Pure
  6072. [ZETA]Eaglet Barbaric
  6073. [ZETA]Freaky Dreaded Iris
  6074. [ZETA]Small Rare Panther
  6075. [ZETA]Forsaken Prisoner
  6076. [ZETA]Smokey Swan
  6077. [ZETA]Bunny Reborn
  6078. [ZETA]Sugar Alligator
  6079. [ZETA]Beast Flower
  6080. [ZETA]Der Ocelot
  6081. [ZETA]Chaos Flipper
  6082. [ZETA]Orangutan Hearty
  6083. [ZETA]Moving Moose
  6084. [ZETA]Color Bat
  6085. [ZETA]Reborn Sugar
  6086. [ZETA]Unique Hound
  6087. [ZETA]Los Raccoon
  6088. [ZETA]Richy Tapir
  6089. [ZETA]Mysterious Lamb
  6090. [ZETA]Rocking Angry Hawk
  6091. [ZETA]Kitten Intense
  6092. [ZETA]Ibis Lone
  6093. [ZETA]Dog Rebel
  6094. [ZETA]Heavy Steel
  6095. [ZETA]Rotten Cockroach
  6096. [ZETA]Kit Rusty
  6097. [ZETA]Angry Birdie
  6098. [ZETA]Heavy Hippopotamus
  6099. [RHO]King Stoned
  6100. [RHO]The Darling
  6101. [RHO]Bitter Antelope
  6102. [RHO]Toad Tainted
  6103. [RHO]Gruesome Parrot
  6104. [RHO]Eternal Demon
  6105. [RHO]Mysterious Moose
  6106. [RHO]Hungry Lemur
  6107. [RHO]El Wolverine
  6108. [RHO]El Sheep
  6109. [RHO]Dromedary Beauty
  6110. [RHO]HammerHammer
  6111. [RHO]Gold Mustang
  6112. [RHO]Eternal Prisoner
  6113. [RHO]Bitter Walrus
  6114. [RHO]Sweet Jaguar
  6115. [RHO]Streaming Juggler
  6116. [RHO]Cute Pony
  6117. [RHO]Freaky Alpha Cat
  6118. [RHO]Buffalo Minimum
  6119. [RHO]Dingo Skilled
  6120. [RHO]Elastic Chimpanzee
  6121. [RHO]Swan Crunchy
  6122. [RHO]Wooden Dancer
  6123. [RHO]The Child
  6124. [RHO]Misty Pig
  6125. [RHO]Hawk Stormy
  6126. [RHO]Spider Mellow
  6127. [RHO]TapirTapir
  6128. [RHO]Darling Itchy
  6129. [RHO]Moron Richy
  6130. [RHO]Finch Rusty
  6131. [RHO]Alpha Beaver
  6132. [RHO]Duck Flower
  6133. [RHO]Nasty Tiger
  6134. [RHO]Ivory Titan
  6135. [RHO]Supersonic Hook
  6136. [RHO]Worthy Trooper
  6137. [RHO]Hilarious Hippo
  6138. [RHO]Lamb Heavy
  6139. [RHO]Gutsy Doggy
  6140. [RHO]El Yodelers
  6141. [RHO]Angry Ugly Knife
  6142. [RHO]Cute Duckling
  6143. [RHO]Los Dancer
  6144. [RHO]Los Flapper
  6145. [RHO]Stoned Fisherman
  6146. [RHO]Hawk Blue
  6147. [RHO]Pet Beast
  6148. [RHO]Helpless Baboon
  6149. [TAU]The Dummy
  6150. [TAU]Cruel Gladiator
  6151. [TAU]Skilled Dugong
  6152. [TAU]SnakeSnake
  6153. [TAU]Los Duck
  6154. [TAU]Jockey Dreaded
  6155. [TAU]Worthy Seal
  6156. [TAU]Needless Willy
  6157. [TAU]Doggy Sad Kiddie
  6158. [TAU]Skinny Sleepy Lion
  6159. [TAU]Brave Larva
  6160. [TAU]Dancing Dingo
  6161. [TAU]Richy Alligator
  6162. [TAU]Lovebird Scarlet
  6163. [TAU]Fox Pointless
  6164. [TAU]The Coyote
  6165. [TAU]Bat Dusty
  6166. [TAU]Solid Harmony
  6167. [TAU]Drunken Koala
  6168. [TAU]Willy Hurricane
  6169. [TAU]The Moose
  6170. [TAU]Maxi Steamy Hook
  6171. [TAU]Beauty Chick
  6172. [TAU]Sunny Lion
  6173. [TAU]Cult Laser
  6174. [TAU]Ivory Baby
  6175. [TAU]Moose Strong
  6176. [TAU]Lefty Moving Kitten
  6177. [TAU]Lucky Chipmunk
  6178. [TAU]Polar-bear Willy
  6179. [TAU]Strange Kit
  6180. [TAU]Der Cougar
  6181. [TAU]Giraffe Angry
  6182. [TAU]Rusty Froglet
  6183. [TAU]Professor Gruesome
  6184. [TAU]Brutal Duckling
  6185. [TAU]Star Itchy
  6186. [TAU]Maximum Chimpanzee
  6187. [TAU]Elastic Bear
  6188. [TAU]Jockey Eager
  6189. [TAU]Der Flapper
  6190. [TAU]Kit Small
  6191. [TAU]Slimy Fever
  6192. [TAU]El Wombat
  6193. [TAU]Brave Demon
  6194. [TAU]Old Opossum
  6195. [TAU]Mellow Orange Viper
  6196. [TAU]Der Wildcat
  6197. [TAU]FoxyTitan
  6198. [TAU]Cult Hidden Puma
  6199.  ‚¸$file ®name  Scripts/Debug/restartCheckpoint payload |Core.LogLevel FatalAssert
  6200.  
  6201. client.restartFromLastCheckpoint
  6202. sleep 30
  6203.  
  6204. main.playCommands Scripts/Debug/restartCheckpoint  ‚¡$file —name Scripts/Debug/restartLevel payload jCore.LogLevel FatalAssert
  6205.  
  6206. server.restartLevel
  6207. sleep 60
  6208.  
  6209. main.playCommands Scripts/Debug/restartLevel  ‚À$file ¶name ,Scripts/Debug/stressEnterAndDestroyVehicles payload ÷Core.LogLevel FatalAssert
  6210.  
  6211. server.spawnsoldier 0 1 0
  6212. server.spawnsoldier 0 1 0
  6213. server.spawnsoldier 0 2 0
  6214. server.spawnsoldier 0 2 0
  6215. server.spawnsoldier 0 2 0
  6216. sleep 1
  6217.  
  6218. server.playerEnterClosestVehicle 1 true
  6219. server.playerEnterClosestVehicle 2 true
  6220. server.playerEnterClosestVehicle 3 true
  6221. server.playerEnterClosestVehicle 4 true
  6222. server.playerEnterClosestVehicle 5 true
  6223. sleep 1
  6224.  
  6225. server.damageSoldier 1 2000 true
  6226. server.damageSoldier 2 2000 true
  6227. server.damageSoldier 3 2000 true
  6228. server.damageSoldier 4 2000 true
  6229. server.damageSoldier 5 2000 true
  6230. sleep 3
  6231.  
  6232. server.deletePlayer 1
  6233. server.deletePlayer 2
  6234. server.deletePlayer 3
  6235. server.deletePlayer 4
  6236. server.deletePlayer 5
  6237. sleep 2
  6238.  
  6239. main.playCommands Scripts/Debug/stressEnterAndDestroyVehicles  ‚ž3$file ”3name (Scripts/MicroscopeMemoryCategories.yaml payload Ù2%TAG ! tag:frostbite.net:
  6240. ---
  6241. 'Categorisations':
  6242.  - name: AllocsByAssetType
  6243.    rules:
  6244.    - category: AI
  6245.      matches:
  6246.      - assetType: AIEntryData
  6247.      - assetType: AIVehicleTypes
  6248.      - assetType: AIWeaponData
  6249.      - assetType: BFAIWeaponData
  6250.    - category: Ant
  6251.      matches:
  6252.      - assetType: AntAnimationSetAsset
  6253.      - assetType: AntPackageAsset
  6254.      - assetType: AntProjectAsset
  6255.      - assetType: MasterSkeletonAsset
  6256.      - assetType: SkeletonAsset
  6257.      - assetType: RagdollAsset
  6258.    - category: Audio
  6259.      matches:
  6260.      - assetType: AudioSystemAsset
  6261.      - assetType: ImpulseResponseAsset
  6262.      - assetType: MixerAsset
  6263.      - assetType: MixerSystemAsset
  6264.      - assetType: SoundPatchAsset
  6265.      - assetType: SoundPatchConfigurationAsset
  6266.      - assetType: SoundWaveAsset
  6267.      - assetType: VoiceOverLogicAsset
  6268.      - assetType: VoiceOverSystemAsset
  6269.      - assetType: SoundMasterPatchAsset
  6270.    - category: Decals
  6271.      matches:
  6272.      - assetType: DecalTemplateData
  6273.    - category: Effects
  6274.      matches:
  6275.      - assetType: EffectBlueprint
  6276.      - assetType: EmitterDocument
  6277.    - category: Enlighten
  6278.      matches:
  6279.      - assetType: EnlightenDataAsset
  6280.      - assetType: EnlightenShaderDatabaseAsset
  6281.      - assetType: StaticEnlightenData
  6282.    - category: GameplayData
  6283.      matches:
  6284.      - assetType: DataContainerAsset
  6285.      - assetType: GameDataContainerAsset
  6286.      - assetType: GunSwayModifierData
  6287.      - assetType: EntryInputActionMapsData
  6288.      - assetType: ProjectileBlueprint
  6289.      - assetType: ProfileOptionBool
  6290.      - assetType: ProfileOptionEnum
  6291.      - assetType: ProfileOptionFloat
  6292.      - assetType: ProfileOptionDataInt
  6293.      - assetType: ProfileOptionDataString
  6294.      - assetType: ProfileOptionAsset
  6295.      - assetType: ProfileOptionDataBool
  6296.      - assetType: ProfileOptionDataEnum
  6297.      - assetType: ProfileOptionDataFloat
  6298.    - category: LevelData
  6299.      matches:
  6300.      - assetType: SubWorldData
  6301.      - assetType: LevelData
  6302.      - assetType: SettingsBundleAsset
  6303.      - assetType: LevelDescriptionAsset
  6304.    - category: LevelLogic
  6305.      matches:
  6306.      - assetType: LogicPrefabBlueprint
  6307.    - category: Materials
  6308.      matches:
  6309.      - assetType: MaterialContainerAsset
  6310.      - assetType: MaterialGridData
  6311.    - category: Meshes
  6312.      matches:
  6313.      - assetType: CompositeMeshAsset
  6314.      - assetType: MeshLogGroup
  6315.      - assetType: MeshVariationDatabase
  6316.      - assetType: RigidMeshAsset
  6317.      - assetType: SkinnedMeshAsset
  6318.    - category: ObjectData
  6319.      matches:
  6320.      - assetType: ObjectBlueprint
  6321.      - assetType: ObjectVariation
  6322.      - assetType: PrefabBlueprint
  6323.      - assetType: SpatialPrefabBlueprint
  6324.      - assetType: MeshLodGroup
  6325.    - category: Persistence
  6326.      matches:
  6327.      - assetType: BasicDogTagData
  6328.      - assetType: PersistenceData
  6329.      - assetType: AdvancedDogTagData
  6330.      - assetType: AwardDataTree
  6331.      - assetType: BattlepackData
  6332.      - assetType: BattlepackAsset
  6333.      - assetType: BlazePresenceBackdenData
  6334.      - assetType: BlazeServerBackendData
  6335.      - assetType: CriteriaGateList
  6336.      - assetType: StatCategoriesWeaponTree
  6337.      - assetType: StatCategoriesWeaponAccessoryTree
  6338.      - assetType: PresenceRspServiceData
  6339.      - assetType: RankParamsAsset
  6340.      - assetType: PlayerTypeProfile
  6341.      - assetType: ScoringData
  6342.      - assetType: UnlockAsset
  6343.      - assetType: StaticUnlockList
  6344.      - assetType: StatCategoriesVehicleTree
  6345.      - assetType: RichPrecenceData
  6346.      - assetType: ValueUnlockAsset
  6347.      - assetType: RichPresenceData
  6348.      - assetType: EntitlementQuery
  6349.    - category: Physics
  6350.      matches:
  6351.      - assetType: CharacterPhysicsData
  6352.      - assetType: DestructionVolumeAsset
  6353.      - assetType: GroupPhysicsEntityAsset
  6354.      - assetType: HavokAsset
  6355.    - category: Shaders
  6356.      matches:
  6357.      - assetType: ShaderDatabaseAsset
  6358.      - assetType: ShaderGraph
  6359.      - assetType: ShaderProgramDatabaseAsset
  6360.    - category: SoldierData
  6361.      matches:
  6362.      - assetType: SoldierBlueprint
  6363.      - assetType: CharacterSocketListAsset
  6364.      - assetType: VeniceSoldierCustomizationAsset
  6365.    - category: TerrainData
  6366.      matches:
  6367.      - assetType: TerrainData
  6368.      - assetType: TerrainDecalsData
  6369.      - assetType: TerrainStreamingTreeAsset
  6370.      - assetType: WaterAsset
  6371.    - category: Textures
  6372.      matches:
  6373.      - assetType: TextureAsset
  6374.      - assetType: RenderTextureAsset
  6375.      - assetType: TextureArrayAsset
  6376.    - category: UI
  6377.      matches:
  6378.      - assetType: BFCrosshairTypeAsset
  6379.      - assetType: BFLockingTypeAsset
  6380.      - assetType: UIActionData
  6381.      - assetType: UIActionscriptLibraryAsset
  6382.      - assetType: UIAlerttagCompData
  6383.      - assetType: UIAnimatedTextureAsset
  6384.      - assetType: UIAsset
  6385.      - assetType: UIDeployScreenData
  6386.      - assetType: UIElementFillData
  6387.      - assetType: UIElementFontStyle
  6388.      - assetType: UIGraphAsset
  6389.      - assetType: UIPostProcessComponentData
  6390.      - assetType: UIPreRoundCompData
  6391.      - assetType: UIRenderCompData
  6392.      - assetType: UIScoreboardWidgetData
  6393.      - assetType: UITextDatabase
  6394.      - assetType: UIWidgetAsset
  6395.      - assetType: BFUICppScreenData
  6396.      - assetType: BFUIIMSettingsAsset
  6397.      - assetType: BFUIWorldIconBehavior
  6398.      - assetType: UICreditsAsset
  6399.      - assetType: UIScreenAsset
  6400.      - assetType: UIItemDescriptionAsset
  6401.      - assetType: UIHudScreenData
  6402.      - assetType: UIMinimapIconTextureAtlasAsset
  6403.      - assetType: UISoldierStatusWidgetData
  6404.      - assetType: UITeamCompData
  6405.      - assetType: UIScoreboardScreenData
  6406.      - assetType: UICapturepointtagCompData
  6407.      - assetType: UIJavelinIndicatorWidgetData
  6408.      - assetType: UICrosshairWidgetData
  6409.      - assetType: UIIMWidgetData
  6410.      - assetType: UITextureMappingAsset
  6411.      - assetType: UIFlowCppScreenData
  6412.      - assetType: UIElementGenericStyle
  6413.    - category: VehicleData
  6414.      matches:
  6415.      - assetType: VehicleBlueprint
  6416.      - assetType: VeniceVehicleCustomizationAsset
  6417.    - category: VisualEnvironment
  6418.      matches:
  6419.      - assetType: VisualEnvironmentBlueprint
  6420.    - category: WeaponData
  6421.      matches:
  6422.      - assetType: WeaponFiringDataAsset
  6423.      - assetType: SoldierWeaponBlueprint
  6424.      - assetType: SoldierWeaponUnlockAsset
  6425.      - assetType: VeniceSoldierWeaponCustomizationAsset
  6426.      - assetType: WeaponUnlockAsset  ‚¤7$file š7name $Scripts/PerfhudTimerCategories.yaml payload ã6%TAG ! tag:frostbite.net:
  6427. ---
  6428. # we associate budgets with timers distinct from including timers in categories, since a timer may appear in multiple categories.
  6429. processorTimers:
  6430.    - processor: GPU
  6431.      timers: # if a timer is not listed, a timerCategory which includes it will include it on all platforms, and it will have null budget.
  6432.        - accumShadow: {default: 2.0, xenon: 2.1}
  6433.        - finalPost: {default: 3.0}
  6434.        - fog: {default: 0.7}
  6435.        - spotlightTile: {default: 9.4} # all platforms, same budget. Good for declaring the timer before you know all the different budgets.
  6436.        - lightOutdoor: {win32: 4.0, xenon: 0.0, ps3: 3,5}
  6437.        - lightPoint: {win32: 1.0, xenon: 1.5}
  6438.        - lightCubemap: {default: 1.0}
  6439.        - lightSpot: {win32: 0.7, ps3: 0.0}
  6440.        - spotShadow: {default: 0.5, ps3: 0.0}
  6441.        - lightTile: {win32: 7.0,xenon: 5.0, default: 4.4}
  6442.        - mainGBuffer: {win32: 8.5, xenon: 8.0, ps3: 11.0}
  6443.        - mainGBufferSimple: {default: 3}
  6444.        - shadow: {win32: 1.8, xenon: 2.0, ps3: 2.0}
  6445.        - dynamicEnvMap: {win32: 1.2, xenon: 0.0, ps3: 0.0}
  6446.        - uiUpdate: {default: 0.7}
  6447.        - uiPostProcess: {default: 0.5}
  6448.        - ui: {default: 2.5}
  6449.        - worldView: {win32: 14, xenon: 28, ps3: 28, gen4a: 14, gen4b 14}
  6450.    - processor: CPU
  6451.      timers:
  6452.        - antAnimUpdate: {win32: 7.0, ps3: 10.0, xenon: 10.0}
  6453.        - entityUpCharPost: {default: 7.0}
  6454.        - aiUpdate: {default: 2.0}
  6455.        - emitterBuild: {default: 2.0}
  6456.        - emitterDraw: {default: 2.0}
  6457.        - clientUpdateGame: {default: 10.0, xenon: 20.0, ps3: 20.0}
  6458.    - processor: SPU
  6459.      timers:
  6460.        - lightTile: {default: 35}
  6461. timerCategories:
  6462.    #GPU categories.
  6463.    - name: Level
  6464.      budget: {default: 13.0, xenon: 8.5, win32: 6.0}
  6465.      processor: GPU
  6466.      timers:
  6467.        - mainGBuffer
  6468.        - mainGBufferDecal
  6469.        - mainGBufferSimpl
  6470.        - mainOpaqueEmissive
  6471.        - mainTransparent
  6472.        - terrainMsTile
  6473.        - terrainVtCompr
  6474.        - terrainVtTile
  6475.        - waterDrawUpd
  6476.    - name: Lighting and VE
  6477.      budget: {win32: 3, ps3: 5, xenon: 5, gen4a: 3.0, gen4b: 3.0}
  6478.      processor: GPU    # only GPU timers will match names in this list. The category is invalid without a processor specifier.
  6479.      timers:
  6480.        - fog
  6481.        - lightCubemap
  6482.        - lightPoint
  6483.        - lightSpot
  6484.        - lightTile
  6485.        - lightCull
  6486.        - lightOutdoor
  6487.        - sky
  6488.        - copyZ
  6489.        - waitSpuLight
  6490.    - name: Shadows
  6491.      budget: {default: 3.8}
  6492.      processor: GPU
  6493.      timers:  
  6494.        - accumShadow
  6495.        - shadow
  6496.        - spotShadow
  6497.    - name: FX GPU
  6498.      budget: {win32: 3.0, ps3: 2.0, xenon: 2.0, gen4a: 1.0, gen4b: 1.0}
  6499.      processor: GPU    # only GPU timers will match names in this list. The category is invalid without a processor specifier.
  6500.      timers:  
  6501.        - halfResTransp
  6502.  
  6503.    - name: PostProcess
  6504.      budget: {win32: 5.9, ps3: 4.1, xenon: 5.0, gen4a: 7.0, gen4b: 7.0}
  6505.      processor: GPU    # only GPU timers will match names in this list. The category is invalid without a processor specifier.
  6506.      timers:  
  6507.        - ssaoBlurH
  6508.        - ssaoBlurV
  6509.        - ssaoCompute
  6510.        - mainDistort
  6511.        - motionBlurDerive
  6512.        - motionBlurFilter
  6513.        - finalPost
  6514.        - fxaa
  6515.    - name: UI
  6516.      budget: {win32: 0.5, ps3: 1.0, xenon: 0.7, gen4a: 0.5, gen4b: 0.5}
  6517.      processor: GPU    # only GPU timers will match names in this list. The category is invalid without a processor specifier.
  6518.      timers:  
  6519.        - ui
  6520.        - uiPostProcess
  6521.    - name: System Costs
  6522.      budget: {win32: 4.3, ps3: 1.5, xenon: 3.7, gen4a: 6.0, gen4b: 6.0}
  6523.      processor: GPU    # only GPU timers will match names in this list. The category is invalid without a processor specifier.
  6524.      timers:  
  6525.        - clear
  6526.        - debug
  6527.        - debugRender
  6528.        - downsampleAverage
  6529.        - downsampleZ
  6530.        - mainGBufferFixup
  6531.        - mainGBufferResol
  6532.        - planarReflection
  6533.        - mainZPass
  6534.        - restoreZ
  6535.        - worldOccQueries
  6536.    - name: Total
  6537.      budget: {win32: 16.0, ps3: 33.0, xenon: 33.0, gen4a: 16.0, gen4b: 16.0}
  6538.      processor: GPU
  6539.      timers:
  6540.         - worldView  
  6541.  
  6542.    # CPU categories
  6543.  
  6544.    - name: Gameplay
  6545.      budget: {default: 6.0, xenon: 12.0, ps3: 12.0}
  6546.      processor: CPU
  6547.      timers:
  6548.        - onlineMgrPre
  6549.        - interpolationMgr
  6550.        - preSimPrepareJobs
  6551.        - preSimJobs
  6552.        - preSimFinalizeJobs
  6553.        - postSimPrepareJobs
  6554.        - postSimJobs
  6555.        - postSimFinalizeJobs
  6556.        - clientLvlPostFrame
  6557.        - onlineMgrPost
  6558.        - preSimServPrepareJobs
  6559.        - preSimServJobs
  6560.        - preSimServFinalizeJobs
  6561.        - postSimServPrepareJobs
  6562.        - postSimServJobs
  6563.        - postSimServFinalizeJobs
  6564.  
  6565.    - name: ANT
  6566.      budget: {default: 8.0, ps3: 10, xenon: 10}
  6567.      processor: CPU
  6568.      timers:
  6569.        - antAnimUpdate
  6570.  
  6571.    - name: Audio
  6572.      budget: {default: 5.0}
  6573.      processor: CPU
  6574.      timers:
  6575.        - audioUpdate
  6576.  
  6577.    - name: AI
  6578.      budget: {default: 2}
  6579.      processor: CPU
  6580.      timers:
  6581.        - aiUpdate
  6582.  
  6583.    - name: Physics
  6584.      budget: {default: 5.0}
  6585.      processor: CPU
  6586.      timers:
  6587.        - clientPhysUpdate
  6588.        - serverPhysUpdate
  6589.  
  6590.    - name: FX
  6591.      budget: {default: 2.5}
  6592.      processor: CPU
  6593.      timers:
  6594.        - emitterBuild
  6595.        - emitterDraw
  6596.        - emitterMeshBuil
  6597.        - emitterMeshDraw
  6598.        - emitterPostChil
  6599.        - emitterPostPare
  6600.        - emitterMgrUpd
  6601.        - emitterCollisio
  6602.        - effectManCmd
  6603.        - effectMgrWrk
  6604.        - effectGrp
  6605.        - effectSync
  6606.        - effectManFlush
  6607.        - forceManager
  6608.  
  6609.    - name: UI
  6610.      budget: {win32: 3, ps3: 3, xenon: 3, gen4a: 2, gen4b: 2}
  6611.      processor: CPU
  6612.      timers:  
  6613.        - uiUpdate
  6614.        - uiIconScanJob
  6615.        - uiRender
  6616.        - uiDispatchRenderCmds
  6617.  
  6618.    # SPU categories
  6619.    - name: SPU Lights
  6620.      budget: {default: 0, ps3: 35}
  6621.      processor: SPU
  6622.      timers:
  6623.        - lightTile
  6624. #define named sets of categories. The set can be enabled/disabled (displayed/hidden) via console commands.
  6625. TimerCategorySets:
  6626.    - name: FX
  6627.      categories:
  6628.        - FX CPU
  6629.        - FX GPU
  6630.    - name: LevelArtist
  6631.      categories:
  6632.        - Level
  6633.        - Lighting and VE
  6634.        - SPU Lights
  6635.        - Shadows
  6636.        - FX GPU
  6637.        - PostProcess
  6638.        - Total
  6639.    - name: Scripter
  6640.      categories:
  6641.        - ANT
  6642.        - AI
  6643.        - Physics
  6644.        - Raycasts
  6645.        - Total
  6646.    - name: Destruction
  6647.      categories:
  6648.        - Raycast
  6649.        - Physics
  6650.        - Level
  6651.        - FX CPU
  6652.        - FX GPU
  6653.         - Total
  6654.    - name: LightingArtist
  6655.      categories:
  6656.        - Lighting and VE
  6657.        - Shadows
  6658.        - FX GPU
  6659.        - Total
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement