DPI problem on actual XMplay ?

Started by rst,

rst

hello there.
Just update today xmplay executable and I have found that suddenly the player looks very little. Yes 4k screen resolution here. So I tried to disable PPP adjust scale like I did with many other programs to bring back again the normal size I had. But It didn't work as it should. So I did it finally with the classic exe.manifest.

Is this a DPI problem with actual XMplay ?

Also, is there some repository for old versions in order to get again the last good one that hadn't this problem ?

thx in advance

deus-ex

Quote from: rstAlso, is there some repository for old versions in order to get again the last good one that hadn't this problem ?

https://support.xmplay.com/files.php?id=20

For custom skins, you can create upscaled versions with Rah'Dick's invaluable online skin scaler:
https://rahdick.at/sonstiges/xmplay-skin-scaler/xmplay-skin-scaler-web.php

Ian @ un4seen

XMPlay 4.1 is DPI-aware to avoid blurriness from Windows' scaling. But you can get the scaling back by setting the "Compatibility > Change high DPI settings > High DPI scaling override" option to "System" or "System (Enhanced)" in the XMPLAY.EXE file properties. If the skin is way too small, you could enable XMPlay's "Interface > Big" option instead.

rst

thx Ian for the info. I didn't notice about that 'big' setting :)

About compatibility settings, take in consideration that not all windows have those settings. And not everybody is using or will use 'things' as windows 11... if that's the case.

Ian @ un4seen

The "DPI scaling override" option is available in Windows 10/11, which are the only OS that XMPlay 4.1 enables DPI-awareness on. The latest "stuff" builds do also enable it on Vista/7/8 though, and a "DPI scaling override" option doesn't appear to be available there. Perhaps an option can be added in XMPlay to allow DPI scaling - I'll look into that.

rst

yes, that's the question. So I did it via the classic exe.manifest, but well, that 'big' settings is proper.

Ian @ un4seen

What Windows version are you using? On Vista/7/8, DPI-awareness is on/off for the entire app. But on 10/11, it can be set on individual windows, so it could be disabled on the skin and left enabled on everything else. I'm thinking about having an option for that, but there are some glitches when the DPI changes with DPI-awareness disabled, eg. when moving between monitors with different DPI settings. I'll probably post an update for testing soon (possibly tomorrow).

Ian @ un4seen

Here's the update for testing:

    www.un4seen.com/stuff/xmplay.exe

It adds an "Allow DPI scaling" option in the "Interface" options page. On Vista/7/8, it disables DPI-awareness entirely, while on 10/11, it only disables DPI-awareness on the skin, basically setting the skin to "System" DPI scaling mode. I would have liked to use the "System (Enhanced)" mode instead because that produces crisper text, but it's also more glitchy, most notably alpha-channel skins are messed-up. But for cases where it works well, the "System (Enhanced)" mode can be enabled by setting "DPIScaling=2" in the XMPLAY.INI file.

Please report any problems.

rst

Nice!

I disabled 'big' first in actual executable, before to change it by the new one for testing.
And yes, the new setting is working as expected. Good job!

The API function I use in actual windows version is 'SetProcessDpiAwareness' while it seems that for windows 10 and 11 proper function it is 'SetProcessDpiAwarenessContext'. But surely you already explored all that :)

Ian @ un4seen

Good to hear the new option is working well.

I just noticed that some text in the "Options" window is getting cropped slightly in high DPI. The larger font is apparently changing the relative character widths, so some text no longer fits in its allotted area. Here's an update that expands the area in those cases:

    www.un4seen.com/stuff/xmplay.exe

aspertyx

Using XMplay 4.16, the XMplay icon cannot be maximized from the taskbar if DPIscaling=1 or DPIscaling=2 is set in the xmplay.ini file. XMplay is using the Royal Vista skin on a Win10 IoT LTSC (x64) Build 19044.7663 (21H2) Dell 7550 laptop. If the DPIscaling parameter is dropped from xmplay.ini, the Mplay icon can be maximized.

Ian @ un4seen

To confirm, do you mean after you minimize XMPlay to the taskbar (eg. click the minimize button), clicking on XMPlay's taskbar icon doesn't restore it? If so, I  don't seem to be able to reproduce that here on regular Windows 10 (I haven't tried IoT LTSC). What DPI/scaling and screen resolution are you using? Does the problem happen even with DPI/scaling=100%?