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
Add libretro VFS support #58
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good for me.
Do you think that this will make it into Kodi's "Matrix" release? |
The clock is ticking down, but we still have a couple months before Matrix's feature freeze. It just depends on time, and this PR is a rather low priority. I'm happy to test and merge if someone finishes the work though. |
15ddf9d
to
874b565
Compare
I added support for libretro v2 and v3 VFS API. The code compiles, but I don't have time to test currently. @Hedda can you help generate test procedures, like what games and cores should we test? |
9ddc1f1
to
29779e3
Compare
@garbear Do you know where updated info is upstream about which game cores support libretro VFS and version of its VFS? https://kodi.wiki/view/Game_add-ons#Libretro_cores Does not look like libretro VFS support and version information is available in all cores today? https://github.com/libretro/gambatte-libretro/search?q=vfs Maybe metadata information about VFS and VFS version should be addon.xml for each Kodi Game Addon? https://github.com/kodi-game/game.libretro.gambatte/tree/master/game.libretro.gambatte That way the information would be available in downstream and easily accessible to Kodi RetroPlayer end-users for testing? |
The "VFS support" in the article is something different than this PR - it specifies whether a core can load from memory. As you can see, clearly games that accept entire disc images can't support loading from memory. The support in this PR is about passing a path, even if "VFS support" is no, to the core, and the core uses Kodi's VFS API. We can only detect if the libretro core supports loading from memory (VFS support in the core), but we can't detect if the core uses Kodi's VFS API, except by manual code inspection.
834 results? https://github.com/search?q=org%3Alibretro+vfs&type=code
Manual code inspection just isn't scalable, and has to be re-performed often as cores are updated to use frontend VFS. |
We might as well merge this to allow for testing. @AlwinEsch should I target Matrix because that's what we're developing on? Do we later forward-port everything to Nexus and leave Matrix behind? |
Imports libretro.h at version 514534f99b9647a83ee6801bd51ead834a55dac3 of the RetroArch repo.
Would be OK, but think that a Matrix and Nexus should remain largely the same. As long as nothing has changed in the API for Kodi. |
So we merge into Matrix? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes can be come in Matrix 👍
Description
This PR adds support for version 1 of the libretro VFS API (libretro/RetroArch#5664). It's a straightforward translation between the libretro side and the Kodi side.
How has this been tested?
Time is short, so I haven't started testing yet. It compiles against Matrix and visibly appears correct. I'm PRing now to get some visibility and keep track of this task for later.