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

Exact Revenant behaviour?

Recommended Posts

I recently noticed a discrepancy in ZDoom wiki about the Revenant's decorate script and BlueShadow fixed it according to the ZDoom source:
http://zdoom.org/wiki/Classes:Revenant
http://zdoom.org/wiki/A_SkelWhoosh
https://github.com/rheit/zdoom/blob/master/wadsrc/static/actors/doom/revenant.txt#L33

So first Melee frame has a duration of 1 and first Missile frame a duration of 0.

In Eternity I see this in base/doom/things.edf

Spoiler

firstdecoratestate S_SKEL_STND
states
@"
Spawn:
SKEL AB 10 A_Look
loop
See:
SKEL AABBCCDDEEFF 2 A_Chase
loop
Melee:
SKEL G 0 A_FaceTarget
SKEL G 6 A_SkelWhoosh
SKEL H 6 A_FaceTarget
SKEL I 6 A_SkelFist
goto See
Missile:
SKEL J 0 bright A_FaceTarget
SKEL J 10 bright A_FaceTarget
SKEL K 10 A_SkelMissile
SKEL K 10 A_FaceTarget
goto See
Pain:
SKEL L 5
SKEL L 5 A_Pain
goto See
Death:
SKEL LM 7
SKEL N 7 A_Scream
SKEL O 7 A_Fall
SKEL P 7
SKEL Q -1
stop
Raise:
SKEL QPONML 5
goto See

Whacked4's definitions also have both states starting with a 0 duration FaceTarget.

I then ran Dehacked 3.1 under Dosbox and loaded doom2.exe. It also shows 0 duration for both its melee and attack states.

tl;dr
Does the Revenant's first Melee frame have 0 duration or 1? Is ZDoom's Revenant behaviour simply wrong or does it have to do with some hardcoded engine quirk?

Share this post


Link to post

It was discovered a couple months ago that, during the conversion from hardcoded base game actors to actors fully exposed to Decorate, there were some errors. Thing is, nobody ever caught them - this is likely one of them that still hasn't been caught.

Share this post


Link to post

Vanilla code:

    {SPR_SKEL,6,0,{A_FaceTarget},S_SKEL_FIST2,0,0},	// S_SKEL_FIST1
    {SPR_SKEL,6,6,{A_SkelWhoosh},S_SKEL_FIST3,0,0},	// S_SKEL_FIST2
    {SPR_SKEL,7,6,{A_FaceTarget},S_SKEL_FIST4,0,0},	// S_SKEL_FIST3
    {SPR_SKEL,8,6,{A_SkelFist},S_SKEL_RUN1,0,0},	// S_SKEL_FIST4
    {SPR_SKEL,32777,0,{A_FaceTarget},S_SKEL_MISS2,0,0},	// S_SKEL_MISS1
    {SPR_SKEL,32777,10,{A_FaceTarget},S_SKEL_MISS3,0,0},	// S_SKEL_MISS2
    {SPR_SKEL,10,10,{A_SkelMissile},S_SKEL_MISS4,0,0},	// S_SKEL_MISS3
    {SPR_SKEL,10,10,{A_FaceTarget},S_SKEL_RUN1,0,0},	// S_SKEL_MISS4
So 0 tics for both melee and missile is what's right.

Share this post


Link to post
Arctangent said:

It was discovered a couple months ago that, during the conversion from hardcoded base game actors to actors fully exposed to Decorate, there were some errors. Thing is, nobody ever caught them - this is likely one of them that still hasn't been caught.



I hope that's the last one. Yeah, when I converted the first actors I used some pre-DECORATE conversions that had a few subtle alterations - and nobody noticed for many, many years...

Share this post


Link to post

So that means that all bragging rights and claims of m4d counter-Revenant sk11llz have to be revised? ;-)

Share this post


Link to post
Graf Zahl said:

I hope that's the last one.

I'm afraid it's not. I've just now made comparisons between DECORATE states defined in zdoom.pk3 of ZDoom 2.8.0 and vanilla DEHACKED states. A couple of these discrepancies that I've reported some time ago are still present:

1. Mancubus's last 2 Missile states call FaceTarget in DEHACKED, but not in DECORATE.
2. Pain Elemental's last 2 Missile states have durations 5 and 0 in DEHACKED, but 4 and 1 in DECORATE.

Note that any of these discrepancies are capable of causing problems when custom DEHACKED does something with these states, as I've reported in the thread linked above.

Share this post


Link to post
Maes said:

So that means that all bragging rights and claims of m4d counter-Revenant sk11llz have to be revised? ;-)

Heh, yeah the Revenant in ZDoom has been 8.33% slower to throw his punch than normal

Time for him to git gud in 2016 :D

Share this post


Link to post

In similar news, I noticed that crushers (and maybe up-down platforms too?) in ZDoom don't use the same timing as in vanilla, since it seems like they don't pause for a tic at the top and bottom, so my googol.wad gets thrown out of sync.

Share this post


Link to post

How many other things in our source ports haven't been accurate, I wonder? I feel as though I've been living a lie all these years.

Share this post


Link to post
Job said:

How many other things in our source ports haven't been accurate, I wonder? I feel as though I've been living a lie all these years.

Which source ports? Those that are vanilla demo-compatible are accurate.

Share this post


Link to post
VGA said:

Which source ports? Those that are vanilla demo-compatible are accurate.

Thanks for the clarification. For the sake of cutting to the chase, which source ports still have inaccuracies?

Share this post


Link to post

Not related to the state table (not directly, at least): ZDoom has different muzzle flash behavior. Classic engines skip the first tic of the muzzle flash for whatever reason, ZDoom doesn't. It messes with the stock pistol a little bit, because its muzzle flash is 1 tic longer than the state that calls it.

Share this post


Link to post
Job said:

Thanks for the clarification. For the sake of cutting to the chase, which source ports still have inaccuracies?

http://doomwiki.org/wiki/Comparison_of_source_ports
Look at the compatibility comparison.

Basically Chocolate Doom and Crispy Doom are very faithful. Crispy Doom has some fixes that don't mess up with demo compatibility. But these don't support Boom maps.

For Boom maps the most compatible are prboom+ and Eternity. prboom+ has complevels to emulate the behaviour of the various Doom versions, with their bugs.

It generally depends on what you mean "inaccuracies". Don't get crazy because a monster was fisting you 1/35th of a second slower, heh, it is fixed from now on.

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  
×