libretro / fbalpha2012_neogeo

Final Burn Alpha 2012. Port of Final Burn Alpha to Libretro (0.2.97.24). Standalone core for Neo Geo.
12 stars 29 forks source link

Support for loading ROMs even if checksum doesn't match expected. #2

Closed vaguerant closed 5 years ago

vaguerant commented 8 years ago

This probably applies to all the FBA-based cores and maybe MAME cores also, but I've only had reason to encounter it on Neo Geo. Metal Slug 2 is well known for its terrible performance and apparently that's partially a result of a fixable error in the game's frame-locking code, see link.

Patching this ROM and running it via mainline (non-libretro) Final Burn Alpha will cause the emulator to throw a warning about the mismatched CRC before the game goes ahead and launches anyway. RetroArch, on the other hand, reports:

RetroArch [libretro ERROR] :: :: [FBA] ROM index 0 was not found ... CRC: 0x2a53c5da
RetroArch [ERROR] :: Failed to load content.

Implementing a warning system for bad ROMs is probably far from a priority currently, so perhaps this could instead be a core option for now? By default, only matching ROMs should launch, but a core option to allow ROMs with bad CRCs also?

Oggom commented 8 years ago

It's supported in FBA 0.2.97.36 as a clone rom called mslug2t. This core is based on v0.2.97.30 and therefore it's not going to work here. Likewise it's not supported in mainline MAME since they refuse to support any kind of romhack other than bootlegs for whatever reason.

vaguerant commented 8 years ago

It would indeed be more convenient to just launch mslug2t, but as you say we're on an older version here. That said, running mainline FBA 0.2.97.30, the behavior is as I described above; even without any actual support for mslug2t, the user can simply replace the modified ROM in the mslug2 set and launch it that way.

In that scenario, FBA 0.2.97.30 will warn that the CRC doesn't match the expected value, the user must then dismiss this warning, and the (modified) game will start. The emulator doesn't need any understanding of mslug2t, it's just FBA's willingness to launch ROMs with non-matching CRCs which RetroArch's FBA Neo Geo core seems to be lacking.