mupen64plus / mupen64plus-ui-python

A frontend for Mupen64Plus
http://m64py.sourceforge.net/
GNU General Public License v3.0
247 stars 67 forks source link

Window resizing/aspect ratio UX is really weird #213

Closed geajack closed 2 weeks ago

geajack commented 1 year ago

The way this front-end works is that when you resize the window, the N64 game is stretched to fill it. This is fine default behavior, but it wasn't what I wanted, so I went into the settings looking for a "preserve aspect ratio" toggle. I found one, but what I expected it to do was to pillarbox/letterbox the game within the window as I stretched it. In particular, what I wanted was to play the game fullscreen and have it be 4:3 pillarboxed in the middle of my screen. Instead, this frontend's interpretation of "preserve aspect ratio" is to force the window to remain in 4:3, and when in fullscreen, the setting is simply ignored and the game is stretched

Playing the game in native aspect ratio centered in the monitor, with black pillarboxing, is to me the most basic, obvious way to play any emulator, and in my experience is what every emulator does by default when you fullscreen it. I've never seen this kind of behavior where the window is snapped to the right size rather than the game being resized within the window. It's very very peculiar UX, and most importantly, there doesn't seem to be any way at all to get pillarboxed fullscreen.

Recommendation: have aspect ratio preserving work in fullscreen, and when in windowed, resize the game within the window, don't resize the window itself.

gen2brain commented 1 year ago

@geajack Thanks for the PR, I will need some time to test it. It must work correctly for both video plugins that have support for vidext (embedded window) and in the external window.