Opened 3 years ago

Last modified 4 months ago

#11160 new defect

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- 16 months ago.

Download all attachments as: .zip

Change History (11)

comment:1 by raziel-, 16 months 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-, 16 months ago

Attachment: no_title_008.png added

comment:2 by raziel-, 15 months 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, 14 months 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-, 14 months 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-, 10 months 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-, 9 months 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-, 9 months 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-, 8 months ago

Probably a duplicate of #12664

comment:9 by kas1e, 4 months 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, 4 months 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.

Note: See TracTickets for help on using tickets.