hrydgard / ppsspp

A PSP emulator for Android, Windows, Mac and Linux, written in C++. Want to contribute? Join us on Discord at https://discord.gg/5NJB6dD or just send pull requests / issues. For discussion use the forums at forums.ppsspp.org.
https://www.ppsspp.org
Other
10.85k stars 2.13k forks source link

Need a virtual keyboard for devices without keyboards, like Steam Deck #18222

Open hrydgard opened 10 months ago

hrydgard commented 10 months ago

Multiple people are reporting that they can't log into RetroAchievements using the Steam Deck.

Apparently, not even an external USB keyboard works, which is weird, and in the regular SDL build we don't have any kind of inputbox popup.

So, need to figure out something here.

iOS is also affected, and we also do not support USB keyboards and similar on there.

hrydgard commented 10 months ago

Actually for the Steam Deck in particular, it does have a built-in virtual keyboard, no idea why it doesn't work for us though:

https://www.youtube.com/watch?v=sQR07WDdTNU

lvonasek commented 10 months ago

Isn't that the same issue like on ChromeOS or in OpenXR builds?

I posted the log here: https://github.com/hrydgard/ppsspp/issues/13363

hrydgard commented 10 months ago

It's not likely to be related to the ChromeOS issue because that runs Android, while Steam Deck runs some kind of more regular Linux.

anr2me commented 10 months ago

May be need to use their API?

https://partner.steamgames.com/doc/features/steam_controller/getting_started_for_devs#6

On-screen text input is not technically part of the ISteamInput, but is found instead in ISteamUtils.

Similar issue? https://github.com/ValveSoftware/SteamOS/issues/1038

So far though, I was not able to pop up the keyboard with c++ even in a minimal exmaple.

hrydgard commented 10 months ago

I think in theory it should just work and we should receive key-input events from it through SDL, but presumably that isn't happening correctly...

hrydgard commented 10 months ago

Hm, seems there's a special API for screen keyboard stuff, that newer versions of SDL might support?

https://wiki.libsdl.org/SDL2/SDL_HasScreenKeyboardSupport

https://github.com/libsdl-org/SDL/commit/c4b9f621649d4e2ddb05e7f396e43e2d9e0402cc

hrydgard commented 10 months ago

Workaround according to foxsevent:

Well I figured something, it's a issue with Steam, if I launch PPSSPP in desktop mode from applications the keyboard works fine but if I launch it from steam it no longer works. Small tip, the keyboard doesn't show in desktop mode if PPSSPP is in full screen, switch it to window mode temporarily.

nighto commented 7 months ago

The same happens on iOS. There seems to be no way to input text; even connecting a bluetooth keyboard does not work as I shared in the other ticket. (Should I close that other one btw?)

nighto commented 7 months ago

Tried this workaround to be able to use RetroAchievements for now, it works: https://www.reddit.com/r/RetroAchievements/comments/16lil4u/comment/k6tnv7c/?utm_source=reddit&utm_medium=web2x&context=3

nighto commented 2 months ago

Just installed PPSSPP from the recently released App Store and I am happy to share that RetroAchievements works if you do the trick mentioned on the comment above. In a nutshell, you need to install PPSSPP on another supported platform (PC for instance), login on RetroAchievements and copy manually files ppsspp.ini and ppsspp_retroachievements.dat to PPSSPP folder on iPhone.