fraggle Posted September 19, 2018 I've been sitting on this long enough that I figured I should probably just make a thread about it already and gather some wider feedback. I've been putting together a Dehacked/vanilla-compatible port of Perkristian's smooth weapons mod. While this has been ported to most source ports, as far as I know this is the first vanilla-compatible version, and I had to invent new tooling to gather together enough extra animation frames to make it work. Download here. I'll upload to idgames once I get enough feedback. Features: Replaces all weapons with versions that have more animation frames. I've made this as conservative as possible so that this is just "more animation frames" - you won't find any black gloves or extra fanciness here. Entirely vanilla-compatible and can be literally played with vanilla Doom (batch files are included in the .zip), and Chocolate Doom as well of course. Demo compatible with vanilla Doom - you can play back vanilla demos and they won't desync. Or you can record vanilla demos with it loaded and it shouldn't make any difference. It's been tested against over 9,400 demos from the Compet-N archive which all play back without desyncing (using statcheck). Palette compatible with major mods like BTSX using my limited palette hack (see video below) Source code for the Dehacked patch can be found here in the DEH9000 repository. Yes, that really is the source code. 91 Quote Share this post Link to post
Bauul Posted September 19, 2018 That's incredible! And I completely don't understand how it works! Forgive me for the basic question, but my understanding of Dehacked was you had to borrow frames from elsehwere. Where did you manage to find so many extra frames? 2 Quote Share this post Link to post
fraggle Posted September 19, 2018 20 minutes ago, Bauul said: And I completely don't understand how it works! Forgive me for the basic question, but my understanding of Dehacked was you had to borrow frames from elsehwere. Where did you manage to find so many extra frames? This was indeed probably the biggest challenge with porting this to vanilla. DEH9000, my Python library for generating Dehacked patches, has a built-in set of reclaim strategies that can make subtle (or invisible) changes to Doom's frames table to get you 100+ extra frames. The strategies become more invasive and visible the more you request, but the ones used for this patch are subtle enough that you probably won't notice. There's some more details in the DEH9000 user guide here. 11 Quote Share this post Link to post
m8f Posted September 19, 2018 Great job! My only nitpick is Plasma Rifle. It feels static when firing, and plasma balls are dark at the borders. Is it intended? 6 Quote Share this post Link to post
fraggle Posted September 19, 2018 15 minutes ago, m8f said: My only nitpick is Plasma Rifle. It feels static when firing, and plasma balls are dark at the borders. Is it intended? Do you mean in the video? That's probably just the BTSX palette. The mod itself doesn't change the plasma balls. As far as the plasma rifle looking static when firing, I think this is consistent with the original animation and this is intended to stay close to the original. 0 Quote Share this post Link to post
Reiken Posted September 19, 2018 Nice, but I really prefer the earlier iteration of these animations where the front of the bfg doesn't oscillate. Very interesting to see that there are so many frames hanging around to cannibalize.. Vanilla + modern tooling and techniques just keeps getting better and more intriguing. 0 Quote Share this post Link to post
m8f Posted September 19, 2018 Oops. Please don't mind me. I got so used to GZDoom that I forgot that there is no translucency in the original game. In PrBoom+ and Chocolate Doom plasma balls are identical with and without smooth weapons indeed. The difference is visible only in GZDoom: Spoiler And this mod makes it look more vanilla. Thanks for making this mod! 2 Quote Share this post Link to post
indigotyrian Posted September 19, 2018 (edited) 2 hours ago, fraggle said: I had to invent new tooling There's burying the lede, then there's this. Holy shit. I honestly can't wait to see what people do with this. Edited September 19, 2018 by segfault 4 Quote Share this post Link to post
SiFi270 Posted September 19, 2018 When I discovered this earlier in the year I reported this. I don't know if you've already seen it, but if you haven't, I understand because you often seem pretty busy. Quote I've tried this with ZDoom and the chainsaw still seems to be having problems. When I attack with it, DSSAWFUL plays in its entirety, with no DSSAWIDL afterward, and then the jittering the decorate entry was supposed to prevent comes back. Another thing I've noticed about playing in ZDoom is that pistol pickups no longer work, which can break some wads like Shadows of the Nightmare realm where players have the pistol taken away from them for one reason or another and have to find a new one. Since then I've come up with a solution to the pistol issue, and it's as simple as adding this to the decorate: actor SmoothPistolPickup : CustomInventory replaces Pistol { Inventory.Pickupmessage "$PICKUP_PISTOL_DROPPED" Inventory.Pickupsound "misc/w_pkup" states { Spawn: PIST A -1 stop Pickup: TNT1 A 0 A_GiveInventory ("Pistol") } } 0 Quote Share this post Link to post
Liberation Posted September 19, 2018 @fraggle deh9000, is the final output still a .deh, or does it have a bit more clout? It does look like one of the most useful tools out for editing/modding in a good while. Still one hell of an achievement getting this to work with vanilla, very impressed. 0 Quote Share this post Link to post
fraggle Posted September 19, 2018 Output is a normal .deh patch, yes. 0 Quote Share this post Link to post
scifista42 Posted September 19, 2018 5 hours ago, fraggle said: there's a quirk with Nightmare mode that I haven't quite resolved yet Maybe I or someone can help, tell us all you know about it. 0 Quote Share this post Link to post
fraggle Posted September 19, 2018 4 minutes ago, scifista42 said: Maybe I or someone can help, tell us all you know about it. I've been testing this feature using statcheck - I basically played back all Compet-N demos with vsmooth.wad/.deh loaded and checked for desyncs. Most demos play back correctly (I found some bugs which I fixed), but the remaining desyncs seem to be exclusively on the demos recorded on Nightmare difficulty for some reason. I suspect it's maybe related to how Doom changes certain frame speeds to speed up the Demon, but I haven't dug into it much yet. 1 Quote Share this post Link to post
riderr3 Posted September 19, 2018 (edited) The true nature of Dehacked unfolded. I wonder is this possible with Heretic HHE's. Edited September 19, 2018 by riderr3 5 Quote Share this post Link to post
scifista42 Posted September 19, 2018 (edited) 1 hour ago, fraggle said: I suspect it's maybe related to how Doom changes certain frame speeds to speed up the Demon, I doubt it, your DEHACKED patch doesn't change any Demon-related frames. However, I can see right away that: The patch completely removes Pain Elemental's resurrection animation, which prevents the Pain Elemental from being resurrected as a ghost if its corpse gets crushed into gibs before its death animation completes. The patch changes the overall duration of some monster's death animations, which can change at which particular moment they will respawn on Nightmare or otherwise with monster respawn enabled. EDIT: Actually, if there's an Archvile near the monster right when its death animation is about to finish, it can change at which particular moment the monster will be resurrected, on any difficulty level. Edited September 19, 2018 by scifista42 8 Quote Share this post Link to post
Cacodemon345 Posted September 20, 2018 Quite better. Smooth Doom for Weapons without all of those extra bloats. 0 Quote Share this post Link to post
fraggle Posted September 20, 2018 18 hours ago, scifista42 said: The patch completely removes Pain Elemental's resurrection animation, which prevents the Pain Elemental from being resurrected as a ghost if its corpse gets crushed into gibs before its death animation completes. I didn't even know this could happen. Amazing how even after years I still keep learning things. 18 hours ago, scifista42 said: The patch changes the overall duration of some monster's death animations, which can change at which particular moment they will respawn on Nightmare or otherwise with monster respawn enabled. EDIT: Actually, if there's an Archvile near the monster right when its death animation is about to finish, it can change at which particular moment the monster will be resurrected, on any difficulty level. Yeah, now that I think about it, it's almost certainly because of the Nightmare respawning logic. I'll see if disabling those particular hacks fixes the desyncs. Thanks, this is really insightful. 7 Quote Share this post Link to post
Grain of Salt Posted September 20, 2018 Posting just to say deh9000 looks like it could be super useful. I'm surprised you didn't know about ghost PEs. For some reason I think of that as a relatively wellknown bit of engine trivia. I guess doom just has so many weird quirks that no one knows all of them :) 1 Quote Share this post Link to post
Linguica Posted September 20, 2018 Playing with this again made me take a quick crack at making the plasma rifle's recoil look a little more natural: It would be nice if an artist took the time to make a couple more tweens in between the normal state and the original recoil frame, instead of having extra frames overexaggerating it. 20 Quote Share this post Link to post
Kroc Posted September 20, 2018 Codeaward right here. Anything where "we technically could have done this in 1994" tickles me so. 11 Quote Share this post Link to post
kb1 Posted September 21, 2018 On 9/19/2018 at 10:57 AM, fraggle said: This was indeed probably the biggest challenge with porting this to vanilla. DEH9000, my Python library for generating Dehacked patches, has a built-in set of reclaim strategies that can make subtle (or invisible) changes to Doom's frames table to get you 100+ extra frames. The strategies become more invasive and visible the more you request, but the ones used for this patch are subtle enough that you probably won't notice. There's some more details in the DEH9000 user guide here. Great job on the patch, and wow, I love the DEH9000 capabilities. I've had a project idea on the back burner for years - a Dehacked GUI that hides the frame number layer of complexity from the user. Without your approach, it's just not practical. But with the idea of choosing the least-invasive frames first, it becomes feasible. Furthermore, the functions you've built are just very cool. Nice job! On 9/19/2018 at 4:40 PM, scifista42 said: I doubt it, your DEHACKED patch doesn't change any Demon-related frames. However, I can see right away that: The patch completely removes Pain Elemental's resurrection animation, which prevents the Pain Elemental from being resurrected as a ghost if its corpse gets crushed into gibs before its death animation completes. The patch changes the overall duration of some monster's death animations, which can change at which particular moment they will respawn on Nightmare or otherwise with monster respawn enabled. EDIT: Actually, if there's an Archvile near the monster right when its death animation is about to finish, it can change at which particular moment the monster will be resurrected, on any difficulty level. This is quite clever! 10 hours ago, Linguica said: Playing with this again made me take a quick crack at making the plasma rifle's recoil look a little more natural: It would be nice if an artist took the time to make a couple more tweens in between the normal state and the original recoil frame, instead of having extra frames overexaggerating it. I have a hard time seeing the difference already being done with this patch. The one on the left is the enhanced version, right? Also, I have difficulty visualizing what you suggest. Do you mean adding images inbetween, when the gun raises up diagonally toward the player? 3 Quote Share this post Link to post
Magnusblitz Posted September 21, 2018 I think Linguica's fixed version is on the right. I agree that the one in fraggle's video looks a bit too smooth (heh), almost as if Doomguy is just doing a little dance with the gun every time he stops firing. Whereas the one on the right looks more like an actual sudden recoil kick. 3 Quote Share this post Link to post
kb1 Posted September 22, 2018 17 hours ago, Magnusblitz said: I think Linguica's fixed version is on the right. I agree that the one in fraggle's video looks a bit too smooth (heh), almost as if Doomguy is just doing a little dance with the gun every time he stops firing. Whereas the one on the right looks more like an actual sudden recoil kick. Oops. Well, there you go - I can't tell the difference. It seems like the left one has more frames in the gun-lifting sequence. But, maybe the frames are faster on the right?? So, they are both enhanced over vanilla? I should be able to tell that... I guess I could say that: Left: Looks more fluid, which is a good thing Right: Looks more realistic, which is a good thing. Again, after looking at them for a few seconds, I can't tell which one looks better. So, @Linguica, 3 questions: How did you make the GIF (edit the frames, or just video manipulation)? What do you think would improve the weapon patch as-is? Is one of the above images your idea of best improvement, and, if so, which one? (Sorry, I really can't tell...) 0 Quote Share this post Link to post
Linguica Posted September 22, 2018 I edited the frame offsets and the DEH frame sequence / timing (well, the source decorate...). until it looked more like recoil and less like an unnatural gun twist. 2 Quote Share this post Link to post
kb1 Posted September 22, 2018 4 hours ago, Linguica said: I edited the frame offsets and the DEH frame sequence / timing (well, the source decorate...). until it looked more like recoil and less like an unnatural gun twist. So..., your edit is on the right side? 0 Quote Share this post Link to post
Searcher Posted September 22, 2018 On 9/20/2018 at 8:53 AM, fraggle said: I didn't even know this could happen. Amazing how even after years I still keep learning things. Yeah, now that I think about it, it's almost certainly because of the Nightmare respawning logic. I'll see if disabling those particular hacks fixes the desyncs. Thanks, this is really insightful. Ghost PE Demo: http://doomedsda.us/lmps/282/9/cgas-gpe.zip Map: http://doomedsda.us/lmps/282/cga_sp.zip The first time I saw this it blew my socks off. I just could not believe it. 0 Quote Share this post Link to post
Grazza Posted September 22, 2018 (edited) On 9/19/2018 at 9:57 AM, fraggle said: the DEH9000 user guide here. I noticed an error: max_health Max Health Maximum health that can be reached using medikits alone. In fact it applies only to potions, limiting the value to which potions can increase health (default = 200). Potions will also decrease your health to this value if you are above it (so you can become a zombie if it is set to zero). More information (including how the Boom team got it wrong) here and here. The Boom team's error was perhaps due to the fact that there is also a constant called MAXHEALTH, which is hard-coded to 100 and can't be changed via dehacked. Edited September 22, 2018 by Grazza 3 Quote Share this post Link to post
94's the best style Posted September 23, 2018 On 9/22/2018 at 5:04 PM, Grazza said: I noticed an error: max_health Max Health Maximum health that can be reached using medikits alone. In fact it applies only to potions, limiting the value to which potions can increase health (default = 200). Potions will also decrease your health to this value if you are above it (so you can become a zombie if it is set to zero). More information (including how the Boom team got it wrong) here and here. The Boom team's error was perhaps due to the fact that there is also a constant called MAXHEALTH, which is hard-coded to 100 and can't be changed via dehacked. Heh, that sounds like an interesting hazard. Poisonous potions that can take you down to 1%. 2 Quote Share this post Link to post
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.