libretro / RetroArch

Cross-platform, sophisticated frontend for the libretro API. Licensed GPLv3.
http://www.libretro.com
GNU General Public License v3.0
10.11k stars 1.82k forks source link

Show Mouse Cursor with Overlay not working on Nintendo Switch #9543

Open TomCat666 opened 4 years ago

TomCat666 commented 4 years ago

As title says on Nintendo Switch (any build, even latest) the "Show Mouse Cursor with Overlay" option not working at all... you don't see the mouse cursor and you cannot select any key from the overlay keyboard because of that.

Expected behavior

To see the mouse cursor when overlay is displayed and the "Show Mouse Cursor with Overlay" is enabled in the Onscreen Display -> Onscreen Overlay Retroarch menu.

Actual behavior

The mouse cursor is not shown and you cannot select anything.

Steps to reproduce the bug

  1. Load any keyboard overlay preset (Onscreen Display -> Onscreen Overlay -> Overlay Preset)
  2. Enable Display overlay (overlay is shown in the game)
  3. Enable "Show Mouse cursor With overlay"
  4. No mouse cursor shown in the game

Version/Commit

Any retroarch build for Nintendo Switch

TomCat666 commented 4 years ago

On 2019-10-02 20:23, rsn8887 wrote:

This function displays the system mouse cursor on systems like Windows/OSX. The Switch doesn't have a system mouse cursor, so nothing is shown. This is not limited to Switch, many other systems like PSP, Vita, etc., don't have a system mouse cursor to show either.

Hello

The problem with switch is that when it is used in handheld mode it has a touchscreen and all is well there - you can use the overlay keyboard in this mode without any problems. But when it is used in standalone mode - connected to the TV - you cannot use the touchscreen and there should be a mouse pointer displayed and controlled by the right analogue stick. Not sure if this is possible to do though as you said, that's why I created the issue. Some libretro cores get around this by having their own keyboard overlays which are controlled by normal controller controls (vice for c64, fuse for zx, puae for amiga for example)... unfortunetly the generic overlay keyboard cannot be controlled by normal controller controls at all (or I don't know a way to do this), so cores like dosbox and caprice32 can't be used when in "TV" mode.

Best regards, -- TomCat

rsn8887 commented 4 years ago

Caprice32 has its own keyboard already, similar to Vice core, that can already be controlled in TV mode. Just press select to enable mouse pointer movement via dpad after bringing up the on-screen keyboard (NOT overlay).

I am unfamiliar with this "overlay keyboard" I don't think it actually sends keypresses to cores like Dosbox. Have you tried this out, using touch, in dosbox?

I think what should be done maybe is that this "generic overlay keyboard" you are talking about should be controllable not just by mouse and touch, but also by the dpad or the stick, not via moving some mouse pointer that doesn't exist on Switch, but instead by jumping from key to key via dpad.

TomCat666 commented 4 years ago

Hi

Yeah, that solution would be preferrable... I just thought that enabling "custom" mouse pointer for this option on systems that don't have one would be a simpler solution.

Yes, in handheld mode it works correctly... touch screen is used and is working fine.

On 2019-10-03 06:16, rsn8887 wrote:

If I understand this correctly, then I think what should be done is that the "generic overlay keyboard" should be controllable by the dpad or the stick, but not via moving some mouse pointer, but by jumping from key to key.

Does it work correctly in handheld mode?

-- You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub [1], or mute the thread [2].

Links:

[1] https://github.com/libretro/RetroArch/issues/9543?email_source=notifications&email_token=AB3SLHLEB2R2XE3K26JQHH3QMVW2NA5CNFSM4I4USCP2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEAG5OZI#issuecomment-537778021 [2] https://github.com/notifications/unsubscribe-auth/AB3SLHOMKQLMKYBYX4HHJRDQMVW2NANCNFSM4I4USCPQ

-- TomCat

TomCat666 commented 4 years ago

I did not know about caprice32's own keyboard at all (you bring it up with - and + buttons on switch pressed together and, as you say, enable/disable mouse with - key). And it works as you described with mouse cursor - thank you. Unfortunetly DosBox does not have its own keyboard so the only way is to use the overlay keyboard. It does send keystrokes to the core perfectly, it just only works when switch is in handheld mode since you can use touchscreen there.

rsn8887 commented 4 years ago

Yeah you are right. There's another way to do keyboard entry with dosbox-svn on Switch: you can use a physical USB keyboard :/