libretro / libretro/RetroArch

`Save Controller Profile` does not work on Android by default

Open
#16,799 1 comment 3 reactions 0 assignees View on GitHub

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 Controls
  • Save Controller Profile
Version/Commit

You can find this information under Information/System Information

  • RetroArch: 1.19.1
Environment information
  • OS: Android

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.