Skip to content

RetroArch freezes when intent is sent with a remote saf mount path #19229

Description

@Terramoto

I've just recently started to play with emulators and installed RetroArch + Daishijo on Android, because i already had a Batocera instance, in the living room hosting roms, i didn't want to copy the files and decided to setup a remote mount using rclone, through an app called "RSAF" which essentially uses rclone to mount the remote folder locally.
i'm able to load the rom directly from RetroArch but if sent via intent using -e ROM {file.uri} it causes it to freeze.

Issue

When starting games on RetroArch from Daishijiro using {file.path} fails with file not exist in path. Switching to {file.uri} causes RetroArch to freeze after obtaining the file descriptor.

Reproduce

In Daishijiro add the path and scan for roms, in settings edit player arguments to replace {file.path} with {file.uri}

example intent:

-n com.retroarch/com.retroarch.browser.retroactivity.RetroActivityFuture
-e ROM content://io.github.x0b.rcx.vcp/tree/rclone%2Fremotes%2Fminipc%3A%2Froms%2Fgba/document/rclone%2Fremotes%2Fminipc%3A%2Froms%2Fgba%2FBanjo-Kazooie%20-%20Grunty's%20Revenge.gba 
-e LIBRETRO mgba
-e CONFIGFILE /storage/emulated/0/Android/data/com.retroarch/files/retroarch.cfg

It should load the game but instead it starts RetroArch with a blank screen and eventually timesout.

AI suggests it could to be related to how the stream size is retrieved, the following patch resolved the issue for me. I was wondering if someone could review the code to see if it's something that should be adapted or if it's not recommended.

retroarch-android-rsaf-content-uri.patch

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions