• Competitor rules

    Please remember that any mention of competitors, hinting at competitors or offering to provide details of competitors will result in an account suspension. The full rules can be found under the 'Terms and Rules' link in the bottom right corner of your screen. Just don't mention competitors in any way, shape or form and you'll be OK.

Deckify: a tool for swapping out PC game video configs

Associate
Joined
15 Sep 2009
Posts
1,414
Location
London
Deckify is a little script-based tool that allows you to swap video configs for your games. I like to stream games to my Steam Deck as well as playing them on my 4k TV and my 1440p monitor - changing settings every time I wanted to use a different screen was a hassle - hence, Deckify!

Deckify.png


Since there's some interest, here's how to get Deckify up 'n running:

1) Download WizApp from here.

2) Download 7-Zip Extra for Windows from here.

3) Download the default configs and artwork (Deckify.zip) from here.

4) Extract Deckify.zip wherever you like - you should have a folder called 'Deckify' and inside should be another folder called 'myfiles' - inside that is Configs.zip and some artwork.

5) Extract wizapp161.zip into 'myfiles/wizapp161' and copy WizApp.exe to 'myfiles'.

6) Extract 7za.exe from 7z-extra.7z to 'myfiles'.

'Deckify/myfiles' should now look like this:

myfiles.png


7) Copy the batch script code below and paste it into a 'Deckify.bat' text document - save/copy that to the 'Deckify' folder (not 'myfiles').

Code:
@ECHO OFF
TITLE Deckify v1.1
COLOR 1F
ECHO.
ECHO Deckify v1.1 Console Output
ECHO ------- ---- ------- ------
ECHO.


REM *** Pull Steam path from Registry ***
FOR /F "usebackq tokens=2,* skip=2" %%L IN (
    `reg query "HKCU\Software\Valve\Steam" /v SteamPath`
) DO SET "steampath=%%M"
SET "steampath=%steampath:/=\%"


REM *** Supported Games (9 entries max) ***
SET "game01=The Ascent"
SET "path01=%localappdata%\TheAscent\Saved\Config\WindowsNoEditor"
SET "file01=\GameUserSettings"
SET "fext01=.ini"

SET "game02=Cyberpunk 2077"
SET "path02=%localappdata%\CD Projekt Red\Cyberpunk 2077"
SET "file02=\UserSettings"
SET "fext02=.json"

SET "game03=Days Gone"
SET "path03=%localappdata%\BendGame\Saved\Config\WindowsNoEditor"
SET "file03=\GameUserSettings"
SET "fext03=.ini"

SET "game04=Doom Eternal"
SET "path04=%homedrive%%homepath%\Saved Games\id Software\DOOMEternal\base"
SET "file04=\DOOMEternalConfig"
SET "fext04=.local"

SET "game05=Dying Light 2"
SET "path05=%homedrive%%homepath%\Documents\dying light 2\out\settings"
SET "file05=\video"
SET "fext05=.scr"

SET "game06=Elden Ring"
SET "path06=%appdata%\EldenRing"
SET "file06=\GraphicsConfig"
SET "fext06=.xml"

SET "game07=Marvel's Spider-Man Remastered"
SET "path07=HKEY_CURRENT_USER\Software\Insomniac Games\Marvel's Spider-Man Remastered"
SET "file07=\Graphics"
SET "fext07=.reg"

SET "game08=Resident Evil Village"
SET "path08=%steampath%\steamapps\common\Resident Evil Village BIOHAZARD VILLAGE"
SET "file08=\config"
SET "fext08=.ini"

SET "game09=Star Wars Squadrons"
SET "path09=%homedrive%%homepath%\Documents\STAR WARS Squadrons Steam\settings"
SET "file09=\ProfileOptions_profile"
SET "fext09="

REM SET "game00=Forza Horizon 5"
REM SET "path00=%localappdata%\ForzaHorizon5\User_SteamLocalStorageDirectory\ConnectedStorage\ForzaUserConfigSelections"
REM SET "file00=\UserConfigSelections"
REM SET "fext00="


REM *** Set WizApp Variables ***
IF NOT EXIST "%myfiles%" (
IF EXIST "%~dp0myfiles" SET "myfiles=%~dp0myfiles"
)
SET "wabat=%myfiles%\wabat.bat"
IF EXIST "%wabat%" DEL /f /q "%wabat%"
"%myfiles%\7za.exe" x -aoa "%myfiles%\Configs.zip" -o"%myfiles%\Configs\" >nul
SET watitle=Deckify
SET wasig=Steam Deckify 1.1.0.0
SET "waico=%myfiles%\Deck_Logo.ico"


REM *** WizApp Start Page ***
:STARTPAGE
SET gamevar=game0
SET pathvar=path0
SET filevar=file0
SET fextvar=fext0
SET "wabmp=%myfiles%\Deck_Logo.bmp"

SET waoutnum=0
SET wainput= Deckify all supported games; ^&%game01%; ^&%game02%;^
 ^&%game03%; ^&%game04%; ^&%game05%; ^&%game06%; ^&%game07%; ^&%game08%; ^&%game09%
SET watext=Deckify allows you to quickly swap out PC video configs (2160 UHD/1440 QHD/1280x800 for Steam Deck).
SET watext2=~~Deckify is built using The Wizard's Apprentice by~Dion Nicolaas
SET watext3= (wizapp.sourceforge.net) and uses~7za.exe by Igor Pavlov (www.7-zip.org).
SET watext4=~~Choose a game to Deckify:

START /w "" "%myfiles%\wizapp" NOB RB
IF errorlevel 2 GOTO :FINISH
CALL "%wabat%"
IF "%waoutnum%"=="0" GOTO :CONFIGTYPE
CALL SET gamevar=%%%gamevar%%waoutnum%%%
CALL SET pathvar=%%%pathvar%%waoutnum%%%
CALL SET filevar=%%%filevar%%waoutnum%%%
CALL SET fextvar=%%%fextvar%%waoutnum%%%


REM *** Choose Config Type ***
:CONFIGTYPE
SET waoutnum=0
SET "wabmp=%myfiles%\Deck_Question.bmp"
SET watext4=~~Choose a video config for your games:
SET "wainput= Install UHD 3840 x 2160 config; Install QHD 2560 x 1440 config; Install Steam Deck config"

IF NOT "%gamevar%"=="game0" (
SET watext4=~~Choose a video config for %gamevar%:
IF EXIST "%myfiles%\Configs\%gamevar%\2160UHD*" (
    SET "wainput= Install UHD 3840 x 2160 config"
    IF EXIST "%myfiles%\Configs\%gamevar%\steamdeck*" SET "wainput= Install UHD 3840 x 2160 config; Install Steam Deck config"
    IF EXIST "%myfiles%\Configs\%gamevar%\1440QHD*" (
        SET "wainput= Install UHD 3840 x 2160 config; Install QHD 2560 x 1440 config"
        IF EXIST "%myfiles%\Configs\%gamevar%\steamdeck*" SET "wainput= Install UHD 3840 x 2160 config; Install QHD 2560 x 1440 config; Install Steam Deck config" )
) ELSE (
    IF EXIST "%myfiles%\Configs\%gamevar%\steamdeck*" SET "wainput= Install Steam Deck config"
    IF EXIST "%myfiles%\Configs\%gamevar%\1440QHD*" (
        SET "wainput= Install QHD 2560 x 1440 config"
        IF EXIST "%myfiles%\Configs\%gamevar%\steamdeck*" SET "wainput= Install QHD 2560 x 1440 config; Install Steam Deck config" )
)

IF NOT EXIST "%myfiles%\Configs\%gamevar%\2160UHD*" (
    IF NOT EXIST "%myfiles%\Configs\%gamevar%\1440QHD*" (
        IF NOT EXIST "%myfiles%\Configs\%gamevar%\steamdeck*" (
            SET "wabmp=%myfiles%\Deck_Stop.bmp"
            SET watext4=~~No configs found for %gamevar%!~Click 'Finish' to quit or 'Back' to start over.
            START /w "" "%myfiles%\wizapp" FINISH NOCANCEL TB
            IF errorlevel 1 GOTO :STARTPAGE
            IF errorlevel 0 GOTO :FINISH
))))

START /w "" "%myfiles%\wizapp" RB
IF errorlevel 2 GOTO :FINISH
IF errorlevel 1 GOTO :STARTPAGE
CALL "%wabat%"

SET "confvar=2160UHD"
IF %waoutnum%==2 SET "confvar=steamdeck"
IF %waoutnum%==0 (
    IF "%wainput%"==" Install QHD 2560 x 1440 config" SET "confvar=1440QHD"
    IF "%wainput%"==" Install Steam Deck config" SET "confvar=steamdeck"
    IF "%wainput%"==" Install QHD 2560 x 1440 config; Install Steam Deck config" SET "confvar=1440QHD"
)
IF %waoutnum%==1 (
    SET "confvar=1440QHD"
    IF "%wainput%"==" Install QHD 2560 x 1440 config; Install Steam Deck config" SET "confvar=steamdeck"
)


REM *** Setup Loop/Process Configs ***
SET count=1
SET "wabmp=%myfiles%\Deck_Info.bmp"
SET watext4=~~Deckifying - please wait...
START /w "" "%myfiles%\wizapp" NOB NOCANCEL PB OPEN

IF NOT "%gamevar%"=="game0" (
    IF "%fextvar%"==".reg" (
        IF EXIST "%myfiles%\Configs\%gamevar%\%confvar%%fextvar%" (
        REG import "%myfiles%\Configs\%gamevar%\%confvar%%fextvar%"
    )) ELSE (
        IF EXIST "%myfiles%\Configs\%gamevar%\%confvar%%fextvar%" (
        IF EXIST "%pathvar%" (IF EXIST "%pathvar%%filevar%%fextvar%" DEL /f /q "%pathvar%%filevar%%fextvar%")
        COPY /v "%myfiles%\Configs\%gamevar%\%confvar%%fextvar%" "%pathvar%%filevar%%fextvar%"
))
START /w "" "%myfiles%\wizapp" NOB NOCANCEL PB UPDATE 100
)
IF "%gamevar%"=="game0" (
FOR /l %%G IN (1,1,9) DO (CALL :GAMELOOP "%%G")
)

TIMEOUT /t 1 /NOBREAK >nul
SET "wabmp=%myfiles%\Deck_Check.bmp"
START /w "" "%myfiles%\wizapp" NOB NOCANCEL PB CLOSE
SET watext4=~~Done! Click 'Finish' to quit or 'Back' to start over.
START /w "" "%myfiles%\wizapp" FINISH NOCANCEL TB
IF errorlevel 1 GOTO :STARTPAGE


:FINISH
IF EXIST "%myfiles%\Configs" RMDIR /s /q "%myfiles%\Configs"
IF EXIST "%wabat%" DEL /f /q "%wabat%"
EXIT


:GAMELOOP
CALL SET gamevar=%%%gamevar%%count%%%
CALL SET pathvar=%%%pathvar%%count%%%
CALL SET filevar=%%%filevar%%count%%%
CALL SET fextvar=%%%fextvar%%count%%%

IF NOT "%pathvar%"=="" (
    IF "%fextvar%"==".reg" (
        IF EXIST "%myfiles%\Configs\%gamevar%\%confvar%%fextvar%" (
        REG import "%myfiles%\Configs\%gamevar%\%confvar%%fextvar%"
    )) ELSE (
        IF EXIST "%myfiles%\Configs\%gamevar%\%confvar%%fextvar%" (
        IF EXIST "%pathvar%" (IF EXIST "%pathvar%%filevar%%fextvar%" DEL /f /q "%pathvar%%filevar%%fextvar%")
        COPY /v "%myfiles%\Configs\%gamevar%\%confvar%%fextvar%" "%pathvar%%filevar%%fextvar%"
)))

SET gamevar=game0
SET pathvar=path0
SET filevar=file0
SET fextvar=fext0
SET wizmult=12
SET /a wizcount+=%wizmult%
IF "%wizcount%"=="96" SET wizcount=100
START /w "" "%myfiles%\wizapp" NOB NOCANCEL PB UPDATE %wizcount%
SET /a count+=1
EXIT /b

Double-click on the batch script - if you've done everything correctly you should see the Deckify app shown at the top of this post (and a console output window) - congrats! Deckify lives! Now click on 'Cancel' to quit - we're not done yet!
 
8) Take a look inside that Configs.zip - you'll see a bunch of folders with config files in them labeled '1440QHD.xxx' '2160UHD.xxx' and 'steamdeck.xxx' - Deckify doesn't know or care what's in those configs, but they have to be named this way so the script can find them.

If you wanted to replace the configs (which you should, as these were made for my gaming setup) - run your chosen game, set it up how you want then overwrite that config in the appropriate folder in Configs.zip (example: 'Cyberpunk 2077/2160UHD.json') - the file extension is important too - don't forget it!

If a config is missing (say, 1440QHD.xxx) Deckify won't offer it as an option when you select that specific game - if you're Deckifying all your games at a specific resolution, that game will be skipped and the config for it will be left untouched.

IMPORTANT: some games (Spider-Man Remastered is the only one I've found so far) might store their video configs as Windows Registry entries. If Deckify finds a file in Configs.zip that ends with .reg it'll attempt to import it into the Registry - bad things could potentially happen if the config file isn't actually a registry entry. If you encounter a game config that uses .reg as its file extension DON'T add it to Configs.zip and let me know in the comments below.

9)
What if you don't know where to find your configs? PCGamingWiki is pretty helpful here - for example, here's a link to their entry on Cyberpunk 2077.

Example:
Example.png


10) What if you want to change the list of games? Now you'll have to get your hands dirty - near the top of the batch script there's a section marked 'Supported Games (9 entries max)' - this is where you enter the default paths where a game stores its configs. The entry for Cyberpunk 2077 looks like this:

Code:
SET "game02=Cyberpunk 2077"
SET "path02=%localappdata%\CD Projekt Red\Cyberpunk 2077"
SET "file02=\UserSettings"
SET "fext02=.json"

"gameXX=" is the folder in myfiles/Configs.zip - the other entries (when combined) are the complete path to, and the name of the config file for that specific game. The %localappdata% is Windows' shortcut to C:\Users\Your_User_Name\AppData\Local - I used it to keep the script as PC-agnostic as possible but you can use full paths if you prefer (so long as they're correct). Syntax is everything here - note that "pathXX=" must end with a folder, "fileXX=" must begin with a \ and "fextXX=" with a . (assuming the file has an extension - if not just leave fextXX blank: "fext09=").

11) What if you want to add more than 9 games? Well, it's possible but WizApp (the tool creating the UI) only supports 10 entries (including 'all games') so it'd require a rethink. I just leave the configs for games I'm not currently playing in Configs.zip and REM out their paths in the batch script (see the Forza Horizon entry). If you think you can improve on what I've done (very likely) then by all means make a better Deckify - but please share any changes or improvements you make in this thread :)

If anyone has any questions about how to use or add games to Deckify, post them below and I'll do my best to answer them.
 
Guide posted above!

Here's a demo video showing how to add games to Deckify (silent apart from the game audio):


Feel free to ask questions!
 
Back
Top Bottom