96
In this video I explain why PS3 emulation is so fast, and I definitely don't spend half of the video gushing over x86 instructions.
I sort of made this video as a response to all the videos with a title along the lines of "why is the PS3 hard to emulate" without actually going into any technical details beyond "the PS3 is complex".
Additional reading:
RPCS3 blog: https://rpcs3.net/blog/
My blog on AVX-512 and RPCS3: https://whatcookie.github.io/posts/why-is-avx-512-useful-for-rpcs3/
RPCS3 youtube channel: https://www.youtube.com/@RPCS3_emu
FOSDEM video on RPCS3 internals by AlexAltea https://www.youtube.com/watch?v=4joCMfTPP4M
PS3 hardware overview https://www.copetti.org/writings/consoles/playstation-3/
Chapters
0:00 - Intro
2:05 - SPU introduction
2:20 - SPU Xfloat
4:34 - Ninja Gaiden Comparisons
5:27 - Specific SPU FP instructions
8:46 - SHUFB
11:14 - SHUFB performance discussion
12:30 - VG2P8AFFINEQB path
16:14 - VPERM2B
17:35 - ISA and performance
19:17 - Loads and stores
20:49 - Sleepy Nier
21:48 - Conclusion
That was surprisingly easy to understand for an incredibly technical subject. I’m so glad there are some über-geeks who are willing to do this level of work to preserve gaming history.
It was particularly interesting hearing how newer Intel processors are missing some of the recently-added instructions that are useful for PS3 emulation and equivalent instructions aren’t planned to be reimplemented for years. That makes it pretty clear that maintaining emulators that operate at this level requires constant maintenance and tweaking to adjust to different chipsets as they evolve.