TASEmulators / BizHawk

BizHawk is a multi-system emulator written in C#. BizHawk provides nice features for casual gamers such as full screen, and joypad support in addition to full rerecording and debugging tools for all system cores.
http://tasvideos.org/BizHawk.html
Other
2.2k stars 385 forks source link

Suggestion: Option to add new games to the database #733

Open Rekrullurker opened 8 years ago

Rekrullurker commented 8 years ago

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.

hegyak commented 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"

adelikat commented 8 years ago

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.

YoshiRulz commented 5 years ago

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).

YoshiRulz commented 2 years ago

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