Rinnegatamante / vitaQuake

Port of Quake for Playstation Vita
GNU General Public License v3.0
125 stars 20 forks source link

[Bug either in VitaQuake or VitaGL] Gun and shotgun blast too low (EDIT: FIXED) #49

Closed rsn8887 closed 6 years ago

rsn8887 commented 6 years ago

When compiled with latest version of VitaGL, the gun and the shotgun blasts are now "too low". the gun is almost completely hidden by the status bar now. The shotgun blast particles are also too low, 2 cm below crosshair. It is hard to even see the gun. Maybe the crosshair is too high? Hard to tell.

I found that this was caused by this recent commit to VitaGL, so this maybe a bug in VitaGL only: https://github.com/Rinnegatamante/vitaGL/commit/2f30aa67b97026aa466d926a51f6595d104fd9ec

It is fine in VitaQuake release 2.8, because that was compiled with the earlier VitaGL version.

Rinnegatamante commented 6 years ago

Can you post a screenshot?

usineur commented 6 years ago

2.8 release: 2 8

With glViewport "fix": plus y

I also try to use "-y" instead of "y" in vitaGL's glViewport implementation, got this: minus y

Isn't the last one the correct rendering the gun should have ?

rsn8887 commented 6 years ago

Can you check if the shotgun particles appear centered on the crosshair, by shooting at wall? This was another problem I found. In 2.8 the shotgun shoots at the crosshair. In current version, it shoots below the crosshair.

usineur commented 6 years ago

Have this with "-y" version:

2018-02-16-182613

rsn8887 commented 6 years ago

So it is centered! Great!

But also strange: The crosshair seems low (should be centered on the warp door), and also the Quake logo is not showing because the view doesn't go as high (?).

Here, I found an example of dosquake and windows glquake starting screen for comparison. Not sure how accurate those are I ripped them from random youtube videos.

Note in both pictures below, the QUAKE logo on the top beam is visible (and the gun looks like in -y version, that's good, but also it is much smaller relatively speaking).

EDIT: Here's my refined theory: The view in VitaQuake (or VitaGL?) seen on usineur's comment is simply not adjusted properly for 16:9. It is instead a "zoomed-in" 4:3 view. That's why the gun is too large and the Quake logo is not showing.

Notice the edges of view on DosQuake. VitaQuake shows the same walls on left and right as DosQuake, but less along the vertical.

On the other hand Windows GLQuake on widescreen shows more, because it is properly adjusted to a widescreen display. Compared to that, the VitaQuake view is "zoomed in" like a pan&scan DVD movie zoomed to 4:3 with missing content on the left and right. Instead, the view should show more content on the left and right, and the the same content (including the full Quake logo) on the top and bottom. Like a proper widescreen DVD movie.

dosquake:

windows gl quake:

rsn8887 commented 6 years ago

Of course, this might just be a fov setting problem after all. I cannot test right now, but maybe the Quake logo on the beam re-appears when changing fov? It looks like the vertical fov has to change though.

Rinnegatamante commented 6 years ago

vitaQuake uses 4:3 res screen iirc since 16:9 was causing issues with Fov (sort of fishbowl effect).

rsn8887 commented 6 years ago

But I am still pretty sure that the crosshair should be centered on the door. In the "-y" version, the crosshair seems too low, although the aim is correct.

usineur commented 6 years ago

I think it's still not the right approach...

rsn8887 commented 6 years ago

Here it says the fov should be set to 106 for widescreen, to give the same result as standard 4:3 quake with fov 90 : https://www.quaddicted.com/engines/adjusting_fov_for_widescreen

It might be possible to make that change, and compare the starting screen to the youtube picture of Windows GL Quake I posted. I guess it should be identical unless there's a bug in glviewport still? E.g. crosshair should be in center of door, the weapon should show up, the Quake logo on wooden beam is visible fully etc...

rsn8887 commented 6 years ago

I think the "Hexen II" style status bar has something to do with it. Note the crosshair in vitaQuake is centered as if the status bar were regular (non Hexen II style). The crosshair is too high(?):

but in Windows GLQuake, the crosshair is drawn on the true center:

and in DOS it looks like this:

rsn8887 commented 6 years ago

Fixed, see PR. It was the wrong calculation of viewport height (it was clamped at vid.height - sb_lines instead of vid.height in fullscreen modes with viewsize >= 100)