Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PS3 / RPCS3 Support Checklist #14

Open
2 of 5 tasks
InvoxiPlayGames opened this issue Nov 27, 2023 · 2 comments · May be fixed by #19
Open
2 of 5 tasks

PS3 / RPCS3 Support Checklist #14

InvoxiPlayGames opened this issue Nov 27, 2023 · 2 comments · May be fixed by #19
Assignees
Labels
enhancement New feature or request long term An issue to be worked on in the future or with time question Further information is requested

Comments

@InvoxiPlayGames
Copy link
Member

InvoxiPlayGames commented Nov 27, 2023

A sort of "living issue" to hold and discuss the progress of a PS3 port. Suggestions and PRs very appreciated!

  • Build system
    • The options here are between ps3toolchain+PSL1GHT, or the PS3 SDK.
      • ps3toolchain+PSL1GHT does not support building SPRX files by itself. (WIP Makefile is in the ps3 branch)
      • PS3 SDK lacks community support, open documentation and uses outdated compilers.
    • I've decided on using the PS3 SDK for now, for SPRX support - wanting to migrate to ps3toolchain+PSL1GHT ASAP.
  • Plugin loader for CFW PS3.
    • A decent way to load the SPRX into memory on a PS3 running CEX CFW. (Evilnat, as a baseline)
    • (There do exist raw EBOOT patches, and they will still work with disc games since the EBOOT is in the update.)
  • Handling of PS3 platform weirdness.
    • PS3 modules have their own table of contents (TOC) in r2, that the game binary is expected to load and restore. If r2 isn't correct, global accesses will fail from either game or plugin context.
    • There's more but I haven't got there yet.
  • Address and structure ports for both BLUS 1.05 and BLES 1.06 versions of the game.
    • Binaries appear to be mostly identical across the two regions, but they aren't 1:1 so will need double-checking.
    • If using PS3 SDK, will also have to account for outdated GCC weirdness compared to the Wii one.
  • Options for RPCS3 and HEN PS3.
    • RPCS3 has a JIT cache meaning memory patches will need some extra work.
    • HEN PS3 should just need a different syscall to be used and more care about where memory is executed from.
@InvoxiPlayGames InvoxiPlayGames added enhancement New feature or request question Further information is requested long term An issue to be worked on in the future or with time labels Nov 27, 2023
@InvoxiPlayGames InvoxiPlayGames self-assigned this Nov 27, 2023
@InvoxiPlayGames InvoxiPlayGames linked a pull request Nov 27, 2023 that will close this issue
@InvoxiPlayGames InvoxiPlayGames pinned this issue Nov 27, 2023
@ihatecompvir
Copy link
Collaborator

I can confirm the BLES and BLUS binaries are virtually the same. Ghidra found ~19000 matching functions at the same address with the exact same instructions (and I didn't run any checks other than exact instruction match, which likely would have found the rest); there might be some things which are slightly different but for the most part I don't think we will need to worry about trying to hunt down addresses for both.

@kernaltrap8
Copy link

bit of a correction; HEN doesnt have more memory protections, it has the same protections as OFW. HEN only allows unsigned code exec, since HFW is just OFW with a older webkit thats exploitable. CFW isnt protected because those protections were patched out, which cannot be done on HEN because there are still LV1 protections that dont allow for custom kernels or kernel prx's.

@InvoxiPlayGames InvoxiPlayGames linked a pull request Feb 27, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request long term An issue to be worked on in the future or with time question Further information is requested
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants