How it works

From your disc to a native game

Ascension does not emulate the PS3: it translates the game's own code into C++ and compiles it for your PC. Here is the whole path, and what runs inside.
Yours (disc, keys, PC)The game's code, translatedThe project's (and RPCS3's)

1. Installing

The launcher does all of this once, on your machine. That is why nothing from the game has to be distributed: without your disc there is no game.

Your disc

The European .iso image (BCES-01741), taken from your disc. It never leaves your PC.

Decrypt

The game's executable (EBOOT.BIN) is opened with your keys and becomes an ELF.

Translate

The PPU code and the SPU programs become C++: about 1.8 million lines, instruction by instruction.

Compile

The C++ is compiled on your PC, for your CPU (20 to 40 minutes).

The native game

A PC executable, linked to the ps3kit runtime and RPCS3's renderer.

2. Playing

On a PS3, a main processor, six SPUs and a GPU work together every frame. On PC each becomes threads, and the frame moves as a chain: the PPU prepares, the SPUs build the geometry, the RSX draws. Performance depends on how long each step takes and how long one waits for another.

PPU: the main processor

The game's logic, already translated, runs as C++ on a PC thread.

SPUs: the six helpers

Each SPU is a thread. They build each frame's geometry (EDGE, ~55% of the frame today), the animation and the post-processing.

RSX: the video

The PS3's video commands go to RPCS3's RSX code, which draws with Vulkan or OpenGL on your graphics card.

The PS3's system

Files, audio, cinematic video, controls, saves and network: the firmware's libraries, rewritten in the runtime (ps3kit).

Each step's numbers are in The project.

3. The online

The original servers still work for players on a PS3, but the recompiled game does not sign in to PSN. So the project writes its own server, which answers only what the game expects and never poses as Sony. The match uses the game's own netcode, and its packets go through a relay on the server, since two players at home can hardly ever reach each other directly.

Your PC

Launcher

Signs in with a code, fetches the configuration and your profile and hands them to the game.

The game

The runtime sends the addresses the game looks up to the project's server.

The project's server

Online configuration

Modes, maps and rules the game reads on the way in.

Multiplayer profile

What the game writes (gods, XP, items), kept on your account.

Location

The quick match's first question.

Matchmaking

Brings players into a match and picks the host.

Relay

Carries the match's packets from one player to the other, over UDP.

Accounts and site

Sign-in, profiles, trophies and ranking, in a database not exposed to the internet.

The match

Your game ⇄ the server's relay ⇄ the other players' games, over UDP, with the game's own netcode.

How far the game already gets: Online.