libretro / RetroArch

Cross-platform, sophisticated frontend for the libretro API. Licensed GPLv3.
http://www.libretro.com
GNU General Public License v3.0
10.2k stars 1.82k forks source link

Android: Run "Update Core Info File" automatically for "Core Downloader" if the "cores" directory is empty #16087

Closed davidhedlund closed 8 months ago

davidhedlund commented 9 months ago

First and foremost consider this:

Description

Expected behavior

1) If you go to "Main Menu -> Online Updater -> Update Core Info Files" and 2) if you have not executed "Main Menu -> Online Updater -> Update Core Info Files" before first[1] it should be automated.

1: many people don't know that you have to do this in Android since it's not needed in GNU/Linux for example because packages are downloaded from the terminal

Actual behavior

Main Menu -> Online Updater -> Update Core Info Files -- the list is empty

Steps to reproduce the bug

In RetroArch:

Bisect Results

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

Version/Commit

You can find this information under Information/System Information

Environment information

hizzlekizzle commented 9 months ago

This is equally an issue (or not) regardless of which platform you're on. I think it's a decent idea, myself.

RobLoach commented 9 months ago

Rather than having it download them on runtime, could we package the .info files with the .apk?

warmenhoven commented 9 months ago

The .info files are packaged with the .apk. I'm not sure why it's not seeing them properly. I think what happened was at some point the android packaging got updated in a way that wasn't entirely compatible with the current bundle_assets handling.

warmenhoven commented 9 months ago

Unrelated to Android, I've started working on this for tvOS. tvOS has a completely different problem with the current bundle_assets handling that is probably best served by having it downloaded at runtime due to other limits on the .ipa size. That handling will probably end up covering this case as well.

warmenhoven commented 9 months ago

https://github.com/libretro/RetroArch/pull/16088

RobLoach commented 9 months ago

Optimally it would ship both the assets and .info files with the package, and be accessible. RetroArch should be usable if you don't have an internet connection :upside_down_face:

warmenhoven commented 9 months ago

Yeah, I see your point. I've tweaked the PR so it still prefers assets.zip but if it can't open it for whatever reason it will fall back to downloading what it needs.

On tvOS it's sort of assumed that there's always a network connection as the device isn't really usable without one.

davidhedlund commented 9 months ago

First and foremost consider this:

* Only RetroArch bugs should be filed here. Not core bugs or game bugs

* This is not a forum or a help section, this is strictly developer oriented

Description

Expected behavior

1. If you go to "Main Menu -> Online Updater -> Update Core Info Files" and 2) if you have not executed "Main Menu -> Online Updater -> Update Core Info Files" before first[1] it should be automated.

1: many people don't know that you have to do this in Android since it's not needed in GNU/Linux for example because packages are downloaded from the terminal

Actual behavior

Main Menu -> Online Updater -> Update Core Info Files -- the list is empty

Steps to reproduce the bug

* In Android: Clear data for RetroArch first (this will wipe everything, do it at your own risk)

In RetroArch:

* Main Menu -> Online Updater -> Update Core Info Files -- the list is empty

* Main Menu -> Online Updater -> Core Downloader

* Main Menu -> Online Updater -> Update Core Info Files -- the list is populated now

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.16.0 (F-Droid)

Environment information

* OS: Android

* Compiler: -

You don't need to run Update Core Info Files before Core Downloader with retroarch.apk (200 MB) downloaded from https://retroarch.com/ since it already comes bundled with the core info files.

But I the F-Droid apk is only 23.5 MB and is not bundles with the core info files. So if a package comes without the core info files, it would be nice if RetroArch detected this and downloaded them automatically.

RobLoach commented 9 months ago

But I the F-Droid apk is only 23.5 MB and is not bundles with the core info files.

Where is the F-Droid package source? The package maintainer should add the assets, .info files, shaders, everything.

davidhedlund commented 9 months ago

But I the F-Droid apk is only 23.5 MB and is not bundles with the core info files.

Where is the F-Droid package source? The package maintainer should add the assets, .info files, shaders, everything.

Thank you. I copy/pasted that to https://gitlab.com/fdroid/rfp/-/issues/1933#note_1719595052

licaon-kter commented 9 months ago

Where is the F-Droid package source?

https://f-droid.org/packages/com.retroarch/ -> build metadata -> https://gitlab.com/fdroid/fdroiddata/-/blob/master/metadata/com.retroarch.yml#L52-L83

The package maintainer should add the assets, .info files, shaders, everything.

Really? I've literally interacted for 6 months with this community asking how to build this, and getting feedback and advice all the way, about WHAT to include: https://github.com/libretro/RetroArch/issues/11922 and the conclusion is: I did it wrong????

C'mon :disappointed:

davidhedlund commented 9 months ago

Where is the F-Droid package source?

https://f-droid.org/packages/com.retroarch/ -> build metadata -> https://gitlab.com/fdroid/fdroiddata/-/blob/master/metadata/com.retroarch.yml#L52-L83

The package maintainer should add the assets, .info files, shaders, everything.

Really? I've literally interacted for 6 months with this community asking how to build this, and getting feedback and advice all the way, about WHAT to include: #11922 and the conclusion is: I did it wrong????

C'mon 😞

Your time and contributions are deeply appreciated. But can you please complement it to make it more useful?

licaon-kter commented 9 months ago

I've asked continuously WHAT and HOW to include.

IF you have the answers please don't keep them secret :shrug:

davidhedlund commented 9 months ago

I've asked continuously WHAT and HOW to include.

IF you have the answers please don't keep them secret 🤷

Oh, sorry.

Let's continue the conversation at https://github.com/libretro/RetroArch/issues/11922 @RobLoach

licaon-kter commented 9 months ago

Let's continue the conversation at https://github.com/libretro/RetroArch/issues/11922 @RobLoach

Maybe better here as that one is huge

davidhedlund commented 9 months ago

Let's continue the conversation at #11922 @RobLoach

Maybe better here as that one is huge

This issue is dedicated to something else. Feel free to open a new issue and send the link here.

davidhedlund commented 9 months ago

Let's continue the conversation at #11922 @RobLoach

Maybe better here as that one is huge

Here you go: https://github.com/libretro/RetroArch/issues/16126

RobLoach commented 9 months ago

I've asked continuously WHAT and HOW to include.

That's excellent! Thanks for linking the F-Droid package. Hopefully we can help out in packaging these assets 👍

davidhedlund commented 9 months ago

I've asked continuously WHAT and HOW to include.

That's excellent! Thanks for linking the F-Droid package. Hopefully we can help out in packaging these assets 👍

Can we help out with that here?: