Como funciona
Do seu disco ao jogo nativo
1. A instalação
O launcher faz tudo isso uma vez, na sua máquina. Por isso nada do jogo precisa ser distribuído: sem o seu disco não há jogo.
O seu disco
A imagem .iso europeia (BCES-01741), tirada do seu disco. Ela não sai do seu PC.
Decriptar
O executável do jogo (EBOOT.BIN) é aberto com as suas chaves e vira um ELF.
Traduzir
O código do PPU e os programas das SPUs viram C++: cerca de 1,8 milhão de linhas, instrução por instrução.
Compilar
O C++ é compilado no seu PC, para o seu processador (20 a 40 minutos).
O jogo nativo
Um executável de PC, ligado ao runtime do ps3kit e ao renderizador do RPCS3.
2. Jogando
No PS3, um processador principal, seis SPUs e uma GPU trabalham juntos a cada quadro. No PC cada um vira threads, e o quadro anda em cadeia: o PPU prepara, as SPUs montam a geometria, o RSX desenha. O desempenho depende de quanto cada passo demora e de quanto um espera o outro.
PPU: o processador principal
A lógica do jogo, já traduzida, roda como C++ num thread do PC.
SPUs: os seis ajudantes
Cada SPU é um thread. Elas montam a geometria de cada quadro (o EDGE, ~55% do quadro hoje), a animação e o pós-processamento.
RSX: o vídeo
Os comandos de vídeo do PS3 vão para o código do RSX do RPCS3, que desenha com Vulkan ou OpenGL na sua placa.
O sistema do PS3
Arquivos, áudio, vídeo das cinemáticas, controles, saves e rede: as bibliotecas do firmware, reescritas no runtime (ps3kit).
Os números de cada passo estão em O projeto.
3. O online
Os servidores originais ainda funcionam para quem joga no PS3, mas o jogo recompilado não entra na PSN. Então o projeto escreve o próprio servidor, que responde só o que o jogo espera e nunca se passa pela Sony. A partida usa o netcode do próprio jogo, e os pacotes passam por um relay do servidor, porque dois jogadores em casa quase nunca se alcançam direto.
O seu PC
Launcher
Entra na conta por um código, baixa a configuração e o seu perfil e passa tudo para o jogo.
O jogo
O runtime manda os endereços que o jogo procura para o servidor do projeto.
O servidor do projeto
Configuração do online
Modos, mapas e regras que o jogo lê ao entrar.
Perfil do multijogador
O que o jogo grava (deuses, XP, itens), guardado na sua conta.
Localização
A primeira pergunta da partida rápida.
Matchmaking
Junta os jogadores numa partida e escolhe o host.
Relay
Leva os pacotes da partida de um jogador ao outro, por UDP.
Contas e site
Login, perfis, troféus e ranking, num banco que não fica exposto à internet.
O seu jogo ⇄ o relay do servidor ⇄ o jogo dos outros jogadores, por UDP, com o netcode do próprio jogo.
Até onde o jogo já chega: Online.