Inori/GPCS4: A Playstation 4 emulator just begin
github.com
github.com
I don't bring this up to suggest that GPCS4 isn't important or innovative, but to look at the big picture. Orbital is emulating PS4 at a low level and trying to actually run the PS4 operating system; its first "hype" screenshot was of the recovery mode prompting to push the PS button on the not-yet-emulated controller. Following Orbital, I've felt for a while that there would basically be a two-pronged approach where Orbital enables reverse-engineering and another emulator leverages those insights to enable a higher-performance approach for actually playing games. GPCS4 looks a lot like it could become that other emulator.
Not that these aren't still cool projects I'm happy to see being worked on, but I always think of emulators as emulating one type of architecture on top of another.
Maybe I'm wrong about all this, but your comment just made me think of this.
Checkout the Fail0ver video on porting Linux to the PS4. It's really interesting.
You might want to for security or other reasons, though.
I think Bochs and DOSBox are examples of x86 emulated on x86.
Chinese universities are helping some of the most gifted students I've seen in years get sunlight here in the West. I can't tell you how many amazing repos I've found that were by students of Chinese universities that come out swinging with impressive projects. I wish this was more a trend in the States, and I have to wonder why it isn't. Possibly because people who speak English fluently are flooded with blog posts and internet forum comments browbeating them into avoiding difficult things?
Not to say that there aren't many university students interested in challenging topics like emulator development - I am one myself and know several other students in the emudev scene.
Anyway, university doesn't play a big role for most people, you don't learn many relevant things regarding that there anyway (other than bare essentials). You learn by doing. Just need to be curious enough to motivate you. That's true for most programming topics, not just emudev.
I'm associated with PS4 emulation and the project, any other questions welcome.
Anyway, PS4 emulation isn't very affected by this. Only thing it would benefit from would be that you'd be able to decrypt the firmware (and therefore run the emulator) without needing a hacked PS4 (like RPCS3 does with PS3 firmware).
Historically most people just pirate the firmware anyway (see: PS1 BIOS) so even there realistically it doesn't affect things that much. I consider this is a long-term, nice-to-have feature.
Not to mention the fact that the PS4 has an APU and utilizes Uniform memory access (UMA). A simplified explanation is that both the GPU and CPU can read/write the same memory (with _very_ high bandwidth compared to conventional PCs), which will likely make optimizing high-end games that take advantage of this difficult.
I think that's called ‘remote play’.
Also the principle with consoles in the first place is dodging the headaches of the PCs' configuration zoo. Emulation, ahem, doesn't fit in with this course.
Though I wonder how feasible would be trying to pull graphics driver from PS4 firmware and make it to work with Radeon HD7000 series GPU.
Maybe such low-level optimizations are now longer necessary with more powerful consoles, though?
Regarding GPU drivers, that seems quite doable, as the PS4 Linux port uses slightly modified open source drivers, and gets good performance, IIRC.
Additionally, GNM is a lot lower level than even something like Vulkan, and you can pass pointers directly between the CPU and GPU, they share the same memory space. It's this that makes emulating things tricky.
> Though I wonder how feasible would be trying to pull graphics driver from PS4 firmware
There is no "graphics driver", in the traditional sense.
...which makes the job much harder. Shading languages aren't terribly complicated; implementing a compiler from one to native spir-v/whatever is a reasonable task. Translating from one shader bytecode to another is a more involved operation.
As far as compute goes though the PS4 is basically just a 64-bit x86 machine with a strong integrated GPU, so the workloads can be adapted to run on desktop hardware.