VICE key-rollover inconsistencies
Posted: Thu Oct 19, 2023 5:26 am
Hey all,
I haven't dug too deep into this, but has anyone encountered any quirks with the the handling of key-rollover in the Vic-20 emulation in VICE? The C64 keyboard emulation seems to handle these cases.
For context, I was adapting the routine described here although, from some further testing, it appears there are easier ways to reproduce presumably related issues.
To reproduce:
type 'A', 'S', 'L' without releasing any key.
And the results I came up with:
- xvic: this seems to register as just 'A' and 'S' (no 3rd key at all is apparently read)
- x64sc: the KERNAL's routine buffers this as 'A', 'S', ':'.
- real Vic-20: I also get 'A', 'S', and ':' when using the KERNAL's routine.
The same is true with the 'ASD' 3-key combination. On x64sc (and on a real VIc-20) the KERNAL reads this as 'ASF'. On xvic, it seems to only read as 'AS'.
I just installed the latest binary release of VICE for testing this.
If I activate the status bar, the key presses look like they're all registered correctly. I noticed that the status bar has been updated to display 3 keys since version 3.5, so maybe there was some work on this front recently?
Moving on: this is less of a big deal (but maybe more bizarre and likely totally unrelated). When using a custom keyboard scanning routine (again, an adaptation of the one above), the up-arrow key no longer behaves the same as [SHIFT] + [CRSR DWN], which seems...very odd. The literal SHIFT+DOWN key combination does work as expected (both in VICE and on real hardware).
Anyway, that is all! Just wondering if this is known or if there's something I'm doing wrong.
I haven't dug too deep into this, but has anyone encountered any quirks with the the handling of key-rollover in the Vic-20 emulation in VICE? The C64 keyboard emulation seems to handle these cases.
For context, I was adapting the routine described here although, from some further testing, it appears there are easier ways to reproduce presumably related issues.
To reproduce:
type 'A', 'S', 'L' without releasing any key.
And the results I came up with:
- xvic: this seems to register as just 'A' and 'S' (no 3rd key at all is apparently read)
- x64sc: the KERNAL's routine buffers this as 'A', 'S', ':'.
- real Vic-20: I also get 'A', 'S', and ':' when using the KERNAL's routine.
The same is true with the 'ASD' 3-key combination. On x64sc (and on a real VIc-20) the KERNAL reads this as 'ASF'. On xvic, it seems to only read as 'AS'.
I just installed the latest binary release of VICE for testing this.
If I activate the status bar, the key presses look like they're all registered correctly. I noticed that the status bar has been updated to display 3 keys since version 3.5, so maybe there was some work on this front recently?
Moving on: this is less of a big deal (but maybe more bizarre and likely totally unrelated). When using a custom keyboard scanning routine (again, an adaptation of the one above), the up-arrow key no longer behaves the same as [SHIFT] + [CRSR DWN], which seems...very odd. The literal SHIFT+DOWN key combination does work as expected (both in VICE and on real hardware).
Anyway, that is all! Just wondering if this is known or if there's something I'm doing wrong.