ericmckean / glidehqplusglitch64

Automatically exported from code.google.com/p/glidehqplusglitch64
0 stars 0 forks source link

Fullscreen switching uses wrong resolution cause switch back issue #282

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Notice it happen on certain frame during switching probably framebuffer.

Start game e.g. Puzzle League and Pilot Wings, in windowed mode and switch to 
fullscreen mode on the scene in the image.

Pilot WIng image2 and Puzzle League image3 are in fullscreen mode which looks 
correct while I am running in 1600x1024 in window @16:9 and 1920x1200 for 
fullscreen resolution.

Switch back to windowed mode, it becomes Pilot Wings image1 and Puzzle League 
image4.

Original issue reported on code.google.com by pokefan0...@gmail.com on 27 Oct 2011 at 4:54

Attachments:

GoogleCodeExporter commented 9 years ago
It seems the fullscreen resolution has to match the window resolution for the 
above scene so that switching between fullscreen and windowed will work 
correctly.

Is this normal?
If it is, you can close this issue.

Original comment by pokefan0...@gmail.com on 27 Oct 2011 at 3:18

GoogleCodeExporter commented 9 years ago
Since this may be related, I will add that:

Windowed settings below 640x480 only show a fraction of the screen in windowed 
mode if switched while already playing a rom

Original comment by shinra35...@gmail.com on 29 Nov 2011 at 11:33

GoogleCodeExporter commented 9 years ago
Gonetz,
It is now fixed by r270.
switching between window and fullscreen using different resolution works for 
both games as describe above.

Pls close this issue.

Original comment by pokefan0...@gmail.com on 3 Dec 2011 at 2:07

GoogleCodeExporter commented 9 years ago
For Pilot Wings, if you use a fullscreen resolution > window resolution e.g. 
1920x1200 vs 1600x1024, after switch back to windowed mode causes flickering of 
texture underneath the black border at the upper right corner.

Original comment by pokefan0...@gmail.com on 3 Dec 2011 at 3:27

GoogleCodeExporter commented 9 years ago
Same thing happens to Kirby64 when switching back from fullscreen to window 
mode where fullscreen resolution > window resolution.
The flickering is more serious.

Original comment by pokefan0...@gmail.com on 3 Dec 2011 at 10:33

GoogleCodeExporter commented 9 years ago
It affects Pokemon Stadium 2 as well.

I think it affects all games with buff_clear=0 because previous image in the 
buffer is probably not cleared and viewport offset of 0 probably doesn't match 
such games with non-zero upper bound?

Original comment by pokefan0...@gmail.com on 3 Dec 2011 at 11:07

GoogleCodeExporter commented 9 years ago
One of my 1964mod clash with your r270 fix but I got that sorted out.
Still r270 does cause certain portion of black border to be removed exposing 
the underneath image(from previous frame) as a result of switch back from 
fullscreen to window mode.

Original comment by pokefan0...@gmail.com on 3 Dec 2011 at 11:36

GoogleCodeExporter commented 9 years ago
I did not try widescreen fullscreen resolutions. For 4:3 I have no problem when 
switching back from fullscreen to window mode where fullscreen resolution > 
window resolution. Tested with Pilot Wings, Kirby64 and others.

Original comment by gon...@ngs.ru on 4 Dec 2011 at 8:58

GoogleCodeExporter commented 9 years ago
If I use 1280x960 for both windowed and fullscreen, switching back and forth 
between windowed & fullscreen - no problem, no flickering at the exposed side 
border.

If I change the fullscreen resolution to say 1600x1024 or 1920x1080, switch 
back to windowed mode from fullscreen mode will see the exposed side border 
e.g. Pilot Wings(U), flickers for the underneath image.

Kirby flickers worst even even if both matches at the intro video where the 
image frame turns black when you switch to fullscreen mode.

Original comment by pokefan0...@gmail.com on 4 Dec 2011 at 10:58

Attachments:

GoogleCodeExporter commented 9 years ago
Regarding Kirby: I know why the image frame turns black when you change window 
mode. The frame rendered only once, not each frame, and than it just remains on 
screen while only picture inside the frame is updated. When you switch window 
mode, a new frame buffer created and the frame disappears.
Regarding flickering: I can't fix issue which I can't reproduce.

Original comment by gon...@ngs.ru on 4 Dec 2011 at 2:37

GoogleCodeExporter commented 9 years ago
I know the flickering happens after r270.
Since you are unable to reproduce, I will have to figure it out myself.
Please close this issue.

Original comment by pokefan0...@gmail.com on 4 Dec 2011 at 2:57

GoogleCodeExporter commented 9 years ago
>I know the flickering happens after r270
This is very strange. r270 adds only these lines:
  if(nvidia_viewport_hack && !render_to_texture)

  {

    glViewport(0, viewport_offset, viewport_width, viewport_height);

    nvidia_viewport_hack = 0;

  }

Viewport set can not cause flickering.

The only exception is grDrawVertexArrayContiguous. My commit slightly changes 
logics here. You may try to revert changes for grDrawVertexArrayContiguous, may 
be it will help. I see no other suspicious place. 

Original comment by gon...@ngs.ru on 5 Dec 2011 at 6:24

GoogleCodeExporter commented 9 years ago
It seems the only way to stop the flickering is to set windowed and fullscreen 
resolution to be the same.

Another thing is removing "viewport_offset = 0;" from main.cpp that you added 
help Pilot Wings where the bottom black layer will not open a horizontal gap 
showing the image below when switch back from fullscreen to windowed.  When in 
windowed, my game viewport offset=23 and fullscreen viewport offset=0, so I 
remove it and it seems to help.

Original comment by pokefan0...@gmail.com on 5 Dec 2011 at 8:10

GoogleCodeExporter commented 9 years ago
Even Mario Golf is the same i.e. all games with buff_clear=0, it will flickers 
when switch back from fullscreen to windowed mode if fullscreen resolution != 
windowed resolution.

For testing, I set buff_clear=1 for Kirby64 and it did not flickers.
Is it possible to clear depth buffer or something when the switch back occurs?
I think it clears buffer when switching from windowed to fullscreen.

Original comment by pokefan0...@gmail.com on 5 Dec 2011 at 10:02

GoogleCodeExporter commented 9 years ago
Pilot Wings and Kirby64 flickering same as TGR2 - works in MyGlide64

Original comment by pokefan0...@gmail.com on 7 May 2012 at 1:49