From 5bca12a8406eaa292881dd7659331c48d2ac3327 Mon Sep 17 00:00:00 2001 From: Stenzek Date: Tue, 29 Oct 2024 22:15:58 +1000 Subject: [PATCH] GameDatabase: Add ForceFullBoot trait And set it for Nightmare Creatures. Game's disc code is a nightmare. --- data/resources/gamedb.yaml | 6 ++++++ src/core/game_database.cpp | 12 +++++++++++- src/core/game_database.h | 1 + 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/data/resources/gamedb.yaml b/data/resources/gamedb.yaml index cbadc5e10..39a8c5970 100644 --- a/data/resources/gamedb.yaml +++ b/data/resources/gamedb.yaml @@ -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: diff --git a/src/core/game_database.cpp b/src/core/game_database.cpp index 0951aca7c..9c3b4a3b5 100644 --- a/src/core/game_database.cpp +++ b/src/core/game_database.cpp @@ -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(Trait::MaxCou "ForceRoundTextureCoordinates", "ForceAccurateBlending", "ForceDeinterlacing", + "ForceFullBoot", "DisableAutoAnalogMode", "DisableTrueColor", "DisableUpscaling", @@ -112,6 +113,7 @@ static constexpr const std::array(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) diff --git a/src/core/game_database.h b/src/core/game_database.h index 03a825e98..b4b5d4753 100644 --- a/src/core/game_database.h +++ b/src/core/game_database.h @@ -39,6 +39,7 @@ enum class Trait : u32 ForceRoundUpscaledTextureCoordinates, ForceAccurateBlending, ForceDeinterlacing, + ForceFullBoot, DisableAutoAnalogMode, DisableTrueColor, DisableUpscaling,