O PS3recomp é um projeto open source criado para atacar um dos maiores pepinos da preservação de jogos do PlayStation 3 por um caminho bem diferente da emulação tradicional. A ideia é pegar os binários de um jogo de PS3 e fazer uma recompilação estática, transformando o código originalmente feito para a arquitetura do console em código C/C++ que possa ser compilado como um programa nativo de PC. Em vez de o computador ficar traduzindo as instruções do PS3 enquanto o jogo está rodando, o trabalho pesado acontece antes.
Para entender a maluquice, o PS3 não usa uma arquitetura particularmente amigável. O console tem o processador Cell, formado por um núcleo principal PPU baseado em PowerPC e unidades SPU especializadas, além de uma organização de memória e um sistema operacional próprios. É aquele tipo de hardware que provavelmente fez algum engenheiro olhar para o projeto e pensar "vai dar certo" enquanto o resto da equipe fingia que não ouviu. O PS3recomp precisa lidar justamente com essas particularidades, incluindo instruções PPU, código das SPUs, chamadas do sistema, bibliotecas do sistema e outros componentes necessários para fazer um jogo acreditar que ainda está vivendo sua vida normal no console.
O processo envolve analisar os arquivos do jogo, desmontar o código, transformar as instruções em uma representação que possa ser compilada e ligar isso a uma camada que recria o comportamento necessário do sistema do PS3. O projeto também aproveita filosofias de iniciativas como N64Recomp, e PS2Recomp, mas precisa lidar com uma arquitetura consideravelmente mais complicada. Não basta apertar um botão escrito "CONVERTER PS3 PARA EXE" e ir tomar café. A quantidade de coisa envolvida é suficiente para transformar esse café em uma carreira acadêmica.
A diferença para o RPCS3 é bem clara. O emulador reproduz o funcionamento do hardware e do sistema do PS3 em tempo de execução, traduzindo o que o jogo precisa conforme ele funciona. O PS3recomp segue outra filosofia e tenta transformar o jogo em código nativo antes da execução. Se tudo der certo, o resultado pode rodar como um programa convencional na plataforma escolhida, sem depender de um emulador de PS3. Isso também abre possibilidades interessantes para modificações, já que trabalhar com código recompilado em C/C++ pode ser muito mais conveniente do que mexer diretamente em um executável feito para a arquitetura do console.
A parte que deixa tudo ainda mais interessante é a possibilidade de transformar jogos específicos em ports nativos. Uma recompilação bem-sucedida pode eliminar a necessidade de emular o processador Cell e permitir que o jogo utilize diretamente recursos do computador hospedeiro. Isso pode resultar em melhor desempenho, menor dependência de hardware poderoso e muito mais liberdade para alterações. Resolução, controles, melhorias gráficas e outras modificações podem se tornar muito mais fáceis de trabalhar quando o jogo deixa de ser tratado como um convidado estrangeiro dentro de um emulador e passa a existir como código nativo.
O projeto também não está limitado à ideia de simplesmente fazer jogos rodarem no Windows. A estrutura foi pensada para permitir diferentes plataformas, embora o nível de suporte varie bastante. O Windows é o ambiente em que o projeto consegue executar um jogo recompilado, enquanto Linux e macOS possuem partes importantes funcionando, mas ainda têm trabalho pela frente antes de conseguirem carregar e executar um título recompilado completo. No macOS já existe trabalho com Metal, enquanto o Linux conta com um backend voltado para testes, mas isso ainda não significa que seja possível simplesmente pegar um jogo de PS3 e sair jogando nele.
Um jogo dependente de uma máquina específica, de um sistema operacional antigo e de uma arquitetura estranha pode, em tese, ganhar uma versão nativa capaz de sobreviver por muito mais tempo. Isso não resolve automaticamente todos os problemas de preservação, claro, porque cada jogo pode ter suas próprias maluquices, mas cria uma rota para transformar software originalmente preso ao PS3 em algo que possa ser compilado e mantido em plataformas modernas.
O projeto trabalha ainda com uma grande quantidade de componentes relacionados ao funcionamento interno do console, incluindo chamadas do kernel LV2, módulos do sistema, execução PPU e SPU, gerenciamento de memória e a comunicação com o RSX, a GPU do PlayStation 3. A parte gráfica também precisa ser traduzida para APIs modernas, com suporte ao Direct3D 12 no Windows e trabalho com Metal no macOS. Então, quando alguém fala que "é só recompilar", pode dar uma risadinha. A palavra "só" aí está carregando um caminhão nas costas.
Eles disponibilizam documentação sobre a arquitetura, compilação, criação de módulos, chamadas do sistema, processo de portabilidade e funcionamento do runtime. Também existe uma comunidade em torno dos projetos de recompilação do desenvolvedor, onde quem está trabalhando em ports pode trocar informações e descobrir se alguém já está tentando resolver o mesmo pepino.
O PS3recomp representa uma possibilidade bastante diferente para o futuro dos jogos de PlayStation 3 no PC. Em vez de simplesmente melhorar a emulação, a proposta é atacar o jogo na raiz e transformá-lo em software nativo. Ainda existe uma quantidade brutal de trabalho entre pegar um EBOOT e chegar a um jogo funcionando perfeitamente, mas a ferramenta já fornece uma estrutura para enfrentar esse processo e abre caminho para ports nativos de títulos que durante muito tempo pareciam condenados a continuar presos ao hardware do PS3.
Para entender a maluquice, o PS3 não usa uma arquitetura particularmente amigável. O console tem o processador Cell, formado por um núcleo principal PPU baseado em PowerPC e unidades SPU especializadas, além de uma organização de memória e um sistema operacional próprios. É aquele tipo de hardware que provavelmente fez algum engenheiro olhar para o projeto e pensar "vai dar certo" enquanto o resto da equipe fingia que não ouviu. O PS3recomp precisa lidar justamente com essas particularidades, incluindo instruções PPU, código das SPUs, chamadas do sistema, bibliotecas do sistema e outros componentes necessários para fazer um jogo acreditar que ainda está vivendo sua vida normal no console.
O processo envolve analisar os arquivos do jogo, desmontar o código, transformar as instruções em uma representação que possa ser compilada e ligar isso a uma camada que recria o comportamento necessário do sistema do PS3. O projeto também aproveita filosofias de iniciativas como N64Recomp, e PS2Recomp, mas precisa lidar com uma arquitetura consideravelmente mais complicada. Não basta apertar um botão escrito "CONVERTER PS3 PARA EXE" e ir tomar café. A quantidade de coisa envolvida é suficiente para transformar esse café em uma carreira acadêmica.
A diferença para o RPCS3 é bem clara. O emulador reproduz o funcionamento do hardware e do sistema do PS3 em tempo de execução, traduzindo o que o jogo precisa conforme ele funciona. O PS3recomp segue outra filosofia e tenta transformar o jogo em código nativo antes da execução. Se tudo der certo, o resultado pode rodar como um programa convencional na plataforma escolhida, sem depender de um emulador de PS3. Isso também abre possibilidades interessantes para modificações, já que trabalhar com código recompilado em C/C++ pode ser muito mais conveniente do que mexer diretamente em um executável feito para a arquitetura do console.
A parte que deixa tudo ainda mais interessante é a possibilidade de transformar jogos específicos em ports nativos. Uma recompilação bem-sucedida pode eliminar a necessidade de emular o processador Cell e permitir que o jogo utilize diretamente recursos do computador hospedeiro. Isso pode resultar em melhor desempenho, menor dependência de hardware poderoso e muito mais liberdade para alterações. Resolução, controles, melhorias gráficas e outras modificações podem se tornar muito mais fáceis de trabalhar quando o jogo deixa de ser tratado como um convidado estrangeiro dentro de um emulador e passa a existir como código nativo.
O projeto também não está limitado à ideia de simplesmente fazer jogos rodarem no Windows. A estrutura foi pensada para permitir diferentes plataformas, embora o nível de suporte varie bastante. O Windows é o ambiente em que o projeto consegue executar um jogo recompilado, enquanto Linux e macOS possuem partes importantes funcionando, mas ainda têm trabalho pela frente antes de conseguirem carregar e executar um título recompilado completo. No macOS já existe trabalho com Metal, enquanto o Linux conta com um backend voltado para testes, mas isso ainda não significa que seja possível simplesmente pegar um jogo de PS3 e sair jogando nele.
Um jogo dependente de uma máquina específica, de um sistema operacional antigo e de uma arquitetura estranha pode, em tese, ganhar uma versão nativa capaz de sobreviver por muito mais tempo. Isso não resolve automaticamente todos os problemas de preservação, claro, porque cada jogo pode ter suas próprias maluquices, mas cria uma rota para transformar software originalmente preso ao PS3 em algo que possa ser compilado e mantido em plataformas modernas.
O projeto trabalha ainda com uma grande quantidade de componentes relacionados ao funcionamento interno do console, incluindo chamadas do kernel LV2, módulos do sistema, execução PPU e SPU, gerenciamento de memória e a comunicação com o RSX, a GPU do PlayStation 3. A parte gráfica também precisa ser traduzida para APIs modernas, com suporte ao Direct3D 12 no Windows e trabalho com Metal no macOS. Então, quando alguém fala que "é só recompilar", pode dar uma risadinha. A palavra "só" aí está carregando um caminhão nas costas.
Eles disponibilizam documentação sobre a arquitetura, compilação, criação de módulos, chamadas do sistema, processo de portabilidade e funcionamento do runtime. Também existe uma comunidade em torno dos projetos de recompilação do desenvolvedor, onde quem está trabalhando em ports pode trocar informações e descobrir se alguém já está tentando resolver o mesmo pepino.
O PS3recomp representa uma possibilidade bastante diferente para o futuro dos jogos de PlayStation 3 no PC. Em vez de simplesmente melhorar a emulação, a proposta é atacar o jogo na raiz e transformá-lo em software nativo. Ainda existe uma quantidade brutal de trabalho entre pegar um EBOOT e chegar a um jogo funcionando perfeitamente, mas a ferramenta já fornece uma estrutura para enfrentar esse processo e abre caminho para ports nativos de títulos que durante muito tempo pareciam condenados a continuar presos ao hardware do PS3.
O adblock bloqueia links de afiliados da Amazon como os desse post, então se não estiver aparecendo, é só desativar o adblock.
Veja mais coisas interessantes aqui. E tem conteúdo exclusivo nas redes sociais:




