Window position as input axis
Useful for:
- DS スライドアドベンチャー マグキッド / Slide Adventure: Mag Kid
- maybe 3DS XR titles
IMO the best way to handle screen edges is to pretend they don't exist. mainform.X / (screen.Width - mainform.Width)
Window position? As in, if you want to do stuff in the game you gotta drag the emuhawk window around? Doesn't sound like a great user experience.
As in, if you want to do stuff in the game you gotta drag the emuhawk window around?
This would be useless on Windows without heavy refactoring, dragging the windows means the main thread is stuck in message pumping, implicitly pausing emulation. I don't know how Linux reacts (might not perform this same blocking behavior, or maybe it does).
Oh yeah I forgot about that :( For Mag Kid it might be possible to fake the effect by maximising the window and using a Lua script to adjust the padding.
I also forgot to mention that this feature would clash with the shake window for rumble feature, should we ever add that.
It would also clash with several Windows features:
- window snapping / tiling by dragging them to screen borders
- shaking a window to minimize all other windows
- "Show window contents while dragging" may be disabled by default on low end windows systems
Window-dragging is a neat idea, but the mouse is probably sufficient and preferable in practice.
Another obstacle for window-dragging is that you would need a way to reset the position so you can continuously traverse in one direction without running out of screen space. Maybe having it reset to center while not dragging would be sufficient.
I hacked in controls using window movement into my slide controller fork of DeSmuME and I have to say, this is not a pleasant way to control the game at all.
https://github.com/user-attachments/assets/bb60396b-fd26-4616-988e-99625d44e525
That honestly doesn't look that bad. 2x window scale might smooth it out (since it's quantised to window-position-pixels, much rougher than mouse movement).