Os Segredos do WINE – Parte 3

Nesta matéria, trago a metodologia e dicas para você ter sucesso com a correta configuração do Proton, da Steam em seu sistema!


| Se você apoia nosso site, desative o AdBlock quando visitá-lo, inclusive em Mobile!
Os anúncios são poucos e não invasivos. Se quiser contribuir com nosso trabalho, clique em qualquer banner de sua preferência, exceto dos Parceiros. 
Mais detalhes clicando aqui.


Introdução

Nas publicações anteriores mencionamos e explicamos como o WINE e Winetricks funcionam e também demos dicas de como configura-los. Com isto em mente, vamos falar do Proton!

Tutorial dividido em 3 etapas:

  1. A primeira A é mais direta e funciona como uma introdução ao mundo da Steam, assim você estará bem situado e familiarizado.
  2. A segunda B mais simples e explica como utilizar o Proton dentro da Steam, caso alguém tenha dúvidas, e esclarecer alguns aspectos e também trazer parâmetros úteis de configuração pela própria interface da Valve.
  3. Já a terceira C é um pouco mais complexo e permitirá utilizar o Proton fora da Steam, para rodar games Non-Steam, ou seja, games… er… de fontes não confiáveis.

Na publicação, aonde os diretórios começarem com ~ significa que o caminho é /home/$USER/

É uma informação básica mas é sempre bom relembrar.

A – Apresentação

1. Valve

Valve Corporation – também conhecida como Valve Software ou ainda apenas Valve – é uma empresa norte-americana desenvolvedora de jogos eletrônicos e de distribuição digital, com sede na cidade de Bellevue, Washington, EUA, e cujo CEO é o Gabe Newell.

É famosa por produções de games como Half-Life, Team Fortress 2, Portal e Counter Strike e atualmente detém da maior loja de games para computadores, que é a Steam.

Atualmente está com o projeto de lançar o SteamDeck que promete ser a maior plataforma mobile para gamers rodarem jogos no Linux sob arquitetura Ryzen! Terá toda a biblioteca da Steam disponível no PC disponível no SteamDeck e a grande promessa é que todos os games rodem no Linux, independente se são nativos ou não, e todos rodem no SteamDeck também. – Aguardemos…

2. Steam

Criada em 2003, a loja da Valve já conta com:

  • +50.000 jogos
  • +120 milhões de usuários ativos

Sendo que, desses números, aproximadamente 25 mil títulos foram portados nativamente para o Linux e o restante executa de alguma forma no Proton. Poucos são os títulos que não executam.

A relação do que roda ou não está no ProtonDB.com:

Até a data desta publicação, no TOP 1.000 games mais jogados, 77% rodam no Linux como Silver ou Gold. Essa classificação é a seguinte, dentro dos TOP 1.000 games mais populares:

  • Unrated
    41% dos games não foram testados e/ou avaliados.
  • Borked
    6% dos games rodam de forma muito ruins, que não abrem ou que, se executam, estão não jogáveis.
  • Bronze
    69% dos games que rodam, mas precisam de vários ajustes, troca de drivers, aplicação de Custom Proton e outros meios mais avançados. As vezes até mesmo aplicar .exe customizado e/ou crackeado para burlar algum bloqueio da produtora, mesmo sendo original. A chance dele simplesmente não funcionar é alta, poucos vão rodá-lo.
  • Silver
    65% dos games até executam, mas precisam de ajustes para isso, por exemplo, a aplicação de uma biblioteca diferente, um ajuste de parâmetro, algo de nível mediano. E ainda há uma chance de que ele não funcione, não há garantias aqui.
  • Gold
    55% dos games rodam muito bem, poucos ajustes são necessários para que ele rode com bom desempenho. A chance dele não funcionar aqui é baixa, quase nula.
  • Platinum
    20% dos games rodam de primeira, é só instalar e jogar.
    Nula a chance dele ter problemas de execução ou desempenho.

São números promissores, tendo em consideração que o Proton foi lançado em Agosto/2018, a quase 4 anos apenas.

3. O que é o Proton?

O Proton foi desenvolvido pela Valve com o intuito de trazer o WINE, com mais recursos e códigos próprios, para sua Loja, a Steam, e melhorar a compatibilidade dos games do Windows no Linux.

Possuindo diversas “exclusividades” se comparado ao WINE “bruto”, entre elas, o código VKD3D que é a implementação das chamadas do DirectX 12 para o Vulkan. O WINE comum só executa até o DX11 e qualquer coisa acima disso, você será agraciado com o seguinte erro:

E no caso, você pode pegar o Proton para executar games fora da Steam, os chamados games non-Steam, de forma semelhante á vista na Parte 1 deste tutorial. Porém há ressalvas e vou destacá-las aqui.

B – Steam

1. Instalação

Na Steam, caso você seja alguém que não conheça a loja da Valve, faça o seguinte:

  • Crie uma conta na Steam caso já não tenha uma.
  • Baixe e instale a aplicação em seu sistema.
    A maioria das distribuições já possuem a Steam nos repositórios, no Ubuntu por exemplo basta um “sudo apt install steam”
  • Uma vez instalado, inicie a aplicação e faça login.
  • Vá em Configurações da Loja, e vá até a aba SteamPlay

Marque os campos “Ativar Steam Play para Titulos Compativeis” e também “Ativar Steam Play para Todos os Outros Títulos”.

Alem disso, marque a caixa “Executar Outros Titulos com…” e, até a data desta publicação, o Proton6.3-8 que é o mais novo. Se no momento dessa leitura houver um mais novo, melhor ainda.

  • Agora você está pronto: você vai precisar ter no catálogo pelo menos 1 game que seja exclusivamente do Windows!
    Para nosso tutorial, eu escolhi o game Aim Lab que é de graça, um título Silver, leve e servirá bem aos nossos propósitos por ser exclusivo de Windows e utilizará o Proton.

Abra a página do jogo e clique em Baixar.

Após baixar o jogo, baixe o Proton6.3! Na Steam você precisa baixar o Proton separadamente. Vá até a grande guia Biblioteca, no canto superior esquerdo dessa guia clique em “Jogos”, pouco abaixo do botão “Página Inicial”, e dentro do campo selecionável, marque a caixa “Ferramentas”, assim ficará Jogos e Ferramentas listados. Ficará assim:

Desça a lista e marque a caixa do Proton6.3, e ai você clica em Baixar. Aguarde todos os downloads.

Depois do download o botão vai se tornar “Iniciar”. Não clique!
Na lista, procure o Aim Lab e clique direito nele, aí mesmo na listinha. Clique em “Propriedades”.

Vá á guia Compatibilidade, marque a caixinha “Forçar uso de ferramenta de compatibilidade do SteamPlay específica” e depois clique na caixa, mudando de “Proton Experimental” para “Proton 6.3-8”.

Apenas feche esta janela.

Após isso, volte no menu do game Aim Lab e clique em Iniciar!

Beleza, o jogo abriu! Então tudo certo e o que foi mostrado vale para outros games Windows dentro da Steam.

Mas o jogo não roda!

De fato, aqui pelo menos ele abriu mas travou. La no ProtonDB.com o pessoal ficou misto, tem quem conseguiu jogar, e tem quem o jogo não funcionou. E isso é normal num game como esse que foi classificado como Silver, conforme falei acima, é quase sorte.

E aqui, vamos abordar os detalhes, pra tentar consertar o jogo enquanto ensino como aplicar Proton Customizado e outros parâmetros.

2. Trocando de Proton

Conforme alguns relatos no ProtonDB, o jogo funciona com o Proton 6.21-GE-2. Porém ele não é oficial. Então, como instalo?

Esses protons customizados ficam num repositório do GitHub, este, e geralmente são bons, adiantados, com recursos não oficialmente suportados que chegam antes da Valve suporta-los nativamente.

Vamos baixar o Proton-6.21-GE-2.tar.gz, entre neste link, desça a tela, clique na guia “Assets” e clique em Proton-6.21-GE-2.tar.gz. Faça o download do mesmo.

Crie o seguinte diretório, se ele não existir:

$ mkdir ~/.steam/root/compatibilitytools.d

Extraia o Proton-6.21-GE-2.tar.gz lá dentro, feche e reabra o Steam.
Volte á aba do jogo, clique direito, Propriedades, vá á guia Compatibilidade e depois clique na caixa embaixo, mudando de “Proton 6.3-8” para o novo “Proton-6.21-GE-2” que surgiu!

Inicie o jogo.

Fizemos progresso, agora o menu carregou, o jogo não congelou, as animações executaram e eu já consigo fazer ajustes na interface. Porém clicando em “modo offline” ele travou de novo.

A lição que eu trago com isto:

Por mais que um game que você goste esteja Silver no ProtonDB, ele pode muito bem não estar funcionando como poderia, deveria ou você gostaria. As únicas garantias são títulos Gold ou Platinum, que executam com alguns ajustes, mas executam.

Um exemplo de game que também faz uso desse Proton customizado é o Resident Evil 2 Remake, ele funciona muito bem!
Inclusive aproveito pra lançar uma informação extra que pode ser útil a alguns jogadores. O RE2 Remake não apenas funciona bem, como também suporta Trainers.

Só que, nem todo trainer funciona com o WINE. Não posso postar links de Trainers por configurarem trapaças, mas o conceito, que pode ser usado pra se executar qualquer N aplicações .exe ao mesmo tempo no mesmo wineprefix do Proton dentro da Steam é:

$ env WINEPREFIX=”~/.steam/steamapps/compatdata/883710/pfx” WINEESYNC=1 “~/.steam/steam/compatibilitytools.d/Proton-5.9-GE-8-ST/dist/bin/wine64” TRAINER.exe

O parâmetro WINEESYNC=1 é o que torna possivel executar o trainer primeiro, e depois lançar o jogo da Steam ao mesmo tempo sob o mesmo wineprefix sem conflitos ou erros! Isso é uma regra que vale pra N games da Steam – E esse parâmetro também pode ser usado sob o que foi ensinado nos tutoriais anteriores, apontando o caminho do wineprefix e do binário wine, você pode lançar um novo .exe ao mesmo tempo.

Você pode trocar de Proton para quaisquer versões disponíveis no GitHub ou na própria Steam, o limite é seu espaço em disco – Cada proton consome em torno de 2 Gb!

Outro caso que ajuda, é que através do menu do jogo, clique direito e Propriedades, na aba Geral, adicione os parâmetros que o jogo requerer em “Opções de Inicialização” – Aqui no exemplo não tenho conhecimento de quais parâmetros poderiam ajudar. Há games aonde adicionar um parâmetro como “windowed” força ele em janela pra melhorar a execução. Depende do jogo, aqui requer uma pesquisa maior dependendo do que se pretende executar.

Vida que segue e jogo que não roda, não pretendo testar 1 a 1 cada Proton, não é o foco do tutorial que o jogo rode de fato mas que vocês entendam o método usado para tal!

Próximo passo: Como usar o Proton fora da Steam para games do GOG.com ou mesmo do Itch.IO.

C – Proton

1. De volta para o passado

O Proton é um WINE muito modificado pela Valve e como tal, ele exige certos cuidados na hora de ser utilizado fora da Steam. A execução dele contempla um script diferente da primeira parte dessa matéria, porém, chamo a dúvida: O que vamos usar de exemplo? SIM, ele, o game da primeira parte: Liminal Mall!

Se ele estiver nas mesmas pastas que exemplifiquei no tutorial, siga conforme abaixo:

Para o Proton funcionar fora da Steam você precisa seguir algumas regras:

  • Você DEVE ter o Steam instalado no sistema.
    O Proton sozinho não funciona sem as bibliotecas do Steam. A boa notícia é que não precisa executar o Steam pra que o Proton funcione, basta que ele esteja instalado no sistema e apontado lá na pasta ~/.steam!
  • Você precisa da pasta do Proton desejado, seja o 6.3-8 ou mesmo o Proton GE do GitHub.
    A Steam armazena os Protons em “~/.steam/root/steamapps/common/”
    Pegue a pasta do Proton desejado, vamos pegar o 6.3-8 de exemplo, e copie para o diretório “/home/$USER/WINEnovos”.
  • Você também vai precisar do wineprefix que a Steam gera para o Proton. Esse wineprefix especial contempla tambem .dll’s da Steam de Windows e outros parâmetros da Valve.
    Eles estão em “.steam/root/steamapps/compatdata/714010/pfx” aonde o número é normalmente o código de game da Steam.
    Copie a pasta “pfx” dentro de 714010 para “/home/$USER/WINEgames“.

Crie um documento de texto e transforme-o num script shell. Não vou repetir os passos pois já foi explicado aqui na publicação anterior. O que vai mudar, é que em vez do código que dei na publicação anterior, vamos usar este novo.

Copie a pasta do jogo que estava lá em “/home/$USER/WINEGames/LiminalMall/drive_c/Program Files/liminal mall alpha v3/liminal mall.exe” e cole em “/home/$USER/WINEGames/pfx/drive_c/Program Files/liminal mall alpha v3/liminal mall.exe“. Assim, o script ficará:

#!/bin/bash

export PROTONPREFIX=”/home/$USER/WINEGames/pfx
export GAMEPATH=”/drive_c/Program Files/liminal mall alpha v3/
export GAMEEXE=”liminal mall.exe

export STEAM_COMPAT_CLIENT_INSTALL_PATH=”/home/$USER/.steam”
export STEAM_COMPAT_DATA_PATH=”$PROTONPREFIX”

cd “$PROTONPREFIX”
/home/$USER/WINEnovos/Proton6.3-8/proton run “$PROTONPREFIX””$GAMEPATH””$GAMEEXE”

Edite apenas as linhas coloridas. As demais serão fixas.

  • A linha turquesa é o caminho até o diretório do Proton diferente, no caso Proton no nosso exemplo!
  • A linha verde é o caminho para o wineprefix do game, no nosso exemplo, o Liminal Mall.
  • A linha vermelha é o caminho do game dentro do wineprefix, ou seja, de drive_c em diante, até a pasta do binário.
  • A linha azul é o binário .exe do game.

Respeite aonde existem barras / e aonde não existem! O script foi pensado para corresponder aos diretórios.

Se houverem / aonde não deveriam ou algum / for removido do padrão, o script não vai funcionar.

As maiores exigências do Proton são aplicar o parâmetro “run” na execução, para que de fato ele execute, definir os parâmetros STEAM_COMPAT_CLIENT_INSTALL_PATH com o caminho da Steam no sistema, no caso em ~/.steam, e STEAM_COMPAT_DATA_PATH com o wineprefix referente tambem.

Salve e execute o script.
Agora o Liminal Mall vai abrir com outro WINE, o Proton6.3-8!

2. Extras

Ao contrário do WINE convencional, o Proton contempla uma série de parâmetros extras que melhoram a compatibilidade com games. Basta pegar 1 deles, adicionar ao Script acima, justaposta acima da linha “cd “$PROTONPREFIX”” e iniciar o jogo. Os mais importante são:

  • export PROTON_USE_VKD3D=1
    Forçar usar DirectX12 baseado em Vulkan – Exclusivo do Proton by Codeweavers®
  • export PROTON_USE_WINED3D
    Forçar OpenGL em vez de DirectX 10 e/ou DirectX 11
  • export PROTON_NO_D9VK=1
    Desabilitar D9VK e forçar usar o DirectX9
  • export PROTON_NO_ESYNC=1
    Desabilitar ESync – Muito usado na maioria esmagadora dos jogos porque melhora muito o desempenho!
  • export PROTON_NO_D3D11=1
    Desabilitar DirectX11 e forçar usar o DirectX9

3. Conclusão

O Proton possui um imenso potencial de tornar o Steam a plataforma de games definitiva que compete contra o Windows, mas ainda não está no mesmo nível. O que impede é que a maioria dos games populares ainda requerem “passos avançados” e muito terminal pra funcionar apropriadamente, enquanto que os que de fato até rodam, não funcionam porque o anti-cheat impede.

A Valve prometeu que o Linux do SteamDeck vai ter uma melhor compatibilidade com os sistemas anti-cheat, que podem otimizar e melhorar os games para o Linux como um todo! A questão é esperar e torcer que os planos deem bons frutos. – E considerando o que vimos de 3 anos para vá…… Pode até atrasar, mas vai chegar. Paciência!

Ficamos com esta trilogia por aqui. Alguma dúvida? Problemas? Dicas? Deixe nos comentários! Sua opinião é sempre muito importante para nós.

Perdeu as partes anteriores?

#UrbanCompassPony

Deixe um comentário