diff --git a/source/games/duke/src/2d_d.cpp b/source/games/duke/src/2d_d.cpp index 75d45244e..dc1b4f4da 100644 --- a/source/games/duke/src/2d_d.cpp +++ b/source/games/duke/src/2d_d.cpp @@ -169,7 +169,7 @@ public: { const uint64_t duration = 7'000'000'000; const auto tex = tileGetTexture(DREALMS, true); - const int translation = TRANSLATION(Translation_BasePalettes, DREALMSPAL); + int translation = tex->GetTexture()->GetImage()->UseGamePalette() ? TRANSLATION(Translation_BasePalettes, DREALMSPAL) : 0; twod->ClearScreen(); DrawTexture(twod, tex, 0, 0, DTA_FullscreenEx, FSMode_ScaleToFit43, DTA_TranslationIndex, translation, DTA_LegacyRenderStyle, STYLE_Normal, TAG_DONE); @@ -188,17 +188,21 @@ class DTitleScreen : public DScreenJob int soundanm = 0; public: - DTitleScreen() : DScreenJob(fadein | fadeout) {} + DTitleScreen() : DScreenJob(fadein | fadeout) + { + } int Frame(uint64_t nsclock, bool skiprequest) override { twod->ClearScreen(); int clock = nsclock * 120 / 1'000'000'000; - auto translation = TRANSLATION(Translation_BasePalettes, TITLEPAL); - twod->ClearScreen(); - DrawTexture(twod, tileGetTexture(BETASCREEN, true), 0, 0, DTA_FullscreenEx, FSMode_ScaleToFit43, DTA_TranslationIndex, translation, DTA_LegacyRenderStyle, STYLE_Normal, TAG_DONE); + + // Only translate if the image depends on the global palette. + auto tex = tileGetTexture(BETASCREEN, true); + int translation = tex->GetTexture()->GetImage()->UseGamePalette() ? TRANSLATION(Translation_BasePalettes, TITLEPAL) : 0; + DrawTexture(twod, tex, 0, 0, DTA_FullscreenEx, FSMode_ScaleToFit43, DTA_TranslationIndex, translation, DTA_LegacyRenderStyle, STYLE_Normal, TAG_DONE); if (soundanm == 0 && clock >= 120 && clock < 120 + 60) { @@ -223,20 +227,35 @@ public: double scale = clamp(clock - 120, 0, 60) / 64.; if (scale > 0.) + { + tex = tileGetTexture(DUKENUKEM, true); + translation = tex->GetTexture()->GetImage()->UseGamePalette() ? TRANSLATION(Translation_BasePalettes, TITLEPAL) : 0; + DrawTexture(twod, tileGetTexture(DUKENUKEM, true), 160, 104, DTA_FullscreenScale, FSMode_Fit320x200, - DTA_CenterOffsetRel, true, DTA_TranslationIndex, translation, DTA_ScaleX, scale, DTA_ScaleY, scale, TAG_DONE); + DTA_CenterOffsetRel, true, DTA_TranslationIndex, translation, DTA_ScaleX, scale, DTA_ScaleY, scale, TAG_DONE); + } scale = clamp(clock - 220, 0, 30) / 32.; if (scale > 0.) + { + tex = tileGetTexture(THREEDEE, true); + translation = tex->GetTexture()->GetImage()->UseGamePalette() ? TRANSLATION(Translation_BasePalettes, TITLEPAL) : 0; + DrawTexture(twod, tileGetTexture(THREEDEE, true), 160, 129, DTA_FullscreenScale, FSMode_Fit320x200, DTA_CenterOffsetRel, true, DTA_TranslationIndex, translation, DTA_ScaleX, scale, DTA_ScaleY, scale, TAG_DONE); + } if (PLUTOPAK) { scale = (410 - clamp(clock, 280, 395)) / 16.; if (scale > 0. && clock > 280) - DrawTexture(twod, tileGetTexture(PLUTOPAKSPRITE+1, true), 160, 151, DTA_FullscreenScale, FSMode_Fit320x200, + { + tex = tileGetTexture(PLUTOPAKSPRITE + 1, true); + translation = tex->GetTexture()->GetImage()->UseGamePalette() ? TRANSLATION(Translation_BasePalettes, TITLEPAL) : 0; + + DrawTexture(twod, tileGetTexture(PLUTOPAKSPRITE + 1, true), 160, 151, DTA_FullscreenScale, FSMode_Fit320x200, DTA_CenterOffsetRel, true, DTA_TranslationIndex, translation, DTA_ScaleX, scale, DTA_ScaleY, scale, TAG_DONE); + } } if (clock > (860 + 120)) diff --git a/wadsrc/static/filter/duke/engine/widescreen.def b/wadsrc/static/filter/duke/engine/widescreen.def index a19c74278..6171b9e2c 100644 --- a/wadsrc/static/filter/duke/engine/widescreen.def +++ b/wadsrc/static/filter/duke/engine/widescreen.def @@ -5,6 +5,9 @@ tilefromtexture 2326 { file "tiles/duke3d/2326.png" xoffset 16 ifcrc -1415291705 // Status Bar (by fgsfds) tilefromtexture 2462 { file "tiles/duke3d/2462.png" xoffset 0 yoffset 14 ifcrc 126028789 } +// Titlepic (by Kinsie) +tilefromtexture 2493 { file "tiles/duke3d/2493.png" ifcrc -1469434308 } + // all weapon graphics from Megaton edition. // HUD Pistol diff --git a/wadsrc/static/filter/duke/tiles/duke3d/2493.png b/wadsrc/static/filter/duke/tiles/duke3d/2493.png new file mode 100644 index 000000000..228910bc6 Binary files /dev/null and b/wadsrc/static/filter/duke/tiles/duke3d/2493.png differ