Next: The joystick emulation, Previous: SCPU64 emulator features, Up: About VICE [Contents][Index]

### 2.8 The keyboard emulation

There are two ways of emulating the keyboard in VICE.

The default way (symbolic mapping) is to map every key combination to the corresponding key combination on the real machine: for example, if you press `*`, which is bound to `Shift-8` on a U.S. keyboard, in the C64 emulator, the emulated machine will have just the unshifted `*` key pressed (as `*` is unshifted on the C64 keyboard). Likewise, pressing `'` on the same U.S. keyboard without any shift key will cause the combination `Shift-7` to be pressed in the emulated C64. This way, it becomes quite obvious what keys should be typed to obtain all the symbols. The key printed on the host keyboard will be pressed in the emulator.

There is, however, one problem with symbolic mapping: some keys really need to be mapped specially regardless (those that do not exist on a PC keyboard). Some examples are the `Commodore` key, `RUN/STOP`, `Clear/Home`. The exact mapping depends on your host layout, but should be easy to find out by try and error :) If in doubt, you can read the keyboard mapping files.

The second way (positional mapping) is to map every key on the host keyboard to the key which has the same position on the keyboard of the emulated machine. This way the keyboard is more comfortable to use in those programs (such as some games) that require the keys to be in the correct positions. On the other hand it can be quite confusing if you are not very familiar with the original emulated keyboards. Also not all keys can be mapped exactly this way either, which means some of them still need to be mapped to other keys (see above).

Warning: unlike the real C64, VICE “presses” the `Shift` key together with the key to shift when the `Shift` must be forced. In most cases this should work fine, but some keyboard routines are quite picky and tend not to recognize the shift key because of this. For instance, `F6` (which on the real C64 is obtained with `Shift + F5`) could be recognized as `F5`. In that case, use the shift key manually (i.e., type `Shift + F5` in the example). Yes, we know this is a bug.

We depend a lot on your support to improve the keyboard maps, as we can not test all emulators in all possible configurations and using all host keyboard mappings. Please report any problems to us so we can fix them!

If you experience problems with ’accent’ keys such as acute, grave, tilde, circumflex, diaresis (and possibly more/other, depending on your host keyboard layout) try switching to a "no deadkeys" layout in your OS. In any case, please also report these problems so we can fix them!

To find out the keycodes to use, incase you want to edit the keymaps yourself, you can enable showing the keycodes in the status bar in the settings.

Next: The joystick emulation, Previous: SCPU64 emulator features, Up: About VICE [Contents][Index]