[Experimental] - rpcs3 (O primeiro emulador da Playstation 3)

Iniciado por Nosferatu Arucard, 04 de Fevereiro de 2013, 20:22

tópico anterior - próximo tópico

Nosferatu Arucard

Se assustou com o título não há problema, porque este programa é a primeira tentativa séria para implementar um emulador/tradutor do processador CELL usado na consola PS3, tendo em vista a execução de programas desta plataforma num computador convencional com arquitectura x86.  :)

Este emulador utiliza um tradutor/compilador dinâmico para correr os binários compilados na arquitectura PPC/SPE do CELL, incluindo as chamadas de sistema do sistema operativo da PS3, evitando o uso de qualquer firmware externo. Por enquanto este programa só corre pequenos programas homebrews, e incluiu um assemblador CELL para quem queira até programar em CELL a partir do código-máquina  ;D

Embora as versões compiladas foram exclusivamente para o sistema Windows, é trivial compilar o código-fonte desde que tenha as bibliotecas OpenGL 3.3 ou superior e o WxWidgets no Ubuntu.
O repositório do código encontra-se em:
svn checkout http://rpcs3.googlecode.com/svn/ rpcs3-read-only

Mas até conseguir correr alguns jogos comerciais ainda estão alguns anos de muito trabalho pela frente, e uma emulação minimamente decente vai exigir pelo menos um PC com 8 a 16 núcleos e uma GPU com suporte OpenCL para conseguir emular o CELL em tempo real, uma vez que a gráfica RSX não é propriamente exótica (basta uma emulação de alta nível usando bibliotecas da NVidia). ::)

Em contrapartida, usando a convergência dos rumores, a PS4 e a Xbox 720 (ou seja lá os nomes finais) deverão usar processadores x86, o que tornaria a emulação destas consolas bem mais fáceis, desde que use gráficas ATI e CPU AMD com mais de 8 núcleos!  ;D

Nosferatu Arucard

Após alguns anos de desenvolvimento, o rpcs3 pode ser testado com maior ou menor dificuldade, embora deva ter em atenção que:
- Não explicarei como obter os jogos.
- Exige um computador bastante potente para conseguir emular uma PS3.

Pré-requistos:
- A última versão do Ubuntu 16.10, versão 64-bits (Devido ao uso do clang e LLVM)
- Um computador com Intel Core i5 ou i7 arquitectura Haswell or Skylake. (Para ser minimamente realista)
- Entre 8 a 16 Gb de RAM
- Uma GPU NVidia série 900 ou 1000, ou AMD equivalente com suporte nativo por hardware do OpenGL 4.4 ou Vulkan (recomendadíssimo)
- Recomenda-se a instalação dos drivers das GPU com suporte ao Vulkan API
- Deve ter pelo menos entre 10 a 50 GB de espaço em disco livre para cada jogo da PS3, que quer instalar.
- Para ser legal o uso, uma drive BD-ROM que leia os discos da PS3  ;) (recomenda-se o modelo LG BD-RE WH16NS40. ) e evite a tentação de usar cópias piratas...  >:(

Tendo pronto a máquina pronto a funcionar, instale primeiro as dependências:

$ sudo apt-get install cmake git build-essential libopenal-dev libwxgtk3.0-dev libglew-dev zlib1g-dev libedit-dev libvulkan-dev llvm-dev

Clone o git do emulador

$ git clone https://github.com/RPCS3/rpcs3.git
$ cd rpcs3
$ git submodule update --init

// Atenção! Devido a um bug nos pacotes clang, é encessário escrever o seguinte ficheiro
++++++++++++++++++++++++++++++++++++

// This is a generated file.

#define RPCS3_GIT_VERSION "unknown"

// If you don't want this file to update/recompile, change to 1.
#define RPCS3_GIT_VERSION_NO_UPDATE 1

+++++++++++++++++++++++++++++++++++

E salvá-lo como "git-version.h", em rpcs3/rpcs3/git.version.h

Por fim, só resta compilar...

$ cmake CMakeLists.txt
$ make

Se tudo correr bem  :), o executável fica guardado em...
rpcs3/bin/rpcs3

Que fica no directório raíz do disco rígido emulado da PS3 (deve ter os directórios dev_flash, dev_hdd0, dev_hdd1,... presentes.)

- Depois fica tudo por vossa conta...  :)

Nosferatu Arucard

Pequena actualização...

As dependências para a compilação foram descritas no post anterior, portanto não vou repetir o procedimento.

Para compilar sem problemas, dado que foi corrigido o bug indicado anteriormente, dev fazer:

$ git clone https://github.com/RPCS3/rpcs3.git
$ cd rpcs3
$ git submodule update --init
$ cmake CMakeList.txt
$ make GitVersion
$ make

O programa fica guardado em...
../bin/rpcs3

Agora temos que instalar o sistema operativo da PS3 no computador...
Para tal, transfira o pacote do site oficial da Sony, e dentro do emulador, use a opção Tools>Install Firmware
Com isso, o emulador estará operacional...

Nosferatu Arucard

Actualmente o rpcs3 está disponível como um pacote AppImage, o que torna o uso muito simples.
Basta transferir do site, e marcar o pacote como executável.

Depois o emulador deverá funcionar sem maiores problemas.