Page 1 of 1

Unofficial Unauthorized Descent 1 Texture Patch (UUD1TP)

Posted: Fri Aug 20, 2021 4:56 pm
by Xfing
Aight folks, so after the well-received UUD2SP I thought it might be a good idea to apply the same principles to fixing Descent and Descent 2's graphics, which do have some problems - and then eventually turn it into a more or less vanilla-friendly extension. This time I decided to play it safer and rather than make it a continuous string of updates, I'll be keeping a minimalist, fix-only version available at all times and then a version with extensions, which in some rare cases may affect compatibility.

So let's start with D1, enter UUD1TP.
Luckily in D1 there actually wasn't a lot to fix, so the patch isn't particularly exciting - think of it as something like Doom's "Minor Sprite Fixing Project" - getting rid of the minor but jarring imperfections that some textures have.

To give you a bit of history: at first I thought it would be enough to just do a permanent swap of the affected textures via DTX. And sure enough - it worked, but with the caveat that the size of descent.pig would always get bigger by approximately 24kb. Not a big deal apparently - Descent played via DosBOX just fine and DLE also opened it with no issues with the changes applying. But it turns out it was Rebirth incompatible, since Rebirth requires DESCENT.PIG to be the exact same size as the original 1995 file, otherwise it just exits after the title credits. Descent 2 Workshop provided no solution to this, but luckily there was Arne, who coded up a tool that could replace the files without affecting the file size, and so we're here! On to the changelog:

- The "Venus" monitor, misc069 - the main texture (regular display) was misaligned compared to the popping animation and broken texture by one pixel down and one to the right - meaning it appeared to move a bit diagonally to the upper left when being popped. It's the only monitor from D1 that had a problem like this, while D2 was completely rife with these issues (as you'll see when I make the D2 thread with the changelog).
- Three rock textures: rock064, 065 and 066 had rather jarring artifacts on them which appeared highly unintentional, I've removed them and repainted these rock textures, so maybe they'll see more love now. Illustration below:
Image

And that's actually it! But you know what's cool? A lot of things, actually:
- It's literally just a patch, so you could just replace your v1.4 descent.pig with it forever and forget, no consequences whatsoever (also that's how you need to apply it to play the DOS version anyway, which it works with)
- but it also works as a DXA! And that's how the package is delivered. Just put it in your D1 Rebirth folder and enjoy. DOESN'T WORK AS A DXA ACTUALLY - it's a ZIP, just unpack the contents into your main game folder :P Here's the download: https://drive.google.com/file/d/1Tee3Gc ... sp=sharing

And the DXA thing has reminded me of the other "half" of the project, which I would dub UUD1TP-X, where "X" stands for "eXtended". It doesn't exist yet, but I think it'd be a nice thing to do with the community's input. In case of D1 once again there is not much room for extension (expect MUCH more in D2, and those are ironically much more obvious), since the PIG size needs to remain the same for Rebirth compatibility and the texture table is hardcoded anyhow.

But there's one thing - the texture rock004 is identical to rock019, so one of them could be replaced with another texture without losing anything at all. And that's where the poll comes in - if you could have ONE, a mere single texture from Descent 2 backported into Descent 1, which one would you choose? Unfortunately it's not that simple a choice, since D1 doesn't allow POGs like D2 does in the first place, so we're much less flexible here and this choice will have to be be permanent.

Pretty much any single-frame texture goes, but since there's room for only one bitmap, multi-frames are obviously off the table, so no monitors and no flickering door lights. My personal choice would be metl146, "the grate" - simply due to how universal and functional it is, so it would actually improve the functionality of D1 levels in allowing to create tunnels with those thin shoot-through openings or an universal decoration. In an analogous fashion, one of the other metal textures could be implemented. If we forego functionality in favor of aesthetics, there is a literal ocean of textures that could be chosen - but then again, those can be used in D2 levels making use of the D1 palette anyway, so functionality would probably be more preferable. I'll put some more obvious choices in the poll.

I won't proceed with changing rock019 to the new texture until we establish some sort of consensus on what it should optimally be, and on top of that rock019 is used in place of rock004 in levels 3 and 17 of First Strike, so unless the levels themselves are adjusted to account for that (which would optimally require a descent.hog patcher), the new texture might spoil the visuals in these levels. But guess we'll cross that bridge when we come to it. Vote away and discuss. Enjoy the basic patch, news on the D2 version soon!

Re: Unofficial Unauthorized Descent 1 Texture Patch (UUD1TP)

Posted: Mon Aug 23, 2021 4:34 am
by Xfing
Another small tweak made (which makes this now v1.1): shortened the total animation time of door11 from 1.6s to 1s. It felt awfully slow and choppy with its original speed, which seemed more like a mistake by the devs than a deliberate choice anyway. This change will also be made in the D2 version.

Re: Unofficial Unauthorized Descent 1 Texture Patch (UUD1TP)

Posted: Sat Nov 19, 2022 3:49 pm
by Xfing
Alright folks, I'm back - with not just version 1.2, but 1.3 already. And a lot of good has come this time. You can still use the link in the OP, it leads to the updated download now (which also contains an updated readme of course).

TL;DR summary: there were not just 3 or 4 textures that needed fixing, there were an extra 60 or so on top of that. I've also replaced the 2 dupes with the red tape variations and also included fixed versions of affected levels from First Strike (there are only three of them).

Ok, so now that we've got the main summary sorted, let's go more into detail. Let's start with the dupes:
In DESCENT.PIG, rock004/rock019 and metl127/misc037 form identical texture pairs. I have therefore decided to replace one of each pair with something new that can be used from then on. I decided which one to replace based on usage in DESCENT.HOG, since I obviously wanted to minimize impact on playing the final game - turns out the developers opted to overwhelmingly use the textures that come first in order (based on the texture filter checkboxes, I assume), so rock004 and metl127 were used almost always. There were only exceptions in levels 3 and 17 (they used rock019 in a few places), and level 20 (it used misc037 in one place, even though it used metl127 in all others). The package contains RDL files for these three levels with those textures swapped to the first ones, so that this patch doesn't affect your original Descent game. I didn't want to distribute an entire HOG with the changed levels for legality reasons, but feel free to update these files in your local HOG if you feel like it. Keeping them loose in your game folder does make them take precedence over the ones in the main HOG though, and it works in vanilla, Chocolate and Rebirth alike - one caveat is that they will also load over levels with the same names from any other fanmade mission if you're playing a version of the game with no "Missions" folder - such as DOSBox or Chocolate (which would be another reason to swap them in your HOG, I guess).

So here are the replacements. Why these in particular, you ask? That's because I wanted to keep compatibility with Rebirth - which still uses PIG file size to determine the version of the game, and therefore will not start the game if the PIG's size is off even by a byte compared to required values. That's why I had to use a very specialized tool made by Arne to import these textures into the PIG while maintaining the original's size - which DTX cannot do (you'll end up with a larger file, usually). The rule here is that the texture you're replacing with must be smaller than the one being replaced - which in both cases (rock019 and misc037) restricted me to using the red tape textures - luckily those do feel like a logical extension of the D1 repertoire, so it all fits. First of all, I improved the textures:

Image

The red tape didn't exist in Descent 1, so when Pumo was making the D1-based PIG for D2, I suspect he just imported the tape texture from one of the other PIGs. That made the gray parts a bit less varied, since all the palettes from D2 have less unique shades of gray. So I used the other tapes straight from D1 and cut out the gray parts and simply pasted them over the old ones, and that gave us red tapes as if they'd come straight outta D1. I will of course use them in the D2 patch to improve the ones that game has. But after this tweak, I had to of course replace the duplicated textures:

Image

One thing worth noting is that rock019 didn't have a transparency flag, while misc080, which replaced it, does - it poses no issues in vanilla and Chocolate, but in Rebirth –gl_oldtexmerge must be enabled in d1x.ini, otherwise you won't get transparency, but white instead.

So now on to the texture fixes - here's an image with before-and-after comparisons. You will notice that the textures from the dupe pairs that remained (rock004 and metl127) have also received improvements. But that's just two of them, so here it is. Unfortunately the file is so long that DescentBB would shrink it down to an unintelligible size, so I'm pasting a link to a host, where you'll be able to see it in full size without issues:

https://drive.google.com/file/d/1I-sajh ... share_link

That's it! I'll move on to working on the D2 patch after this, but there might still be extensions to this in the future - D1 has 1555 bitmaps in the pig with a limit of 1799, and 584 textures in the pig with a limit of 800, meaning that judging strictly by file structure, there is still room in Descent.PIG for over 200 new bitmaps (and even more textures), so I might actually go on and expand the PIG greatly someday. There are two ongoing problems preventing this at the moment - both of which have been reported and might eventually get resolved:
- D1X-Rebirth would need to stop requiring an exact file size for Descent.PIG, so we could expand it with new textures without worry. This is not an issue with Vanilla/Chocolate, but most people still play using Rebirth today, so compatibility with it is always going to be a consideration.
- DLE would need to stop relying on texture filter checkboxes for hardcoding the expected set of textures when loading them - this makes it not show any extra textures beyond what's expected by default. The new level editor by ProxyOne, Inferno, doesn't have that problem and shows the new textures just fine.
Which means that it would indeed be possible to create a new PIG with loads upon loads of extra textures but: a) you wouldn't be able to see them in DLE, and if you opened a level with them in place, it'd probably default them to some from the original list; b) you wouldn't be able to play the game in Rebirth (and presumably also XL). So yeah, it would be super unwieldy for the time being, that's why I'll wait on a solution before further committing to expanding the palette. In the meantime please download, apply, enjoy and share your feedback and suggestions!

Re: Unofficial Unauthorized Descent 1 Texture Patch (UUD1TP)

Posted: Wed Nov 23, 2022 6:05 pm
by Xfing
Aight, and version 1.4 is up now, I've fixed even more textures that had problems, including some very popular ones like rock014 and its associated door and many more. Info which ones exactly is in the readme, you'll definitely notice a difference! From what I'm seeing, that's not the end of what needs to be done, but I daresay I'm getting closer now.

Re: Unofficial Unauthorized Descent 1 Texture Patch (UUD1TP)

Posted: Sat Nov 26, 2022 7:33 pm
by Xfing
1.5 is up - mostly doors corresponding to textures I'd fixed before. I think that will be it for the foreseeable future, and next stop will be translating these updates to D2. Same link