Por que as atualizações next-gen em modo de retrocompatibilidade estão tão melhores no Xbox Series X|S? Entenda.

Texto de autoria do Prof. Carlos Eduardo Dantas

Desde o começo desta nova geração de consoles, tem-se notado uma considerável vantagem de performance do Xbox Series X (e em alguns casos até o Xbox Series S) em relação ao Playstation 5 (PS5) no que diz respeito a jogos que receberam atualizações next-gen, mas que estão funcionando no modo BC (Backwards Compatibility) ou retrocompatibilidade (retro), como é conhecido. A retro dos consoles da Microsoft já é conhecida por apresentar vantagens como a possibilidade de jogar todas as gerações de consoles Xbox em uma única plataforma. Além disso, também oferece novas features como Auto HDR e o mais recente FPS Boost. E por fim, entrega melhorias em alguns jogos, como por exemplo Red Dead Redemption do Xbox 360 que recebeu suporte à resolução 4k no Xbox One X (e consequentemente também no Xbox Series X).

Mas as atualizações next-gen em modo retro são uma situação diferente. Ao invés de optar pela abordagem tradicional em realizar um port (ou até mesmo remasterização) dos jogos para os consoles next-gen, alguns estúdios têm achado mais fácil e econômico em apenas lançar uma atualização sobre os jogos da geração anterior, habilitando melhorias exclusivas para os novos consoles. Claro que existem exceções, e jogos como Control: Ultimate Edition, Destiny 2 e Borderlands 3 receberam uma nova versão, e estão rodando nativamente nos consoles Xbox Series X|S e PS5. Mas realizar um port de um jogo para os consoles de nova geração certamente é uma abordagem mais dispendiosa, como os desenvolvedores do jogo Rocket League sugeriram em uma entrevista que será citada a seguir. Com isso, as atualizações next-gen em modo retro sugerem um caminho em que a maior parte dos estúdios irão seguir. Seguem alguns exemplos de atualizações já lançadas:

  • Rocket Leagle com modo 120fps;
  • Call of Duty: Warzone com modo 120fps;
  • Star Wars Squadrons com modo 120fps;
  • Ark: Survival Envolved com 4k no Xbox Series X e filtro anisotrópico 16x;
  • The Division 2 em 4k 60fps no Xbox Series X e 1080p 60fps no Xbox Series S;
  • Ghost Recon Breakpoint com 4k no Xbox Series X e 1440p no Xbox Series S;
  • Star Wars Jedi: Fallen Order com 60fps nos consoles Xbox Series X|S e modo qualidade no Xbox Series X com resolução dinâmica até 4k.

Vários outros jogos receberam atualização next-gen com melhorias, e continuam sendo executados em modo retro nos consoles Xbox Series X|S sem port para a nova geração: Ori, Sea of Thieves, Halo MCC, etc.

O que tem ocorrido na prática é que a maior parte destas melhorias citadas nos jogos em modo retro estão ocorrendo apenas nos consoles Xbox Series X|S. Por exemplo, a Digital Foundry mostrou em um artigo recente (link: https://www.eurogamer.net/articles/digitalfoundry-2021-ghost-recon-breakpoint-60fps-upgrade-tested) que o jogo Ghost Recon Breakpoint está alcançando 4k nativos e 30fps no Xbox Series X contra 1440p e 30fps do PS5 (ilustrado na Figura 1). E o mais curioso é que até o Xbox Series S também alcança os mesmos 1440p e 30fps do PS5 neste jogo. O artigo também destaca que ao contrário do console da Sony, a versão do Xbox Series X possui Filtro Anisotrópico 16x neste jogo. Outro caso notório é a opção de 120fps nos jogos que funcionam em modo retro, onde estão habilitadas apenas nos consoles Xbox Series X|S. O PS5 está executando jogos como Rocket Leagle e Call of Duty: Warzone em 60fps.

Então surge uma pergunta: por que as atualizações next-gen para o modo retro tem se mostrado superiores nos consoles Xbox Series X|S?

Figura 1: Resolução de Ghost Reccon Breakpoint nos consoles PS5 e Xbox Series X. Fonte: Digital Foundry: https://www.youtube.com/watch?v=frljH1UA3MQ

A resposta está na forma como a retro funciona nos dois consoles. Stephanie Thoensen, que trabalha na Psyonix, o estúdio que desenvolveu o jogo Rocket Leagle, forneceu uma importante dica de como a retro é diferente nos consoles Xbox Series X|S e PS5:

“Ativar 120Hz nas Xbox Series é uma atualização pequena, mas ativar isto na PS5 exige um port totalmente nativo devido à forma como a retrocompatibilidade está implementada no console e, infelizmente, não foi possível devido ao nosso foco em outras coisas.”

 Fonte: https://www.eurogamer.pt/articles/2020-11-13-rocket-league-sem-120fps-na-ps5-devido-a-forma-como-esta-implementada-a-retrocompatibilidade

 A mensagem transmitida é que a retro do PS5 simplesmente possui mais limitações do que a retro do Xbox Series X|S, impedindo que o modo 120fps seja ativado no PS5 sem um port nativo. E por que a retro do PS5 é mais limitada?

Para explicar esta questão, é importante que o leitor desconsidere a retro com consoles mais antigos como o Xbox 360, que é 100% emulada nos consoles Xbox One X|S e Xbox Series X|S. Isso ocorre porque o Xbox 360 possui uma CPU RISC PowerPC, com seu conjunto de instruções incompatíveis com a arquitetura PC CISC x86 encontrada nas CPUs Jaguar do Xbox One X|S e Zen 2 do Xbox Series X|S. O cerne desta discussão está em entender por que a retro do PS5 com o PS4/PS4 Pro é mais limitada que a retro do Xbox Series X|S com o Xbox One X|S, sendo que em ambos os casos são arquiteturas similares, com CPUs compatíveis. Para mais informações sobre a retro emulada com o Xbox 360, sugere-se a leitura do link: https://www.cinemablend.com/games/Here-How-Xbox-One-Backwards-Compatibility-Works-72606.html

APIs (Application Programming Interface) gráficas são um conjunto de rotinas que buscam facilitar o trabalho dos desenvolvedores quanto à execução de instruções em algum hardware específico. Um jogo funciona sobre uma engine gráfica (por exemplo Unreal Engine, Unity, CryEngine,etc.). A engine por sua vez usa as APIs gráficas que irão abstrair o hardware (e a sua devida complexidade) que está executando determinada rotina fornecida pela API. Por exemplo, uma API como Direct Storage possui uma rotina que lê os dados do SSD. O desenvolvedor de engines gráficas irá executar esta rotina da API sem se preocupar com qual hardware irá ler estes dados do SSD, tampouco na complexidade desta tarefa por detrás da API. Dentre os conjuntos de APIs mais conhecidos estão DirectX e Vulkan.

 Para uma melhor leitura sobre o assunto, recomenda-se inteirar-se melhor sobre o próprio DirectX. Link: https://www.windowscentral.com/what-directx-why-does-matter-gaming

Em linhas gerais, Sony e Microsoft possuem diferentes abordagens na construção das suas APIs gráficas. A Sony costuma desenvolver APIs dedicadas para seus consoles Playstation. Isso significa que cada console da Sony possui uma API específica. É importante lembrar que a Sony detém décadas de experiência com fabricação de produtos eletrônicos como Smartphones e TVs. E cada modelo  possui firmware (software que opera em “baixo nível”, ou próximo ao nível do hardware) específico. Então a Sony tem  este “Know How” de construir software dedicado a cada modelo de produto que a mesma constrói. Já a Microsoft possui outra filosofia de trabalho, que consiste em produzir software que abstrai o hardware em que está sendo executado. Um exemplo é a API gráfica DirectX, que possui compatibilidade com a grande maioria das placas de vídeo disponíveis no mercado. Outro exemplo é o próprio Sistema Operacional Windows, que é compatível com a arquitetura PC e não precisa de uma versão diferente para cada modelo de CPU que está no mercado. Caso a abordagem da Sony fosse empregada nos PCs, cada modelo de placa de vídeo teria uma API gráfica específica, ao invés de todas compartilharem o uso da mesma versão do DirectX.

Essa diferença de abordagens entre Sony e Microsoft é crucial para a discussão sobre o modo retro. O PS4 possui a API gráfica chamada GNM que é dedicada ao console. Ainda não se sabe o nome da API gráfica do PS5 (alguns apelidaram de GNM+), mas certamente também é dedicada ao PS5. Já no caso dos consoles da Microsoft, o Xbox One X|S possui suporte ao DirectX 11 e 12, e o Xbox Series X|S suporta a mais recente versão DirectX 12 Ultimate. Então como os dois consoles da Microsoft usam a mesma API gráfica em versões diferentes, o Xbox Series X|S suporta jogos de Xbox One X|S em nível de software, fazendo uso do modo gen9aware que será mostrado posteriormente neste artigo. Já no caso dos consoles da Sony, esta compatibilidade é mais limitada em virtude das APIs dedicadas, como será mostrado a seguir.

Embora fuja do escopo deste artigo que aborda a retro, é interessante entender que APIs dedicadas costumam fornecer maior controle sobre o hardware para o qual a mesma foi construída, abrindo possibilidades para algumas otimizações específicas. Entretanto um maior nível de abstração em API pode resultar em maior automação de tarefas dispendiosas para desenvolvedores como por exemplo o gerenciamento de recursos. E além disso, uma maior abstração facilita a implementação do modo retro em nível de software. Para maiores detalhes sobre o uso de APIs dedicadas, recomenda-se a leitura do artigo “Como o jogo The Crew foi portado para o Playstation 4https://www.eurogamer.net/articles/digitalfoundry-how-the-crew-was-ported-to-playstation-4

Para mostrar na prática como funciona a retro do Xbox Series X|S, serão usadas as informações de arquivo que estes consoles mostram ao selecionar um jogo. A Figura 2 apresenta exemplos de informações sobre 3 jogos: Battlefield V, ARK: Survival Envolved e Assassin´s Creed Valhalla. Os campos interessantes para analisar são: AppModel, Gen, e Console Type.

 

O jogo Battefield V está rodando no Xbox Series X|S sem atualização next-gen. Logo, o campo AppModel consta XDK (Xbox Development Kit, ou Kit de desenvolvimento de jogos do Xbox One). O campo Gen consta Durango, que é o code name do Xbox One. E por fim o campo ConsoleType mostra XboxOne. Ou seja, é um jogo em que o Xbox Series X|S está executando exatamente a versão do Xbox One X|S sem melhorias. Só que caso a resolução seja dinâmica e o fps desbloqueado, os consoles next-gen deverão alcançar os limites máximos de FPS e resolução dinâmica. A Digital Foundry fez dois vídeos mostrando a melhoria de performance em jogos retro que estão rodando sem atualização no Xbox Series X : https://www.youtube.com/watch?v=7oe1LUJyCCs  e https://www.youtube.com/watch?v=LsQldhmN5XU

Já o jogo Assassins Creed Valhalla possui sua versão nativa para o Xbox Series X|S. O campo  AppModel consta GDK (Gamecore Development Kit, ou Kit de desenvolvimento de jogos do Xbox Series X|S). O campo Gen consta Scarlett, que é o code name do Xbox Series X|S. E por fim, o campo ConsoleType mostra XboxGen9, que significa nona geração, a qual Xbox Series X|S e PS5 fazem parte. Neste caso não existe retrocompatibilidade. O Xbox Series X|S possuem uma versão própria, totalmente independente do Xbox One X|S. Além disso, as versões nativas do Xbox Series X|S estão aptas a usufruir de todas as features RDNA 2 como Ray Tracing, Mesh Shaders, VRS ou Sampler Feedback Streaming.

Mas o caso mais interessante está no jogo Ark: Survival Envolved. Este jogo recebeu uma atualização next-gen em modo retro assim como Rocket Leagle, e os outros jogos mencionados no início deste artigo. Os campos AppModel e Gen são exatamente idênticos aos do jogo Battefield V, mostrando que é um jogo de Xbox One X|S rodando no Xbox Series X|S em modo retro. A diferença está no campo ConsoleType, onde mostra o valor XboxOneGen9Aware. Este modo Gen9Aware significa os consoles next-gen receberam melhorias adicionais sobre a versão base do Xbox One X|S. Na prática, esse modo transforma o Xbox Series X em uma GPU GCN de Xbox One X com 12 Teraflops, e desativa o modo SMT da CPU Zen 2 operando com 8 cores a 3.8GHz. E por consequência transforma o Xbox Series S em uma GPU GCN de Xbox One S com 4 Teraflops, com CPU usando 8 cores a 3.6GHz. Isso possibilita que o desenvolvedor possa usar todo esse poder adicional sobre o jogo nativo de Xbox One X|S, e adicionar melhorias como por exemplo modos de 60 ou 120fps, um melhor filtro anisotrópico, melhores sombras, reflexos, ou até aumentar a resolução caso o jogo na sua versão base do Xbox One X|S permita.

Entretanto existem algumas limitações: o modo gen9aware não permite o uso de features DirectX 12 Ultimate como Ray Tracing, já que não se trata de um port next-gen. A idéia é que o jogo construído para Xbox One X|S usando suas respectivas APIs e kits de desenvolvimento (XDK) receba dois novos perfis, que são Xbox Series X|S. E cada perfil possui seu respectivo arquivo de configurações, por exemplo ativando 120fps nos consoles de nova geração e mantendo desativado nos consoles da geração anterior. Essas alterações são compiladas em um patch, e os consoles de nova geração conseguem melhorias exclusivas sem alterar o funcionamento do jogo nos consoles da geração anterior. Este modelo se assemelha a uma retro no PC, onde o hardware mais poderoso possui um arquivo de configuração com melhores predefinições, mas o código-fonte que está executando é essencialmente o mesmo em todos os dispositivos. A diferença é que no PC o próprio jogador pode alterar as configurações nos menus do jogo. Já nos consoles precisa-se que o estúdio disponibilize as atualizações, já que o jogador não possui liberdade de alterar manualmente os arquivos de configuração do jogo.

 

Figura 2: Informações dos jogos extraídas nos consoles Xbox Series X|S

E o modo Gen9Aware não se restringe apenas aos jogos antigos. A Figura 3 mostra as informações de arquivo em Cyberpunk 2077, evidenciando que o mesmo também está rodando no modo Gen9Aware. Isso permite que permite que o Xbox Series X|S possuam melhorias consideráveis neste jogo sobre seus equivalentes Xbox One X|S. Por exemplo, maior densidade de NPCs, 60fps, modo qualidade exclusivo no Xbox Series X, melhor Draw Distance. Entretanto, neste modo não é possível adicionar features RDNA 2 como Ray Tracing. Para isso, faz-se necessário portar o jogo para os consoles de nova geração, algo que a CD Projekt Red prometeu para o segundo semestre de 2021.

Figura 3 – Arquivo de informação de Cyberpunk 2077.

Então na prática, todo o sucesso das atualizações next-gen em modo retro para os consoles Xbox Series X|S ocorre pelo modo gen9aware. O PS5 não possui uma alternativa equivalente. A retro do PS5 consiste basicamente em emular o PS4 Pro e o PS4 em nível de hardware, como mostra a Figura 4. Caso o jogo não possua atualização next-gen, o PS5 emula os clocks de CPU e GPU do console que roda nativamente o jogo. Por exemplo, para executar Bloodborne, o PS5 ativa o BC Mode 1 (chamado pelo Mark Cerny de PS4 Legacy Mode), emulando os clocks do PS4. Para executar Uncharted 4, o PS5 ativa o BC Mode 2 (PS4 Pro Legacy Mode), emulando os clocks do PS4 Pro. Mas para executar um jogo que recebeu atualização next-gen como Days Gone, o PS5 poderá operar  no BC Mode 3 (PS5 native mode), executando nos clocks nativos do PS5. O mesmo vale para Cyberpunk 2077, que também executa no BC Mode 3.

Figura 4: BC Mode PS5. Fonte: NXGamer https://www.youtube.com/watch?v=9tikSdmJ1zM

Os modos BC Mode 1 e 2 que executam jogos sem atualização next-gen irão funcionar de maneira semelhante ao que foi relatado em Battefield V no Xbox Series X|S. Mesmo com clocks emulados, o PS5 conseguirá alcançar 60fps em jogos que estejam com FPS desbloqueado, assim como executar na resolução máxima do jogo caso seja dinâmica. A Digital Foundry também mostrou alguns jogos que tiveram melhoria de performance no PS5 mesmo sem atualização next-gen:

Mas o grande problema desta abordagem é que o BC Mode 3 do PS5 é muito mais limitado que o modo gen9aware dos consoles Xbox Series X|S, pois permite apenas desbloquear 60fps via atualização next-gen. Jogos first-party que receberam atualizações next-gen como Days Gone, Ghost of Tsushima ou God of War possuem exatamente as mesmas resoluções e configurações do PS4 Pro, entretanto com o adicional de ter 60fps desbloqueados na maior resolução que a versão do PS4 Pro consegue alcançar. Qualquer melhoria adicional como resolução, ou filtro anisotrópico precisariam de uma alteração “hard code” no código-fonte do jogo no PS4 Pro, incluindo condições como: “Se versão do PS4, carrega assets do PS4. Senão, carrega assets do PS5”. Obviamente isso é bem mais complexo se comparado com alterar arquivos de configurações no modo gen9Aware para o Xbox Series X|S. Na prática, as atualizações next-gen do PS5 são essencialmente o mesmo jogo do PS4 Pro com 60fps desbloqueados. Outra alternativa seria portar o jogo para o PS5, exatamente como o estúdio que desenvolveu Rocket League sugeriu.

 Além do aumento no rácio de fotogramas, é Days Gone como conheces. Tal como Ghost of Tsushima e até Cyberpunk 2077 (mas não Star Wars Jedi: Fallen Order!), nada mais muda ao transitar da PS4 Pro para a PS5. 

Fonte: https://www.eurogamer.pt/articles/digitalfoundry-2021-days-gone-ps5-a-diferenca-dos-60-fps

Uma exceção à regra é o jogo Star Wars Jedi: Fallen Order, que segundo a Digital Foundry, embora tenha resolução 1200p fixas no PS5, possui buffers de pós-processamento a 1440p. A versão do PS4 Pro possui resolução dinâmica com máximo de 1260p (https://www.eurogamer.pt/articles/2019-11-17-star-wars-jedi-fallen-order-resolucao-ps4-pro-ps4-xbox-one-x-comparacao). É provável que se tratava de uma alteração relativamente simples em código-fonte. Link: https://www.eurogamer.pt/articles/digitalfoundry-2021-star-wars-fallen-order-atualizacao-ps5-xbox-series

A consequência das limitações mencionadas é notória: Ghost Reccon Breakpoint possui 1440p dinâmicos no PS5 porque essa é a resolução máxima do jogo no PS4 Pro. Já o Xbox Series X obtém 4k dinâmicos, que é uma melhoria sobre os 1800p alcançados pelo Xbox One X. Da mesma forma, o loading dos jogos em modo retro irá ocorrer no mesmo formato da geração anterior, isto é, fazendo bastante uso da CPU para realizar a descompressão dos assets (jogos nativos no PS5 e Xbox Series X|S podem usar hardware dedicado para tal). Enquanto o Xbox Series X|S desativam o modo SMT aumentando seus respectivos clocks de CPU (3.8GHz e 3.6GHz), o PS5 pode ter uma redução no clock de CPU para até 1.6GHz caso execute o jogo em BC Mode 1. Recentemente o jogo Nioh foi remasterizado para o PS5 e PC, e a Digital Foundry (link: https://www.youtube.com/watch?v=aSKRlSTU3kY)  constatou que o loading do jogo no modo retro instalado no SSD do PS5 possui duração de 8 segundos. Já o loading da versão remasterizada possui duração de apenas 1 segundo, fazendo uso do mesmo SSD. É uma desvantagem notória. Então com todas essas limitações, em modo retro o PS5 somente pode competir em tentar manter 60fps estáveis, já que os jogos não recebem outras melhorias em relação à versão do PS4 Pro.

Concluindo, a expectativa é que mais estúdios realizem atualizações next-gen de seus jogos em modo retro. E como foi esclarecido no artigo, os consoles da Microsoft possuem uma importante vantagem competitiva para executar jogos das gerações anteriores com melhorias fazendo uso do modo gen9aware. O PS5 apresenta uma importante melhoria que é a possibilidade de rodar jogos retro com 60fps desbloqueados, entretanto os consoles da Microsoft possuem um leque muito maior de potenciais melhorias sobre jogos retro.

Carlos Eduardo Dantas

Ex-frequentador de fliperama. Ex-jogador de Street Fighter da rodoviária. Ex-desenvolvedor. Atualmente coach do filho primogênito que está aprendendo a jogar.

Siga-o no Twitter: @CarlosEduardoCD

Event status
Not started
Leia Mais
Final Fantasy VII entra em pré-venda