From db4f0cb8d5ccc347991bceed6b4fc1dd2b2d7e15 Mon Sep 17 00:00:00 2001 From: NovaRain Date: Tue, 14 Apr 2026 11:03:39 +0800 Subject: [PATCH] Fixed garbled colors when SkipOpeningMovies=1 (ref. fallout2-ce/fallout2-ce#372) --- sfall/Modules/Movies.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/sfall/Modules/Movies.cpp b/sfall/Modules/Movies.cpp index 1ab734a4..b9d3f237 100644 --- a/sfall/Modules/Movies.cpp +++ b/sfall/Modules/Movies.cpp @@ -515,11 +515,20 @@ static __declspec(naked) void op_play_gmovie_hack() { } } +static __declspec(naked) void gnw_main_hook() { + __asm { + mov eax, FO_VAR_black_palette; + call fo::funcoffs::palette_set_to_; + jmp fo::funcoffs::main_menu_create_; + } +} + void SkipOpeningMoviesPatch() { int skipOpening = IniReader::GetConfigInt("Misc", "SkipOpeningMovies", 0); if (skipOpening) { dlogr("Skipping opening movies.", DL_INIT); - SafeWrite16(0x4809C7, 0x1CEB); // jmps 0x4809E5 + SafeWrite16(0x4809C7, 0x1CEB); // jmp 0x4809E5 + HookCall(0x4809E5, gnw_main_hook); // fade out to black before the main menu if (skipOpening == 2) BlockCall(0x4426A1); // game_splash_screen_ } }