Nymashock changes emulator window size between each game resolution change, no matter the settings
Summary
Whenever i try to manually resize bizhawk window during TASing or gameplay to fit my screen and also have space for tools like TAStudio to the side, the emulator window will resize to the default size. The issue doesnt happen when changing window sizes from the emulator settings in View-->Window Size (x2, x3, x4 etc)
I tried different settings (obviusly config -> display -> check "maintain aspect ratio" and "use system's recommendation") and whatnot, but noone of the settings in the "Display"config made a difference. What (partially) worked was changing the default constant framebuffer size from FALSE to TRUE in Nyma Core Non-Sync settings. This however produces some other graphical glitches and issues when TASing (specifically when dumping, pausing the emulator on resolution change will.. not pause it till the loading screen and/or console bios screen is gone, and using "toogle throttle" to speed up the emulator produces other issues with constant framebuffer set to true aswell.
I've checked on actual console with the title i had this issue most frequently, "Bugs Bunny Lost in Time NTSC-U", connected directly to a hd monitor using retroThink from the RGB console signal, and it does indeed change resolution each loading screen. However the emulator window doesnt reset to default on Octoshock on each game resolution change, as opposed to Nymashock.
Behaviour on Nymashock: https://www.youtube.com/watch?v=7sxhxRZEKfw
Repro
- Open a psx game in Nymashock
- Change manually the emulator window size (even before boot will work, as from the psx bios and the emulated game a resolution change will occur anyway
- Bizhawk window will reset to its original size, despite the previous manual resize
Host env.
Bizhawk 2.8, Win10 22H2, Amd cpu, Nvidia gpu
Config -> Display -> Use custom size will force the emulator window to anything you set.
Config -> Display -> Use custom sizewill force the emulator window to anything you set.
That is true, however when doing that, setting for example 1366x968, then moving the window (not resizing) to fit just right on the screen, will force the emulator window to be moved AGAIN in its starting position after each game resolution change. This would be just a minor inconvenience, but the problem is that after setting such resolution, when reopening bizhawk, the top bar of settings and such will spawn out of bounds in Windows, making inaccessible unless the user is the forced to actually manually resize, (I have Windows snapping and such disabled btw), and besides it would still be a workaround, since this is not happening in octoshock ig
So at this point, i guess one would have to still have a different smaller resolution, so that whenever bizhawk is opened again it wont spawn out of bounds because of whatever is happening with Windows10 bottom bar, but that kind of defeats the whole point of this feature.
This sounds like a bug with our detect needing window resize code. The aspect ratio correction code should keep the window the same size despite the core changing resolutions, but seems our window resize code ignores that and sees a res change and changes the window size to account for that.
Also fyi, you can get similar in behavior in Octoshock by changing its display settings (e.g. to hardcore debug mode).
Right, but that forces a core reboot and i've tested each of these with settings that were non-sync dependent (hardcore debug mode might not be " truly " needing it but the emulator will prompt to reboot the core even switching to pixel pro to hardcore debug mode or w/e
Still, that's good to know
A reboot core prompt doesn't mean it's a sync setting it means it just needs to reboot the core to have the setting take effect (even so, I think that prompt is superfluous in this case). That setting is not a sync setting at all anyways.