Closed Meerschweinmann closed 4 months ago
Ah, revenge of Daizy, again... 🙂 Deffinitly brought by yesterday's correction, but I still have no idea how solve it properly, except this stupid trick:
+++ inter-doom/src/doom/f_finale.c Sun Jun 23 09:00:29 2024
@@ -780,7 +780,7 @@
for (x = pillar_width; x < SCREENWIDTH - pillar_width; x++)
{
// [JN] Added -1 to support higher than 3x rendering resolutions.
- int x2 = ((x * dxi) >> FRACBITS) - WIDESCREENDELTA + scrolled - 1;
+ int x2 = ((x * dxi) >> FRACBITS) - WIDESCREENDELTA + scrolled - (scrolled ? 1 : 0);
if (x2 < p2offset)
F_DrawPatchCol (x, p1, x2 - p1offset);
Just tried, this seems to working on all rendering resolution and aspect ratios (including 32:9), on all first one - scrolling - final static bunny screens.
Also, 32:9 definitely deserves an own menu item in "Widescreen Mode". Honestly, I never thought that "Match screen" is smart enough to cover actual screen resolution. but 32:9 is something special. Odamex have it right after 21:9, but AFAIR, 32:9 was introduced just recently there.
Good morning :)
I had tested further today. 16:10 (2560x1600), 16:9 (1920x1080), 64:27 (2560x1080) and 43:18 (3440x1440) i had tested on real monitors and your last dev-build. 4:3, 24:10 and 32:9 i had tested with the AR_Test verion i had made and your yesterday fix with the /3 divider.
One thing i have noticed. 4:3, 16:9, 64:27, 43:18 and 32:9 worked in all res modes. But the only two modes without rounding errors in resoultion numbers (16:10 and 24:10) worked only in 1x, 2x and 4x.
Eventually this is helpful for you.
By the way, the AR "match screen" works great. It is the only possibility to fill real existing ultrawide monitors complete, because 21:9 is to narrow to do that correct.
21:9 was only a marketing term to compare the so called 21:9 TVs with their 16:9 counterparts. Those TVs had in reality an aspect ratio of 64:27 (2560x1080). Philips had those TVs.
Even Wikipadia has an article about that: https://en.wikipedia.org/wiki/21:9_aspect_ratio
Morning! 🤗 Clarify please, is it exactly rounding errors in displayed "Current resolution" or a problems/crashes in such modes?
P.S. 64:9 aspect ratio with 6x resolution, just for show, not as in-game mode. It's technically working, I'm speechless. 😱 Never though that new ID engine can handle such crazy extremes, it's one more reason why never need to think about "earlier was better"!
16:10 and 24:10 are the only modes that crashes the end of the bunny screen in resolutions of 3x,5x and 6x in my tests.
And what wonders me about that is, that both aspect ratios have not to be rounded at current resolution because the height and width of the aspect ratio is divided by even numbers (10,16,24)
For example in 16:9 you get horizontal uneven numbers like 1706,666x800 as resolution that are rounded to 1704x800.
In 16:10 and 24:10 are no such roundings. And what wonders me, because those non-rounding modes are the only that crashes the bunny screen.
And wow, is 64:9 wide 😁 But great that ID can even handle those pervert aspect ratios. To be honest 32:9 would be the widest i would buy. 32:10 would be interesting, because it is a thing between 43:18 and 32:9.
16:10 and 24:10 are the only modes that crashes the end of the bunny screen in resolutions of 3x,5x and 6x in my tests.
Ah, whoops, I didn't comited bunny fix yet, need to test it on my side to don't waste your time with it. This wouldn't take a while.
Meanwhile, I have another problem, not related to ID itself - I was thinking what can I gift to myself on wedding anniversary and ended up with purchasing yet another nettop, now pretty powerful (AMD Ryzen 7 5800H with Radeon Graphics, 32 gig of RAM. It's a fourth one in collection, oh my...). And the problem is this, I need to clean up and reconstruct this mess 😦:
You did not waste my time. I had tested this before you could commit your todays fix and i had something to do before my family woke up.
Congratulations to your 5800H 🎉 Before AMD came up with their Ryzen 2xxx series i prefered Intel CPUs. But meanwhile those Ryzen CPUs are in the PCs of my sons, my work notebook and even my good old i7 3770K PC is now replaced with a Ryzen APU. They are not only powerful, they are efficient too.
I will test all resolutions with the new fix later too.
Hello again.
I have tested latest dev-build with second bunny fix with all monitors i had (16:10, 16:9, 64:27 and 43:18) and the bunny screen worked fine in all resolutions. Even 4:3 and 32:9 was tested as selection in the menu.
As i have no 24:10 (3840x1600) and 32:10 (3840x1200) monitors , i edited the source files and tested those aspect ratios too.
And hey, you have added 32:9 as a new aspect ratio in the menu. A new feature for the Inter-ports! Eventually 32:10 is a try too?
Playing around with those super-ultrawide aspect ratios made me think about if one of my sons or me does "need" such a monitor :) But those prices.....
Excellent, thank you again!
As i have no 24:10 (3840x1600) and 32:10 (3840x1200) , i edited the source files and those aspect ratios too.
Well, they are not in the code. 🙂 I'm a bit cowardly to add to much ratios, this may lead to a confusion. A "Match screen" should do it's job just fine now. So, to do not break current configs, all new rations must be added after existing ones. This should be, from smallest to biggest...
But still a bit confusing, especially after looking at https://en.wikipedia.org/wiki/Ultrawide_formats list. Definitely not worth to add all of them into menu, this will be a featurism already.
Or perhaps, better just to follow Odamex approach by adding just 32:9?
Sure, those aspect ratios are not in the code. I had added the word monitors meanwhile you quoted the sentence. So you could misunderstand what i have meant. Sorry.
I added them only temporary to test aspect ratios of Monitors i do not have and not meant by me to add 24:10 as separate Option, as it is one of those three "21:9" marketed ultrawide monitor aspect ratios. When adding 24:10, then you should add 64:27 and 43:18 as they belong to this group of "21:9" monitors. That would be too much and "Match Screen" seems to work fine with them.
32:10 i asked to add because i understand it so that you have complaints that "match screen" could have problems to detect those super ultrawide resolution, and because of that you have added 32:9.
But i am totally fine when you only add 32:9 and "Match screen" detects the rest
And yes, you are absolutely right that the more options you add, the more confusion it gets.
Most people who think they have an 21:9 Monitor do not even know that it is 64:27,43:18 or 24:10(12:5) in real.
For the case you are wondering why i edit my written textes so often today, i wrote them on my mobile phone, and the small window with 3 rows only brings me to oversee many words. The rest is the german text correction that changes non-german words sometimes i have to correct manually 😁
Wow, Hexen looks so great in software rendered truecolor and 32:9. I like that range of view and need such a monitor someday :)
That remembers me back in the days when we linked up our 486 PCs with our NI2000/NI1000 network cards and three different 4:3 CRT monitors to test out this magical three screen setup with DOOM. The fact that there were thick bezels on the screens didn't bother us, because it was so stunning new and unseen.
The Heretic demon-scroll after beating E3M8 has the background water-tiles left and right when using widescreen assets where nothing should be in 32:9 and those wider "21:9" family resolutions.
Good morning :)
Everything i had mentioned is fixed with the latest dev build. So this could be closed or do you want to keep it open as a reminder?
Evening, sir! Yeah, looks we have done everything, and I'm out of ideas again. Probably worth to just casually play (at last!) Doom and Heretic - interestingly, ideas comes from nowhere from time to time.
That is true. Ideas come from nowhere when doing things that do not have to do with DOOM.
Some days ago the vkQuake Github repository came back to life after development was paused and today i played a bit Quake deathmatch with one of my sons.
As i saw this HUD i thought: "Would it be not nice when the DOOM HUD would be scaled down in the middle of the screen like Quake's one without those green texture extensions"
The HUD background can be set with an opacity value to show the weapons behind the HUD. Opacity/Julia/truecolor... Words that fit together :)
That could be a useful feature for super ultrawide hardcores that like the HUD but not those endless green texture-stripes.
It is only an idea and in the end you have to decide.
Here an vkquake screen that you can see what i am writing about:
One thing that came in my mind is, how much processing power will it use when this HUD style in a game like Heretic meets ghost enemies?
Before we move on with everything else, there is one small barely noticable problem with patch drawing on 6x resolution. One line of pixels is missing right below SSG. Looks likes it always was here since first appearance of multi resolution, but I thing it's pretty easy to fix.
Well, translucent HUD is possible, and truecolor indeed the only way to make it looking good. But it will lead to a small problem: weapons have to be lowered to the bottom side of the screen, not to status bar itself, which will look a bit cursed. That's because some sprites have some "unseen" graphics, while some are not. So there is no way to make it vanilla-like without relying to external, taller graphics. The result is something like this:
Downscaling is theoretically possible, but how it should work, i.e. how exactly it should be downscaled in all existing resolutions - that's a good question.
Here's how translucent STBAR looks.
In case you want checkout on your side:
+++ international-doom/src/doom/st_bar.c Thu Jun 27 10:56:42 2024
@@ -1442,6 +1442,17 @@
V_CopyRect(0, 0, st_backing_screen, SCREENWIDTH, ST_HEIGHT * vid_resolution, 0, ST_Y * vid_resolution);
}
+
+ if (dp_screen_size == 11)
+ {
+ dp_translucent = true;
+ V_DrawPatch(0, 168, sbar);
+ if (!deathmatch)
+ {
+ V_DrawPatch(104, 168, armsbg);
+ }
+ dp_translucent = false;
+ }
st_fullupdate = false;
Note that "ARMS" widget will be slightly more noticeable, since it's drawing on top of common status bar patch.
Before we move on with everything else, there is one small barely noticable problem with patch drawing on 6x resolution.
Good finding eagle eye 😊
I think the translucent HUD without that texture stripes left and right looks good on ultrawide and super ultrawide monitors.
How about scaling the HUD half height and width as normal. Or dividing their height with the Resolution multiplier that the HUDs Pixels are not multiplied with the Resolution multiplier. When i am at home i draw a picture to show u what i am thinking about. The only downside would be that it does not Work with 1x resolution. But those who want to use 1x resolution are nearly sure not those people using features like super ultrawide and Special HUDs
Here i made a picture with a "Quake" style half size HUD in ultrawide:
vkQuake for example has a slider for HUD opacity and one for interface scale. But i think half the size looks good enough on such big monitors.
I like the DOOM HUD, but it uses so much space at default. On a 486 computer that was a good thing to get some fps, but nowadays....
Whoah, it actually looks really good! There is no function in the code, that can draw downscaled patches, but I think I can adopt resolution-independent function from Yaguar. Maybe "unscaled" set of status bar element deserves an own "row" right after current values/sizes to avoid extra micro-switches in gameplay features.
The only self-nitpick is - "the beauty of the pixels", i.e. downscaled status bar may not looks harmonically with K/I/S/ widget. 🤔
Sounds like i have inspired you with a new feature 😁
As i saw the translucent HUD after making that picture, it looked better then expected.
As an K/I/S on automap user i had this not in mind. So this should be half size too to be consequent?
Sounds like i have inspired you with a new feature 😁
It is very interesting in technical and visual aspect, but will require a lot of thinking to don't turn current status bar implementation into a dozen of micro-switches and features-over-features, in the code as well. Better safe than sorry. 😕
So this should be half size too to be consequent?
Probably yes, but this will complicate things even more, since there are FPS, local time, demo timer and couple of other widgets. Deffinitly not good if some of them will have normal size, while some of them will be smaller. Another problem here is vertical spacing, which is hard-coded at the moment. 😢
In the end you have to say what or what not.
And yes, the widgets have to be the same scale factor:
vkQuake scales all HUD, messages and even the menu with the "Interface slider". Eventually it is helpful to look how they made it. Unfortunately i have no glue about that.
Here is a picture with Heretic. In my opinion those black background for the artifacts has to be transparent too.
And without those HUD extensions left and right, the widgets could go in the bottom left corner for the Quake HUD mode
And here an fast edit for Hexen.
By the way, the Heretic and Hexen HUDs are not so nicely slim like DOOMs is.
Cleric with fighter HUD ;)
It's a pure love, looks likes a totally different engine. Unbelievable! 🥰
I believe in general, it have to be resolution independent, i.e. "always" downscaled to 50% of size. Otherwise, in 6x resolution it may looks way to small.
By thinking how and what could be done without turning this whole feature into a dozen of micro-switches, probably the one correct way is to follow PrBoom/Woof approach like: standard status bar -> no background status bar (a.k.a. Crispy HUD) -> no status bar -> smaller status bar (w. background, w/o background, non-wide, wide). And, when such new status bar modes will be chosen, then all on-screen widgets should also be in 50% size.
The real problems are:
It's a pure love, looks likes a totally different engine. Unbelievable! 🥰
It has a fresh look and ist a good solution for those people who want the HUD without wasting Screen-size. By the way. The weapons above the small HUD are shown nearly as tall as they are with the big HUD.
And yes, like vkQuake does, every widget and Message on screen has to be same scaling as the HUD.
smaller status bar (w. background, w/o background, non-wide, wide).
I would add transparent Background between with Background and w/o Background.
The small Status bar will not work good with 1x resolution, but that is something that should not disturb someone. Those retro 1x players need surely the original big HUD.
For now i have to go to bed. In nearly 5 hours my night is over. Good night.
And yes, every resolution the HUD size should be 50% the size as original. I will experiment tomorrow If 33% as alternative is usable. The Heretic and Hexen HUDs are Higher than DOOMs.
Even without transparency the mini-HUD looks nice:
and transparent:
The tiny numbers look a bit rough scaled, that is because the 3072x960(800) picture was scaled to 1920x600.
And a comparision picture with standard HUD. The hand and pistol are shown nearly the same:
Same comparision with another weapon on a brighter place:
The shotgun is shown nearly the same. The mini-HUD shows even some pixels more from the weapon.
Even the mini-HUD is more than readable on monitors sizes with that aspect ratios.
All mini-HUDs i have drawn are 50% of the original size.
Hi Julia, unfortunately i have bad news :(
The bunny screen makes problems (again?).
I have built the latest ID and played around a bit.
On a 16:9 (1920x1080), 64:27(2560x1080) and a 43:18 (3440x1440) monitor and AR Match Screen with 5x res the bunny screen works.
When switching in menu to 21:9 with 5x or 16:10 and 3x the bunny screen crashes the game when Daisys spiked head is viewable and the picture stops.
Have we overseen this the last time?