Opened 5 years ago

Closed 20 months ago

Last modified 20 months ago

#11160 closed defect (fixed)

WME: Engine doesn't use correct screenmodes (fullscreen)

Reported by: raziel- Owned by:
Priority: normal Component: Engine: Wintermute
Version: Keywords:
Cc: Game: Wintermute

Description

ScummVM 2.1.0git (Sep 21 2019 15:43:15)
Features compiled in: Vorbis FLAC MP3 RGB zLib MPEG2 Theora AAC A/52 FreeType2 JPEG PNG cloud (servers, local)

When switching to the game screen the correct resolution is not picked up correctly, rather the game screen is squeezed inside (or enhanced to) the resolution the user used in ScummVM's launcher when starting the game.

This is with SDL(1/2) and tested with AmigaOS4 and Linux and a launcher resolution of 640x480 while starting a WME game that uses a screen resolution of 800x600.

Every Wintermute game is affected (some more, some less), but one game is particularly easy to check against, since it starts with a (in-game) window filled with text and a resolution of 800x600:

Chivalry is Not Dead (Windows/English)

Needless to say that if i use the game's correct resolution in the launcher BEFORE starting the game, the game will be rendered perfectly. (But i don't know every resolution of every WME game and i also think this should be handled by ScummVM on-the-fly.)

See also here for some more information and screenshots:
https://github.com/AmigaPorts/SDL/issues/84

AmigaOS4 - PPC - BE - SDL
gcc (adtools build 8.3.0) 8.3.0

Attachments (1)

no_title_008.png (532.1 KB ) - added by raziel- 3 years ago.

Download all attachments as: .zip

Change History (12)

comment:1 by raziel-, 3 years ago

The behaviour changed a little since opening this item.
With 2.3.0git I know get a perfect game screen, but cramped to the left bottom of the whole screen instead of fullscreen.
That is with every wme game I tried.

It seems as if my systems resolution 2560x1440 is always used as base, instead of switching to resolution that is near the games resolution.
Window is fine btw

by raziel-, 3 years ago

Attachment: no_title_008.png added

comment:2 by raziel-, 3 years ago

Adding to this a "workaround"
If i switch to window (after the broken game screen shows up) and back the screenmode/game screen gets fixed.

comment:3 by lolbot-iichan, 3 years ago

Hi raziel-!

Sorry for being missing for a long time, now I'm back to fixing WME bugs.

There are 2 things i'd like to mention about the current issue:

  1. WME has 3 different renders - Software / OpenGL / OpenGL with shaders.

I can reproduce behaviour similar to no_title_008.png with non-Software renders on Windows.
I'll post a separate bug on this, tagged with "WME3D:" prefix, since 2D games are using Software rendering by default, if not explicitly changed in global or per-game options.

  1. I think I have noticed a reason why screen was stuck at launcher size - there was an unnecessary call to initGraphics(800, 600, &format) before initializing game graphics. Can you please check if anything gets better with Software render after applying this fix: https://github.com/scummvm/scummvm/pull/3105/files ?

comment:4 by raziel-, 3 years ago

@lolbot-iichan

Heh, no problem.
There are far more important things out there :-)

Thank you for the link.
I'll try that as soon as I'm back home (following weekend) and give feedback.

comment:5 by raziel-, 3 years ago

Summary: WME: Engine doesn't use correct screenmodeWME: Engine doesn't use correct screenmodes (fullscreen)

Just to update this item.
Behaviour has changed as to what i wrote in comment:1

Screenmodes *seem* to be the correct ones now (can't really test with the cramped output)

comment:6 by raziel-, 2 years ago

I just confirmed this behaviour with a Win32 binary.
It *always* happens with "Game Renderer" set to OpenGL" or "OpenGL with shaders".

It's a global engine problem with SDL.
It is still the same as described in the original post and what the attached image displayed.

Bickadoodle is a good candidate to test, since it's free.

comment:7 by raziel-, 2 years ago

I also have to add another problem which stems from the same base.

Since the screenmode isn't correct in fullscreen, every attempt to open the in-game menu (CTRL-F5) leads to a frozen game screen (probably because the menu is opened somewhere in the void and i'm not able to click/use it no matter what i try).
The only workaround to this, is to manually switch to Window mode (Alt+ENTER) and close the window.

comment:8 by raziel-, 2 years ago

Probably a duplicate of #12664

comment:9 by kas1e, 2 years ago

Oh, i meet with the same problem, and can confirm that this happens and on AmigaOS4, and on Win10, and on Linux (i tested 3 of them).

I even create ticket for, without knowing that there is alrady 2 or 3 tickets for that issue. There is my one (maybe will help with more information in):

https://bugs.scummvm.org/ticket/13375

What i want to add, that when i do try to resize, i always have on every resize that "BaseRenderOpenGL3DShader::onWindowChange not yet implemented" , not sure through if it anyhow help with.

comment:10 by kas1e, 2 years ago

I even create a video to show this issue:

https://youtu.be/VnxF3hYDlS0

Video done on amigaos4, but it's 100% the same on windows10 with very latest scumm build, and on linux too.

comment:11 by raziel-, 20 months ago

Resolution: fixed
Status: newclosed

This has been fixed in the meantime.

Whoever tackled this big, feel free to add yourself (resolve to).

Closing this, thank you very much

Version 0, edited 20 months ago by raziel- (next)
Note: See TracTickets for help on using tickets.