Does period (.) still work in 1.9+ on non-QWERTY keyboards ?

Ask for help with ScummVM problems

Moderator: ScummVM Team

Post Reply
Bentic
Posts: 8
Joined: Thu Mar 15, 2018 10:33 am

Does period (.) still work in 1.9+ on non-QWERTY keyboards ?

Post by Bentic »

Hi,

I haven't used ScummVM for a while (since 1.7.0) and I wanted to resume my LucasArts marathon.
I saw new versions were available so I updated to 2.0.0 stable.
I'm using Windows 10 64-bit and an AZERTY keyboard.

I noticed that I couldn't use period (.) to skip dialogue lines any more.

I tried it in the (stable) versions in between and found out this behavior started on 1.9.0. I then checked the changelog and found this line:
Windows port:
- Fixed keymapping for non-QWERTY keyboards.
So I tried every combination of keys possible corresponding to ".", on the main keyboard and numeric pad, in AZERTY and switching to QWERTY, but no luck.
I tried on Monkey Island 1, Indy 3 and Zak McKracken, and same thing.
Strangely, even on AZERTY, my keyboard still seems to be used as QWERTY in-game, so I don't know what changed regarding the keymapping.

Is it still possible to skip dialogue someway ?

Thank you in advance for your help.
User avatar
Raziel
ScummVM Porter
Posts: 1517
Joined: Tue Oct 25, 2005 8:27 am
Location: a dying planet

Post by Raziel »

Taken from the README
SCUMM:
Alt-x - Quit
Ctrl 0-9 and Alt 0-9 - Load and save game state
Ctrl-d - Starts the debugger
Ctrl-f - Toggle fast mode
Ctrl-g - Runs in really REALLY fast mode
Ctrl-t - Switch between 'Speech only',
'Speech and Subtitles' and 'Subtitles only'
Tilde (~) - Show/hide the debugging console
[ and ] - Music volume, down/up
- and + - Text speed, slower/faster
F5 - Displays a save/load box
Alt-F5 - Displays the original save/load box, if the
game has one. You can save and load games using
using this, however it is not intended for this
purpose, and may even crash ScummVM in some
games.
i - Displays IQ points (Indiana Jones and the Last
Crusade, and Indiana Jones and the Fate of
Atlantis)
Space - Pauses
Period (.) - Skips current line of text in some games
Enter - Simulate left mouse button press
Tab - Simulate right mouse button press
So, it should still work, depending on the game.


Your AZERTY keyboard problems *might* be caused by the switch to SDL2, but i'd be amazed if no one else would have found such a glitch.
Bentic
Posts: 8
Joined: Thu Mar 15, 2018 10:33 am

Post by Bentic »

Hi, thank you for your reply.

Yes, I checked the controls on the wiki and it's still there, so I assumed it would still work.

Just in case, I tried in a Xubuntu (17.10.1) VM with the latest stable release (2.0.0) and, while it still doesn't work on AZERTY, switching to QWERTY does.

On Windows, switching to a QWERTY (English-US) layout still doesn't allow me to use period to skip dialogue lines.

Do I need to report it as a bug ?
Your AZERTY keyboard problems *might* be caused by the switch to SDL2, but i'd be amazed if no one else would have found such a glitch.
Maybe not enough people using non-QWERTY keyboards AND knowing about the keyboard shortcut have played a game with this feature since the switch :)
User avatar
criezy
ScummVM Developer
Posts: 949
Joined: Sat Sep 23, 2006 10:41 am
Location: West Sussex, UK

Post by criezy »

Reporting the bug on our bug tracker would indeed be good.

I also made a quick test and can confirm that it is not working with an AZERTY keyboard (and AZERTY layout), although I went as far back as 1.5.0 and none of the versions is working. So at least on macOS this wasn't introduced with version 1.9.0. Also interestingly, with version 1.7.0 it works if I use the key on which the period would be if I were using a QWERTY English-US keyboard, but this stopped working with version 1.8.0.

And if I switch to a QWERTY English-US layout, then it all works fine with version 2.0.0 on macOS. Did you try to change the layout before starting ScummVM or only after it was started? Both work on macOS, but maybe on Windows you need to change the layout before starting the application?
Bentic
Posts: 8
Joined: Thu Mar 15, 2018 10:33 am

Post by Bentic »

Hi, thank you for your reply.

The last version I used before updating to 2.0 was 1.7.0, so I didn't check earlier versions, but it still works with 1.8.0.
I tried with 1.9.0-win32 and 1.9.0-win32-sdl2 and got the same behavior.

As I mentioned in the first post, with those versions the game seems to treat my inputs as QWERTY even if I'm using the AZERTY layout (but works as AZERTY in ScummVM's interface (adding/modifying games or saving in-game)).

I was switching layouts after having launched ScummVM.
I just tried switching before, and it works!

That's a better workaround than using CTRL-F to speed the game up, at least :)

I would assume it's still supposed to be working with a non-QWERTY layout whether typing as if it was QWERTY in-game or not.

Quick side question: aren't there any zipped archive release along the installer for Windows any more ?
User avatar
criezy
ScummVM Developer
Posts: 949
Joined: Sat Sep 23, 2006 10:41 am
Location: West Sussex, UK

Post by criezy »

Yes, it should work with non-QWERTY layout and I have just committed a change to make that work. It expects a period character, which for me means using SHIFT + semicolon on my AZERTY keyboard. I am not sure if that was how the original executable was behaving or if for example it accepted just using the semicolon key without shift, or if we needed to use the colon key (which would be the period key on a US-English layout). But at least this we have a way to interrupt speech with a AZERTY layout now.

Regarding the Windows 2.0.0 release, the person who built the packages indeed decided to only provide an installer and no zipped archive this time around. And I suspect this will be the same for future version, although that is not my decision so I don't know for sure.
Bentic
Posts: 8
Joined: Thu Mar 15, 2018 10:33 am

Post by Bentic »

Thank you :)

Would using scancodes be of any use ?
Expecting a keypress based on its physical location instead of the character it produces.
https://wiki.libsdl.org/CategoryKeyboard

But I guess that wouldn't help having a consistent controls/shortcuts documentation.

Now that I think of it, didn't the period on the numpad work for that too in the original DOS/Windows versions of these games ?
I would need to check in DOSBox, maybe.

Anyway, thank you again for your help!
Does that mean I don't have to report the issue on the bug tracker ?
User avatar
criezy
ScummVM Developer
Posts: 949
Joined: Sat Sep 23, 2006 10:41 am
Location: West Sussex, UK

Post by criezy »

Bentic wrote:Would using scancodes be of any use ?
It would if what we want to do is use the physical location of the key, and thus use the period key on a English-US keyboard and the colon key on a French keyboard. I don't know if this is what we want though. And also engines in ScummVM do not get this information anyway (only the key code and ascii value are passed to the engines).
Bentic wrote:Now that I think of it, didn't the period on the numpad work for that too in the original DOS/Windows versions of these games ?
I don't know. All the original LucasArt games I own are for mac, and they may behave differently as the DOS/Windows version. But in any case I don't even remember how they behave on mac. I tried to play some of them today on my 20 years old laptop today only to find out it could read none of the CDs (while they are correctly read on my more recent computers).
Bentic wrote:Does that mean I don't have to report the issue on the bug tracker ?
Indeed it does, unless you find out that my fix does not work for you (either when we release version 2.1.0 or if you try a daily build).
Bentic
Posts: 8
Joined: Thu Mar 15, 2018 10:33 am

Post by Bentic »

criezy wrote:It would if what we want to do is use the physical location of the key, and thus use the period key on a English-US keyboard and the colon key on a French keyboard. I don't know if this is what we want though. And also engines in ScummVM do not get this information anyway (only the key code and ascii value are passed to the engines).
No, of course, that would be different for all layouts then.
I was thinking about it since people are probably used to use the same key as the QWERTY period, but that would be better if we had the actual period from the layout we're using.
criezy wrote:I don't know. All the original LucasArt games I own are for mac, and they may behave differently as the DOS/Windows version.
I quickly tried in DOSBox and couldn't even use the period key on the main keyboard, even with the QWERTY layout in the settings :P
criezy wrote:Indeed it does, unless you find out that my fix does not work for you (either when we release version 2.1.0 or if you try a daily build).
I'm not too familiar with the daily builds. Do you know when your commit will be included so I can try ?

Thank you again, I'm off to bed, I'll try tomorrow evening if it is available.

Good evening/night!
User avatar
criezy
ScummVM Developer
Posts: 949
Joined: Sat Sep 23, 2006 10:41 am
Location: West Sussex, UK

Post by criezy »

Daily builds are available from http://www.scummvm.org/downloads/#daily and starting tomorrow (Sunday) they should include my change.
Bentic
Posts: 8
Joined: Thu Mar 15, 2018 10:33 am

Post by Bentic »

Hi,

I just tested the latest development build, and it's working correctly with the AZERTY layout :)

Thank you very much!

Out of curiosity, do you know what the problem was (maybe since the change to SDL2, but maybe not according to your experience on Mac OS) ?
What key was ScummVM expecting for the shortcut (and in what way) for it to not work on non-QWERTY layouts (or AZERTY at least) ?
User avatar
criezy
ScummVM Developer
Posts: 949
Joined: Sat Sep 23, 2006 10:41 am
Location: West Sussex, UK

Post by criezy »

The code was expecting a period key (using the keycode to check which key was pressed) without any modifier. For my azerty layout it was getting the semicolon keycode and SHIFT modifier. Now it is testing the actually ASCII value instead of the keycode and modifier. This means that any key or key combination that result in a dot should now work.
Bentic
Posts: 8
Joined: Thu Mar 15, 2018 10:33 am

Post by Bentic »

criezy wrote:For my azerty layout it was getting the semicolon keycode and SHIFT modifier.
I didn't get what you meant by this...
Did you mean that it is what you're supposed to do to get a period on AZERTY and it didn't work since it was expecting a key without modifier, so impossible to do, or that it was expecting something else for AZERTY ?

Either way, expecting the correct character now should be the safest way :)
User avatar
criezy
ScummVM Developer
Posts: 949
Joined: Sat Sep 23, 2006 10:41 am
Location: West Sussex, UK

Post by criezy »

So may questions :P
What I meant is that indeed it was expecting a key without modifier, so impossible to do.

Not also the if you happened to have one, the period key from a keypad would not have worked before (even for a US-English keyboard), but should now work.
Bentic
Posts: 8
Joined: Thu Mar 15, 2018 10:33 am

Post by Bentic »

I like to understand why something doesn't work as it's supposed to :P

I have a feeling that I used the period key from the numpad back then but couldn't reproduce it. Maybe in later games.

But it works now, so I'll quickly try in the remaining games of my LucasArts marathon on the side with DOSBox to see if my memory is correct :wink:

Thank you again for your time and help!
Post Reply