Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Maes

What's the story with AASTINKY and AASHITTY?

Recommended Posts

While AASTINKY appears to be regularly defined in DOOM.WAD, it cannot be used in Doombuilder (and to be honest, I can't remember where it occurs).

Also, the infamous wow.wad "illusio pit" actually doesn't have untextured walls, but they are textured with AASTINKY, which, if it worked, would look like a dark red and white vertical pattern.

Also, on some occasions a texture called "AASHITTY" pops up (only the name) but it, too, doesn't seem usable.

Really, what's the story here?

Edit: it has an unusal height (72 px) and an even more unusual length (24 px). Maybe that has something to do with it?

Share this post


Link to post

I don't know all the details on why this happened, but due to some error in the way that the Doom engine loaded textures, the first texture it loaded would always be unusable. Thus is why AASTINKY and AASHITTY exist, and why they start with AA (to always be the first texture loaded).

Share this post


Link to post

Yeah they're dummy textures, and merely mark the beginning of the TEXTURE1 list. The dummies are used when you don't want a texture displayed (or so some editing tricks use them). I think some hardware accelerated engines have (or had) the issue that these are displayed, screwing up where they were used as transparency.

Share this post


Link to post

The "raise platform to nearest texture" trigger would raise the platform to an unclimbable 72 units if the texture in question was left blank because of this. Also Wadauthor has AASHITTY as a small texture with lots of skulls in it, i dunno if putting it on a wall would cause the texture with skulls to appear, or a HOM, if it was done in that editor, i never tried it

Share this post


Link to post

AASTINKY and AASHITTY are the 0th entries in the textures list. Unfortunately, "-" is also index zero, and is used to indicate "no texture". At least that's my understanding of it...

(I guess they're just placeholders; apparently no-one at id wanted to treat it as a 1-based array.)

Share this post


Link to post

Wow, I never knew what the deal with those textures were, oh Doom will you never stop giving up your secrets?

Share this post


Link to post

Yeah, a value of zero is used internally to represent the "-" texture, which doesn't really appear in TEXTURE1. But zero is also the index of the first entry in an array in C, so if AASHITTY/AASTINKY weren't there in TEXTURE1 you'd be unable to access the first texture in the list: it would always map to zero, which is "no texture". Presumably Id's tool to generate the TEXTURE1 lump sorted the textures by alphabetical order, so they put the 'AA' at the start to force it to be the first texture.

Share this post


Link to post

Then that also explains the "BADPATCH" and "ABADONE" textures in Heretic and Hexen, respectively. I wondered why those iwads were following the Doom iwads with the stupidly named dummy textures, now it makes sense.

Just gotta figure out how to emulate this in EDGE now...

Share this post


Link to post

What's so hard about it to emulate? First texture in a TEXTURE1 lump = invalid. It's as simple as that.

Share this post


Link to post
Graf Zahl said:

What's so hard about it to emulate? First texture in a TEXTURE1 lump = invalid. It's as simple as that.

If I simply ignore the first texture, the engine will display a solid dummy texture instead (a question mark thingy).

Making it equivalent to "-" is the slightly tricky part.

Share this post


Link to post

AASTINKY can be safely replaced by GRAYTALL, while AASHITTY by SP_FACE2. The naming could be explained by the fact that id weren't able to make unsorted lists, that's why AA. And stinky shitty? They were mad because they had to make this hack of imperfection. I'd be mad too if I couldn't make a list look clean. That's why stinky and shitty they're called. They put something to match the names: AASTINKY shows a dirty red light/marking band which could be soiled, while AASHITTY shows body parts, possibly containing useless products. Enough ranting, sorry for it.

Share this post


Link to post

Yeah. It's "shitty" because Carmack and/or Romero couldn't program the engine to use -1 as the dummy texture value instead of 0. I mean really, how simple is that? :P

Share this post


Link to post

Oh, I'm sorry Quasar, did you write a more efficient, real time BSP rendering engine in 1993 for the purpose of running sophisticated computer graphics on a 386?

Share this post


Link to post
Quasar said:

Yeah. It's "shitty" because Carmack and/or Romero couldn't program the engine to use -1 as the dummy texture value instead of 0. I mean really, how simple is that? :P



One of the many mysteries of the Doom engine...
The funny thing is, there are so many bad design decisions in Doom that sometimes I had to question the programmers' capabilities. Apparently back then all that mattered was that it didn't crash.

Share this post


Link to post

Well, as far as i know it was always assumed, that John Carmack was a code artisan, keeping it mostly clean; however Romero was a code artist, his code can sometimes be barely understood. Kind of achieve the purpose at all costs thinking.

Share this post


Link to post

Graf Zahl said:
The funny thing is, there are so many bad design decisions in Doom that sometimes I had to question the programmers' capabilities. Apparently back then all that mattered was that it didn't crash.

I'm not much of a C programmer, but there's stuff in there that looks wrong even to me...

Given their time constraints (what did it take, a year from start to shareware release?), it was probably more a case of "get it playable" rather than "make it pretty and 100% correct".

Share this post


Link to post
Scuba Steve said:

Oh, I'm sorry Quasar, did you write a more efficient, real time BSP rendering engine in 1993 for the purpose of running sophisticated computer graphics on a 386?

Regardless, a lot of the shit in the Doom source is pretty amateurish. Look at how the OUCH face practically never shows because they flipped a greater than sign or whatever.

Share this post


Link to post

Maybe, but the point I was hinting at was this; It's easy to look back at 14 year old game code and say "Oh man, Carmack sucked, how amateurish", but The Doom engine was probably a rush job and, despite the small faults, the engine is astounding that it runs on such low system specs at a time when even the most powerful game consoles were unable to run it. I'm sure everyone's code would be better if you could have 14 years of someone nitpicking every tiny detail of it.

Share this post


Link to post

I never claimed the code sucks and was written by newbies :) I'm studying - what you'd call - Computer Science, so I should be able to code a thing or two by now; and I know that when I do, I leave tons of garbage and make hundreds of silly mistakes myself, yet I'm far from writing anything I could proudly call a program.

Even though the game was coded 14 years ago, it will really not stop to astonish me.

Share this post


Link to post

Scuba Steve said:
I'm sure everyone's code would be better if you could have 14 years of someone nitpicking every tiny detail of it.

Indeed, and we can complain when we are using it as a base to do something else, or to add stuff to it, but that's definitely not what it was coded for.

Share this post


Link to post

It's not the presence of the bug that I'm criticizing so much as it is the fact that they knew about it, and instead of fixing it in the code, they put in a dummy texture to work around it. This is the kind of thing you do when you don't have access to the source code, or when you know it's a complex problem. In this case, it was just a poor design decision and one that could have been fixed in less time than it took to add AASHITTY to the list of textures :P

It's just fundamentally silly.

Share this post


Link to post
Quasar said:

It's just fundamentally silly.

If playing a 14 years old game wasn't silly enough.

Share this post


Link to post

One use for the AA* textures is when you're doing shadowcasting, fake floor 3d bridges, or any other vanilla special effect that relies on missing textures to work. You put the AA* texture on a sidedef you know needs a missing texture on it, without making Yadex's missing texture checker shout at you for putting "-" on a sidedef that it thinks is visible.

Share this post


Link to post
Quasar said:

It's just fundamentally silly.

Or, they didn't care.

Share this post


Link to post

Yep, it was never planned that people create their own maps, the -file parameter given or taken.
IMHO, if it was planned they would have given out a map editor with the release.

So, its just some desicion in the ranks of "It works and nobody will ever see our hack."

Share this post


Link to post

Yep, it was never planned that people create their own maps, the -file parameter given or taken.

This is contradicted by Masters of Doom; see here.

Share this post


Link to post

Yeah, after Wolf3d, the guys decided to make the game more mod-friendly, to encourage peope to make their own shit. With each game that came out editing got a little easier, like the Quake series.

Share this post


Link to post
Linguica said:

Regardless, a lot of the shit in the Doom source is pretty amateurish. Look at how the OUCH face practically never shows because they flipped a greater than sign or whatever.

To be honest, that kind of bug is the kind of mistake that even an experienced programmer could make. It's easy to get something backwards like that. The fact that nobody noticed it suggests a lack of testing and that they were probably rushed for time, though.

Share this post


Link to post
Quasar said:

It's not the presence of the bug that I'm criticizing so much as it is the fact that they knew about it, and instead of fixing it in the code, they put in a dummy texture to work around it. This is the kind of thing you do when you don't have access to the source code, or when you know it's a complex problem. In this case, it was just a poor design decision and one that could have been fixed in less time than it took to add AASHITTY to the list of textures :P

It was probably something they only thought of when the engine was already half-finished. It's a pretty significant task to go through the entire rendering engine and change every occurrence of if (texture) / if (!texture) to if (texture != -1) / if (texture == -1).

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×