Jump to content

Editing custom skies into Heretic (Crispy Heretic)


rzh

Recommended Posts

Does anybody know how to do this properly? I've taken some skies from Mek's Box 'o Skies! and I want to use them as skies for Heretic E4 & E5. I don't know if it's possible to do this without replacing them for E1 & E3 as well. If it is, even better.

Anyways, converting them from PNG to Heretic palette was easy.

But, there is an issue with the way it displays in game:

sky.PNG.b97f258d7feab9be4993b4eb134c6f87.PNG

Initially, I assumed this is because the dimensions of the sky are wrong.

According to doomwiki.org, it should be 256x200. But even when resizing the sky to these dimensions (and keeping the part I want, adjusting the offsets etc) the same thing happens.

Share this post


Link to post

I think it's something wrong with gfx conversion in Slade.

In 3.1.1.5 it doesn't happen but from on some newer version it started to make skies have golden seam in vanilla heretic. I think you're experiencing a similar thing, but in crispy

Share this post


Link to post
3 hours ago, SilverMiner said:

I think it's something wrong with gfx conversion in Slade.

In 3.1.1.5 it doesn't happen but from on some newer version it started to make skies have golden seam in vanilla heretic. I think you're experiencing a similar thing, but in crispy

Yeah, that got rid of the horizontal one.

The vertical band still shows up though, and some pixels seem to be stretched/ corrupted.

Any ideas?

sky.PNG

Edited by rzh

Share this post


Link to post

Which sky is that exactly? Have you verified that it is 1024-wide? I found some of Mek's skies are not correct in that regard, e.g. DBSESKY4.png is only 1022-pixel wide.

Share this post


Link to post
4 hours ago, Gez said:

Which sky is that exactly? Have you verified that it is 1024-wide? I found some of Mek's skies are not correct in that regard, e.g. DBSESKY4.png is only 1022-pixel wide.

I think it's INTSKY11.

I also tried with HAZESKY3 but the same thing happen, however no pixels are stretched, only the bar is there.

I also tried making sure that regardless of whether it's 1024/256 wide, the height is 200 but that didn't change a thing either.

Although that was also done using SLADE, maybe if I crop it externally and then import it that could make a difference, but I will have to try that later.

Share this post


Link to post
22 hours ago, rzh said:

Initially, I assumed this is because the dimensions of the sky are wrong.

According to doomwiki.org, it should be 256x200.


Did you perhaps change the sky texture definition to be 200 pixels high? I believe it should be 128 units high, just like the sky texture definitions in the heretic iwad. It's the patches that are 200 pixels tall, but the sky texture definition is still 128 units high, just like in Doom.

From the doom wiki:

Quote

The sky patches in Heretic and Hexen are 200-unit tall, but the textures themselves are still declared to be only 128-unit tall.


So make sure that in your TEXTURE1 or TEXTURE2 lump you still have the sky texture definition as 128 units high.

Share this post


Link to post
On 1/31/2022 at 9:48 PM, Worst said:


Did you perhaps change the sky texture definition to be 200 pixels high? I believe it should be 128 units high, just like the sky texture definitions in the heretic iwad. It's the patches that are 200 pixels tall, but the sky texture definition is still 128 units high, just like in Doom.

From the doom wiki:


So make sure that in your TEXTURE1 or TEXTURE2 lump you still have the sky texture definition as 128 units high.

Yep, they're 128.

I guess I'll just keep on monkey-with-a-keyboard it until it works.

Share this post


Link to post

I did some comparisons between the vanilla heretic sky1 patch, and a copy of it that I converted to a png, and then back to a patch in slade3.

 

It looks like slade is assembling the posts of each column of the picture differently from how they are in the vanilla resource.

Vanilla:

Spoiler

column [0], post { row_start = 0, pixel_count = 200 }
column [0], post { row_start = 255, ROW END }
column [1], post { row_start = 0, pixel_count = 200 }
column [1], post { row_start = 255, ROW END }
column [2], post { row_start = 0, pixel_count = 200 }
column [2], post { row_start = 255, ROW END }
column [3], post { row_start = 0, pixel_count = 200 }
column [3], post { row_start = 255, ROW END }
column [4], post { row_start = 0, pixel_count = 200 }
column [4], post { row_start = 255, ROW END }
...

 

 

Converted by slade:

Spoiler

column [0], post { row_start = 0, pixel_count = 128 }
column [0], post { row_start = 128, pixel_count = 72 }
column [0], post { row_start = 255, ROW END }
column [1], post { row_start = 0, pixel_count = 128 }
column [1], post { row_start = 128, pixel_count = 72 }
column [1], post { row_start = 255, ROW END }
column [2], post { row_start = 0, pixel_count = 128 }
column [2], post { row_start = 128, pixel_count = 72 }
column [2], post { row_start = 255, ROW END }
column [3], post { row_start = 0, pixel_count = 128 }
column [3], post { row_start = 128, pixel_count = 72 }
column [3], post { row_start = 255, ROW END }
column [4], post { row_start = 0, pixel_count = 128 }
column [4], post { row_start = 128, pixel_count = 72 }
column [4], post { row_start = 255, ROW END }
...

 

For each column of the picture, slade seems to create posts only up to 128 pixels tall, and thus ends up storing more posts per column than in the vanilla resource.

 

Not sure at this point if this is causing issues with the converted sky textures, but it's a difference at least.
 

Share this post


Link to post

Vanilla Doom cannot handle columns greater than 128. Cf. this thread:

So for compatibility with vanilla Doom, SLADE now splits posts at the 128th pixel.

 

Heretic however, does not use the vanilla column renderer for its skies. It uses a specific column renderer just for the skies. What this renderer does is draw 200 pixels per column. It doesn't even check that there is indeed 200 pixels in the textures, it just reads 200 bytes from the lump as pixel data for the column, directly.

 

This is because the sky textures in Heretic are defined as only being 128-high, while they are 200-high in reality. They're defined as being 128-high so that if they're used as regular texture on a wall, everything works well. It's all a horrible, horrible hack.

 

Anyway that's why SLADE splits the columns and why Heretic interprets the column split as  a yellow and brown pixel that end up forming that weird double-line.

Share this post


Link to post

After some trial and error with blasphemer skies I found a possible solution. I just copied same patch over each other in tex1. This only creates a single pixel line, and was best I could figure out. 

SKY1			256	200
*	SKY1		0	0
*	SKY1		0	0

 

Researching skies in Heretic I noticed not one map in Heretic allows player to look over horizon(I think). Normal vanilla Heretic sky is totally glitched. Clip around any map and find a raised flat/lift to stand on that hasnt lowered yet to see Heretic maps hide the glitchy skies by surrounding every map with a wall. 

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...