WACUP and Winamp and 4K, just how bad is it?

Thanks to the support I’ve gotten for doing WACUP, I finally entered the world of high-dpi monitors with a 27” 4K monitor (specifically the LG 27UL650). After feeling like I’d nearly blinded myself when I first turned it on this week (damn these things are bright & I don’t want to know what a higher spec HDR monitor is like) I loaded up WACUP to see how well it worked and …


… it’s quite small when using the classic skin in normal mode. I’d assumed that would be the case but just not to the degree it was which is why I’ve got it set to run at 175% scaling from the Windows options instead of 150% as it defaulted to when the monitor was first detected.

For reference I’ve been using a 23” 1080p monitor (an LG M2362DP for those interested) as my main monitor since the early 2010s & the normal sized classic skin was maybe getting a bit fiddly at times for my ageing eyes but it was usable.

On the new 4K monitor it’s just not practical & I’m glad I’ve done work previously to have WACUP support double-size on the generic windows (e.g. the Media Library window) otherwise the Big Bento Modern skin comes into its element.


There’s likely more issues that I’ve not yet come across but here’s the full list of issues that I posted to Discord since Tuesday & thought those not on the server might be interested to know about :)

  • Windows incorrectly scales the windows when moving between monitors instead of leaving WACUP to do its own thing
  • Installer incorrectly wraps text & doesn’t place the donate buttons correctly
  • Classic skins in normal mode is unusable & double-size should probably be the default if a higher resolution screen is detected as being used
  • Modern skins are blurry to different degrees based on the skin & scaling factor (Big Bento Modern works well without)
  • The prefs & about windows do weird things on one of my installs when moving across screens
  • The about window credits tab doesn’t scale the text correctly
  • The prefs window has numerous clipping / wrapping issues with text & the bitmaps used in some places aren’t scaled up (means higher resolution &/or more images to be included with the side effect of bulking up file sizes)
  • The buttons in the library views are being over scaled & so look wrong (this is the biggest visual annoyance)
  • Some aspects just feel slower which is expected due to pushing more pixels but it feels sluggish (unless it’s my machine &/or the 1050ti not liking pushing both a 4K & a 1080p monitor compared to my prior 1080p & 1600×900 monitor)
  • Milkdrop has issues with text display including the preset lists & preset information (luckily the now playing information is already scaled correctly)
  • Loading times have been impacted for an as yet unknown reason but mostly seems to occur just from loading the Local Library plug-in (ml_local.dll)

Winamp 5.666 was also tried out & things were similar with it primarily being aspects from WACUP changes / replacements that could cause a difference.


Since trying things out, I’ve made one initial change with it being to disable Window’s automatic scaling that is otherwise attempted to be applied (this is what can & will cause a lot of older programs to look blurry or not right). But why do that you might be asking?

The reason is that it introduces a number of visual issues when moving between monitors at different resolutions (often seen as gaps between the docked windows as well as it just looking blurry) where for a program just using the native OS styling it would make sense however for something that works on a custom ui with its own scaling support

Now if this isn’t something people like going forward then I apparently have some means for making this into an option (or you can override it via the OS compatibility options) but I honestly think it might be better to just improve the built-in WACUP scaling support especially for classic skins where it’s just 1x or 2x mode when other modes are needed.


If you’ve read through the list then you can see there’s a number of obvious visual issues along with some deeper routed issue that need to be sorted out. For example the library window buttons just looking super odd compared to the rest of the skin (top image is from an instance running on the 4K scaled monitor & the bottom image is from an instance running on the 1080p non-scaled monitor).

The main reason for this I believe is due to the padding that’s applied to generate the desired button height is being itself multiplied to match the OS scaling factor (or something close to that) when it’s not wanted.

4k_library_buttons_weird.png
4k_library_buttons_non-scaled.png

I will however also acknowledge that the non-scaled version with larger text is probably not as ideal as it should be with probably a few pixels fewer padding being used than would make things look correct.


So now that all of these issues have been found (for which there is probably more) & you’ve had a rambling text to contend with, what next ?

The (somewhat delayed * ) next beta build will include the key change along with some obvious fixes to the issues I’ve come across as well as possibly doing something to help resolve the button scaling issue.

Going forward, as more of Winamp’s core is replaced for WACUP’s implementation then the classic skins (subject to plug-in support with the generic window support) will gain more scaling options to run at a larger than 2x sizing for those needing that support. I just don’t know if that’ll end up being more like modern skins where a scaling range is supported or if it’ll just be specific scaling amounts so we’ll have to wait & see what the future brings :)

-dro

(*) A build never made it out in time for the holidays which I’m not happy about but sometimes this happens for the best & plans have to change & life gets in the way. Anyhoo, here’s for a good 2020 however you want it to go!


Comments:

  1. Happy New Year DrO

    Thanks for keeping the dream alive!!

    Tim

  2. Thanks for the update! Take care of yourself.

  3. Thanks both of you :)

    ——————–

    Interesting find… the slowness I’ve mentioned all goes away once I disable LG’s OnScreen control app.

    I’ve not dug into it yet but it’s either hooking into (all?) processes & not doing well or something else funky is going on as WACUP & also Explorer are back to normal now 🤔

    The LG app is causing 2 hook dlls to be loaded into the process (ScreenSplitterHook1.dll & ScreenSplitterHook2.dll) though I suspect if there were more monitors that more of those dlls would be loaded as it goes up to ScreenSplitterHook8.dll in the app’s folder.

    Am seeing my old friend SetWindowsHookExW in the dll exports. So either how that’s being handled isn’t setup correctly (which is easily done with hooks) or their dll is using/sending messages that gen_ml/ml_local,etc need & those dlls are taking too long in them & hence its slow.

  4. Gracias por seguir el desarrollo, ojalá habilite más opciones para video es lo que estaba esperando, saludos des Guatemala