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

Chocolate Doom all-ghosts bug.

Recommended Posts


I was playing Alien Vendetta in Chocolate Doom v1.3.0 and as you will see near the end of the demo, I got an all ghosts bug to occur, where I had no clipping mode, but so did the enemies. This would have made it impossible to exit the map if I had tried. What happened? I did not do anything strange with the controls, but this still happened. Is this like the all-ghosts manor.wad bug?

I just played it back with prboom+ and it showed the same bug with -complevel 2.


Share this post

Link to post

Yeah, it should be the same effect found in Manor; an INTERCEPTS overflow, explained here by cph, the former PrBoom coder.

Share this post

Link to post

One of the precise reasons for this is because, in p_maputl.c at line 547, you see this:

intercept_t intercepts[MAXINTERCEPTS];
intercept_t* intercept_p; 
Because Watcom output the variables *mostly* in source definition order, this means that pretty much the first thing overwritten by an intercepts overflow is the intercept_p pointer, which tracks the current position where intercepts are being added to the array. This destroys the game's ability to traverse the intercepts list, and generally, since the first DWORD in an intercept_t is a fixed_t number, it starts looking at some large pseudorandom address and returning false for all operations on the list. This instantly disables all tracers, use of special lines, and sliding against walls.

Some of the entries overwritten by a more substantial overflow apparently include the blocklinks list, blockmap pointer, and blockmap boundary information (width, height, and upper left corner coordinates), which is necessary for clipping objects against linedefs and against each other. So this causes monsters and the player to walk through walls and into raised floors.

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