Skip to content

Add support to play from a BD Drive (currently only on Windows) - #18648

Merged
elad335 merged 8 commits into
RPCS3:masterfrom
digant73:add_bd_support
Apr 29, 2026
Merged

Add support to play from a BD Drive (currently only on Windows)#18648
elad335 merged 8 commits into
RPCS3:masterfrom
digant73:add_bd_support

Conversation

@digant73

@digant73 digant73 commented Apr 27, 2026

Copy link
Copy Markdown
Contributor

Follow up of #18345 to add support (currently only on Windows; see notes below) for playing a PS3 disc game directly from a Blu-Ray Disc Drive.

HOW IT WORKS:

  • The BD drive can be added as any other game so from VFS games or from Add Games menu. In case it is selected from VFS games, any attempt to write files is discarded, e.g. file Disc Games Can Be Put Here For Automatic Detection.txt
  • It scans the default redump keys folder <rpcs3>/data/redump (it currently needs to be manually created due it is not yet provided by rpcs3 installation) to find a matching decryption key

NOTES:

  • Support is currently provided on Windows where I can fully test it. I cannot test under other OS. However, the additions needed for the other OS are limited only on fs::file.h/cpp. In particular inside the following new functions:
    • bool is_optical_raw_device(const std::string& path);
    • bool get_optical_raw_device(const std::string& path, std::string* raw_device = nullptr);
  • Icons etc. are always refreshed (ISO cache cannot be used due mtime on raw device is not available and any cache check would always fail)
  • Code in ISO.h/cpp needed some rework to properly manage a read on a raw device (alignment on offset, size and memory is mandatory). The BD drive needs to be detected as a file, not as a folder

MINOR FIXES:

  • Fixed wrong specifier used in logging on ISO.h/cpp

relates to #18345 (not marked as closes due to currently supported only on Windows)

@digant73 digant73 changed the title Add bd support Add support to play from BD Drive Apr 27, 2026
Comment thread rpcs3/Emu/System.cpp
const std::string games_common_dir = g_cfg_vfs.get(g_cfg_vfs.games_dir, emu_dir);

if (make_path_verbose(games_common_dir, true))
if (!is_iso_file(games_common_dir) && make_path_verbose(games_common_dir, true))

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't see a point in this

@digant73 digant73 Apr 27, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

otherwise a Fatal error (trying to write on a read only device) is logged. You can see it in current build simply setting a VFS games to a dvd drive.
Or eventually the log level could be converted to Error

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why would you do that? That's user error

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's to provide dynamic scan (and the only available feature is based on VFS) also for BD drive. IMO, dynamic list is very useful (I basically use only that, so I can display some games instead of others). Of course, the Fatal error is not impacting the functionality (it will work without any issue). I simply suppressed that misleading error

Comment thread Utilities/File.cpp Outdated
Comment thread Utilities/File.cpp Outdated
Comment thread Utilities/File.cpp Outdated
Comment thread Utilities/File.cpp Outdated
Comment thread Utilities/File.cpp Outdated
Comment thread rpcs3/Loader/ISO.cpp Outdated
Comment thread rpcs3/Loader/ISO.cpp Outdated
Comment thread rpcs3/Loader/ISO.cpp Outdated
Comment thread rpcs3/Loader/ISO.cpp Outdated
Comment thread rpcs3/Loader/ISO.cpp Outdated
@Megamouse Megamouse added Loader Involving the load of PS3 file formats ISO labels Apr 28, 2026
Comment thread Utilities/File.cpp
Comment thread Utilities/File.cpp Outdated
Comment thread Utilities/File.h
Comment thread Utilities/File.cpp
Comment thread Utilities/File.cpp Outdated
@digant73 digant73 changed the title Add support to play from BD Drive Add support to play from a BD Drive (currently only on Windows) Apr 28, 2026
@fajerblade

Copy link
Copy Markdown

Is it possible to play games via bd drive on linux?

@digant73

digant73 commented May 12, 2026

Copy link
Copy Markdown
Contributor Author

Is it possible to play games via bd drive on linux?

not yet. I will work on it in few days but I will need testing from users due to I currently have not access to linux OS

@fajerblade

Copy link
Copy Markdown

Hi! How is it going? Are you making any progress? On windows it works perfectly but I really want it to work also on my Steam Os. I really appreciate your hard work! Have a nice day :)

@digant73

Copy link
Copy Markdown
Contributor Author

Hi! How is it going? Are you making any progress? On windows it works perfectly but I really want it to work also on my Steam Os. I really appreciate your hard work! Have a nice day :)

please test PR #19233 and provide there any feedback

AniLeo pushed a commit that referenced this pull request Aug 31, 2026
Follow up of #18648 and #18345 adding BD Drive support to the remaining supported OSes.
As it happens on Windows, both physical BD Drive and virtual drive (e.g. mounted `.iso` file) are supported.

Code for mac OS and FreeBSD provided by AI.

- key files need to be provided under `<rpcs3>/data/redump` folder (currently it needs to be manually created). This folder is also already the fallback folder for any encrypted ISO file

Fixes #18345
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ISO Loader Involving the load of PS3 file formats

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants