fabiangreffrath / crispy-doom

Crispy Doom is a limit-removing enhanced-resolution Doom source port based on Chocolate Doom.
https://fabiangreffrath.github.io/crispy-homepage
GNU General Public License v2.0
808 stars 132 forks source link

Requests for Crispy Doom #53

Closed ghost closed 10 years ago

ghost commented 10 years ago

Hello, I have been told to register here to ask requests. My requests are:

1) Restore the "weapon centering" behavior introduced in version 1.5 back to Vanilla Doom. I will be honest when I say that but this minor change bothers me a lot since this isn't supposed to be ZDoom (ZDoom was first source port to adapt this feature) and while I got used to it, I don't think this belongs to Crispy Doom. Sure, you can make it optional and still have the old behavior back by adding "weapon centering" option into crispiness menu and not forcing it down our throat. This is one of the features I always loved at vanilla/chocolate Doom, that how weapon freezes in the same spot you are shooting. But after the "disappointing" 1.5 update, weapon ALWAYS goes to the center. I seriously don't like this and would be better as an optional feature for those who prefer the new behavior.

2) Colored Numbers on HUD. I have seen a recent discussion here about making the HUD numbers compatible with wads that change the font and color. The only suggestion I can give here is to look into ZDoom's alternate HUD code since it seems to be compatible with all fonts.

3) Master Levels support. We all want an "official" way to play Master Levels complete with automap/end screen names, par times, skies, music, etc. all while done in vanilla style. I have 2 solutions for this:

a. Either make a DOS-like interface, so you can select Master Levels in same way as Doom-It does

b. Or add "Master Levels" as a second episode in the main menu when Crispy Doom detects the directory for Master Levels. Since No Rest For The Living is fully supported, why not have Master Levels supported too? Assuming you have both expansions installed, the episode selection menu should now look like:

Hell On Earth Master Levels No Rest For The Living

However that way Master Levels will have to be combined and rearranged into an episode which would break the balance of maps. And yes I am aware that they are fully supported by other source ports such as Eternity (with native support for the expansions), as well as ZDoom (by using a mod called Master Levels Menu Interface or by using an unofficial patch provided on Blzut3's website) but having the master levels supported in Crispy Doom would be nice.

Thank you for reading. -FistMarine

fabiangreffrath commented 10 years ago

1) Restore the "weapon centering" behavior introduced in version 1.5 back to Vanilla Doom.

In the next Crispy Doom release, the weapon sprite will only get centered horizontally. It will not get moved vertically into its idle position anymore, because this has been found to be demo-critical. This little change makes the feature very subtle and only barely noticable. For this reason, and because it has absolutely no impact on compatibility, I am not going to add a switch for it.

Quite the contrary, I believe the weapon being locked in an off-center position when firing is one of the most visible and distracting bugs in the Doom engine that strictly need to get fixed when one has the chance to. Furthermore, your reasoning ("this isn't ZDoom") appears purely ideological to me.

Anyway, if it bothers you that much, you may still comment out the single line that causes this: https://github.com/fabiangreffrath/crispy-doom/blob/master/src/doom/p_pspr.c#L289

2) Colored Numbers on HUD.

I have extended the color translation maps to not only accept red as a source color anymore. This means that color translations also get applied when PWADs change the status bar numbers or the HU font to other colors. The tables aren't perfect (and will never be), but it works.

Regarding ZDoom, it is very tempting to use your own reasoning that "this isn't supposed to be ZDoom" here. ;) But, seriously, I doubt that ZDoom (being a true-color renderer, isn't it?) uses any code in its rendering of the HUD that I could use in Crispy Doom. If you have a pointer to specific code for me, I'll give it a look, but I won't dig myself through the whole of ZDoom just because.

3) Master Levels support.

This isn't something that is specific to Crispy Doom, so better support for the Master Levels should get implemented upstream in Chocolate Doom. This excludes the in-game menu solution, though.

a. Either make a DOS-like interface, so you can select Master Levels in same way as Doom-It does

This has already been suggested in the Chocolate Doom bug tracker. However, it is still waiting for an actual implementation and as far as I know, there is noone currently working on it (hint): https://github.com/chocolate-doom/chocolate-doom/issues/434

b. Or add "Master Levels" as a second episode in the main menu when Crispy Doom detects the directory for Master Levels. Since No Rest For The Living is fully supported, why not have Master Levels supported too?

As I have already told you before, the Master Levels are a completely different pair of shoes. NRFTL is a single episode in a single PWAD file and there are even resources for its menu entry available in the BFG Edition IWAD. The Master Levels, in turn, are 21 maps in 20 PWADs, each occupying random map slots. Properly supporting them from an in-game menu would require a major affort in many different parts of the port that I am (currently) not willing to make.

Anyway, thanks for caring and for your suggestions.

ghost commented 10 years ago

1) All right I understand now. I can probably live without this feature. Might as well remove all vanilla bugs. Seriously. ;)

2) I said ZDoom as suggestion since it has an alternate HUD (enabled through options menu) that shows health and armor numbers in colors and seems to support pretty much every custom HUD/font created, so that the numbers are rendered correctly in the red/yellow/green/blue colors. That's why I suggested ZDoom here. ;)

3) Guess I will have to wait for Simon to implement this feature in Chocolate Doom then. :)

Thanks for explaining! -FistMarine

fabiangreffrath commented 10 years ago

1) Weapon centering during shooting is not that distracting anymore since Crispy Doom 2.0, isn't it? 2) I did not look into ZDoom's alternate HUD code, but Crispy Doom 2.1 is now able to colorize any status bar numbers, regardless of their original color. 3) This is a duplicate of a bug already filed against Chocolate Doom. And for the benefit of all it is certainly better fixed there.

I am closing this hereby.

ghost commented 10 years ago

Actually, I was about to make post again few days ago but I have been busy with school. I like the newest version but I still want to report:

1) I still think weapon centering during shooting should be optional in Crispiness menu in Visual category. Seriously, I'm not trolling or anything. I want it to be optional as it still bothers me (yes I did test the latest version few minutes ago and watched a couple of demo intros as well as played myself in first map of Doom)

2) The same goes to mirrored corpses and while I think this is a very nice feature, I think should be optional as I think some people might not like that feature but then again, it doesn't bother me and it kinda reminds me of Duke Nukem 3D, which also had mirroring monster's corpse on death, which is a plus as both Doom and Duke3D are my favorite games ever. One thing I would like to ask is why certain monsters such as Chaingunner and CyberDemon don't have mirroring corpses? What's so bad about them being mirrored?

That's all for now. Hope you will consider the "weapon centering" as optional in next version. I mean Brad did consider my request for Doom Retro and made it optional. Can't you do the same? I'm not trying to sound rude but for me this feature takes away from vanilla experience. I have nothing against having it optional (or even enabled as default as long as it is optional). I just want a way to disable it from crispiness menu. :)

On Wed, Nov 12, 2014 at 6:48 PM, Fabian Greffrath notifications@github.com wrote:

1) Weapon centering during shooting is not that distracting anymore since Crispy Doom 2.0, isn't it? 2) I did not look into ZDoom's alternate HUD code, but Crispy Doom 2.1 is now able to colorize any status bar numbers, regardless of their original color. 3) This is a duplicate of a bug already filed against Chocolate Doom. And for the benefit of all it is certainly better fixed there.

I am closing this hereby.

— Reply to this email directly or view it on GitHub https://github.com/fabiangreffrath/crispy-doom/issues/53#issuecomment-62750230 .

fabiangreffrath commented 10 years ago

1) I still think weapon centering during shooting should be optional in Crispiness menu in Visual category.

Gosh, you are tough! I'll add a switch for it, but it will be in the "tactical" section, since the change is not merely eyecandy.

2) The same goes to mirrored corpses and while I think this is a very nice feature

Yes, maybe. and maybe even colored blood. People keep nagging me about this, and while I generally prefer less switches, it would possibly be a good thing to by able to switch back to plain Vanilla graphics.

why certain monsters such as Chaingunner and CyberDemon don't have mirroring corpses

The Chaingunner has a mirroring corpse (I think it is disabled in DR, though). The Cyberdemon doesn't, because it is highly asymmetrical. Mirroring its death sequence would make its cyborg leg switch sides, which looks more than ridiculous.

ghost commented 10 years ago

1) Glad to know that you finally considered this feature as optional.

2) Exactly. While there are many features that I really like to turn on, when I play original IWADS, Master Levels and No Rest For The Living, I play without any features enabled with exception of automap stats as I like seeing how many monsters I killed, how many items I got, how many secrets I found, etc. The monsters killed stat isn't accurate when an ArchVile resurrects a monster or a Pain Elemental spawns lost soul or when monsters are spawned by Icon of Sin. That is because in vanilla those monsters are optional and count over 100% kills on stats screen but at same time it screws up automap stat in Crispy Doom. I know that in ZDoom and other source ports it's fixed.

3) Ah yes, you are right, it's Doom Retro change that I read. I agree on Cyberdemon, it would look silly when mirrored.

One final thing I would like to ask would be if you would add Boom compatibility with megawads as I would really like playing most megawads under Crispy Doom. I don't understand why everyone uses PrBoom+ as for me it doesn't look vanilla and I could never make it work under -complevel setting. At the moment there are many older megawads that are playable in Crispy Doom but not newer ones that rely on Boom features. Which is why I am asking for Boom compatibility. ;)

That's all. :)

On Thu, Nov 13, 2014 at 9:05 AM, Fabian Greffrath notifications@github.com wrote:

1) I still think weapon centering during shooting should be optional in Crispiness menu in Visual category.

Gosh, you are tough! I'll add a switch for it, but it will be in the "tactical" section, since the change is not merely eyecandy.

2) The same goes to mirrored corpses and while I think this is a very nice feature

Yes, maybe. and maybe even colored blood. People keep nagging me about this, and while I generally prefer less switches, it would possibly be a good thing to by able to switch back to plain Vanilla graphics.

why certain monsters such as Chaingunner and CyberDemon don't have mirroring corpses

The Chaingunner has a mirroring corpse (I think it is disabled in DR, though). The Cyberdemon doesn't, because it is highly asymmetrical. Mirroring its death sequence would make its cyborg leg switch sides, which looks more than ridiculous.

— Reply to this email directly or view it on GitHub https://github.com/fabiangreffrath/crispy-doom/issues/53#issuecomment-62850181 .

fabiangreffrath commented 10 years ago

The monsters killed stat isn't accurate when an ArchVile resurrects a monster or a Pain Elemental spawns lost soul or when monsters are spawned by Icon of Sin.

I know this and have already thought about it. But I decided against changing this, because altering the map statistics would make it impossible to compare demos with Vanilla. There is even a tool called statdump that does this and which would always report desynced demos if these stats were different.

One final thing I would like to ask would be if you would add Boom compatibility

Erm, "Boom compatibility" isn't a feature that you simply "add". It requires major changes and rewrites in integral parts of the engine. And even then, there is always the chance to skrew it up and lose both, Vanilla compatibility and Boom compatibility. Apart from the fact that Boom introduced some new bugs on its own that would need to get addresed.

I am considering to gradually implement support for some specific features, but without a claim for compatibility. For example, a generalized linedef that opens a door could simply translated into a regular linedef that opens a door. Of course, a lot of details would get lost in the process, but at least the door would open and the map would remain playable.

fabiangreffrath commented 10 years ago

I know this and have already thought about it. But I decided against changing this, because altering the map statistics would make it impossible to compare demos with Vanilla. There is even a tool called statdump that does this and which would always report desynced demos if these stats were different.

Alright, I will fix this, protected with a "if (singleplayer)" conditional.

However, I will procedd differently than proposed here: http://www.doomworld.com/vb/source-ports/66518-doom-retro-v1-6-2-updated-november-8-2014/12/

That is, I will not remove the MF_COUNTKILL flag from respawned monsters. Instead, I will raise the totalkills counter for each respawned monster. So, if there is still a monster left in a map, you won't get 100% Kills, regardless if the monster was on the map from the beginning or has been respawned.

ghost commented 10 years ago

Don't worry about Boom compatibility, I can live without this feature. I am probably going to use Crispy Doom only for IWADS, Master Levels and No Rest For The Living, while everything else with another source port.

As for respawning monsters affecting automap stats, I'm glad to hear that it has been fixed. So that means the maximum possible amount of kills is now only 100% at end of level screen or this change affects only automap?

On Thu, Nov 13, 2014 at 12:27 PM, Fabian Greffrath <notifications@github.com

wrote:

I know this and have already thought about it. But I decided against changing this, because altering the map statistics would make it impossible to compare demos with Vanilla. There is even a tool called statdump that does this and which would always report desynced demos if these stats were different.

Alright, I will fix this, protected with a "if (singleplayer)" conditional.

However, I will procedd differently than proposed here:

http://www.doomworld.com/vb/source-ports/66518-doom-retro-v1-6-2-updated-november-8-2014/12/

That is, I will not remove the MF_COUNTKILL flag from respawned monsters. Instead, I will raise the totalkills counter for each respawned monster. So, if there is still a monster left in a map, you won't get 100% Kills, regardless if the monster was on the map from the beginning or has been respawned.

— Reply to this email directly or view it on GitHub https://github.com/fabiangreffrath/crispy-doom/issues/53#issuecomment-62870732 .

ghost commented 10 years ago

Oh, I found a bug too. If you go into Crispiness menu and turn Colored Text option on, then go back into game, there is a chance that HUD becomes dark: http://i57.tinypic.com/rm5pvq.png However pressing ESC to go into main menu and then going back into game, the HUD fixes itself. It happens rarely as second time after I noticed that, I wanted to make screenshot to report it and took me a lot of tries. All I know is that it is somewhat related to the dark background when you enter in menu.

On Thu, Nov 13, 2014 at 1:09 PM, Fist Marine fistmarine95@gmail.com wrote:

Don't worry about Boom compatibility, I can live without this feature. I am probably going to use Crispy Doom only for IWADS, Master Levels and No Rest For The Living, while everything else with another source port.

As for respawning monsters affecting automap stats, I'm glad to hear that it has been fixed. So that means the maximum possible amount of kills is now only 100% at end of level screen or this change affects only automap?

On Thu, Nov 13, 2014 at 12:27 PM, Fabian Greffrath < notifications@github.com> wrote:

I know this and have already thought about it. But I decided against changing this, because altering the map statistics would make it impossible to compare demos with Vanilla. There is even a tool called statdump that does this and which would always report desynced demos if these stats were different.

Alright, I will fix this, protected with a "if (singleplayer)" conditional.

However, I will procedd differently than proposed here:

http://www.doomworld.com/vb/source-ports/66518-doom-retro-v1-6-2-updated-november-8-2014/12/

That is, I will not remove the MF_COUNTKILL flag from respawned monsters. Instead, I will raise the totalkills counter for each respawned monster. So, if there is still a monster left in a map, you won't get 100% Kills, regardless if the monster was on the map from the beginning or has been respawned.

— Reply to this email directly or view it on GitHub https://github.com/fabiangreffrath/crispy-doom/issues/53#issuecomment-62870732 .

fabiangreffrath commented 10 years ago

Thank you! This is really helpful and I'll have to look into it. However, I'd appreciate if you could file a separate bug report about this, as we are already spamming this closed report and I am likely to lose track of these issues if they are not reported independently.

fabiangreffrath commented 10 years ago

This should be fixed now. I forget to clear the patch color translation after the crispness menu cursor was drawn. That means, that if you quit the menu while the cursor was dark (it switches back and forth between normal and dark red) the next patches were also drawn dark.

ghost commented 10 years ago

Thanks for fixing it! I am glad I was very useful this time in reporting bugs. If I am going to be credited, put my name as FistMarine.

For separate reports, don't worry, I will do that from now on. This is the last post I make on this report.

On Fri, Nov 14, 2014 at 11:21 AM, Fabian Greffrath <notifications@github.com

wrote:

This should be fixed now. I forget to clear the patch color translation after the crispness menu cursor was drawn. That means, that if you quit the menu while the cursor was dark (it switches back and forth between normal and dark red) the next patches were also drawn dark.

— Reply to this email directly or view it on GitHub https://github.com/fabiangreffrath/crispy-doom/issues/53#issuecomment-63028727 .