GameDatabase: Add ForceFullBoot trait

And set it for Nightmare Creatures. Game's disc code is a nightmare.
This commit is contained in:
Stenzek 2024-10-29 22:15:58 +10:00
parent 814f22f58b
commit 5bca12a840
No known key found for this signature in database
3 changed files with 18 additions and 1 deletions

View File

@ -114614,6 +114614,7 @@ SCES-00582:
- DigitalController
traits:
- ForceRecompilerICache # Crappy CD code on boot is timing sensitive.
- ForceFullBoot # Full boot improves reliability.
metadata:
publisher: "Activision"
developer: "Kalisto Technologies"
@ -114635,6 +114636,7 @@ SCES-00684:
- DigitalController
traits:
- ForceRecompilerICache # Crappy CD code on boot is timing sensitive.
- ForceFullBoot # Full boot improves reliability.
metadata:
publisher: "Activision"
developer: "Kalisto Technologies"
@ -114656,6 +114658,7 @@ SIPS-60027:
- DigitalController
traits:
- ForceRecompilerICache # Crappy CD code on boot is timing sensitive.
- ForceFullBoot # Full boot improves reliability.
metadata:
publisher: "Sony"
developer: "Kalisto Technologies"
@ -114676,6 +114679,7 @@ PCPX-96101:
genre: "** DEMO **"
traits:
- ForceRecompilerICache # Crappy CD code on boot is timing sensitive.
- ForceFullBoot # Full boot improves reliability.
SLUS-00582:
name: "Nightmare Creatures (USA)"
compatibility:
@ -114686,6 +114690,7 @@ SLUS-00582:
- DigitalController
traits:
- ForceRecompilerICache # Crappy CD code on boot is timing sensitive.
- ForceFullBoot # Full boot improves reliability.
metadata:
publisher: "Activision"
developer: "Kalisto Technologies"
@ -114706,6 +114711,7 @@ SLUS-90011:
genre: "** DEMO **"
traits:
- ForceRecompilerICache # Crappy CD code on boot is timing sensitive.
- ForceFullBoot # Full boot improves reliability.
SLES-02751:
name: "Nightmare Creatures II (Europe) (En,Fr,De)"
controllers:

View File

@ -40,7 +40,7 @@ namespace GameDatabase {
enum : u32
{
GAME_DATABASE_CACHE_SIGNATURE = 0x45434C48,
GAME_DATABASE_CACHE_VERSION = 17,
GAME_DATABASE_CACHE_VERSION = 18,
};
static const Entry* GetEntryForId(std::string_view code);
@ -82,6 +82,7 @@ static constexpr const std::array<const char*, static_cast<size_t>(Trait::MaxCou
"ForceRoundTextureCoordinates",
"ForceAccurateBlending",
"ForceDeinterlacing",
"ForceFullBoot",
"DisableAutoAnalogMode",
"DisableTrueColor",
"DisableUpscaling",
@ -112,6 +113,7 @@ static constexpr const std::array<const char*, static_cast<size_t>(Trait::MaxCou
TRANSLATE_DISAMBIG_NOOP("GameDatabase", "Force Round Texture Coordinates", "GameDatabase::Trait"),
TRANSLATE_DISAMBIG_NOOP("GameDatabase", "Force Accurate Blending", "GameDatabase::Trait"),
TRANSLATE_DISAMBIG_NOOP("GameDatabase", "Force Deinterlacing", "GameDatabase::Trait"),
TRANSLATE_DISAMBIG_NOOP("GameDatabase", "Force Full Boot", "GameDatabase::Trait"),
TRANSLATE_DISAMBIG_NOOP("GameDatabase", "Disable Automatic Analog Mode", "GameDatabase::Trait"),
TRANSLATE_DISAMBIG_NOOP("GameDatabase", "Disable True Color", "GameDatabase::Trait"),
TRANSLATE_DISAMBIG_NOOP("GameDatabase", "Disable Upscaling", "GameDatabase::Trait"),
@ -493,6 +495,14 @@ void GameDatabase::Entry::ApplySettings(Settings& settings, bool display_osd_mes
}
}
if (HasTrait(Trait::ForceFullBoot))
{
if (display_osd_messages && settings.bios_patch_fast_boot)
APPEND_MESSAGE(TRANSLATE_SV("GameDatabase", "Fast boot disabled."));
settings.bios_patch_fast_boot = false;
}
if (HasTrait(Trait::DisableTrueColor))
{
if (display_osd_messages && settings.gpu_true_color)

View File

@ -39,6 +39,7 @@ enum class Trait : u32
ForceRoundUpscaledTextureCoordinates,
ForceAccurateBlending,
ForceDeinterlacing,
ForceFullBoot,
DisableAutoAnalogMode,
DisableTrueColor,
DisableUpscaling,