Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Android: Document that the default value of "Settings -> Directory -> Controller Profiles" must be changed to "/storage/emulated/0/RetroArch/autoconfig" for some controllers #15996

Closed
davidhedlund opened this issue Dec 11, 2023 · 6 comments

Comments

@davidhedlund
Copy link
Contributor

Description

"Settings -> Directory -> Controller Profiles" describes the path for the autoconfig directory, which by default is set to : /data/user/0/com.retroarch/autoconfig

However, in order to access the /data/0/ directory on an Android device, you typically need root permissions, as it is a system directory.

"Settings -> Directory -> Controller Profiles" can be modified, but it is inconvenient for users who are familiar that the directory is set in the retroarch user directory. For example in GNU/Linux any user can rename the autoconfig files since they are located in : ~/.config/retroarch/autoconfig/

The ~/.config/retroarch/ directory is very similar to /storage/emulated/0/RetroArch/:

  • assets
  • autoconfig
  • cheats
  • config
  • cores
  • database
  • downloads
  • overlay
  • playlists
  • records
  • records_config
  • retroarch.cfg
  • screenshots
  • shaders
  • thumbnails

Sometimes you need to be able to modify the autoconfig files. For example:

  • In GNU/Linux: The Nintendo Switch Pro Controller has two cfg files (Nintendo - Switch Pro Controller (old).cfg (uncommented input_vendor_id, and input_product_id), and Nintendo - Switch Pro Controller.cfg (commented input_vendor_id, and input_product_id). You have to uncomment the old cfg file, and comment the new cfg file, if you are using older Android versions.
  • In Android: In the future it's possible a similar scenario will occur for Sony DualSense: Sony_DualSense.cfg, and Sony_DualSense_(old).cfg -- See my PR. This means that you need to be able to modify the files by comment and uncomment input_vendor_id, and input_product_id. You cannot do that if the autoconfig files are downloaded in /data/user/0/com.retroarch/autoconfig.

Expected behavior

If the autoconfig directory path in Android was: /storage/emulated/0/RetroArch/autoconfig -- it would be possible for any user to rename the filenames.

Actual behavior

[What is actually happening]

Steps to reproduce the bug

  • Main Menu -> Online Updater -> Update Controller Profiles
  • Use a DualSense controller
  • Try to change

Bisect Results

[Try to bisect and tell us when this started happening]

Version/Commit

You can find this information under Information/System Information

  • RetroArch: 1.9.12

Environment information

  • OS: Android
  • Compiler: None

See also:

@hizzlekizzle
Copy link
Contributor

We put them there on purpose, actually, so nobody can "break" their system by monkeying with them. If someone needs to make manual changes, we typically suggest they make a new directory in their user-writeable storage and redirect the directory location setting there and re-fetch from the online updater. Then, the pristine original ones are still in place and it will fall back to them if they have to delete their retroarch.cfg.

@davidhedlund
Copy link
Contributor Author

davidhedlund commented Dec 11, 2023

We put them there on purpose, actually, so nobody can "break" their system by monkeying with them. If someone needs to make manual changes, we typically suggest they make a new directory in their user-writeable storage and redirect the directory location setting there and re-fetch from the online updater. Then, the pristine original ones are still in place and it will fall back to them if they have to delete their retroarch.cfg.

Thank you for letting me know.

  • But why are they downloaded at ~/.config/retroarch/autoconfig/ in GNU/Linux? It makes it possible for regular users to break it.
  • Can you please reconsider this (please read the "Sometimes you need to be able to modify the autoconfig files. For example:") text again. People with a DualSense will not be able to use it without either figure out that they need to change the autoconfig directory, or consulting support. So opinion strongly that the autoconfig directory should be placed in /storage/emulated/0/RetroArch/.

@hizzlekizzle
Copy link
Contributor

It's not as big of a deal in linux because it is normal to have a keyboard handy. This is not the case for Android devices.

@davidhedlund
Copy link
Contributor Author

It's not as big of a deal in linux because it is normal to have a keyboard handy. This is not the case for Android devices.

Alright. But can we document that users need to modify the directory if they are using some of the "new controllers (like PlayStation DualSense)" in order to be able to modify the cfg files as I explained above?

@hizzlekizzle
Copy link
Contributor

Sure. Where do you think that should be documented?

@davidhedlund davidhedlund changed the title Change the default value of "Settings -> Directory -> Controller Profiles" to "/storage/emulated/0/RetroArch/autoconfig" Android: Document that the default value of "Settings -> Directory -> Controller Profiles" must be changed to "/storage/emulated/0/RetroArch/autoconfig" for some controllers Dec 11, 2023
davidhedlund added a commit to davidhedlund/retroarch-joypad-autoconfig that referenced this issue Dec 11, 2023
# How to use: Unless your phone is rooted, you need to access the autoconfig files
# outside the root file system so you can uncomment the input_vendor* variables,
# in order to enable the controller. To do this:
# * Change the the value in: Settings -> Directory -> "Controller Profiles" from
#   /data/user/0/com.retroarch/autoconfig to /storage/emulated/0/RetroArch/
# * Download the controller files: Settings -> Online Updater -> Update Controller Profiles



See libretro/RetroArch#15996 for the discussion
@davidhedlund
Copy link
Contributor Author

Sure. Where do you think that should be documented?

I added it to: libretro/docs#910

See, commit: libretro/docs@0811f99

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

No branches or pull requests

2 participants