libretro / scummvm

ScummVM main repository
https://www.scummvm.org
GNU General Public License v3.0
4 stars 6 forks source link

[iOS] Request: Use relative paths in scummvm.ini file. #43

Closed illando closed 11 months ago

illando commented 11 months ago

Would be possible to change the way the paths are stored inside the scummvm.ini file fo the iOS version?

The problem is that they are extended and complete paths, that contains a code number of the app. Example: themepath=/private/var/mobile/Containers/Data/Application/9450F3FE-2897-4030-9D0D-C09FCAB44ECE/Documents/RetroArch/system/scummvm/theme and that is working fine ...till you don't update RA, because sideloading a new updated IPA, it will have another number and the paths will became no more valid, forcing you to reassign the theme folder, the extra folder and the soundfont folder.

Maybe a solution could be to make the path relative like inside the retroarch.cfg file: Example: input_overlay = "~/Documents/RetroArch/overlays/gamepads/neo-retropad/neo-retropad.cfg"

Thanks.

spleen1981 commented 11 months ago

You can already use relative paths in scummvm.ini, just set it in scummvm GUI (Global option > Paths) or directly in scummvm.ini

illando commented 11 months ago

Thanks @spleen1981 it's working perfectly but only editing the scummvm.ini file paths like this: themepath=~/Documents/RetroArch/system/scummvm/theme

Unfortunately in iOS, if the saved paths are not valid or you press the X icon in the ScummVM GUI resetting a path, and you start browsing the folders, you can not go over /private/var because there's no more folder there. (Mobile folder is supposed to be visible). Another problem is that the navigation of the Scummvm GUI in Retroarch for iOS is almost impossible using the touchscreen controller because anytime you move the mouse arrow using the directional pad, it press B button (left mouse) automatically. The only way is attach an external controller because the directional pad works correctly there.

spleen1981 commented 11 months ago

if the saved paths are not valid or you press the X icon in the ScummVM GUI resetting a path, and you start browsing the folders, you can not go over /private/var because there's no more folder there. (Mobile folder is supposed to be visible)

If a folder specified is no more valid/accessible, just remove it or press the X icon and restart the core, it should default to retroarch system directory.

anytime you move the mouse arrow using the directional pad, it press B button

That's strange, D-Pad input from real gamepad or on-screen retropad is the same input, core side, so if one works the other shoud work as well unless there is some different setting in retroarch. Tested on Android, it works. Maybe you can try again with a clean retroarch.cfg. Are you on the latest core version?

illando commented 11 months ago

If a folder specified is no more valid/accessible, just remove it or press the X icon and restart the core, it should default to retroarch system directory.

@spleen1981 I did it but as you can se from the attached video you can not proceed to the correct path more than /private/var. Maybe after pressing the X icon it 's not going to the retroarch system directory but to another directory with similar structure. Video1

That's strange, D-Pad input from real gamepad or on-screen retropad is the same input, core side, so if one works the other shoud work as well unless there is some different setting in retroarch. Tested on Android, it works. Maybe you can try again with a clean retroarch.cfg. Are you on the latest core version?

Yes i'm on the latest version, and I also tried deleting retroarch.cfg and starting from scratch. Here's another video. As you can see when I move the arrow over any button it automatically click. Video2

spleen1981 commented 11 months ago

you can not proceed to the correct path

I think it's a matter of permissions on iOS. Anyways 1071edd59fa4e47201721a3e44e09b9a4c326e6c implements an improvement in default paths initialization, now last browsed path will default to HOME path if available or RA system path otherwise. Just reset last browser path and restart core.

I move the arrow over any button it automatically click

Now I get it, if you short tap on retropad overlay there is a conflict between retropad and touch screen controls, that is some kind of bug of RA and should be handled in the frontend. Anyways to handle this core-side, 7f6d9542e4f2665a84b2988dbe41592c2ef396ba implements a new option Cursor > Exclusive cursor control with RetroPad, once activated cursor is only controlled through retropad.

illando commented 11 months ago

Hi @spleen1981 I can confirm the problem of the retropad touch screen is totally solved thanks to the new "exclusive cursor control with Retropad" option.

I've just updated the app with the last daily build and also the path problem seems solved. Now the core can auto-update the paths also if the number of the build is different. Checking ScummVM.ini file everything seems fine except for the "soundfont=" variable that keeps the old path. Could you fix also this small problem please? Thanks a lot!

spleen1981 commented 11 months ago

"soundfont=" variable that keeps the old path

feature added with 0f6773217c670368de73348e201495cc4456023f

illando commented 11 months ago

@spleen1981 Everything works now. I believe you can close this issue now! Thanks again!!!