libretro / libretro-database

Repository containing cheatcode files, content data files, etc.
Creative Commons Attribution Share Alike 4.0 International
887 stars 788 forks source link

retroarch can't scan some ROM files. #1214

Open crocket opened 3 years ago

crocket commented 3 years ago
RobLoach commented 3 years ago

I could be wrong, but I think the Arcade dat needs to be done with "Manual Scan"? I am likely wrong on this though.

crocket commented 3 years ago

Some games in rdb/FBNeo - Arcade Games.rdb can be scanned without manual scan.

I don't know what's wrong with dreamcast database.

RobLoach commented 3 years ago

Oh, another thing to note.... Disc media uses serial scanning, which unfortunately isn't supported in compressed files.

crocket commented 3 years ago

Sega saturn chd files were scanned by retroarch.

crocket commented 3 years ago

It seems that dreamcast database isn't aware of chd files, yet.

i30817 commented 2 years ago

I could be wrong, but I think the Arcade dat needs to be done with "Manual Scan"? I am likely wrong on this though.

Manual scan only works 'almost always' in arcade mame (if you ask for name validation to filter out the bioses) by a accident of fate where mame organized the split romsets (what RA doesn't have in the database) and the merged romsets (what RA has in the database) to have the same main game name and the main game being the last or 'best' english version, when there is a english version.

And it's also why all the bios gunk you're forced to have in the same directory as the game data will not appear on a scan of a split set that only contains the 'main games' + the bios and hardware definition files.

Basically if you have a split set and only care about the main version, you're ok, because the manual scanner only cares about the names being correct (if you ask to validate names in the rdb), which are the same, so it associates the images and metadata.

On the other hand if you want to scan foreign language version roms in a split set, you need to not filter the roms in the manual scanner and simply scan for zip extensions, and then you need to laboriously and manually delete from the playlist all the zip roms which you don't care about 'naomi', etc etc. And then to add annoyance, the non-us language versions probably don't have images.

And in a merged set i dunno, but maybe the MAME inbuilt interface has a option to boot the other version other than the main one.

Or at least it was this way last i checked, maybe the database has now the split sets minus the bios files... Doesn't look like it though, from the example names of the games that don't scan.

crocket commented 2 years ago

I use finalburn neo core. Perhaps, this is why I want to use emulation station for scanning folders.

retroarch can't scan full non-merged rom files including bios, either.

crocket commented 2 years ago

https://archive.org/details/2020_01_06_fbn links to https://neo-source.com/index.php?topic=3725.0 which recommends manual scan for finalburn neo roms.

i30817 commented 2 years ago

The thing is, the RA scanner will never have 100% hit rate, manual or not really.

Because either not all games have a rom definition on the database on purpose, or not all games have the right file to check (because there are multiple versions with the same name) or because there are files being scanned that are actually mutable (a bunch of AGS scummvm games right now for instance), or even worse, that mutable file is actually what differentiates language versions (but it doesn't only change the language), AGS again.

This comes from the simple reason that it's impossible a single method catches all situations and the one that had the most chance of catching most situations (full checksum of all nonmutable files), was too 'slow' for users with terabytes of roms to tolerate.

Even the manual scanner will not always save you because there are 'roms' in the database that have duplicate filenames of the 'rom' so the first gets picked for name matches (AGS games again, but not only, there's probably a bunch of 'Game.exe' in the DOS database, among others).

crocket commented 2 years ago

You are going to like emulation station.

i30817 commented 2 years ago

Probably not. All of the multisystem emulators i've ever seen were completely pathetic about rom recognition.

Even the filename version of rom recognition (ie: you don't care to 'validate' the roms), is flawed because there are game ports to other consoles with the same name, and even different games with the same name. Not to mention how they all fail miserably with 'non-rom' games (ie : multiple files not inside a standardized checksum zip), and with hacked games.

crocket commented 2 years ago

Emulation station is not an emulator. It is a frontend to many emulators.

i30817 commented 2 years ago

Whatever. It's the same problem. The method that works for a single romset will often not work for two different console/computer romsets (or even in the same console if the people doing the romset are unwise enough, lol TOSEC dreamcast).

And don't forget, that the libretro-database devs don't actually have the games, so they can't decide to change methods for something that 'works for more things' except by the few things that are somewhat documented (ie: how to get a serial, which doesn't always exist, for example, for homebrews, or may be duplicated, for example for hacks).

crocket commented 2 years ago

Do you have any suggestion for improvements or alternatives?

i30817 commented 2 years ago

I have one suggestion for a slight improvement for the manual scanner that i opened now, at the cost of the user having to manually rename files or directories to match the game by directory name:

https://github.com/libretro/RetroArch/issues/13135

All my other suggestions are frankly too complex.

I don't like the automatic scanner because it has a high rate of false negatives to me, because i use hacks all the time, in dos, consoles or even in scummvm games, and i change the configs, bats and sometimes executables of the original engines too.