diff --git a/source/core/screenjob.cpp b/source/core/screenjob.cpp index bf8277344..a4746a580 100644 --- a/source/core/screenjob.cpp +++ b/source/core/screenjob.cpp @@ -564,6 +564,7 @@ ScreenJobRunner *runner; void RunScreenJob(JobDesc* jobs, int count, CompletionFunc completion, bool clearbefore, bool blockingui) { assert(completion != nullptr); + videoclearFade(); if (count) { runner = new ScreenJobRunner(jobs, count, completion, clearbefore); diff --git a/source/games/duke/src/game_misc.cpp b/source/games/duke/src/game_misc.cpp index 93f732d3e..501c5fdbb 100644 --- a/source/games/duke/src/game_misc.cpp +++ b/source/games/duke/src/game_misc.cpp @@ -257,8 +257,8 @@ void displayrest(double smoothratio) if (blend[3]) { // result must be multiplied by 4 and normalised to 255. (4*255 = 1020) - auto comp = [&](int i) { return clamp(int(blend[i] * 1020), 0, 255); }; - videoFadePalette(comp(0), comp(1), comp(2), comp(3)); + auto comp = [&](int i, int maxv=255) { return clamp(int(blend[i] * 1020), 0, maxv); }; + videoFadePalette(comp(0), comp(1), comp(2), comp(3, 192)); // Never fully saturate the alpha channel } else videoclearFade();