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

[Feature request] Make folders creation more consistent #16498

Open
digant73 opened this issue Jan 3, 2025 · 4 comments
Open

[Feature request] Make folders creation more consistent #16498

digant73 opened this issue Jan 3, 2025 · 4 comments

Comments

@digant73
Copy link
Contributor

digant73 commented Jan 3, 2025

Quick summary

Mainly a follow up #16478.
Folder creation is already managed by RPCS3 on demand (when a file is needed to be created on folder).
This is properly done for example with cache, config, GUIConfigs folders.
Mountable folders such as dev_<xx>and games are also properly created according to vfs.yml in the correct location (mountable folders need to be created even if they are empty)
The remaining folders:

captures
patches
ppu_progs
recordings
savestates
screenshots
shaderlog
sounds
spu_progs

are currently inconsistently created/managed.
with the exception of patches folder currently not created on demand (if removed, an error is is reported when trying to download patches), all the above folders seem to be properly created on demand (e.g. if captures folder is removed it will be properly created when an RSX capture is saved).
But, currently, only the following subset of the above folders are always created at RPCS3 startup even if they will possibly remain used (they remain empty):

captures
patches
ppu_progs
savestates
shaderlog
sounds
spu_progs

I would simply make the code consistent avoiding the creation of the above subset of empty folders at startup. They will be eventually properly created if and when needed. E.g. if I never enable shader logging, I never get a capture, a recording, a screenshot, a savestate, just avoid the related useless empty folders leaving the environment in a more clean state

Details

No response

@Megamouse
Copy link
Contributor

What do any of the mentioned folders have to do with shader logging?

@Megamouse
Copy link
Contributor

"Folder creation is already managed by RPCS3 on demand (when a file is needed to be created on folder)."
That's not really true. We create most folders on startup.
Imo most folders should be created on startup. Not on file creation. Otherwise we would have to add a ton of code for no reason.
The only bug i see here is the patches folder issue. But honestly, that only happens if you tinker with the dir during runtime, which is never wise to do in any application.

@Megamouse
Copy link
Contributor

Also, I feel like this is another "I personally prefer to..." request.
Others might prefer it differently.

@digant73
Copy link
Contributor Author

digant73 commented Jan 3, 2025

no problem for me to chose the on-demand or the all folders creation at startup Currently it is a mix of them.
Yes, I would fix the error on patches folder independently from the policy you can decide to apply (it seems the only folder that eventually is not created if missing).
I also prefer to see a static folders hierarchy in the main application folder but I would also improve the current hierarchy providing category folders (avoiding the current ploriferation of confusing folders). I would organize the application with the following hierarchy:

cache
captures - additional content creation folders here, e.g. requested for troubleshooting
rsx - currently it is named captures
recordings
screenshots
shaderlog
config
gui_config - using same naming convention I see for all the other folders, so in lowercase
$~~~$ and _ as separator instead of current GUIConfigs

icons - in lowercase instead of current Icons
log - log files here
os_vfs - all the emulated PS3 OS FS here.
$~~~$ OS FS folders (e.g. dev_hdd0) are something that should not be mixed/scattered
$~~~$ on main application folder because users DO NOT and MUST NOT need to access
$~~~$ them manually. So just collect them in a default self-talking category folder.
$~~~$ Currently I need (I'm forced) to access it only for copying gamesaves, but in the
$~~~$ future a GUI to manage import and export of gamesaves could avoid that
dev_bdvd
dev_flash
dev_flash2
dev_flash3
dev_hdd0
dev_hdd1
dev_usb000
...
dev_usb<xxx>
games - it is also managed as VFS but it could be better to leave it here instead of
$~~~$ under os_vfs because it is meant to be accessed by users to manually
$~~~$ copy their games. Just avoid to mix it with OS
patches
progs
ppu
spu
qt6
savestates
sounds - not sure which feature populates it or if it is a zombie folder.
$~~~$ It is always empty in my case

You could create all the above category folders at startup. The on-demand creation of folder would make the application even more safe and robust. I see subfolders in captures are already on-demand, The same for cache, config, gui_config and savestates. IMO, VFS folders doesn't need on-demand (we can continue to mount or create them at startup). So basically a minor effort is required to implement the above hierarchy

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants