libretro-mirrors / scummvm

ScummVM with libretro backend.
http://www.scummvm.org/
GNU General Public License v2.0
22 stars 31 forks source link

Keyboard Inputs not Recognized in SUMMVM Core #176

Open deckard2123 opened 3 years ago

deckard2123 commented 3 years ago

Whenever I'm running the SCUMMVM core, whether I'm in the SCUMMVM menu with no content loaded or in a game that requires keyboard inputs (for example: to name a character or save file) the core doesn't register any keyboard inputs. This problem occurs both when "Game Focus" is on and when it's off. The cursor just sits there and doesn't register text when I press letters on the keyboard.

RetroArch Version: 1.9.1 Windows x86_64 SCUMMVM Core Version: 2.1.1 6df2bdf7

LuismaSP89 commented 3 years ago

Same issue here using Scummvm, if I use game focus, no one of the keys in the keyboard are working, if I disable it, then only a few keys works, but incorrectly. For example if you press "w" key, the system puts an "a" on it. In case of "a" key the system puts an "." etc

Seems this bug was introduced in 1.9.1, in 1.9.0 everything works fine:

https://www.reddit.com/r/RetroArch/comments/mnut1e/keyboard_not_working_on_game_focus_mode_after/?utm_source=amp&utm_medium=&utm_content=post_body

diablodiab commented 3 years ago

It seems that behavior of RETRO_ENVIRONMENT_SET_KEYBOARD_CALLBACK has been changed so that for some platforms you are no longer provided with the character code of the key that was pressed. Instead it seems you have to rely on the provided keycode.

I'm not sure if this behavior is intended to be permanent but you the following adjustment in the ScummVM core should fix the issue: https://github.com/diablodiab/scummvm/commit/f8d9f7e9931cf7330106885c90e2646b1228a1b1

LuismaSP89 commented 3 years ago

Same here. I installed RA 1.9.0, but scummvm doesn't show up in the core download list so I downloaded it using RA 1.9.4 and copied the scummvm core into the cores folder for 1.9.0, but the core won't even start. I don't understand diablodiab's solution above. Does that need to be compiled by the user?

Yes, it seems that we need to compile ourselves including that code.

Anyone knows how to compile this? Or anyone can provide a compiled version to the rest? xD

LuismaSP89 commented 3 years ago

You can use version 1.9.0 and download a core from scratch, it works. Don't download version 1.9.0 and copy the core from 1.9.1

LuismaSP89 commented 3 years ago

Scummvm is missing from core downloader when using 1.9.0 which is why I downloaded using a different version

Errr... whut? I downloaded it using 1.9.0 and it's working fine, maybe try again using a fresh install or different pc? it makes no sense 🤔

diablodiab commented 3 years ago

I have a compiled version I use for myself stored here: http://lindqvist.synology.me/windows/

Until the issue is fixed in general, you can try that build.

LuismaSP89 commented 3 years ago

I have a compiled version I use for myself stored here: http://lindqvist.synology.me/windows/

Until the issue is fixed in general, you can try that build.

Thanks a lot man, I'll try that : )

kfgodel commented 3 years ago

Same happening to me. RetroArch Version: 1.9.1 Windows 10 x86_64 SCUMMVM Core Version: 2.1.1

@WDiable your version is considerably bigger than the original (73Mb vs 51Mb). Did you do any other modification to the scummvm core?

diablodiab commented 3 years ago

The current official libretro core is ScummVM version 2.1.1 and the version I've built is based on latest ScummVM version 2.3.0 A lot more games have been added to ScummVM since 2.1.1 including the merging with ResidualVM - hence the larger file size.

mrmatteastwood commented 3 years ago

FWIW, this issue still occurs exactly as described in RetroArch 1.9.6, but only on Windows. Everything works fine on Linux Mint 20.2.

@diablodiab I am excited you were able to compile an RA core from the latest ScummVM (is it really 2.3.0? Is that a dev/beta build? official website says 2.2.0 is the latest). Is there any chance that might make it into the actual RA repos? Have you contacted the dev team about this?

diablodiab commented 3 years ago

It is based on the latest dev/beta build which will become 2.3.0 at release.

I have created another issue ticket for the ScummVM libretro core where I share the info about the updated core so that the maintainers of the RA repo core can consider to use it.

ner00 commented 3 years ago

I just found out about this bug, same, cannot type text so Sierra games that need it are... unplayable, even when using game focus.

@diablodiab Is there any recourse for RA versions later than 1.9.0? I tried my luck with the dll provided here but it crashed, as expected.

diablodiab commented 3 years ago

I just tested the compiled version I provided here, and it seems to be working without issues on the latest version of Retroarch. I compiled it for 64 bit, are you trying to run it in 32-bit version of Retroarch?

ner00 commented 3 years ago

@diablodiab No, I tried it with x64, v1.9.12 if I'm not mistaken). The core ran fine on its own but when loading a game it crashed.

I tested it with Conquests of Camelot and/or Codename: Iceman which are 2 games that require typing heavily.

I can give it another try later when I get home and get some logs in case they happen to contain anything useful.

diablodiab commented 3 years ago

I tested those specific games myself just now, and I do see that they crash on Windows. I think this was specific to the SCI engine and that it was caused by a compiler optimization problem. I've recompiled it and replaced the file above. Try downloading it again and testing if it works for you now.

ner00 commented 3 years ago

@diablodiab Yes, this latest compilation works great, thanks for that.

On a side note, which isn't all that important, it doesn't seem to detect the themes located in the system folder - I had also noticed this in the previous one you compiled.

Also, the fix was backported to the libretro fork this afternoon, in case it's of any use it is now available for download from here: https://git.libretro.com/libretro/scummvm/-/jobs/1054354/artifacts/download

Should also be available in the nightly repository 7 hours from now, here: https://buildbot.libretro.com/nightly/windows/x86_64/latest/scummvm_libretro.dll.zip

I'll stick with this newer build still though since it supports more games and brings some improvements.