GoneAway Posted August 21, 2021 (edited) I thought it would make sense to make a separate thread for visibility on this subject. In case you missed it, dsda-doom now supports "unlimited" dehacked things, states, sprites, and sounds, as of v0.21. This is an extension of mbf21, which vastly increased the demand for raised limits in dehacked. Here is the specification for the dsda-doom implementation of unlimited dehacked stuff: https://github.com/kraflab/dsda-doom/blob/master/docs/dsdhacked.md The implementation of this in other ports would be specific to the given port (i.e., how you would map an unlimited dehacked-space into your existing infrastructure). It might not help much, but the general abstraction for this in dsda-doom can be seen in these files: https://github.com/kraflab/dsda-doom/blob/master/prboom2/src/dsda/state.c https://github.com/kraflab/dsda-doom/blob/master/prboom2/src/dsda/sprite.c https://github.com/kraflab/dsda-doom/blob/master/prboom2/src/dsda/mobjinfo.c https://github.com/kraflab/dsda-doom/blob/master/prboom2/src/dsda/sfx.c https://github.com/kraflab/dsda-doom/blob/master/prboom2/src/d_deh.c Something like woof could probably adopt this with relative ease, but I don't know about the more complex ports. Comments, concerns, issues? Please reply in this thread! Edited August 21, 2021 by kraflab 51 Quote Share this post Link to post
Gibbon Posted August 21, 2021 I might consider this too. Better than constantly changing the goalposts, just make it unlimited. 6 Quote Share this post Link to post
Mystic 256 Posted August 22, 2021 the mbf21 stuff is why switched from using pr boom+ to dsda doom because it open up a lot of new possibilities for mapping and dehacked 0 Quote Share this post Link to post
Redneckerz Posted August 22, 2021 15 hours ago, kraflab said: I thought it would make sense to make a separate thread for visibility on this subject. In case you missed it, dsda-doom now supports "unlimited" dehacked things, states, sprites, and sounds, as of v0.21. This is an extension of mbf21, which vastly increased the demand for raised limits in dehacked. Here is the specification for the dsda-doom implementation of unlimited dehacked stuff: https://github.com/kraflab/dsda-doom/blob/master/docs/dsdhacked.md The implementation of this in other ports would be specific to the given port (i.e., how you would map an unlimited dehacked-space into your existing infrastructure). It might not help much, but the general abstraction for this in dsda-doom can be seen in these files: https://github.com/kraflab/dsda-doom/blob/master/prboom2/src/dsda/state.c https://github.com/kraflab/dsda-doom/blob/master/prboom2/src/dsda/sprite.c https://github.com/kraflab/dsda-doom/blob/master/prboom2/src/dsda/mobjinfo.c https://github.com/kraflab/dsda-doom/blob/master/prboom2/src/dsda/sfx.c https://github.com/kraflab/dsda-doom/blob/master/prboom2/src/d_deh.c Something like woof could probably adopt this with relative ease, but I don't know about the more complex ports. Comments, concerns, issues? Please reply in this thread! As if a universal MBF21 standard was not enough... you went ahead and created another one of your own? :P So this is basically Fusion ramped up to unlimited. And given its implementation is port-specific with a generic framework, i guess this is yet another Cacoward worthy entry. Obviously this calls for an example WAD to be made using this though! Right, that settles it. DSDA-Doom wiki page will be incoming. 8 Quote Share this post Link to post
Wavy Posted August 22, 2021 Holy cow. Don't give me ideas for what I can do with this hehe 2 Quote Share this post Link to post
fabian Posted August 22, 2021 The pace with which you go ahead and render any other source port obsolete is... amazing! 18 Quote Share this post Link to post
Gibbon Posted August 22, 2021 After taking a look, ReBoom could have this no problem. It fits very nicely. 9 Quote Share this post Link to post
Redneckerz Posted August 22, 2021 1 hour ago, fabian said: The pace with which you go ahead and render any other source port obsolete is... amazing! I know, right. This Kraflab guy is one to watch out for! ;) But in all honesty this stuff is bizarrely impressive. Who would have thought that 2021 would give birth to so many giant steps for modding? Its as if some folks decided ''Alright, we have dealt with Doom's limits long enough. To reinforce another 20+ years, here is what we will do..'') 33 minutes ago, Gibbon said: After taking a look, ReBoom could have this no problem. It fits very nicely. This... no way. I understand not going for MBF21, but DSDHacked? I am supposed to go on holiday guys in a week. All you lot are doing is making me postpone it. 5 Quote Share this post Link to post
Gibbon Posted August 22, 2021 7 minutes ago, Redneckerz said: I know, right. This Kraflab guy is one to watch out for! ;) But in all honesty this stuff is bizarrely impressive. Who would have thought that 2021 would give birth to so many giant steps for modding? Its as if some folks decided ''Alright, we have dealt with Doom's limits long enough. To reinforce another 20+ years, here is what we will do..'') This... no way. I understand not going for MBF21, but DSDHacked? I am supposed to go on holiday guys in a week. All you lot are doing is making me postpone it. I'd always prefer a once and done approach rather than just upping limits every few years. At least with this, it is done. 2 Quote Share this post Link to post
Gez Posted August 22, 2021 18 minutes ago, Redneckerz said: This... no way. I understand not going for MBF21, but DSDHacked? This is just a lifting of frame/mobj/sprite/sound slot limits, but not an addition of new features such as new actor flags or codepointers. In a way it's a lot more conservative. 6 Quote Share this post Link to post
Redneckerz Posted August 22, 2021 22 minutes ago, Gibbon said: I'd always prefer a once and done approach rather than just upping limits every few years. At least with this, it is done. Hilarious. ReBoom began as a port of PrBoom 2.02 - Now it will go on to feature unique things all on its own. Breaking ground here! 10 minutes ago, Gez said: This is just a lifting of frame/mobj/sprite/sound slot limits, but not an addition of new features such as new actor flags or codepointers. In a way it's a lot more conservative. That is a good interpretation indeed. I just find it remarkable how, after years of vanilla limits, we are now supposely are not raising DeHacked limits but outright breaking them aswell. Its an idea as old as time, but only now its getting there. 1 Quote Share this post Link to post
Gibbon Posted August 22, 2021 This sounds like a challenge to add more features :) 1 Quote Share this post Link to post
Gez Posted August 22, 2021 38 minutes ago, Redneckerz said: That is a good interpretation indeed. I just find it remarkable how, after years of vanilla limits, we are now supposely are not raising DeHacked limits but outright breaking them aswell. Its an idea as old as time, but only now its getting there. "Only now" only if you only look at DEHACKED. (That's a lot of onlies for such a short sentence!) Unlimited states and such have been available since EDGE's DDF... 2 Quote Share this post Link to post
Biz! Posted August 22, 2021 2 minutes ago, Gez said: "Only now" only if you only look at DEHACKED. (That's a lot of onlies for such a short sentence!) Unlimited states and such have been available since EDGE's DDF... 9 Quote Share this post Link to post
Redneckerz Posted August 22, 2021 1 hour ago, Gez said: "Only now" only if you only look at DEHACKED. (That's a lot of onlies for such a short sentence!) Unlimited states and such have been available since EDGE's DDF... But E.D.G.E never got to play at the main stage. Now, why is that... :P 54 minutes ago, Redoom said: Oh dear, the cringe. 6 Quote Share this post Link to post
dmdr Posted August 23, 2021 (edited) Stuff that seems too good to be true usually is. What's the catch? Edited August 23, 2021 by dmdr 1 Quote Share this post Link to post
Graf Zahl Posted August 23, 2021 Mainly that it may take time to get this ported to other ports, actually. For GZDoom this may be a bit tricky due to how it handles actor definitions. There are no static tables, everything is done through ZScript and DECORATE. Dehacked is just a postprocessor of the already defined data and operates under the assumption that this data is finalized and can use some static lookup tables to address the data to be edited. Which with this extension it isn't anymore. It's surely all doable but not a trivial extension of what's there. I cannot say how this may affect other ports, some may have an easier time, but some may even face more difficulties, depending on how they work internally. 17 Quote Share this post Link to post
HavoX Posted August 23, 2021 8 hours ago, Graf Zahl said: Mainly that it may take time to get this ported to other ports, actually. I cannot say how this may affect other ports, some may have an easier time, but some may even face more difficulties, depending on how they work internally. ...I can live with that. 3 Quote Share this post Link to post
dmdr Posted August 25, 2021 yeah me too. for once, my skepticism was unwarranted; great work @kraflab 4 Quote Share this post Link to post
MTrop Posted September 2, 2021 (edited) Hey, @kraflab, while the "unlimited" range is cool, I think it would need to facilitate an increase in the "Doom Version" value in a DeHackEd patch especially with the new features. Older ports than Boom/MBF would immediately error out (as they should), and newer ports will be able to shuffle its internals in case they use anything beyond the maximums that DEHEXTRA would address (case in point - Eternity uses the higher ranges for some additional Eternity built-ins). If a new Doom Version number is established, other ports can have a clearer signal that their internals need shifting or redefining. The Patch Version however, would need no changes, as the format of the patch itself isn't really changing. EDIT: I'd probably suggest "30" for the number, if no other port is using it. Other ports should have done the same, really (looking at you, Doom Retro!). Edited September 2, 2021 by MTrop 1 Quote Share this post Link to post
GoneAway Posted September 2, 2021 Sure, we can version it. I'd suggest something less likely to have a clash and more expressive, like `2021`, if there isn't an issue with that. 1 Quote Share this post Link to post
Graf Zahl Posted September 2, 2021 Whatever suits you, but it'd be a lot of help knowing up front that this might extend the working set of data. 2 Quote Share this post Link to post
ChopBlock223 Posted September 2, 2021 On 8/22/2021 at 5:18 PM, Gibbon said: This sounds like a challenge to add more features :) Yeah, like defining basic dummy values for weapons and monsters to keep track of, and a JumpIf function call checking for said values, that has untold mileage. On 8/22/2021 at 7:00 PM, Redneckerz said: But E.D.G.E never got to play at the main stage. Now, why is that... :P Hey! Edge had Immoral Conduct, which justified the entire port! 2 Quote Share this post Link to post
Redneckerz Posted September 2, 2021 53 minutes ago, ChopBlock223 said: Hey! Edge had Immoral Conduct, which justified the entire port! *googles* Sir, this is atleast 15 years ago. EDGE needs its own Heartland. 2 Quote Share this post Link to post
ChopBlock223 Posted September 2, 2021 I wasn't arguing for the continued use of Edge, god no (there's a largely fateful port of ICD Special Edition in Decorate anyway), just that it made its mark. 1 Quote Share this post Link to post
GoneAway Posted September 2, 2021 (edited) Updated the spec to use `Doom version = 2021` Edited September 2, 2021 by kraflab 3 Quote Share this post Link to post
Redneckerz Posted September 3, 2021 15 hours ago, kraflab said: Updated the spec to use `Doom version = 2021` Thanks on that one. I want to include DSDHacked on the wiki. Should i take it literally and update the MBF21 page, or call for a separate page? Judging by the two, one could support DSDHacked, but not MBF21 as that also involves other things. So they seem separate standards. 1 Quote Share this post Link to post
GoneAway Posted September 3, 2021 Whether or not it should have its own page is up to you, I don't know much about how the wiki is structured :^) You can consider dsdhacked as "mbf21 + unlimited dehacked". I believe decohack will assume dsdhacked implies mbf21, for instance. This is to avoid a hodgepodge of puzzle piece standards and to try to have an incremental path forward where possible. 4 Quote Share this post Link to post
Redneckerz Posted September 4, 2021 17 hours ago, kraflab said: Whether or not it should have its own page is up to you, I don't know much about how the wiki is structured :^) You can consider dsdhacked as "mbf21 + unlimited dehacked". I believe decohack will assume dsdhacked implies mbf21, for instance. This is to avoid a hodgepodge of puzzle piece standards and to try to have an incremental path forward where possible. With the way you phrase it, and how it was introduced, i am inclined to go with the former option: Being something related to MBF21, but it isn't required. One could support DSDHacked yet ignore the MBF21 spec. DecoHack's approach is appealing, aswell - By implying that without MBF21, there is no DSDHacked you do make it easier for mod authors to support the whole she-bang. So flexibility versus ease of access. Considering its a spec and DSDA-Doom is one implementation of it, ill make it a separate entry. One port could support DSDHacked, being an extension to Vanilla, yet leave more broader, Boom/MBF-level enhancements aside. I will denote DecoHack's approach to this aswell - Leaving it to the reader and thus any author up to decide as to how they want to support it, just that there is more than one way to support DSDHacked. 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.