`Save Controller Profile` does not work on Android by default
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 14.1k
- Forks
- 2.2k
- Avg merge
- 7h 35m
- Merged PRs (30d)
- 51
Description
Description
In the default RetroArch configuration file (retroarch.cfg), the joypad autoconfig directory is set to "/data/user/0/com.retroarch/autoconfig" which requires a rooted Android phone. Most Android phones are not rooted. Due to this setting, RetroArch is unable to write files to this directory.
I just added this temporary workaround for Android in our Joypad Auto Configuration guide: https://docs.libretro.com/guides/controller-autoconfiguration/#android-configuration
Expected behavior
This improvement streamlines the process for users, eliminating the need to follow the Android section in our Joypad Auto Configuration guide (https://docs.libretro.com/guides/controller-autoconfiguration/#android-configuration) in order to generate autoconfig files for Android users.
Update configuration file
The current default retroarch.cfg contains:
joypad_autoconfig_dir = "/data/user/0/com.retroarch/autoconfig"
I propose that we replace the default joypad autoconfig directory path with a user-accessible location:
joypad_autoconfig_dir = "/storage/emulated/0/RetroArch/autoconfig"
Autoconfig file migration
To ensure independence of the Update Controller Profiles option for the controllers to work by default, I suggest that RetroArch automatically copying the system autoconfig files from /data/user/0/com.retroarch/autoconfig to the newly designated user directory /storage/emulated/0/RetroArch/autoconfig directory.
Actual behavior
"Error saving controller profile."
The joypad autoconfig file is not generated.
Steps to reproduce the bug
Settings > Input > Retropad Binds > Port 1 Controls:Set All ControlsSave Controller Profile
Version/Commit
You can find this information under Information/System Information
- RetroArch: 1.19.1
Environment information
- OS: Android
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the default retroarch.cfg and the Android handling behind Settings > Input > Retropad Binds > Port 1 Controls. Reproduce the failure with Save Controller Profile, then compare the current /data/user/0/com.retroarch/autoconfig path with the proposed /storage/emulated/0/RetroArch/autoconfig path. Done means Android can save the profile without the documented workaround and existing autoconfig files remain usable.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, c
- Domain
- mobile-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100