[WIP] XMB (PS3 UI) Support - #19444
Conversation
80a956a to
f79ef7c
Compare
|
Is there a command-line argument to boot the VSH/XMB and insert/mount a specified disc image at the same time? right now, I'm just using this batch script to launch the XMB: it would be fantastic if it supports a cleaner, more direct syntax such as: Something like Dolphin does with its Wii system menu : This would be super helpful for frontend users and others who rely on custom batch scripts for automation etc. |
| namespace rsx | ||
| { | ||
| GCM_tile_reference GCM_context::get_tiled_memory_region(const utils::address_range32& range) const | ||
| rsx::GCM_tile_reference rsx::GCM_context::get_tiled_memory_region(const utils::address_range32& range) const |
There was a problem hiding this comment.
I have to ask - what is going on here?
There was a problem hiding this comment.
GCM_context is now a typedef of lv2_rsx_context and not a type by itself, somehow that makes the function definition compile only in global namespace. I didn't change spacing to avoid altering git history.
There was a problem hiding this comment.
So it's a compiler issue workaround? Or a C++ standards thing?
There was a problem hiding this comment.
Now that I think about it makes sense. rsx::GCM_context is a type, the namespace the function was declared is the global namespace (lv2_rsx_context struct) so that is where it should be defined.
kd-11
left a comment
There was a problem hiding this comment.
The core of the RSX changes (getting rid of rsx::method_registers abuse) is correct. Obviously it shouldn't be accessing REGS(0) but that will be covered at a later time.
I have been splitting up the RSX emulation in the background very slowly according to the general plan in #15424 but this work doesn't conflict with that effort yet.
In this pull request I implement and reverse-engineer the operating-system interfaces needed for making XMB (the PS3 User Interface) be able to launch games.
What already works:
In order to mount the disc directory you need to use "Insert Disc" button while the XMB runs. Point it to to the directory you normally laucnh the game from.
Launching trial/demo games.
PSN Games wth license: to be supported, you need to dump a few files from your console:
Place it in the user-equivalent path in RPCS3.
This is a big step in supporting fully accurate PS3 emulation. XMB is not only an interface, it also communicates with the game code. You see, PS3 was made in the modern consoles era, many security features have been placed so game code depend a lot on the hosting environment for obtaining and saving a lot of information. This is being done to protect the PS3 files frrom malicious behaviour. This is slower than obtaining the information dirrectly by the game process and induces dependencies.
Previously, RPCS3 skipped these operations and manipulated information in HLE, breaking dependecy chains and CPU thread scheduler activity load. This reduced compatibility of many games and is likely the cause of many instabilities today. RPCS3 had implemented many, many hacks around in the past for game compatibility.
One of which dependencies is known to flix #10954 for example, this dependency is currently being brought to HLE by @Yahfz.
We plan to move away frrom hacks, and improve game compatibility in the most accurate way. By allowing games to communicate with XMB.
Remaining tasks:
2026-08-31_22-59-54.mp4