PlayStation 4
x86-64 (AMD Jaguar, family 16h)
- Module in progress
- 2 ports
platforms/orbis
- Built on
- SwARc Orbis platform module
- Progress
- SwARc
platforms/orbison main (commits) - Updated
- 2026-11-09
The PS4 runs x86-64 code on an AMD Jaguar CPU, which SwARc’s x64 lifter already models. What a PS4 game needs on top of it is a platform module, Orbis, that plugs into the x86 core instead of forking it: PC builds never compile or link it, and it builds without the Win32 module.
The module is on SwARc’s main branch, in
platforms/orbis, off by
default until it is done; its
commits are the progress
log.
- Image reader: decrypted SELF/ELF executables with SCE dynamic
tables, function starts from
.eh_frame, imports by NID. - Process loader: a generic
main()for every game: it reads the game’sparam.sfoand start modules fromapp0, maps the executable and its bundled PRX modules, links them, runs their initialisers, and loads the PRXs a game asks for at run time (sceKernelLoadStartModule,Dlsym); the guest’s main thread runs beside the host loop. A lift script lifts every shipped PRX. - System library HLE by NID, on the core’s System V x64 ABI: libkernel (memory, pthreads, files, event queues), libSceLibcInternal, the system and user services, VideoOut (both flip modes, timed against the console), GnmDriver and the GPU’s command processor, AudioOut on the software mixer, AvPlayer on ffmpeg, the hardware video decoder (Videodec2), the NGS2 sound engine and the Ajm audio decoders (ATRAC9 on LibAtrac9, MP3 on ffmpeg), SaveData, networking and PSN (signed out), fibers, fonts on FreeType, Rtc, AppContent, the pad and trophies with their unlock state. The save data dialog (its list, new items and progress bar) and the message dialog are drawn by the runtime over the game’s frames.
- GPU front end on SwARc’s graphics device: draws and compute dispatches, every GCN shader stage including geometry shaders (run as compute passes), textures in the console’s tile modes, depth targets as 2D arrays with HTILE fast clears and their stencil sampled as a texture, compute image stores, texture levels, slices and cube maps, indirect and rectangle draws, GDS and wave-wide operations, 16-bit float buffer stores and SGPRs spilled to vector lanes. Work on the cost per draw took the busiest scene so far from about 5 to about 160 fps.
- Next: the GPU thread’s frame time.
Core lifter work it brought: CMPXCHG16B, F16C, FXSAVE/FXRSTOR, 256-bit
conversions, jrcxz, locked xchg, the System V x64 ABI, setjmp and
longjmp in x64 images, SSE flush-to-zero, and polling loops loaded
with acquire atomics so the compiler cannot drop them.
Games come from your own console: a decrypted dump of a copy you own.
Ports
GravityRush-Reshifted
Gravity Rush Remastered (2015, x64)
In gameThe first PS4 port, on the Orbis module. Plays from New Game into free play in episode 1's city, with sound and its characters drawn whole; autosaves, and Continue loads the save.
Updated 2026-11-10
Uncharted-Recharted
Uncharted: The Nathan Drake Collection (2015, x64)
EarlyThe second PS4 port, bringing more of the system onto the Orbis module. The first game plays its intro movies, reaches the title, starts a new game and saves, and stops in its opening cutscene.
Updated 2026-11-10