Closed domportera closed 5 months ago
I found a comment in an old issue on Retroarch for implementing absolute positions for touch screens: https://github.com/libretro/RetroArch/issues/5215#issuecomment-318511268
Not sure on the details of implementation and the pipeline of input data through your core, but this might be helpful for developing this option
Honestly, have experimented with this? Because it's not so good as you think it is.
Long story short, it was possible to put retroarch into a situation where the mouse 'quirks' (hardware bugs correction) library didn't load by running RA outside of gnome. This turned the touchpad into a 'projection of the screen' and the cursor would end up where your finger pointed to.
It sucked to play point and click games in that situation - where the cursor would end up when you touched the touchpad was unpredictable; not only because it was hard to tell the 'projection on screen', but also because the games are setup for minute relative movement of the cursor, and jumping then returning to 'neutral' when you touched anywhere was a trip and a half and trying to move with precision even worse.
Do not recommend
Oh and i also had no right click, that may have soured the experience even more.
There's plenty of "remote desktop" apps for phones that have mouse control that feels nicer to use than what we have currently. But I think enhancing RetroArch on that front is a tough request at the moment. It would need a developer who is dedicated to improve support of computer emulator cores on Android to spearhead such an effort.
The problem on our side is that programs running in DOSBox are able to read the actual movement of the mouse device and then handle any kind of cursor movement on its own without the emulator being possibly aware if there is a mouse cursor being moved or if it's just used to control a character in a FPS like game.
Does anyone know how dedicated Android (or iOS) variants of DOSBox deal with this? If there's a good implementation out there I'd certainly be interested to see how that can work.
+1 for this request. Magic Dosbox already supports absolute cursor input on Android so I know it's possible, and it works perfectly fine there, but Magic Dosbox is missing so many good Dosbox Pure features it's no comparison. Would love a way to use Dosbox Pure in Retroarch to achieve the same goal for point-and-click games like Willy Beamish that aren't supported by ScummVM or other mouse-heavy games SimCity 2000 with a stylus/pen on my Android tablet.
How is this not a thing yet? Is there really such a small around of point and click adventures in the word that this request is unreasonable?
How is this not a thing yet? Is there really such a small around of point and click adventures in the word that this request is unreasonable?
please don't belittle the effort that a feature like this takes in a project as complicated as this - there are a lot of moving parts here that insist on moving a specific way that makes "simple" things a lot more difficult than they seem. Not to mention the fact that this whole project is essentially a huge donation of time and energy with a huge assortment of priorities and only one primary maintainer who has their own life to live. you're welcome to use another emulator that has what you're looking for.
that being said, @schellingb I just took a short peek into the source - would using RETRO_DEVICE_POINTER
or possibly RETRO_DEVICE_LIGHTGUN
) (defined in libretro.h
) be a feasible option to implement this sort of feature? I'm not sure how this would be selected on the user's side but if these input definitions are generically passed through Retroarch's input system, I can see the possibility of implementing their use for this feature. RETRO_DEVICE_POINTER
seems like the best fit for touch, though it would take a fair amount of logic
Since Retroarch was released on Android 8 years ago this has been an issue, idk how it would be unreasonable to assume this wouldve been addressed since then. But whatever i mean its your software. If you feel like not implementing this, go for it. I for one will treat this as "wontfix" and will not continue pursuing my dream of proper input on touch devices. You go at your own pace. Farewell
Since Retroarch was released on Android 8 years ago this has been an issue, idk how it would be unreasonable to assume this wouldve been addressed since then. But whatever i mean its your software. If you feel like not implementing this, go for it. I for one will treat this as "wontfix" and will not continue pursuing my dream of proper input on touch devices. You go at your own pace. Farewell
for the record this ain't my project. just asking you to respect the developer(s) with how you request things. it's not unreasonable to assume it was already done, you're just not asking for it in a good way. take it from the guy who requested the feature in the first place
Looks like there is a similar PR on the RetroArch side at https://github.com/libretro/RetroArch/issues/14016 as relative/absolute position and mouse grab are closely related problems.
I'd like to take a stab at trying to fix it, but don't know where to start. Is this a feature which needs to be implemented in RetroArch, DosBox Pure, or both?
RetroArch for Android had a bunch of changes done regarding this recently. And as part of #400 this core has gained a few modes of input for the mouse emulation, one specific to touch screens and one that directly controls the mouse which should enable absolute mouse clicks with the touch screen (for games that support the direct control method). I'll close this issue for now. Comments on the mouse input modes can go into #400, or a new issue can be opened if it's just tangentially related.
This would contribute greatly to usability on touch devices, particularly for mouse-only games or those of us who use gamepads.
looked at the mouse code and saw an absolute mouse position function exists, so this may not apply
I know DOS or any other machine uses relative mouse movements for positioning the cursor, but in my experience this can be circumvented. A solve I've done on a totally unrelated system for Windows was to get a touch position and then move the mouse an absurd amount to ensure that it's at (0, 0), then move the mouse up to the touch coordinates, if that makes sense. Maybe this would involve a frame of input lag but it'd be a price worth paying imoI understand that determining the type of mouse click (left or right), clicks and drags, etc, isn't trivial. The VNC app Remotix for Android does this quite well and it seems like simple and intuitive logic. I'd be happy to record a demo of how it works if you feel this is a worthwhile enhancement.