libretro / RetroArch

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

(Menu) Easier ROM and BIOS management #10065

Open mtoensing opened 4 years ago

mtoensing commented 4 years ago

ROM folder and adding them to a playlist I know that I have to add the roms to the rom folder and start adding them. Roms that exist in the database are added to the playlist. If I use “add manually” then the database will be ignored and the roms will be associated to a core.

Wouldn’t it be much easier for everyone if the system folders like “snes”, “mame” or “dreamcast” would already exists? Then all roms ins e.g. snes would be added to a manual playlist for the core “snes” right away. The would be added automatically. Then the user could optionally check this roms against the database and add thumbnails. But this would be really optional.

BIOS management Why isn’t there a folder called “bios” and not “System” or “core/system” on Switch. Some cores even need there special subfolder. You have to look this up on the internet to understand where and which bios files needs to be there.

A unified bios folder with a checklist with checksum check and a checkmark for “passed” if the correct bios with the correct name exist in this folder would be much more convenient.

Expected behavior

rom folder contains folders like "snes", "mame", "psx" and roms are automatically added to a manual playlist associated to the corresponding core of the folder. These playlist can then be scanned against the database and for thumbnails if you user wants to.

a bios folder is scanned after every restart for the correct bios files. RetroArch provides a checklist with checksum check to easily see what is missing.

RobLoach commented 4 years ago

Wouldn’t it be much easier for everyone if the system folders like “snes”, “mame” or “dreamcast” would already exists?

You're suggesting having empty folders? Optimally, they would be named the same as the playlist names. Unsure how people would think about having up to 80 different empty folders.

There is an issue about having the Content Directory automatically scanned over at https://github.com/libretro/RetroArch/issues/3322

Why isn’t there a folder called “bios” and not “System” or “core/system” on Switch. Some cores even need there special subfolder. You have to look this up on the internet to understand where and which bios files needs to be there. A unified bios folder with a checklist with checksum check and a checkmark for “passed” if the correct bios with the correct name exist in this folder would be much more convenient.

There is a system folder already, isn't there? It's a shared folder... BIOS files are checked in the Core Information screen. There is a discussion to improve this at https://github.com/libretro/RetroArch/issues/6514

hizzlekizzle commented 4 years ago

It shouldn't be called BIOS, either, since what goes into it is not always BIOS. That is, we chose a general name because it serves a more general purpose. Some cores store assets in there, sometimes specific configs, etc.

I do think there should be a standard way to separate those files by core, since we can't guarantee that all cores for a given system/purpose will be compatible with the same files. System/core_name or whatever.

mtoensing commented 4 years ago

maybe separated folders by core with a bios folder if a bios is needed? Like system/psx/bios?

Issue #3322 sounds very promising. That is exactly what I meant.

And thank you for considering my thoughts.

RobLoach commented 4 years ago

maybe separated folders by core with a bios folder if a bios is needed? Like system/psx/bios?

Separating them into folders by system would mean...

Atari - 400-800/ATARIXL.ROM
Atari - 400-800/ATARIBAS.ROM
Atari - 400-800/ATARIOSB.ROM
Atari - 5200/5200.rom
Atari - 7800/7800 BIOS (E).rom
Atari - Lynx/lynxboot.img
Atari - ST/tos.img

You can find all the system files asked for by some cores in BIOS.dat. This would be quite a bit of micromanagement for the end user, which is why its just easier to stick all the files in one folder. We haven't found any conflicts yet, and when there has been, we've just documented the new names to avoid such a problem.

It's also completely up to each core how it finds those files. All libretro provides is a System directory, and then the core loads $SYSTEMDIR/file. We could introduce an API to search and find within that directory for each core. But again, this isn't the responsibility for RetroArch, but the cores themselves.