libretro / libretro/libretro-common
VFS discussion
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 180
- Forks
- 98
- Avg merge
- 7h 16m
- Merged PRs (30d)
- 1
Description
A lot of discussion has been going on about a VFS layer for libretro.
I think it would be important to discuss, the problem, outline the goals and a set of requirements before attempting to come up with a solution.
I've been reading the chat, and the PRs that have been opened about this and I have found the following:
Problem
The API contemplates two scenarios regarding content loading:
- The frontend loads content for them and hands over the data and the size of such data
- The frontend hands the core the path to the content file that the user requested.
I assume any frontend including Retrix might be able to work as-is on the first scenario. Load the content th content in-behalf of the core and just pass the data over.
The second scenario is often used by contat that might be:
a. to big to be pre-loaded in memory by the frontend
b. might be composed of several files
c. might need patching before loading
d. might be inside an archive and require many of the files within the archive
d. might need to write to the content file or the content dir (nintendo FDS for instance)
Proposals
The proposal is a VFS ala KODI which allows the frontend to get data from different filesystems and would then hand over the data or a file handle to the core.
https://github.com/libretro/Genesis-Plus-GX/pull/98
http://dpaste.com/13WQAV1
https://github.com/libretro/RetroArch/pull/3715
Use cases
- A user might have a file hosted in a web server (the frontend would need to support http to be able to retrieve the file in the first place)
- Allow using Google SAF to load files from various content providers on Android
- Allow using native iOS APIs to load files from various content providers on iOS
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the linked Genesis-Plus-GX and RetroArch pull requests and the accompanying proposal to understand the existing VFS discussion. Define the problem, goals, requirements, and use cases before attempting a solution; done means the project has an agreed direction rather than an unscoped implementation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- operating-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100