Parâmetros de inicialização úteis para o Proton da Steam (Steam Play) - Diolinux - O modo Linux e Open Source de ver o Mundo

Responsive Ad Slot

Parâmetros de inicialização úteis para o Proton da Steam (Steam Play)

Aprenda a utilizar parâmetros do Steam Play (Pronton) para inicializar certos jogos de Windows no Linux

quarta-feira, 28 de novembro de 2018

/ por Dionatan Simioni
O novo Steam Play, que trouxe o projeto Proton, já mudou drasticamente o cenário de jogos para Linux, fazendo com que alguns milhares de novos títulos funcionassem, entretanto, a compatibilidade perfeita ainda deve levar algum tempo para acontecer, o que não quer dizer que você não possa pegar alguns atalhos para rodar os seus jogos.

Steam Play comomand Startup






A ideia de funcionamento do Steam Play com o Proton é simples: Ao clicar em um game que seria, teoricamente, apenas para Windows, o jogo abrirá no Linux normalmente permitindo que você jogue como faria na plataforma da Microsoft. É claro que isso é uma "super simplificação" do projeto, mas a verdade é que muitos jogos já se comportam exatamente dessa forma, mesmo os fora da Whitelist de compatibilidade da Valve.

A própria comunidade vem testando uma série de jogos e postando os resultados obtidos, você pode conferir o estado  de compatibilidade atual do jogo que você gostaria de jogar consultando este site.

Outros games funcionam também com o "minor tweaking", ou seja, com pequenos ajustes. O projeto Proton está disponível no GitHub e possui uma documentação muito rica, onde existe várias dicas interessantes que você pode usar nos games para fazer com que eles funcionem de forma adequada.

Para tirar provento do material que estamos compartilhando aqui, você precisa estar com o SteamPlay/Proton ativado na sua Steam, caso você não saiba como funciona, clique aqui para entender melhor.

Parâmetros na inicialização


O Steam sempre suportou pequenos ajustes como esses em grande parte dos jogos, inclusive os de Windows, existem vários fóruns de jogos para computador que permitem que você consiga certos comportamentos nos seus games através disso, como fazê-los rodar em tela cheia, modo janela, usar uma API específica, etc. No caso do Steam Play, temos algumas opções que forçam o comportamento do Proton, essas opções podem fazer com que um jogo rode ou não, ou podem otimizar o desempenho em alguns casos.

Como muita gente ficou com dúvida, eu resolvi criar esse material guia completo explicando para servir como referência, assim você pode fazer experimentações antes de reportar qualquer game lá no ProtonDB.

Como usar os parâmetros?


De nada adianta você saber quais são os parâmetros se você não souber onde aplicá-los, certo? Para adicionar um parâmetro de inicialização a qualquer game da Steam, basta clicar com o botão direito do mouse sobre ele na sua biblioteca de jogos e clicar na opção "Propriedades" ou "Properties", caso esteja em Inglês:

Propriedades de um jogo na Steam

Ao fazer isso você abrirá um painel muito útil que praticamente todo jogo da Steam possui, onde você pode fazer uma série de manutenções no jogo, como navegar pelos arquivos do game, verificar a integridade do mesmo para saber se nada está corrompido, acessar versões Beta, mudar o idioma de um jogo, etc.

Uma das opções é a "Set Launch Options..." ou "Definir opções de inicialização...", ao clicar neste botão uma nova janela (menor) vai se abrir permitindo que você coloque os parâmetros.


Como você pode ver pela imagem, é realmente muito simples. Os parâmetros que podem ser usados ali variam de jogo para jogo, porém, os parâmetros do Proton funcionam para qualquer jogo que rode no Linux através do Steam Play.

Uma vez adicionado o parâmetro, basta clicar no botão "OK", fechar a janela e iniciar o jogo normalmente pelo cliente Steam, clicando em "Jogar" ou "Play".

Parâmetros do Proton (Steam Play)


Para entender melhor como o Proton funciona, você pode conferir o vídeo de apresentação que nós fizemos no canal, prepare um bom café, pois se trata de um vídeo longo, mas é provavelmente um dos mais completos que você verá.


Você pode usar parâmetros do Proton para forçar os jogos a usarem uma API ou outra, a converterem os dados do DX9, DX11 ou 12 para o Vulkan ou para o OpenGL e uma série de outras coisas, eu vou  fazer uma lista para você logo mais.

Antes entendamos o contexto da sintaxe do parâmetro:
"PROTON_VARIABLE=1 %command%
As palavras "PROTON_VARIABLE" simplesmente demonstram qual variável você estará alterando, já o valor "=1" indica que a variável está ativa, se você colocar "=0" seria o mesmo que "desligado" ou seja, na prática o efeito seria o mesmo de você não adicionar a variável. A sentença "%command%" basicamente é uma variável que indica o comando desencadeado pelo botão "play" da Steam, ou seja, o executável do jogo ou um launcher, como alguns games usam.

Em outras palavras palavras, é como se você estivesse dizendo "Proton, use (ou não) 'esse recurso' para executar tal jogo". Simples assim.

Na prática os parâmetros são estes logo abaixo, sendo que podem ser adicionados alguns novos no futuro, os padrões atuais são:

1 -  Faça com que o Proton use o OpenGL no lugar no Vulkan para o DirectX 10 e 11

PROTON_USE_WINED3D=1 %command%

2 - Faça o Proton desabilitar o DirectX 11 e rodar em DirectX 9, o que pode ser usado para jogos que possuem suporte à versão antiga do DX da Microsoft e rodarão melhor dessa forma. Alguns jogos mais antigos funcionam melhor dessa forma.

PROTON_NO_D3D11=1 %command%

3 - Você pode ler mais sobre o recurso ESYNC do Wine aqui, este recurso pode ser útil para rodar games que sejam CPU-Bound e exijam mais deste componente do que geralmente acontece, como o game da Rockstar Games, GTA V. Ativar ou desativar essa função em muitos casos não fará muita diferença, mas em outros pode trazer mudanças drásticas.

PROTON_NO_ESYNC=1 %command%

Estes são os parâmetros principais do Proton e são os que mais afetam os jogos, porém, existem outros que podem ser úteis para debugar um jogo ou avaliar a performance do mesmo. Por exemplo, se você quiser ver a taxa de FPS, Frame Times, Versão do Vulkan, driver e a sua placa de vídeo e outros pormenores na tela, basta adicionar esse parâmetro:

DXVK_HUD=devinfo,fps,frametimes %command% 

Claro que você pode remover qualquer uma das palavras para mostrar somente o que você quiser, por exemplo, se você só quiser ver os FPS, basta deixar apenas a palavra "fps" depois de "DXVK_HUD=" e antes de "%command%", o mesmo vale para as demais opções.

Essa função ativada te trará, nos jogos que suportam a função, uma tela como essa do Pro Evolution Soccer 2019, que está rodando no Linux Mint no exemplo:

PES 2019 no Linux

Observe em ambas as imagens o canto superior esquerdo.

PES 2019 no Linux

Existem alguns parâmetros voltados exclusivamente para o Debug, você pode saber mais aqui.

Indo além do óbvio (avançado)


Não podemos esquecer que esses softwares são Open Source, então, você pode alterar o comportamento padrão deles, por conta e risco, é claro. Mas por exemplo, você pode adicionar algum componente faltante em um jogo através do Winetricks.

Exemplo: O desenvolvedor fez o jogo para Windows considerando que certas ferramentas intrínsecas do sistema da Microsoft já estejam instaladas, como o Net Framework 4.5. Geralmente os games da Steam instalam suas próprias dependências (no Linux e no Windows) na primeira vez que o jogo é executado, mas se o desenvolvedor já estava contando com esse componente direto do sistema operacional e não adicionou a função de instalá-lo na primeira vez que o jogo é executado, em se tratando do Proton, isso pode significar um problema, afinal o game precisa de um componente que pode não estar instalado.

Dessa forma você pode usar o Winetricks, um utilitário muito popular para manipulação do Wine para instalar componentes extras para o jogo.

O primeiro passo é ter certos pacotes instalados, para isso rode o comando (Ubuntu, Linux Mint e derivados):
sudo apt install wine64 wine32-preloader winetricks -y
Com isso você pode manipular o prefixo do jogo dentro do Proton, por exemplo, esse comando permite que você instale o DotNet 4.5 no jogo "Yu-Gi-Oh Duel Links":
WINEPREFIX=/home/$USER/.steam/steam/steamapps/compatdata/601510/pfx winetricks dotnet45 
Destacados em amarelo estão alguns itens importantes do comando. O primeiro é número da aplicação. 

Navegue até o diretório "/home/$USER/.steam/steam/steamapps/compatdata/" e você verá uma série de pastas com números que parecem ser aleatórios, mas na verdade representam o ID do jogo dentro da Steam.

* Essas pastas com números só aparecerão se você possuir jogos instalados via Proton, os jogos nativos ficam em outro diretório.

Para descobrir qual jogo corresponde a qual pasta você pode explorar os arquivos dentro do prefixo, onde você provavelmente encontrará os executáveis, mas existe uma forma mais simples de fazer isso, você pode usar o ProtonDB e pesquisar pela numeração, o site vai te trazer o jogo em questão, como no exemplo do game Warframe:

Pesquisando de ID do jogo

Outra forma é usar o próprio site da Steam. Através de um navegador use a URL https://store.steampowered.com/app/601510, onde o número em amarelo é número do jogo (ou nome da pasta do prefixo), nesse caso, seria o jogo "Duel Links" antes mencionado, essa lógica funciona com qualquer game, inclusive os que não precisam do Proton para rodar.

O Winetricks é um programa gráfico também e você encontra ele no menu do seu sistema, originalmente ele busca usar a instalação padrão do Wine no seu computador, e não o Proton, por isso precisamos do comando supracitado para direcioná-lo para trabalhar na pasta correta, no entanto, essa aplicação gráfica pode ser útil para você encontrar o nome do pacote que você quer instalar, que seria o segundo destaque em amarelo no nosso comando, referindo-se ao "dotnet45", o nome do pacote do Net Framework 4.5.

Pesquisando no Winetricks

Como você pode ver, listado na primeira coluna da imagem acima temos o nome dos pacotes, se eu quisesse (por qualquer motivo) instalar as dlls do DirectX 10 em um prefixo do específico de um game via Proton, como o "Duel Links", para usar o mesmo exemplo, pela imagem acima, o nome do pacote que eu devo indicar é "d3dx10", logo, o comando ficaria:

WINEPREFIX=/home/$USER/.steam/steam/steamapps/compatdata/601510/pfx winetricks d3dx10 

Importante para finalizar!


Esse material não é, definitivamente, para quem simplesmente quer "sentar e jogar" apenas, mas para quem quer ir um pouco além com o Proton e explorar as possibilidades da ferramenta. 

Grande parte dos jogos compatíveis com o novo Steam Play simplesmente requerem o download do jogo normalmente e o seu clique no botão de jogar, e nada mais, rodando como se fossem nativos,  porém, existem alguns que com poucas modificações, como um simples parâmetro na inicialização, podem passar a funcionar ou funcionar melhor.

A parte mais avançada, destinada a quem quer testar profundamente e fazer alguns tweaks no próprio sistema da Valve é voltada, definitivamente, a quem quer explorar e ajudar a reportar quais são os problemas encontrados para que determinado título não rode e, com sorte, apontando a solução para o problema.

Estamos vivendo uma era de transição, até essa ferramenta ficar ainda mais madura, alguns ajustes para certos jogos podem ser necessários, e muitas vezes uma simples palavra na inicialização é a diferença entre fazer o jogo funcionar ou não.

Provavelmente, com o tempo, os jogos que forem passando para Whitelist da Valve e que precisem de certos comandos assim, já possuirão essas configurações de fábrica, sejam elas vindas da própria Valve ou do desenvolvedor do jogo.

O Proton além da Steam


O Proton se tornou tão interessante que agora já está fazendo parte de outros projetos como o Lutris, um software destinado para jogadores de Linux que agrega (ou tenta) todos as formas de jogar com o sistema do Pinguin, incluindo emuladores, no entanto, um dos pontos mais fortes do Lutris é a comunidade que cria scripts para facilitar a instalação de jogos como Overwatch e League of Legends, que pode ser instalados com, literalmente, um clique. Agora o Proton faz parte desse projeto também, assim como o DXVK.


Aproveite a jogatina, siga o nosso canal da Twitch pra acompanhar os gameplays usando Proton, e até a próxima!
_____________________________________________________________________________
Viu algum erro ou gostaria de adicionar alguma sugestão a essa matéria? Colabore, clique aqui.


Blog Diolinux © all rights reserved
made with by templateszoo