Fuse y problemas con un invento de teclado

Emuladores y aplicaciones que ayudarán a la perpetuación del Spectrum y su software en el futuro

Moderador: Sir Cilve Sinclair

Responder
Avatar de Usuario
jevilon
Manic Miner
Mensajes: 288
Registrado: Mié Jul 23, 2008 1:15 pm
Ubicación: La Rioja

Fuse y problemas con un invento de teclado

Mensaje por jevilon » Mié Jul 31, 2013 4:17 pm

El problema es el siguiente, he hecho un teclado usb con un +3 (si habeis visto la seccion hardware, hay un hilo), he remapeado el teclado entero, de tal forma que en shell de linux, funcionan todas las teclas perfectamente... pero.... al entrar sl fuse en su version sdl (que es la que tengo compilada por mi), solo funcionan algunas teclas....

¿Fuse reconoce los scancodes directamente y por eso no me funciona? ¿Hay alguna forma de arreglar esto?

serbalgi
Herbert
Mensajes: 60
Registrado: Mié Dic 29, 2010 5:25 pm

Re: Fuse y problemas con un invento de teclado

Mensaje por serbalgi » Sab Ago 03, 2013 2:10 pm

Fuse se basa en la información que le proporciona SDL a través SDLKey. Ver función sdlkeyboard_keypress() de ui/sdl/sdlkeyboard.c

Por lo que tengo entendido SDL usa scancodes pero se basa en información proporcionada por el sistema operativo para mapearlos a teclas. El origen del problema es confuso para mi, pero te recomiendo que uses la utilidad checkkeys para descartar que el problema se encuentre en la SDL (tienes que compilar la carpeta test que hay en el código fuente de SDL).

Avatar de Usuario
jevilon
Manic Miner
Mensajes: 288
Registrado: Mié Jul 23, 2008 1:15 pm
Ubicación: La Rioja

Re: Fuse y problemas con un invento de teclado

Mensaje por jevilon » Sab Ago 03, 2013 2:45 pm

Gracias, probare ahi a ver

Avatar de Usuario
jevilon
Manic Miner
Mensajes: 288
Registrado: Mié Jul 23, 2008 1:15 pm
Ubicación: La Rioja

Re: Fuse y problemas con un invento de teclado

Mensaje por jevilon » Dom Ago 18, 2013 11:17 am

El checkkeys que me comentaste... lo he compilado y lo ejecuto pero se queda la pantalla en negro con la flecha del raton y no responde, salvo cuando muevo el raton, que me devuelve al shell.... de todas formas tengo casi solucionado el percal....

serbalgi
Herbert
Mensajes: 60
Registrado: Mié Dic 29, 2010 5:25 pm

Re: Fuse y problemas con un invento de teclado

Mensaje por serbalgi » Dom Ago 18, 2013 4:11 pm

Pues parece normal. Debes ejecutar el programa desde una consola, aparece una ventana negra, pulsas las teclas y las va identificando, algo como así:

Código: Seleccionar todo

Key pressed:  97-a  (a) modifiers: (none)
Key released:  97-a  modifiers: (none)
Key pressed:  98-b  (b) modifiers: (none)
Key released:  98-b  modifiers: (none)
Key pressed:  99-c  (c) modifiers: (none)
Key released:  99-c  modifiers: (none)
Key pressed:  304-left shift  modifiers: LSHIFT
Key pressed:  50-2  (") modifiers: LSHIFT
Key released:  50-2  modifiers: LSHIFT
Key released:  304-left shift  modifiers: (none)
Key pressed:  301-caps lock  modifiers: CAPS
Key released:  301-caps lock  modifiers: (none)


Si quieres ver la información según las X, puedes ejecutar el comando xev:

Código: Seleccionar todo

KeyPress event, serial 37, synthetic NO, window 0x4000001,
    root 0xa8, subw 0x0, time 440249, (-301,42), root:(489,257),
    state 0x0, keycode 38 (keysym 0x61, a), same_screen YES,
    XLookupString gives 1 bytes: (61) "a"
    XmbLookupString gives 1 bytes: (61) "a"
    XFilterEvent returns: False

KeyRelease event, serial 37, synthetic NO, window 0x4000001,
    root 0xa8, subw 0x0, time 440397, (-301,42), root:(489,257),
    state 0x0, keycode 38 (keysym 0x61, a), same_screen YES,
    XLookupString gives 1 bytes: (61) "a"
    XFilterEvent returns: False

KeyPress event, serial 37, synthetic NO, window 0x4000001,
    root 0xa8, subw 0x0, time 440615, (-301,42), root:(489,257),
    state 0x0, keycode 56 (keysym 0x62, b), same_screen YES,
    XLookupString gives 1 bytes: (62) "b"
    XmbLookupString gives 1 bytes: (62) "b"
    XFilterEvent returns: False

KeyRelease event, serial 37, synthetic NO, window 0x4000001,
    root 0xa8, subw 0x0, time 440779, (-301,42), root:(489,257),
    state 0x0, keycode 56 (keysym 0x62, b), same_screen YES,
    XLookupString gives 1 bytes: (62) "b"
    XFilterEvent returns: False

KeyPress event, serial 37, synthetic NO, window 0x4000001,
    root 0xa8, subw 0x0, time 441002, (-301,42), root:(489,257),
    state 0x0, keycode 54 (keysym 0x63, c), same_screen YES,
    XLookupString gives 1 bytes: (63) "c"
    XmbLookupString gives 1 bytes: (63) "c"
    XFilterEvent returns: False

KeyRelease event, serial 37, synthetic NO, window 0x4000001,
    root 0xa8, subw 0x0, time 441106, (-301,42), root:(489,257),
    state 0x0, keycode 54 (keysym 0x63, c), same_screen YES,
    XLookupString gives 1 bytes: (63) "c"
    XFilterEvent returns: False

KeyPress event, serial 37, synthetic NO, window 0x4000001,
    root 0xa8, subw 0x0, time 444613, (-301,42), root:(489,257),
    state 0x0, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False

KeyPress event, serial 37, synthetic NO, window 0x4000001,
    root 0xa8, subw 0x0, time 444877, (-301,42), root:(489,257),
    state 0x1, keycode 11 (keysym 0x22, quotedbl), same_screen YES,
    XLookupString gives 1 bytes: (22) """
    XmbLookupString gives 1 bytes: (22) """
    XFilterEvent returns: False

KeyRelease event, serial 37, synthetic NO, window 0x4000001,
    root 0xa8, subw 0x0, time 445002, (-301,42), root:(489,257),
    state 0x1, keycode 11 (keysym 0x22, quotedbl), same_screen YES,
    XLookupString gives 1 bytes: (22) """
    XFilterEvent returns: False

KeyRelease event, serial 37, synthetic NO, window 0x4000001,
    root 0xa8, subw 0x0, time 445138, (-301,42), root:(489,257),
    state 0x1, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
    XLookupString gives 0 bytes:
    XFilterEvent returns: False

KeyPress event, serial 37, synthetic NO, window 0x4000001,
    root 0xa8, subw 0x0, time 450078, (-301,42), root:(489,257),
    state 0x0, keycode 66 (keysym 0xffe5, Caps_Lock), same_screen YES,
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False

KeyRelease event, serial 37, synthetic NO, window 0x4000001,
    root 0xa8, subw 0x0, time 450151, (-301,42), root:(489,257),
    state 0x2, keycode 66 (keysym 0xffe5, Caps_Lock), same_screen YES,
    XLookupString gives 0 bytes:
    XFilterEvent returns: False

Avatar de Usuario
jevilon
Manic Miner
Mensajes: 288
Registrado: Mié Jul 23, 2008 1:15 pm
Ubicación: La Rioja

Re: Fuse y problemas con un invento de teclado

Mensaje por jevilon » Dom Ago 18, 2013 5:05 pm

Tambien he de decir que es en un raspberry pi, o sea una distro de debian pelin peculiar y para ARM... aunque no deberia de fallar por eso...

He conseguido que funcione CASI todo, soltando y poniendo cables, y que todas las teclas me den valores bajos, esta un poco mas explicado en el hilo que tengo de la raspberry y el +3 en hardware

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 7 invitados