Hay una opción que algunos emuladores consideran: no intentar ser listos con la distribución del teclado físico del host, sino simplemente no asumir nada al respecto.
En otras palabras, aceptar cuando una API proporciona un símbolo y no una posición del teclado.
En este caso, cuando las API de Javascript dicen “el usuario presionó <lo que sea>”, no intentes adivinar que “asumiendo un host físico con un teclado estándar PC105 con distribución francesa Azerty, este símbolo debería ser lo que aparece cuando el usuario presiona la tecla en la fila x col y, lo cual mapearé a la tecla física del CPC fila x’ col y’”.
En su lugar, acepta que, por ejemplo, el usuario presionó “una tecla que produce un símbolo de comilla”. Ten un mapa de símbolos a teclas de CPC, independiente del teclado físico del host. Esto podría requerir una secuencia en la máquina emulada, como “presionar shift, presionar 2, soltar 2, soltar shift”.
Arnoldemu definitivamente permite una lógica similar y la llama “traducida” (translated), en contraposición a “posicional” (positional).
Yo la llamaría “basada en símbolos”.
Creo que caprice32 también lo permite.
Una ventaja es que puedes escribir en el CPC con tu teclado de PC tal como lo harías en cualquier otro programa. Genial para programar o editar cualquier tipo de texto. Y para escribir run"disc.
Volviendo a la situación actual: depende de que el emulador admita dicha lógica independiente del teclado físico. Lo cual supongo que RVM no hace, ¿verdad?