Mal comportamiento con ASCII, que alguien me lo explique!

Started by alicesimu, October 26, 2016, 10:50:11 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

SplinterGU

Quote from: DCelso on October 27, 2016, 02:25:12 PM
Error.
eres tú el que estás equivocado.

https://es.wikipedia.org/wiki/ASCII



A no ser que tu llames ASCII al ASCII extendido ...

Ah bueno, tu te refieres a la variable bennuGD. ok, ok. Asín, sí.

claro, me refiero a bennugd/div/etc...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

alicesimu

Quote from: SplinterGU on October 27, 2016, 12:33:10 PM
Quote from: alicesimu on October 27, 2016, 06:17:04 AM
solo digo que ASCII no funciona bien, da unos valores que no corresponden a la tabla ASCII.

Se que scan_code no tiene nada que ver con la tabla ascii, pero se que da los valores correctos a las posiciones de las teclas fisicas del teclado.

a mi me funciona de maravillas, por favor, prueba el codigo que puse yo



en resumen:
al pulsar la tecla [a] minusculas.

scan_code es 30 tecla de hardware esta bien.

ascii me da 4??? y claro usando chr(4) da ese simbolo de rombo,
4 en la tabla ascii ese simbolo.

ascii deberia devolver 97, si pulso [a]
en cambio de devuelve 4??? como puedes ver en mi captura de pantalla.

y la Ñ es el código 165 (ascii extendido C850)
Se que existe las 2 versiones en BennuGD
-C850 https://es.wikipedia.org/wiki/P%C3%A1gina_de_c%C3%B3digos_850
-ISO 8859-1 https://es.wikipedia.org/wiki/ISO/IEC_8859-1

Por lo menos la fuente de sistema trabaja en C850 ascii extendido.
ahora bien las FNT generadas... tengo dudas

creo que no tengo nada mas que decir y demostrar que algo raro pasa con la variable ascii
por lo menos la version que viene en Pixtudio, puede no funcionar bien.
ahora bien la version original de BennuGD de la ultima revision 335 puede funcionar bien.

master

De hecho, en BennuGd la fuente del sistema en realidad es CP-437, no CP-850.
https://es.wikipedia.org/wiki/P%C3%A1gina_de_c%C3%B3digos_437

En Pixtudio no se cual tenga.

panreyes

Acabo de comprobarlo: PixTudio y BennuGD devuelven cosas diferentes en la variable ascii (que, por cierto, no sabía ni que existía :|)

No sé cuál será la correcta

Drumpi

Pues este es el código que he usado en el editor de mapas de tiles, en los cuadros de texto para escribir nombres, y funciona bien en todas las versiones de Bennu que he probado:

loop
        temp=ascii;
        if (temp_ant!=temp)
            switch (temp)
            case 8: *iwt_text=substr(*iwt_text,0,-1); end
            case 32..255: *iwt_text=*iwt_text+chr(temp); end
            end //switch
            temp_ant=temp;
        end
        frame;
end


No he incluido ni el retorno de carro para terminar de escribir ni otros botones auxiliares (sólo borrar), pero si teneis alguna duda, ahí está el programa :D
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

alicesimu

Quote from: panreyes on October 28, 2016, 12:08:25 AM
Acabo de comprobarlo: PixTudio y BennuGD devuelven cosas diferentes en la variable ascii (que, por cierto, no sabía ni que existía :|)

No sé cuál será la correcta

no he probado de compilar con Bennugd(fuera de pixtudio), probablemente funcione bien.
A mi me da un valor incorrecto en pixtudio.

Si te dan cosas diferentes, es que el de pixtudio tiene el bug de la variable ascii

si pulsas espacio, deberia dar el valor 32, si te da otra cosa esta mal.

alicesimu

Quote from: master on October 27, 2016, 11:50:13 PM
De hecho, en BennuGd la fuente del sistema en realidad es CP-437, no CP-850.
https://es.wikipedia.org/wiki/P%C3%A1gina_de_c%C3%B3digos_437

En Pixtudio no se cual tenga.

de veras??, lo revisare cuando lo pruebe en BennuGD (no en pixtudio que tiene bug).
Graciass

SplinterGU

Quote from: alicesimu on October 27, 2016, 03:37:54 PM
Quote from: SplinterGU on October 27, 2016, 12:33:10 PM
Quote from: alicesimu on October 27, 2016, 06:17:04 AM
solo digo que ASCII no funciona bien, da unos valores que no corresponden a la tabla ASCII.

Se que scan_code no tiene nada que ver con la tabla ascii, pero se que da los valores correctos a las posiciones de las teclas fisicas del teclado.

a mi me funciona de maravillas, por favor, prueba el codigo que puse yo



en resumen:
al pulsar la tecla [a] minusculas.

scan_code es 30 tecla de hardware esta bien.

ascii me da 4??? y claro usando chr(4) da ese simbolo de rombo,
4 en la tabla ascii ese simbolo.

ascii deberia devolver 97, si pulso [a]
en cambio de devuelve 4??? como puedes ver en mi captura de pantalla.

y la Ñ es el código 165 (ascii extendido C850)
Se que existe las 2 versiones en BennuGD
-C850 https://es.wikipedia.org/wiki/P%C3%A1gina_de_c%C3%B3digos_850
-ISO 8859-1 https://es.wikipedia.org/wiki/ISO/IEC_8859-1

Por lo menos la fuente de sistema trabaja en C850 ascii extendido.
ahora bien las FNT generadas... tengo dudas

creo que no tengo nada mas que decir y demostrar que algo raro pasa con la variable ascii
por lo menos la version que viene en Pixtudio, puede no funcionar bien.
ahora bien la version original de BennuGD de la ultima revision 335 puede funcionar bien.

yo solo te puedo decir de bennugd... de pixtudio lamentablemente no es mi terreno...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

#23
efectivamente pixtudio hace algo raro, no entre en detalles en el analisis, pero para obtener el ascii hace un                         

asc = iso88591_to_cp850[e.key.keysym.scancode & 0xFF];

iso88591_1 -> cp850, del scancode...

edit: veo que las tablas son las mismas de bennugd original, pero el problema parece que esta en que se usa para acceder a la tabla, lo correcto es usar e.key.keysym.sym en lugar de e.key.keysym.scancode.

e.key.keysym.sym considera el layout del teclado, y asi funciona bien en bennugd.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

alicesimu

Te pido disculpas por no analizar detalladamente de un principio que se trataba de pixtudio, no de bennugd, y así descartar un bug que no existe en uno de los 2.

Por eso al principio no entendí por que te funcionaba bien la variable y a mi no, claro lo compilo con pixtudio, ya he avisado al desarrollador de que tiene un bug que arreglar.

No hay prisa por eso

SplinterGU

Quote from: alicesimu on October 29, 2016, 09:29:09 AM
Te pido disculpas por no analizar detalladamente de un principio que se trataba de pixtudio, no de bennugd, y así descartar un bug que no existe en uno de los 2.

Por eso al principio no entendí por que te funcionaba bien la variable y a mi no, claro lo compilo con pixtudio, ya he avisado al desarrollador de que tiene un bug que arreglar.

No hay prisa por eso

no me tienes que pedir disculpas, en todo caso deberia yo pedirlas, ya que estoy en la seccion PixTudio.

por otro lado, imagino que josebita armo esto con una tabla en base a scancodes y utf-8, pero se le escapo lo otro... no se, la verdad que estoy suponiendo...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

#26
Gracias a todos por mirarlo. Como ya sabéis, a PixTudio le dedico ratos que tengo libres o cuando quiero hacer cosas que me parecen interesantes (lo de mod_steam debería molar una vez que esté funcionando:)).

Por otra parte: PixTudio seguro que tiene muchos bugs que BennuGD no tiene así que cualquier cosa que veais rara, por favor, reportadla aquí.


[Edito] He creado el bug aquí, por si alguien quiere seguirlo.
[Edito 2] He subido el cambio que propone Splinter al repositorio. Mañana compruebo si el comportamiento es el mismo que el de BennuGD y os cuento.

SplinterGU

Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

Bueno, el cambio mejora el comportamiento pero no lo arregla por completo.

Veo que hay bastantes discrepancias entre los valores que da Bennu y los que da PixTudio... Sigo en ello, aunque la mayor parte de las teclas "normales" ya deberían dar el mismo valor en ambos motores.

alicesimu

Quote from: josebita on November 03, 2016, 02:31:16 PM
Bueno, el cambio mejora el comportamiento pero no lo arregla por completo.

Veo que hay bastantes discrepancias entre los valores que da Bennu y los que da PixTudio... Sigo en ello, aunque la mayor parte de las teclas "normales" ya deberían dar el mismo valor en ambos motores.

si las teclas normales coinciden, si...

esperare la siguiente beta, para comprobar como a mejorado el sistema de ascii, bueno la variable global.

Si tiene en consideración las Mayusculas, simbolos comunes(Shift) y simbolos especiales(Alt gr).

Por ahora no me corre prisa eso.