Open Rekrullurker opened 8 years ago
There is a gamedb_user.txt That you can use to submit the Hash of the ROM and what core loads it.
I tested it using the ROM Hack Pokemon - Liquid Crystal.bin
and this gamedb_user file gamedb_user.txt
BizHawk loaded the ROM as a GBA game because it is told "This Hash is a GBA ROM"
We actually have the feature, but it is only wired up to Atari 2600 right now. We could add 7800 support. Most cores don't need this since they have decent heuristics and .bin is not a common extension for them.
7800 is one that is commply a .bin, and emu7800 needs a database entry to do anything useful.
In #1691, it was suggested that changing the per-system default for all roms not in the database could be useful. I don't think that's supported with gamedb_user.txt
currently, but if we were to support changing the default, it could use the same file by looking for the all-zero hash (edit: with the last byte representing the virtual system to avoid collisions). A reasonable use case for this was also given in https://github.com/TASVideos/BizHawk/issues/1691#issuecomment-537430162:
For example: Zelda: Ocarina of Time Randomizer and Zelda: Majora's Mask Randomizer produce ROM's that you're likely to discard after completing them, because you'll be generating a newly randomized copy for a new experience the next time you play (and each new copy won't be in the internal game database since they all have different Checksums).
Atari2600Hawk's implementation doesn't even work. Deserialisation:
https://github.com/TASEmulators/BizHawk/blob/d466c2694fe62f397ffc9e057e78024a72653bbc/src/BizHawk.Emulation.Cores/Consoles/Atari/2600/Atari2600.cs#L84
Serialisation (return value is assigned to _mapper
):
https://github.com/TASEmulators/BizHawk/blob/d466c2694fe62f397ffc9e057e78024a72653bbc/src/BizHawk.Emulation.Cores/Consoles/Atari/2600/Atari2600.Core.cs#L249-L289
If you open a game that isn't in the database and BizHawk can't recognize the system by the filename extension, it will ask you what core it should use. It would be nice, if once the game successfully loaded, there was a menu option to add the game to the database for the currently loaded core. Or even maybe a popup aksing if the game should be added to the database. That way it would automatically know which core to use next time.