Skip to content

feat: Improve PS5 (Prospero) SELF loader support in eboot.bin parsing#89

Open
Kaotic wants to merge 3 commits into
par274:mainfrom
Kaotic:main
Open

feat: Improve PS5 (Prospero) SELF loader support in eboot.bin parsing#89
Kaotic wants to merge 3 commits into
par274:mainfrom
Kaotic:main

Conversation

@Kaotic

@Kaotic Kaotic commented Jul 12, 2026

Copy link
Copy Markdown
Contributor

Description

Improved the SELF (Signed Executable and Linkable Format) loader to properly support both PS4 (Orbis) and PS5 (Prospero) eboot.bin files.

Changes

  • Updated SelfHeader struct to the modern unified layout used by both PS4 and PS5.
  • Switched magic number reading to LittleEndian (required for correct detection of 0xEEF51454 / Prospero magic).
  • Removed outdated PS4-specific layout checks (HasKnownLayout, _identX fields, and 0x22 unknown value).
  • Improved error messages and validation logic for better debugging.

Testing

  • Successfully parses PS5 eboot.bin files (magic 0xEEF51454).
  • Maintains backward compatibility with PS4 Orbis SELF files.
  • No breaking changes to existing ELF loading logic.

Improved the SELF (Signed Executable and Linkable Format) loader to properly support both PS4 (Orbis) and PS5 (Prospero) eboot.bin files.
@par274

par274 commented Jul 12, 2026

Copy link
Copy Markdown
Owner

We are not interested in PS4 emulation

@par274 par274 closed this Jul 12, 2026
@Kaotic

Kaotic commented Jul 12, 2026

Copy link
Copy Markdown
Contributor Author

Hi @par274,

I think there was a misunderstanding with the previous PR.

This PR does NOT add PS4 emulation.
The project was previously using an outdated Orbis (PS4) SELF header structure. This PR updates it to the modern unified format used by both PS4 and PS5, with proper support for native PS5 Prospero executables (magic 0xEEF51454).

Summary of changes:

  • Switched to correct LittleEndian magic reading
  • Updated SelfHeader to the current standard structure
  • Proper detection and parsing of PS5 SELF files
  • Maintained backward compatibility with Orbis
  • Improved ELF offset calculation and segment handling

This directly improves PS5 eboot.bin loading, which aligns with the project's goal of focusing on PlayStation 5 emulation.

Sources confirming the header format:

Would you mind reopening the PR? Happy to adjust title/description if needed.

Thanks!

@par274

par274 commented Jul 12, 2026

Copy link
Copy Markdown
Owner

I’m seeing improve for PS5, but Orbis doesn’t have a job there, if you think it’s necessary for PS5, I need to check it out.

If you remove Orbis magic lines than I review this again.

@par274 par274 reopened this Jul 12, 2026
@Kaotic

Kaotic commented Jul 12, 2026

Copy link
Copy Markdown
Contributor Author

You're right that the main goal is PS5. However, keeping Orbis support is necessary for the following reasons:

Why Orbis (PS4) compatibility matters even for a PS5 emulator:

  1. PS5 has official backward compatibility with PS4 games

    • PS5 runs many PS4 titles using the Orbis runtime (the same PS4 OS environment).
    • Many PS5 games and system modules still use the Orbis SELF format or mix both
    • Official Sony documentation and the PS5 SDK still reference Orbis structures for compatibility.
  2. Real-world PS5 executables

    • A lot of PS5 titles (especially early ones or ports) ship with both PS4 and PS5 binaries, or use Orbis-style SELF headers.
    • Some system files and fake-selfs on PS5 still use the Orbis magic.
  3. Technical reality

    • The modern SELF header format (the one I used) is unified / it works for both Orbis and Prospero. Removing Orbis support would actually make the parser more fragile for real PS5 content.

Sources:

  • etaHEN / PS5 developer wiki: Both SELF_ORBIS_MAGIC and SELF_PROSPERO_MAGIC are checked on PS5.
  • PS5 PUP / firmware analysis: Many components still use Orbis-style SELF.

The change is not "adding PS4 emulation", its making the SELF loader correct and future-proof for PS5 while keeping compatibility with the real hardware behavior.

Let me know what you think.

@par274

par274 commented Jul 12, 2026

Copy link
Copy Markdown
Owner

I understand the reasoning, but I still need concrete evidence that native PS5 content actually requires accepting the Orbis SELF magic.

Backward compatibility alone isn’t enough justification, since SharpEmu is not intended to run PS4 software.

If you have examples of native PS5 executables or system modules that use the Orbis SELF magic and would fail without it, please point me to them. If that’s the case, I’m happy to reconsider keeping the additional magic.

Kaotic added 2 commits July 12, 2026 21:48
Add a Split button to detach the emulator console into a resizable window.

The detached console keeps search, auto-scroll, copy, and clear controls. The main console hides while detached and restores when the split window closes if it was previously open.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants