Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Apr 24, 2022 9:46:31 GMT -5
I don't get at all why would limit-removing ports like Crispy Doom and PrBoom+ in complevel 2 screw up the visuals of infinite ocean: doomshack.org/uploads/infocean.zip(I posted this in VigilantBSP thread, load any of the wads, in Chocolate-Doom to see the intended experience.) It's a doomshack upload, not an attachment, so unregistered users can see it. I even checked latest versions: Crispy Doom 5.11.1, PrBoom+ v2.6.2, toggled on/off fullscreen, used 8-bit in 640x480, etc. Why did they screw this up? Do you know any limit-removing port that preserves vanilla rendering? Or does the world need another fucking port, faithful to classic rendering yet limit-removing? Sprinkled Doom ( www.doomworld.com/forum/topic/124411-sprinkled-doom-330-updated-february-6th-2022/ ) renders the effect correctly, but it is limit-raising, not limit-removing, people say it would crash on AUGER;ZENITH, despite setting limits even higher than Doom32.
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Apr 24, 2022 9:50:59 GMT -5
Note: I am not yet suggesting I would make such port, just pointing out that limit-removing demo-compatible being limited to Crispy-Doom and PrBoom-plus is not enough. I really hate it when people say that AUGER;ZENITH is for Crispy-Doom and above. Those ports are not 100% faithful in their rendering of special effects to vanilla, there could be a ground between Chocolate-Doom and them that is still limit-removing and demo-compatible.
I also forgot to mention, that for such a limit-removing port, it should be demo-compatible just like PrBoom-plus, but rendering has to be done in vanilla style / Chocolate style.
|
|
xeepeep
Banned
Forever
Posts: 2,338
|
Post by xeepeep on Apr 24, 2022 9:52:31 GMT -5
Limit removal per se is not to blame here. Both crispy and prb have a lot more features than just chocolate doom without the visplane limit. Both incorporate some enhancements that reduce slime trails and such. Sadly it seems to break my effect somehow. DOS Boom renders it properly when it feels like it, which is why I think these enhancements come from MBF. Also Doom Legacy renders it properly, and that thing was mostly developed before MBF. Haven't tried it but this might work: doomwiki.org/wiki/Chocolate_Doom_PlusOr you could just use Doom Legacy as mentioned.
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Apr 24, 2022 10:09:29 GMT -5
Well, Sprinkled Doom is renamed "Chocolate Doom Plus Plus", which is a revival of Chocolate Doom Plus, ported to newest Chocolate Doom codebase (3.0 rather than 2.2), limits raised to obscene (above Doom32), but still not enough to play Auger;Zenith. So it falls to category of limit-raising. It does display effect correctly, though.
So yeah, what I mean, is that people say "you want limit-removing rather than limit-raising, then go to Crispy or PrBoom-Plus". Except that they do more than remove limits, as evidenced by the fact that effect breaks. Crispy doesn't even allow to bring back the original ouch face behavior (the "buggy" one, the one that vanilla executables ended up having, not the "intended" one) without editing its source code.
Imaging a Chocolate-Doom fork could play any -complevel 2 map, play and record all compatible demos, but render the way vanilla/Choco does. Yeah that means enhancements to reduce slime trails can kiss goodbye - they would go against the "faithful to vanilla rendering" idea.
I tried searching various Choco forks, but it seems that everyone and their dog forks every port, finding the ones that recreate limit-removing but not all the way to the Crispy is hard. Besides, I recall people tried to create fancy features in their Choco forks anyway.
|
|
xeepeep
Banned
Forever
Posts: 2,338
|
Post by xeepeep on Apr 24, 2022 10:30:40 GMT -5
Yeah I get you. From what I can tell, the static limits are just defined in the code as numeric constants, so in my understanding, you could take the sprinkled Doom source code, find the place where the limits are defined, edit that to a really big number, then recompile. The two limits that lead to a crash, visplanes and openings, are defined in r_plane.c. Also all the limits are multiplied by coefficients found in dpplimits.h. So in theory you only need to edit that dpplimits.h file. But if it was that easy, maybe the authors would've done that already, so I really don't know, maybe if you set the limits too high, you run into some other overflow. I'm not a programmer, just speculating. Also some limits are harder to remove afaik, such as the seg/blockmap/whatever ones. But by the time we get there, we're talking maps like Planisphere or Voodoo Guns, so that's not as pressing. github.com/atsb/chocolate-doom-plus-plus/blob/master/src/doom/r_plane.cgithub.com/atsb/chocolate-doom-plus-plus/blob/master/src/dpplimits.h
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Apr 24, 2022 10:37:51 GMT -5
CnDoom confirmed to render correctly. but some outdated version of Crispy I have does not. So it definitely have been broken in Crispy for years. But CnDoom is limit raising port ? (strangely enough, they mention limit removal for heretic, but not doom. Initially both doom and heretic started with raising limits). It is of interest because it merged some things from Crispy, and yet did not lose the ability to faithfully render this bzzrak effect.
I'm guessing you are calling it bzzrak because it is infinite so it appropximates the length of your... something?
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Apr 24, 2022 10:39:56 GMT -5
Sprinkled Doom did that, but apparently one needs better algorithms for port to function as limit-removing. Else it can be brought down to the knees while within limits it "raised".
|
|
xeepeep
Banned
Forever
Posts: 2,338
|
Post by xeepeep on Apr 24, 2022 10:47:11 GMT -5
It's called bzzrak's effect because that's my username and I was the first to describe it. It's called the Law of Priority
Old versions of crispy didn't have the MBF enhancements I mention for fixing slime trails and such. Crispy started out as just Chocolate with raised limits and some quality of life features (proper ouch face, green/blue caco/baron blood, ...), but proceeded to incorporate more features as it went on. For example did you know it supports action 271 sky transfers, a MBF feature? Or .BEX format dehacked files, a Boom feature? or that it has 4 thousand extra dehacked frames, for mods like smooth doom, a feature shared with Doom Retro? Or ANIMATED/SWITCHES lumps, also a Boom feature? Or even swirling flats, a SMMU/Eternity feature? For better or worse, Crispy Doom is a lot more than just a limit removing port.
|
|
xeepeep
Banned
Forever
Posts: 2,338
|
Post by xeepeep on Apr 24, 2022 10:51:01 GMT -5
Sprinkled Doom did that, but apparently one needs better algorithms for port to function as limit-removing. Else it can be brought down to the knees while within limits it "raised". Yes the wording "limit-removing" is a bit inaccurate, but most of the time it does the job, so w/e. Generally when it matters (large maps like planisphere), it's indicated that a "proper" limit-removing port is necessary. For example Voodoo guns says an "advanced" port is required. www.doomworld.com/idgames/levels/doom2/Ports/v-z/vg
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Apr 24, 2022 11:03:00 GMT -5
Let's say I was aware of half the features you listed. Also, initially I was recording demos for DBPs with Crispy, until someone told me not to consider Crispy Doom a faithful limit-removing port. So I've written off Crispy Doom for limit-removing play since then.
But the fact is, PrBoom-Plus is not faithful in -complevel 2 either, rendering-wise. It's -complevel 9 was never faithfully Boom, but rather permitted MBF visual features (for which I consider this port a travesty as well), but failure to render vanilla ocean correctly in -complevel 2 is a grave offense.
At least PrBoom-Plus supports reenabling canonical "ouch" face (more like "surprise" face, as in surprised to get healed while taking damage). I prefer Doom things to work like I remember them, and I always thought it was fun to have this face that shows at extreme rare occassion, rather than abused all over the place (damn imp can inflict enough damage for it to be displayed with a "fix"). That face looks out of character for Doomguy anyway to used casually.
So we basically have 2 source ports lauded for limit-removing support, but really no faithful limit-removing port, just like (there was) no faithful Boom port (on the subject of the latter, there are people already working to fix.).
P.S. Always though it is retarded for PrBoom-Plus to support MBF sky transfers in -complevel 9. You want MBF compatibility? You must only be permitted to get it with MBF bugs. No MBF bugs = no MBF features.
|
|
xeepeep
Banned
Forever
Posts: 2,338
|
Post by xeepeep on Apr 24, 2022 11:19:05 GMT -5
You misunderstand what complevels are for. The complevels are only meant for demo compatibility, nothing more. It's not meant to reproduce visual effects. It's not an offense to anything, it actually does its job perfectly: if you record a demo in a map with the horizon effect, the effect wouldn't show, but the demo would stay in sync if you played it in vanilla doom.exe. Same for sky transfers or whatever. It's why speedrunners use prboom+. Once again they are not intended to fully replicate the behaviour of the targeted executable, only to produce demos compatible with that exe. We can cry about it all day but supporting a weird nodebuilder visual hack was never the intention.
Also don't forget that prboom has seventeen complevels. Imagine having to support the rendering of each of those executables too!
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Apr 24, 2022 11:36:20 GMT -5
I figured it out year ago already, but I really detest this view on things. Wish there was more focus on faithfulness and replication. Limit-removing with no extras included - behaving in all aspects just like vanilla but limits removed. Emulating Boom the way Chocolate Doom emulates vanilla, etc. There are actually guys working on that - towards Boom and MBF at least. But... a faithful limit-removing port? It may not exist as there were historically no reference implementation for it, unlike with Boom, which is a historically existing port and you can pick one of its versions as pristine experience. I don't have an account of doomworld, so this is a way to bring attention to this problem, as it doesn't really make sense. You could justify Crispy Doom and PrBoom+ developers for having appetite to support new things. What about breaking them? Whose idea of limit-removing was to break bzzrak effect? P.S. I knew you were bzzrak. I just failed to pay attention to two important things about the thread: www.doomworld.com/forum/topic/94606-horizon-effect-in-vanilla-only/ 1) someone who is now called BigDickBzzrack is the creator of the thread. That obviously you, because bzzrak is you and I also recall you changing your account to this and being banned for it or something 2) infinite ocean was already there
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Apr 24, 2022 11:45:59 GMT -5
To follow up, my yelling about complevels is basically frustration with doomworld community in general. For some years before I knew about doomer boards, I visited that crap website daily. There were also some years of interruption. Initially, I didn't hate people who like Boom. But once the forum lost Post Hell, and Doomworld became toxic, that really poisoned my attitude towards what people like there. I started to hate them because I witnessed them expressing vitriol towards some poster that didn't, in my view, deserve it, and my discontent with that became attached to those people and things they like.
It also coincided with the fact that in some overlapping timeframe, I used Choco only, which thus became sacred to me.
The fun of actually playing Doom - rather than playing for the sake of proving to myself I'm not inferior to people (via beating this or that map) on the website I never registered on (Doomworld) - has started only when I came to doomer boards. And yet some people call doomer boards toxic, and doomworld as being improved rather actually becoming toxic over the last years. I genuinely don't get it.
Well that was general ruminations, on how lurking on a toxic community such as doomworld can lead to all sort of irrational but entreched beliefs or dogmas.
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Apr 24, 2022 11:54:14 GMT -5
Have to say this, though: this irrational attitudes towards Boom etc. are not going to negatively affect the support for them in VigilantBSP. Boom and other targets that are not inherently dependent on GL-nodes are going to be properly supported just like vanilla. I maintain a bit more sanity and filter my opinions when I'm designing my programs. On the other hand, I will probably need expert opinion from time to time from people more well-versed with Boom, as I always considered that target overwhelming in map editor interface.
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Apr 24, 2022 12:31:44 GMT -5
Aha. I just realized that fixing slime trails could indeed be related, another clue (since I'm thinking of also make VigilantBSP support generation of Zdoom extended nodes, which are supported by Crispy and PrBoom-plus, and support for generating DeeP nodes was already implemented in VigilantBSP since original release) is that Zdoom extended nodes don't have angle and thus can't possibly support this effect. Naturally, the two together would be convenient to implement if seg's angle is always ignored (no matter what nodes format is used) and instead angle is computed, possibly with even greater precision than vanilla engine could allow, by the "limit-removing" engine. Or maybe rendering doesn't even need that angle anymore even as temporary computation, whatever. Just a theory, I didn't look into source code of Crispy and PrBoom-plus yet. Is also possible they did this before implementing extended nodes support, just for the sake of fixing slime trails. In case they still chose to do it later, historical request to support extended nodes in Crispy: github.com/fabiangreffrath/crispy-doom/issues/43P.S. And by the way, yes, DeeP nodes, despite being derailed as inferior to extended nodes (the latter got wider support as well), actually do offer something that extended don't and it is also easier to generate "vanilla-or-DeeP (DeeP on overflow) " than "vanilla-or-extended (extended on overflow)". Simply put, conversion of already built BSP trees between vanilla format and extended format is lossy both ways, even if the counts of all relevant structure are within vanilla nodes format limits. Building either would require algorithm tailored to the intended output format (good luck switching intentions midway). Whereas algo for vanilla and DeeP nodes format can be unified, as no data loss happens if convertation between either occurs before the limits of vanilla format are hit. P.P.S. For clarity, DeeP nodes could be theoretically supported by vanillaish Doom engine that would render bzzrak effect faithfully just based on the angle stored in seg. But extended nodes don't store angle in segs at all, you would have to modify the engine to take angle from elsewhere, or support the special marks on linedef for this effect directly (i.e. information about effect will have to be stored outside of nodes).
|
|
xeepeep
Banned
Forever
Posts: 2,338
|
Post by xeepeep on Apr 24, 2022 12:43:08 GMT -5
Wish there was more focus on faithfulness and replication Be the change you want to see. Whose idea of limit-removing was to break bzzrak effect? Nobody's because nobody really knows about it. That's all there is to it. My Doom discoveries don't attract that much attention. Look at my post on doomworld about it, it has like 10 likes or something. Not to brag but that's a colossal shame for an effect that's cool as fuck, and unlike linguortals actually usable in a real-world map. Perhaps if esselfortium had discovered it, more people would know about it, but alas I'm not esselfortium. And fuck me, that was in 2017, I was even nice back then. Very few people know about BSP's seg rotating feature, even fewer know that you can make a horizon effect in vanilla with it, fewer yet know that the effect is broken in literally every sourceport that enhances the game in any way. Maybe we should make an awareness campaign about it Adding support for it in advanced ports shouldn't even be that hard. For example GZDoom already has a horizon effect, one could just make so that it applies it to any linedef with the right tag and offset. But I never bothered to pester Graf about it, because as you might know, the guy's a bit particular about that sort of thing. Maybe the guys behind Eternity would be more interested. Limit-removing with no extras included - behaving in all aspects just like vanilla but limits remove Well that's Sprinkled doom and chocolate doom+ et cetera. If you want MORE limit removal, you have to implement stuff like ZDBSP extended nodes support and whatnot -- that'sextras. You can also do away with the concept of visplanes entirely but that requires changing the renderer... and breaking sexy vanilla hacks. And THEN there's the limits of the WAD file format, so a port with truly no limits has to support UDMF... So, probably the closest you can get to what you want is to make Chocolate Doom understand ZDBSP extended nodes. To be honest I don't know how hard to do is that, and what side effects it would have, but it's probablz something worth looking into. Prboom+ supports those nodes so it's likely the best starting point.
|
|
xeepeep
Banned
Forever
Posts: 2,338
|
Post by xeepeep on Apr 24, 2022 12:44:53 GMT -5
Zdoom extended nodes don't have angle and thus can't possibly support this effect. Didn't know that. Well I don't know then ¯\_(ツ)_/¯
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Apr 24, 2022 12:56:34 GMT -5
Hey, sorry to lower the IQ of such intelectual discussion. So i'll be brief. Be the change you want to see. I second this. And as for a choco equivalent of boom 2.02, there's this one. I didn't use it yet but i was researching about modern boom ports close to the original .exe some days ago and found this.
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Apr 24, 2022 13:02:52 GMT -5
Zdoom extended nodes don't have angle and thus can't possibly support this effect. Didn't know that. Well I don't know then ¯\_(ツ)_/¯ That's just information from zdoom wiki:
It wrongfully says compressed nodes, but it applies without compression as well apparently. As compression is applied on top of raw extended data.
And the effect works because in the original format, angle is computed and supplied by nodebuilder, and the engine should use it. Except now we see that even when software nodes are not discarded in favor of GL ones, limit-removing engines might still discard some information stored in BSP tree even in software mode. Great!
And no, Sprinkled Doom and Doom-Plus don't meet the criteria of limit-removing, they are limit-raising. Yet limit-removing doesn't imply "ignores angle field supplied by nodebuilder" like Crispy Doom and PrBoom-Plus do, and neither it implies "slime trails don't appear". But yeah, I don't see a problem of such a new limit-removing port supporting extended nodes, as it would only compute angle when extended nodes are used, and otherwise (vanilla or DeeP nodes) trust nodebuilder's output on what angle is and render accordingly. Slime trail removal is not limit-removing feature, it is tangential and I would rather NOT have it, which lack of this completely unneeded feature will go hand-in-hand with supporting bzzrak effect.
|
|
Gokuma
You're trying to say you like DOS better than me, right?
Resident DB English Teacher
Posts: 1,210
|
Post by Gokuma on Apr 24, 2022 19:20:01 GMT -5
Don't some also shift the sky vertically so you see the tiling worse than the vanilla dos exes?
Odamex's vanillaness in recent years always seemed good to me though.
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Apr 24, 2022 22:37:43 GMT -5
I don't know if the guys behind Odamex are that unaware or just have some weird sense of humor by still keeping that horrible name.
I mean, it sounds like a suppository brand ffs.
Try telling to any non-Doomer friend that you were using Odamex yesterday and see what pop into their minds.
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Jun 3, 2022 5:18:09 GMT -5
Sprinkled Doom did that, but apparently one needs better algorithms for port to function as limit-removing. Else it can be brought down to the knees while within limits it "raised". I'm the developer of Sprinkled Doom. The latest version 3.4 is now a full limit-removing port, runs all three of your wads but also has the same issues as crispy. Problem is, to make ports limit-removing, you need to start modifying the blocks and visplanes and all other limits, this can and does affect how certain things are rendererd. This primarily messes up the effect. I do not fix slime trails or other effects, other than medusas (to make Auger Zenith playable without migraines). I'll see what I can do about this though.
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Jun 3, 2022 8:48:45 GMT -5
@gibbon Well, I never got around to hacking on my own Doom port yet, but still I find it strange that removing limits would ruin this specific effect, especially consider that you do NOT fix slime trails. The only thing that should interfere is ignoring Angle (and maybe also Offset) fields provided in a Seg structure and instead computing it to "improve precision". Even then, the exact horizon/infinite ocean/bzzrak effect implies 180 degrees are added to the angle compared to what it should have been, which means that even if recomputing Angle is somehow necessary, the effect can still be detected and reapplied as you can discover it is there by seeing an absurd deviation of Angle compared to the expected value one could compute.
So if it is not because of ignoring Angle, I am very curious (and clueless at the moment) of what it is then. Widescreen support? Although it is better not to do guesswork and just look into code.
Also, not all limits can be removed in non-Boom limit-removing without desyncing demos anyway: like spechits, for example.
P.S. Sprinkled Doom used to render it correctly in version 3.3.0.
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Jun 5, 2022 13:27:34 GMT -5
@gibbon Well, I never got around to hacking on my own Doom port yet, but still I find it strange that removing limits would ruin this specific effect, especially consider that you do NOT fix slime trails. The only thing that should interfere is ignoring Angle (and maybe also Offset) fields provided in a Seg structure and instead computing it to "improve precision". Even then, the exact horizon/infinite ocean/bzzrak effect implies 180 degrees are added to the angle compared to what it should have been, which means that even if recomputing Angle is somehow necessary, the effect can still be detected and reapplied as you can discover it is there by seeing an absurd deviation of Angle compared to the expected value one could compute. So if it is not because of ignoring Angle, I am very curious (and clueless at the moment) of what it is then. Widescreen support? Although it is better not to do guesswork and just look into code. Also, not all limits can be removed in non-Boom limit-removing without desyncing demos anyway: like spechits, for example. P.S. Sprinkled Doom used to render it correctly in version 3.3.0. Yeah well it turns out to be something quite innocent. The Wall Wiggle fix from crispy (along with its recalculating of R_ScaleFromGlobalAngle) was destroying the angle (since it was recalculating it itself for the precision required to fix the wall wiggle). I have now fixed this and it is essentially Choco code there (with some fixes for 32bit integer math still). I have released a beta of 3.4.1: github.com/atsb/chocolate-doom-plus-plus/releases/tag/sprinkled-doom-3.4.1-preI have also given you credit for the feature. Thanks very much for bringing this to my attention, as my goal with Sprinkled is to always keep parity with Choco, just with removed limits and the ability to play more modern wads.
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Jun 5, 2022 22:07:37 GMT -5
@gibbon, wow, this was fast! And now we also know the culprit (and it had nothing to do with removing the limits per se, although I presume some could still disagree on this). If, for whatever reason, I will have to make my own port (but unlikely now that you fixed it), I will keep that in mind as well.
Thank you for taking care to restore the honest-to-Choco rendering and for appreciating my suggestion to support this feature (bzzrak's horizon effect) in a limit-removing port.
|
|