Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
VGA

DEHACKED bug

Recommended Posts

Okay, I figured it out. The plasma gun still does ARRGHHHH player screams because the actual offending frame is 1070, which in Eternity is the beta Lost Soul scream frame. 969 however is cleared, as it is correct. The v2 Dehacked patch doesn't clear the codepointer of frame 1070.

Share this post


Link to post

Are Eternity's frames wrong?

According to Whacked these are the code pointers used by those last frames:

1070: NULL
1071: Scream
1072: NULL
1073: Fall
1074: Stop
1075: Mushroom


Does Eternity have the Scream codepointer on frame 1070 instead of 1071? Because WinMBF, ZDoom, Doom Retro and Whacked4 think otherwise :D

Share this post


Link to post

Looking at the MBF source code (INFO.C) confirms that:

  // deathstate
  {SPR_SKUL, 9,5,NULL,S_BSKUL_DIE2},     // S_BSKUL_DIE1
  {SPR_SKUL,10,5,NULL,S_BSKUL_DIE3},     // S_BSKUL_DIE2
  {SPR_SKUL,11,5,NULL,S_BSKUL_DIE4},     // S_BSKUL_DIE3
  {SPR_SKUL,12,5,NULL,S_BSKUL_DIE5},     // S_BSKUL_DIE4
  {SPR_SKUL,13,5,A_Scream,S_BSKUL_DIE6}, // S_BSKUL_DIE5
  {SPR_SKUL,14,5,NULL,S_BSKUL_DIE7},     // S_BSKUL_DIE6
  {SPR_SKUL,15,5,A_Fall,S_BSKUL_DIE8},   // S_BSKUL_DIE7
  {SPR_SKUL,16,5,A_Stop,S_BSKUL_DIE8},   // S_BSKUL_DIE8

#endif

  // killough 10/98: mushroom effect
  {SPR_MISL,32769,8,A_Mushroom,S_EXPLODE2},  // S_MUSHROOM
If the last line (S_MUSHROOM) is 1075, then counting backward S_BSKUL_DIE8 is 1074, S_BSKUL_DIE7 is 1073, S_BSKUL_DIE6 is 1072, and the state with A_Scream is S_BSKUL_DIE5 on 1071.

Share this post


Link to post

Damnit, I'll fix it. This is like a change ZDoom would have made in the 90s/00s. If you still want good-looking beta lost souls you can make your damn mod.

Share this post


Link to post

I see this in there:

  Pain:
    EEBS G 4
    EEBS H 2 A_Pain
	goto See
  UnusedPain:
Can anyone post the original code for reference? ZDoom has this like Eternity had before that change.

Share this post


Link to post
printz said:

Damnit, I'll fix it. This is like a change ZDoom would have made in the 90s/00s. If you still want good-looking beta lost souls you can make your damn mod.

Thanks for fixing it but I don't understand why you keep referencing the beta lost soul. Noone on this pebble of a planet cares about MBF's beta crap, they are just repurposed frames :D

Share this post


Link to post
Graf Zahl said:

Can anyone post the original code for reference? ZDoom has this like Eternity had before that change.

  // painstate
  {SPR_SKUL,6,4,NULL,S_BSKUL_PAIN2},     // S_BSKUL_PAIN1
  {SPR_SKUL,7,2,A_Pain,S_BSKUL_RUN1},   // S_BSKUL_PAIN2
  {SPR_SKUL,8,4,NULL,S_BSKUL_RUN1},      // S_BSKUL_PAIN3
The last two states both have S_BSKUL_RUN1 as their next state, so the third state isn't going to be reached normally. Probably a mistake on Killough's part originally.

Share this post


Link to post
printz said:

Damnit, I'll fix it. This is like a change ZDoom would have made in the 90s/00s. If you still want good-looking beta lost souls you can make your damn mod.

Please discuss this kind of thing with me in the future. I would like the "fixed" lost soul to be a part of EE, with the doomed number I assigned to it. The MBF beta lost soul cannot even be spawned in a map, as such.

Share this post


Link to post

Isn't the problem just a misplaced Scream code pointer? Why can't the beta lost soul be spawned if that is moved to another frame?

Share this post


Link to post

No, it had other differences as well, like setting all frames to bright.
I think the biggest problem is that its death sequence ends up in a looping state that leaves some unfinished explosion behind.

As things stand, as a monster it's probably useless, ZDoom merely adopted this so that an MBF mod using these frames works, but no attempt was made to correct the definition mistakes.

Share this post


Link to post
Quasar said:

I would like the "fixed" lost soul to be a part of EE, with the doomed number I assigned to it. The MBF beta lost soul cannot even be spawned in a map, as such.

Then it should be a different actor with different states, so that dehacked patches work correctly despite whatever changes are made.

Share this post


Link to post

and possibly a different editor number, as ZDoom uses the same 9037 for the Beta Lost Soul.

And what's up with the sprite name? Eternity has EEBS, is this somewhere mapped to SKUL?

Share this post


Link to post

I think the frames should be correct, as they are in other ports, so that mods work fine.

And maybe there can be a condition where if a beta soul is used but no dehacked changes have been made in any of its frames ... then it will use the "fixed" frames.

Anyway how did it work in MBF? Or is it yet another of the characteristic fails of that source port?

Share this post


Link to post

If I see this correctly it was supposed to emulate the implementation of the beta, regardless of general usability.

As for 'condition', don't even start such nonsense. Better have a second definition that's entirely independent of this one.

Share this post


Link to post
Graf Zahl said:

and possibly a different editor number, as ZDoom uses the same 9037 for the Beta Lost Soul.

That can be changed on ZDoom's side, I doubt anyone ever used it in a ZDoom map. Keep in mind that the sprites conflict with the Lost Soul sprites.

Graf Zahl said:

And what's up with the sprite name? Eternity has EEBS, is this somewhere mapped to SKUL?

Different sprites to solve the conflict and allow use in regular Doom levels with also normal lost souls...

Share this post


Link to post
Gez said:

Different sprites to solve the conflict and allow use in regular Doom levels with also normal lost souls...



Which makes sense for a different actor, but not for the MBF stand-in.
This still strikes me as rather pointless for an engine-provided actor. That's a clear case that giving it the original ones makes more sense, there's nothing preventing a mapper from copying and modifying the definition if this is not sufficient, rather than having to copy the originals around to make it work at all.

(Thinking about that, a class specific sprite override might be a useful feature for a quick reskin of an existing class.)

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
Sign in to follow this  
×