Xinput SDL
Just wanted to say thankyou ericw - I wasn't using the SDL exe. Had a great day playing Quake on the couch!
All my social events will be quake once 4-player splitscreen with pads is on one of the engines. Currently being dominated by Turok 2's splitscreen right now :P
Split Screen Are For Console Pleb's
#2721 posted by anonymous user on 2017/04/29 22:19:08
Anon Dipshit
Some of us have friends in real life and like to play games with said real life friends...
Post with your Nick next time asshat.
About The Scaling Feature
I don't mean to be pushy, but is this still happening? It's been radio silence for quite some time now.
Yep
#2724 posted by ericw on 2017/05/17 20:15:33
Sorry for the silence, I coded most of it and got sidetracked. Here is a built to test out:
windows build
source
The cvar I went with is "vid_scale", default 1, set it to 2/3/4 to get 2x/3x/4x scaling.
You have to do a "vid_restart" in the console after changing the scale (this could be improved later to have it live update).
I didn't push this to the main QS codebase yet, wanted to get some feedback / testing first but it seems good to me so far.
Ericw
I like this feature... I also turned off basically everything, lerping, shadows etc to get it really old school
Ericw
#2726 posted by DaZ on 2017/05/17 23:52:50
Had a quick look, works well! Screenshots are fubar'd though, looks like it's only screencapping 1/4 of the screen.
Thanks
#2727 posted by ericw on 2017/05/18 04:36:10
build with fixed screenshots
Glad you like it Fifth - yeah, it seems good on id1 maps with square particles + lerping off.
now... about that 4-player splitscreen. ;)
EricW
Does this build have spikes weather code included?
I'm really curious as to what "vanilla" quake would have looked like with weather effects.
Shamblernaut
#2730 posted by ericw on 2017/05/18 08:52:13
Not in this build, the scaling should be straightforward to add to QSS though.
Fifth I know, hopefully at some point (or in MarkV :)
This Is Awesome
#2731 posted by boristhesp1der on 2017/05/18 10:11:59
Seriously thank you so much!
Do you have a paypal link? I'd like to keep my word :)
@Fifth
#2732 posted by Spike on 2017/05/18 12:36:39
http://fte.triptohell.info/quake?+set%20cl_splitscreen%203%20+set%20coop%201 :)
@Shamblernaut, at 320*200 rain-like effects will probably just look like a few sparkles occasionally.
slow moving comparatively large snow-like particles are probably going to be okay though. note that hexen2 had snow effects too.
Hmmm
#2733 posted by Kinn on 2017/05/18 13:45:47
I like vid_scale....would it be a daft idea to hack in support to be able to scale the console and HUD differently to the main scene?
I like the chunky piskels but the screen-filling HUD less so....
Spike
can't get fte to work properly
@kinn
#2735 posted by ericw on 2017/05/18 20:22:00
is it still too big with the "scale" slider in the settings menu at the minimum setting?
@boris appreciate it, my email is in my profile.
#2736 posted by Kinn on 2017/05/18 20:43:23
is it still too big with the "scale" slider in the settings menu at the minimum setting?
Lolbiscuits, I didn't know about that setting. Seems to fix the issue, cheers :}
@ericw
#2737 posted by bakedpotato on 2017/05/19 00:43:25
Seconding what Kinn said. I was imagining it implemented along the scr_scale settings like;
scr_menuscale 3
scr_conscale 1
scr_sbarscale 2
scr_vidscale 4
As it is though, with all the scr_scales at 1, vid_scale 3, and scr_sbaralpha 0.999 running at 1920x1080, it looks wonderfully chunky. I'm loving it.
Another way around the screen engulfing sbar would be allowing scales below 1. So a vid_scale of 4 and a scr_sbarscale of 0.25.
I dunno, you're the one coding. Can I get you a beer?
@bakedpotato
#2738 posted by boristhesp1der on 2017/05/19 14:58:38
That would be cool but will probably be really hard to implement.
I think Quake basically runs at a really low resolution that is just being displayed bigger than it actually is, so it would be impossible to have scr_ scalers below 1 since that would require more pixel density than is available. At 0.25 you would need to display 16 different colors in what as far as quake is concerned is only one pixel.
This kind of feature only works if the 3D world and the ui elements are rendered completely independent from one another, so basically the ui would have to be running at desktop resolution while the 3D world runs at a fraction of it.
Can't guarantee you that's right though, just my understanding of it.
#2739 posted by ericw on 2017/05/22 21:14:45
Yeah, scr_sbarscale below 1 would not really work with the current set-up, as you would get pixellated and unreadable status bar.
Having vid_scale affect the 3d view only (drawing 2d UI after scaling) would be possible, main disadvantage is it requires another framebuffer copy (more VRAM use and fps hit), whereas currently I combine scaling with brightness/contrast at the very end of rendering.
On the other hand I can see how the current implementation is a bit confusing with how scr_vidscale is applied on top of scr_sbarscale/scr_conscale/scr_menuscale.
Not totally sure but maybe I'll experiment with the "draw hud after scaling" variant. That is also how FTE and DarkPlaces do this feature.
Can This Be Fixed?
#2740 posted by boristhesp1der on 2017/05/23 19:35:03
https://drive.google.com/open?id=0BzKtjR7p3BXddUo3TVhPd3U5WVU
depending on your aspect ratio and scaler value the console text gets screwed up in a few places. there is usually either at least one horizontal or vertical line somewhere that is a copy of a line directly next to it. strange double dots also keep appearing in some words when typing in the input bar. i checked to see if this happens with winquake mark v scaling aswell, but it doesn't. maybe this problem is exclusive to hardware scaling?
you'll also notice that the console background image is scaled incorrectly (look at the row of holes near the bottom) since the source image is designed to span the width of 3:2 resolutions and is being upscaled slightly to fit 16:9. well, it's actually 683:384 in my case, which is essentially the poor man's 16:9. it's almost unnoticeable without downscaling, but it looks really jarring compared to everything else in scaled modes.
i tried to get around this by creating 1152x768 as a custom resolution that fits my native y exactly to play in 3:2 with letterboxing, the same trick that worked for me in mark v. doesn't work in quakespasm though, it doesn't seem to care about custom resolutions. they don't just fail to show up in the menu either, entering the mode manually into the console just yields the "that mode is not valid in fullscreen" error, even though the resoluton is recognized by the system.
well, since that solution is stupid anyways i'd like to propose the following:
https://drive.google.com/open?id=0BzKtjR7p3BXdbGk2a1k3ZF9SUGM
scr_conaspect: 0 is scaled to fit the x of your resolution, 1 is a 3:2 overlay independent from it.
is the amazing ericw up for this incredible task? :)
oh yeah and while we're on the topic of ui related stuff, is there a way to get the sbar centered in multiplayer that i'm unaware of? couldn't find the cvar for that, apparently it's exclusive to mark v. i know it's faithful to the original quake but i'd still like it centered.
#2741 posted by mh on 2017/05/23 19:48:36
depending on your aspect ratio and scaler value the console text gets screwed up in a few places
This happens because the console text is a single texture with each letter packed tightly against it's neighbours.
When rendering the text with linear interpolation a 2x2 block of texels is selected and a weighted average is taken (note: this behaviour is built into the txture sampling hardware); adjacent texels may be sampled, hence you see some "spill-over" from adjacent letters in the console text.
Solutions?
Always render the console text with nearest sampling. This is what the original GLQuake does but I'm not certain how well/nice it would look with various scaling modes.
"Pad" out the console text by adding a minimum 1 texel border to each character (in practice a 4 texel border will exactly double the size of the texture which may be required for old hardware that requires power-of-two dimensions) with repeated texels from the edges of that character so that the 2x2 sampling will work as expected.
Adjust the texture coords for characters slightly so that sampling always occurs from within the exact character we're drawing; this is what GLQuake does with the little status bar icons which it also packs into a single texture.
Unpack the characters to 256 8x8 textures and draw them individually with clamp mode. This might run slow.
Build a 256-slice texture array and draw them with clamp mode using the character number as the array slice. This runs fast but requires OpenGL 3.0 or GL_EXT_texture_array.
Don't scale them at all and accept having to squint to see them at higher resolutions.
Draw the 2D GUI stuff to an offscreen texture at the scaled resolution then stretch it over the scene to full resolution. Will run slightly slower.
Something else I haven't thought of?
#2742 posted by ericw on 2017/05/23 20:59:58
boristhesp1der, for the screenshot with the double lines, can I check your vid_width, vid_height, vid_scale, scr_conscale?
The way I implemented vid_scale, if the window size is not divisible by the value of vid_scale, it will just stretch the framebuffer to fit and I think you may get artifacts like that repeated line, I should double-check that.
- The "leaking" between characters is an old problem with QS's scaling, it would be nice to fix sometime using one of the solutions mh gave.
- multiplayer sbar centering: not possible atm, someone submitted a patch for it a while ago, and adding it as a cvar sounds good.
doesn't work in quakespasm though, it doesn't seem to care about custom resolutions
hm, interesting. The difference between markv and QS is we are using SDL (cross-platform library) whereas MarkV is coded against windows directly.. so maybe SDL is not noticing custom resolutions.
- re: the console background, by "scaled incorrectly", do you mean the aspect ratio isn't preserved? That seems like a bug. I'm not sure about supporting a narrower console as the UI code tends to be pretty complex / fragile and it may be messy to do.
1366x768, Vid_scale Is 3 And Scr_conscale Is 1
#2743 posted by boristhesp1der on 2017/05/23 21:45:27
And scr_conwidth is 0, don't know if that is the default but it doesn't play nice with scaling.
I don't think the aspect ratio is the problem, it's just how the improperly scaled image looks through a rough pixel grid. the x resolution is what matters here, it needs to be either exactly 320 or a whole multiple of it since that is how wide the source file is. that's just the way it has to be when the image is forced to span the width of the screen exactly, other ui elements like menu and sbar are not affected by this problem since they are free from this constraint.
|