Fix two BIOS hashes that no file can match - #88
Open
Abdess wants to merge 1 commit into
Open
Conversation
Contributor
|
Please rebase to 0.11.0 and update there |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two entries in the manifests ask for a hash that no file can have, so the BIOS checker reports them as missing even when the user has the correct file.
1. yrw801.rom (
retroarch/component_manifest.json)The manifest expects MD5
32760893ce06db3e3930627755ba065c. MAME lists this ROM insrc/devices/bus/msx/cart/moonsound.cpp:75:Line the two values up:
The manifest value is that SHA1 with an extra
3after the 14th character, cut to 32 characters so it has the shape of an MD5. This PR sets the real MD5 of the dump MAME declares:42af93619160ef2116416f74a6cb12f2(2097152 bytes, CRC322a9d8d43).2. naomi2.zip (
retroarch/andarchive_later/flycast/)The manifest expects MD5
9b85e0de6ef359e5006c9b79a5a266b0for the whole archive. Flycast does not read the archive that way.core/hw/naomi/naomi_roms.cpp:182-201defines the naomi2 BIOS as a list of ROMs, each with its own CRC32:{ "naomi2", { // epr-23605c (Japan) { 0, "epr-23605c.ic27", 0x000000, 0x200000, 0x297ea6ed }, // epr-23605b (Japan) { 0, "epr-23605b.ic27", 0x000000, 0x200000, 0x3a3242d4 }, ...The struct in
naomi_roms.h:53-64gives the fields: region, filename, offset, length,crc. Flycast opens the ZIP, picks the ROM matching the region and checks that ROM's CRC32. MAME does the same, per ROM, insrc/mame/sega/naomi.cpp(NAOMI2_BIOS). Neither defines an MD5 for the archive itself, and that value depends on how the ZIP was packed rather than on what is inside it, so the same correct ROMs re-zipped differently give a different archive MD5.This PR replaces the single value with the standard MAME sets that contain all 8 ROMs Flycast can request, each verified CRC32 by CRC32 against the table above:
c50072cbab75673e1b1a6b94355e6fa8843c0d51237dc945f57237c4b9872b1d339c59ece7d4d6803880c91bbb44ac93dfaae8d206ffb390ed1cf9529ccc123dA list is what the neighbouring
naomi.zipentry already uses. Longer term, checking the ROMs inside the archive by CRC32 the way Flycast does would remove the packaging sensitivity entirely.