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
810 stars 131 forks source link

Some issues I have with Crispy-Doom #476

Closed bryc closed 5 years ago

bryc commented 5 years ago
  1. Mouse still controls the menus even with novert on. Doesn't happen on Chocolate-Doom or DOS doom (with novert.com). This is kind of annoying as moving the mouse unexpectedly changes the selected option in the menu. I would prefer it to be purely keyboard-controlled.

  2. Can't disable the dropshadow under text in the menus. It would be nice to have an option to disable it to remain faithful to Chocolate-Doom somewhat. I personally don't use high-resolution or jump or mouselook in Crispy-Doom, or other enhancements, which can all be disabled. I basically want Chocolate-Doom but with limit-removing stuff.

  3. Frame-limiter option would be nice. I would personally prefer to overclock the framerate to 40-45 fps. A happy medium between somewhat choppy 35 and butter-smooth 60.

Also: What is the point of the additional info in savefiles after EOF?

SoDOOManiac commented 5 years ago

What is the point of the additional info in savefiles after EOF?

The point is to prompt the user if one wants to continue loading the savegame if the WAD mentioned after EOF is not loaded.

Gamma seems to be different. Screen is somewhat darker than Chocolate-Doom even when usegamma is set to 2 in default.cfg.

Even with uncapped framerate and smooth pixel scaling off?

bryc commented 5 years ago

Choco and Crispy have the same Gamma levels - I just got confused about how in-game screenshots handled the gamma and Crispy's fractional gamma values.

Even with uncapped framerate and smooth pixel scaling off?

Yes. And the 'force software renderer' option is disabled. And it seems that crispy is brighter, not darker, along with a few other texture warpping differences:

choco_vs_crisp

SoDOOManiac commented 5 years ago

A less frequently blinking gif. There is no difference in brightness. I turned off Smooth diminishing lighting as well, keeping only Vsync on in rendering options (as Choco runs at 35fps with Vsync on to prevent screen tearing). chocrispy

JNechaevsky commented 5 years ago

Regarding warping in Crispy - it's not exactly a warping, it's how floor/ceiling textures should be aligned properly. This also fixes two things:

  1. Floor/ceiling textures was getting more distorted the closer they are to the right (screenshot from Chocolate, take a closed look to the lines near right side of the screen).
  2. Floor/ceiling textures was "shaking" along with lighting changing. Pretty notable place is E1M2 (Screenshot from Chocolate, "shaking" area is on the right side, after bright sector).
JNechaevsky commented 5 years ago

P.S. Sadly, this fix, which is now existing in many Chocolate-based ports and PrBoom+, brings a small visual issue in long areas (screenshot)

fabiangreffrath commented 5 years ago
1. Mouse still controls the menus even with novert on. 

Yes, novert in Crispy Doom acts on a different level than in Choco. The reason is that a few years ago a user complained about the exact opposite, i.e. that it is impossible to control the menus by mouse if novert is enabled.

2. Can't disable the dropshadow under text in the menus.

This is because with the Crispy HUD enabled, the status bar numbers will blend into the menu entries. The shadows add to the impression that the menu is drawn "op top" of the game scene.

3. Gamma seems to be different. 

Crispy Doom features intermediate gamma levels. That is, gamma level 1 is actually 0.5 and level 2 is actually 1. Try hitting F11 in the game to see the difference.

4. Frame-limiter option would be nice. 

Been there, done that. If you experience input lag while waiting for your screen to refresh, things won't get better when waiting for a refresh that is neither the game's internal 35 FPS nor the screen's usual 60 Hz.

Also: What is the point of the additional info in savefiles after EOF?

To save some extra game states that would get lost during a save/restore cycle. The guts are in https://github.com/fabiangreffrath/crispy-doom/blob/master/src/doom/p_extsaveg.c#L442 if you are interested.

fabiangreffrath commented 5 years ago

Before posting such screenshots, please make sure to compare the exact same gamma levels in both ports and have features such as Smooth Diminishing Lighting, Brightmaps, Smooth pixel scaling etc. left at their defaults.

bryc commented 5 years ago

Changing usegamma to 4 seems to match 1:1 with Choco. Thanks! It seems Choco doesn't save the Gamma adjustments in screenshots while Crispy does, adding to the confusion I had.

Yes, novert in Crispy Doom acts on a different level than in Choco. The reason is that a few years ago a user complained about the exact opposite, i.e. that it is impossible to control the menus by mouse if novert is enabled.

It would be useful to have an option to toggle it though (novertmenus=1, keeping 0 default will satisfy that user :). ). Not everyone is going to want to navigate the menu by discrete mouse movements, it is slower and can cause some unexpected movements.

This is because with the Crispy HUD enabled, the status bar numbers will blend into the menu entries. The shadows add to the impression that the menu is drawn "op top" of the game scene.

I have all enhnacements set to 'Off'. I don't use the Crispy HUD (assuming that is option 9 of window size). When using Crispy HUD the dropshadows in status bar are still just the original sprites, not transparent like under menu items.

image

fabiangreffrath commented 5 years ago

It would be useful to have an option to toggle it though (novertmenus=1, keeping 0 default will satisfy that user :). ).

I am trying to keep the number of switches and toggles at a bare minimum and rely on reasonable defaults instead. As for novert, I cannot disable vertical mouse movement as globally as Choco does, because that would interfer with the mouse look feature. I could explicitely disable it for the menus, though, as mouse wheel scrolling has been added meanwhile. And there is even a key binding to togle it in-game that I have added on request of a speed runner...

I have all enhnacements set to 'Off'. I don't use the Crispy HUD (assuming that is option 9 of window size). When using Crispy HUD the dropshadows in status bar are still just the original sprites, not transparent like under menu items.

If you play with a PWAD that replaces the status bar numbers and you have them colorized, the drop shadows won't be there anymore and they will blend with the menu entries. Not a huge problem, but I like it better this way, i.e. with a shadowed menu.

fabiangreffrath commented 5 years ago

@bryc So, what are the required actions left to close this?

bryc commented 5 years ago

Well, the gamma problem was a non-issue, and arbitrary frame limits between 35-60 is not a dealbreaker. I am basically requesting two config options:

  1. Ability to make novert work as it does in original DOS and Chocolate-Doom. (No menu control)

  2. Ability to toggle the drop shadow enhancements on "NEW GAME", "OPTIONS" menu text etc, in Crispness menu.

I configured Crispy to turn off all the enhancements so it is like DOS but with limit-removing features for better WAD support. But the lack of these options means I cannot fully make it DOS-like. The drop shadows remain even when all crispy stuff is disabled, and novert can't be set to behave like it does on DOS.

Also, sometimes the drop shadows go pure black (no transparency) when transitioning between demos etc (bug maybe?).

bryc commented 5 years ago

If this is 'wontfix' we can close the issue. But I feel being unable to make Crispy behave like DOS is making it not true to its roots of being fork of Chocolate-Doom. It seems like an oversight, because all other enhancements can be disabled. I like Crispy because it tries to be a less-strict variant of Chocolate-Doom, but not trying to be "ZDoom-lite" like other forks, such as "Doom Retro".

fabiangreffrath commented 5 years ago

Being like DOS is strictly not a design goal of Crispy Doom, that's what Chocolate Doom is for. Even if it was, this goal could never be reached anymore simply because of the menu restructuring and the subtle little fixes that went into the renderer. If I find that a change is a net improvement without any downside (and "this isn't exactly like DOS anymore" doesn't count here) it gets applied - and in rare cases even without a switch. the drop shadows of the menus is such a subtle improvement that I won't bother adding a switch for.

I'll apply novert to the menus, though. It is possible to switch it by a key binding nowadays and it is still possible to scroll menus by mouse wheel.

Regarding the shadows turning black, I'll have to investigate. I have never seen this myself before...

JNechaevsky commented 5 years ago

@fabiangreffrath, black shadows of menu elements are happening while wipe effect in action, just for few moments. Matters no, if you are using TINTMAP or get colors dynamically. Looks likes, V_DrawShadow* can't read it's dest from "falling" pixels.

fabiangreffrath commented 5 years ago

As I am getting increasingly fed up with people complaining that Crispy isn't Vanilla enough anymore (but on the other hand request removal of static limits for Choco), I'll indeed reconsider removing the shadowed menu and text drawing altogether.

What was meant as a subtle improvement may instead be considered an unnecessary deviation from Vanilla, visible literally at first sight and solely based on personal taste and preference. And it is buggy during wipe screens.