libretro / RetroArch

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

Collections does not detect GBA games #7540

Closed kevinfoley closed 5 years ago

kevinfoley commented 5 years ago

If you have Collections scan a directory containing both Game Boy (.gb) and Gameboy Advance (.gba) games, it will add the GB games to Collections, but it will not add GBA games. Likewise, enabling the "automatically scan loaded content" (that might not be the exact name) and then loading a GBA game does not add the GBA game to Collections.

Tested with 1.7.5, mGBA and VBA Next cores installed

RobLoach commented 5 years ago

Do you have a sample game that does not scan? We keep only the latest No-Intro in the database, along with GoodGBA.

kevinfoley commented 5 years ago

I scanned all of my GB and GBA cartridges with a Benn Venn reader. The .gb ROMs get picked up, but not the .gba ROMs.

I'm not familiar with how RetroArch handles this internally. So you have a database of approved ROMs and only recognize those ROMs? Is there any way to disable that and have it pick up any file with the correct extension?

RobLoach commented 5 years ago

If you retrieve the CRC of the file, you can compare it against the libretro-database: https://www.google.com/search?hl=en&q=get%20crc%20of%20file

Alternatively, you can build your own playlists through the WIMP interface: https://www.youtube.com/watch?v=RheJ3N_wP4w

BombBloke commented 5 years ago

As it happens, I got myself a Benn Venn a few months ago.

Great little thing, but what I found is that it has absolutely no idea how large a given GBA ROM is. You need to tell it what you think the size is, and if you get it wrong, you'll get less/more data than you really should.

It can correctly size GB carts, but apparently this simply isn't possible with the GBA (regardless of the dumping device used - it's not just a Benn Venn problem), and has caused a lot of issues for dumping groups over time: some copy protection mechanisms even exist which rely on the ROM being trimmed at precisely the right point (and no, that isn't always a nice clean power of two, and yes, developers are smart with this and may not make problems apparent until halfway through their games!).

Since Retroarch does indeed run checksums on ROMs and only detects ones that appear in its database, you'll have a very hard time getting homemade GBA dumps detected.

kevinfoley commented 5 years ago

Why bother with the checksum at all? Why not just handle it by extension? If you're concerned about quality or compatibility issues, you could display a one-time warning per ROM, something like "We do not recognize this ROM image. You may experience compatibility issues. For a list of approved ROM images, go to […]"

BombBloke commented 5 years ago

That's a little tricky in that something like a BIN file could be a MegaDrive game, or it could be a PSX game, or it could be for most any disc-based system... could even be a BIOS! Checksums are the only way to know for sure in all cases.

There's also "related content" such as box art and so on. Identification via checksums allows Retroarch to easily say "this is version X of game Y" and link up the correct descriptions / images / whatever automatically.

A way to ignore all that and just assign folders to the different platform lists would be nice, though.

RobLoach commented 5 years ago

A way to ignore all that and just assign folders to the different platform lists would be nice, though.

Would love that, and there's an issue around it over at https://github.com/libretro/RetroArch/issues/2033 . Recommend reading through! You can also do it manually through the WIMP interface. There's a tutorial for it over at: https://www.youtube.com/watch?v=RheJ3N_wP4w

kevinfoley commented 5 years ago

@BombBloke Thanks for the explanation; I've only been using RetroArch to run my GB/GBA games and didn't think about other platforms. That makes sense. I'll try the WIMP interface.