Ver la versión completa : Estudio del D-Pad F200: Problemas y soluciones (si eres programador entra).
Hola a todos,
Extrañado por lo raro que se comporta el d-pad de la F200, he hecho algunas pruebas
que nos confirman que el pad funciona de forma extraña, y tambien nos puede dar ideas de como solucionarlo.
X significa tecla pulsada
O significa tecla sin pulsar
Lo de la izquierda es el pad, y lo de la derecha son las pulsaciones que detecta la gp2x al pulsar las teclas que se marcan en la zona del pad.
Los casos de 3 teclas simultaneas:
caso1:
X OOO
XOO ---> OOO
X OOO
caso2:
X OOX
OOX ---> OOX
X OOO
caso3:
O XOX
XOX ---> XOX
X OOO
caso4:
X XOX
XOX ---> OOX
O OOO
Los casos de 2 teclas simultaneas, poco probables:
caso5:
O OOX
XOX ---> XOX
O OOO
caso:6
X OOO
OOO ---> OOO
X OOO
Como veis son comportamientos totalmente erraticos :(
El mas curioso de todos es el caso3 :confused: y bueno el caso1 tambien se las trae :(
- SOLUCION 1: Actualizacion del firmware.
A no ser que esto ese a piñon en el hardware (no creo) o incluso asi supongo que en
el firmware se prodran mapear las teclas correctamente. Para esto tendremos que esperar a que GPH saque un nuevo firmware :(
- SOLUCION2: Reprogramación de los emus para tener en cuenta estos errores.
Los programadores facilmente pueden detectar los casos de la derecha, y traducirlos a los casos reales (los de la izquierda). El unico caso que no podriamos resolver asi es el caso1 :( pero los demas casos si :)
PD. La solucion2, se podria hacer de forma que aunque GPH lo arregle en el firmware no hubiera que volver a reprogramar los emuladores, pues si lo arreglan esos casos ya nunca se ejecutarian ;)
Que os parece? (sobre todo va dirigido a los programadores, si verian viable mejorar sus programas y juegos con esta idea ;) :brindis:
PD. Si a nadie aun se le ha ocurrido, esto lo he probado de la forma mas sencilla del mundo, el test-mode!!! :)
PD. Este tipo de cosas con dibujitos son las que deberian patentarse, y luego a forrarse :D (bueno al menos si lo usais incluirme en los thanks del readme de vuestros proyectos ;))
Aiken
¿Donde esta el problema? Bueno, yo no se tu, pero yo no voy apretando botones opuestos o 3 botones a la vez. xD
¿Donde esta el problema? Bueno, yo no se tu, pero yo no voy apretando botones opuestos o 3 botones a la vez. xD
en los casos en los que no son botones opuestos, no los ves? ;)
Aiken
Puck2099
13/11/2007, 21:28
Yo también vi esos comportamientos erráticos en el menú de test al mirar si el pulsar todos a la vez equivalía al click, pero esos casos "raros" se dan en situaciones teóricamente imposibles, ¿no?
Por software en cada aplicación se podría leer esa situación y actuar en consecuencia con lo "esperado", pero sería bastante engorro de operaciones lógicas para casos muy aislados, así que no creo que valga la pena...
ami me da error en el menu de algunos emus :S pero en el menu de la consola no, esto fallo de la consola?
Por software en cada aplicación se podría leer esa situación y actuar en consecuencia con lo "esperado", pero sería bastante engorro de operaciones lógicas para casos muy aislados, así que no creo que valga la pena...
cuanto estas haciendo un semicirculo hay breves instantes en los que apretas 3 botones a la vez, los 3-4 primeros casos que he puesto son justo esos los de pasar de una diagonal a la diagonal contigua ... que no solo no es poco habitual, sino que yo diria que es muy habitual.
yo ayer jugando a un matamarcianos, simplemente mover la nave, ya pulsas 3 botones al pasar de una diagonal a la diagonal contigua muy deprisa.
bueno, el caso tipico es la "semiluna" de los street fighters, pero como en el ejemplo de la nave se ve claro tambien.
Aiken
< - >
Por software en cada aplicación se podría leer esa situación y actuar en consecuencia con lo "esperado", pero sería bastante engorro de operaciones lógicas para casos muy aislados, así que no creo que valga la pena...
puede que sea porque yo soy de los que juega con el dedo gordo "en medio", pero me pasa continuamente esas situaciones de botones, y se que hay mucha gente que usa el dedo gordo hay "en medio", mas que nada porque no se como jugais los demas ... pero luego decis que os duele el dedo porque se "os chocan los dedos con los bordes de las teclas" ;)
PD. Si te parece que son casos poco habituales, pero yo creo que es la raiz del problema, y que son casos muy habituales ;)
PD. Si no es por eso (las combinaciones de 3 teclas consecutivas) no hay razon logica para que falle el d-pad durante los juegos.
Aiken
en los casos en los que no son botones opuestos, no los ves? ;)
Aiken Pero le vas a dar a 3 botones a la vez? xD
Además, como vas a distinguir el caso 1, el caso 6 o el no estar apretando ningún botón? Y se supone que debería hacer si aprietas 3 botones? En mi caso tengo hecha una libreria de input que en los casos que tu me pones esta simplemente no hace nada, como si no apretase ningún botón. Hay algun emulador que haga el idiota por apretar 3?
Seguramente eso se comporte así porque la circuiteria interna hace que según que botones aprietes tome tierra por diferentes lugares y hace interpretar que se han apretado esos botones.
Pero le vas a dar a 3 botones a la vez? xD
un matamarcianos, estas manejando la nave.
si estas moviendo diagonal-abajo y quieres pasar a diagonal-arriba, como lo haces?
-respuesta1: levantas los dedos y los pones sobre los botoens arriba+derecho
-respuesta2: deslizas el dedo desde abajo+derecha hasta arriba+derecha por lo que irremediablemente hay una fraccion de tiempo en la que has pulsado 3 botones ;)
Aiken
< - >
Hay algun emulador que haga el idiota por apretar 3?
pues basicamente todos, porque resulta que en algunos de los casos que he puesto, al apretar 3 botones, la consola indica la direccion totalmente opuesta!!! con lo que tu muñeco se mueve en la direccion opuesta a la que estas pulsando :confused:
PD. ciertamente la solucion seria anular esas combinaciones, o la menos interpretarlas
por una que se parezca, no por una opuesta!!
Aiken
< - >
En mi caso tengo hecha una libreria de input que en los casos que tu me pones esta simplemente no hace nada
o sea que ya lo habias notado y lo tienes arreglado con la liberia esa??!!! :)
pues lo unico para perfeccionarlos un poco en lugar de no hacer nada (que ya mejoraria) lo suyo seria traducir las combinaciones de 3 botones por la "media" de los 3.
es decir arriba+derecha+abajo = derecha no? :)
Aiken
un matamarcianos, estas manejando la nave.
si estas moviendo diagonal-abajo y quieres pasar a diagonal-arriba, como lo haces?
-respuesta1: levantas los dedos y los pones sobre los botoens arriba+derecho
-respuesta2: deslizas el dedo desde abajo+derecha hasta arriba+derecha por lo que irremediablemente hay una fraccion de tiempo en la que has pulsado 3 botones ;)
Aiken
Entonces ha de suponer el filtro del input que te quedaras pulsando los 3 botones para siempre y deducir que querías pulsar diagonal-arriba porque antes estabas pulsando diagonal-abajo?
Entonces ha de suponer el filtro del input que te quedaras pulsando los 3 botones para siempre y deducir que querías pulsar diagonal-arriba porque antes estabas pulsando diagonal-abajo?
no. no queremos complicar el filtro y hacerlo "inteligente" simplemente mapear las teclas a las mas proximas.
abajo+derecha = diagonal-abajo
abajo+derecha+arriba = derecha (esta es la unica que tendria que tocar el filtro, para forzar "derecha")
derecha = derecha
derecha+arriba = diagonal arriba
ahi tienes un recorrido desde diagonal abajo hasta diagonal arriba
a ver si consigo explicarme bien.
PD. Si haces algun programita de prueba, pon la opcion de activar/desactivar el filtro de input, asi que la
gente pueda comprobar si ese es su problema con el dpad ;)
Aiken
Mira la única solución que te podría ofrecer si hiciese un filtro seria la siguiente:
caso2: real: filtrado:
X OOX OOO
OOX ---> OOX ---> OOX
X OOO OOO
caso3:
O XOX OOO
XOX ---> XOX ---> OOO
X OOO OXO
caso4:
X XOX OXO
XOX ---> OOX ---> OOO
O OOO OOO
caso5:
O OOX OOO
XOX ---> XOX ---> OOO
O OOO OOO
Los demás casos no se podrían hacer nada, seria como si no apretaras ningún botón. Te parece adecuado el filtraje este?
Los demás casos no se podrían hacer nada, seria como si no apretaras ningún botón. Te parece adecuado el filtraje este?
justo!!! veo que me has entendido!!! :D
es cierto que hay algun caso que es imposible pues si no marca nada ... pero con esos mejorariamos bastante :)
de hecho el caso5, el ultimo, si que es cierto que es muy improbable, o no se me ocurre como :D pero los demas guay!
Aiken
justo!!! veo que me has entendido!!! :D
es cierto que hay algun caso que es imposible pues si no marca nada ... pero con esos mejorariamos bastante :)
de hecho el caso5, el ultimo, si que es cierto que es muy improbable, o no se me ocurre como :D pero los demas guay!
Aiken
Pues a ver que puedo hacer, creo que me las ingeniaré para detectar si es una F200, porque si no ocurre lo que dice Puck, hay muchos casos, sin embargo, si sabes que es una F200, sabes que hay casos que no se van a dar que en la F100 sí.
Pues a ver que puedo hacer, creo que me las ingeniaré para detectar si es una F200, porque si no ocurre lo que dice Puck, hay muchos casos, sin embargo, si sabes que es una F200, sabes que hay casos que no se van a dar que en la F100 sí.
yo creo que ese mismo codigo deberia funcionar en F100 y F200, porque yo creo que el stick de la F100 jamas suelta 3-pulsaciones a la vez, asi que simplemente en la F100 nunca pasaria por esos "if" del filtrado, no?
Aiken
yo creo que ese mismo codigo deberia funcionar en F100 y F200, porque yo creo que el stick de la F100 jamas suelta 3-pulsaciones a la vez, asi que simplemente en la F100 nunca pasaria por esos "if" del filtrado, no?
Aiken
No es del todo asi, porque TODOS los filtros de la F100 convierten las diagonales en esto por simplicidad luego a en la lógica del juego:
OOX OXO
OOO ---> OOX
OOO OOO
XOO OXO
OOO ---> XOO
OOO OOO
OOO OOO
OOO ---> XOO
XOO OXO
OOO OOO
OOO ---> OOX
OOX OXO
Incluso hay que filtran la mezcla entre diagonales y horizontales/verticales como solo horizontales/verticales porque si no la F100 era muy sensible a las diagonales.
< - >
Eso es casi seguro un problema de hardware porque habran utilizado un sistema matricial de teclado para saber que teclas se pulsan, dando errores garrafales como esto cuando se pulsan mas de 3 teclas a la vez.
¿No os ha pitado el pc al pulsar tres o mas teclas a la vez? Eso es porque tambien los teclados de pc se controlan matricialmente, y si pulsas 3 o mas teclas a la vez (segun cuales, ya que hay que mirar a ver si entran en conflicto las conexiones).
Es el MISMO caso.
Para un D-pad de 8 direcciones son necesarios 8 contactos, pero en realidad 6 son suficientes
(tres hilos en horizontal, tres hilos en vertical, si se pulsa una tecla sus dos hilos hacen contacto)
| | |
---o---o---o----
| | |
---o---o---o----
| | |
---o---o---o----
| | |
Asi, con las 9 combinaciones posibles que se generan mediante los hilos se pueden controlar hassta nueve botones, pero... cuando se pulsan 2 teclas a la vez se crea un conflicto, y normalmente si no se filtra esto crea confusion y errores...
Eso es casi seguro un problema de hardware porque habran utilizado un sistema matricial de teclado para saber que teclas se pulsan, dando errores garrafales como esto cuando se pulsan mas de 3 teclas a la vez....
Si algo así es lo que me temía, pero yo de experto en electrónica como que nada de nada. xD
Así que es por eso. Pues vaya con los de GPH. [wei]
No es del todo asi, porque TODOS los filtros de la F100 convierten las diagonales en esto por simplicidad luego a en la lógica del juego:
ah vale, es que crei que las diagonales las marcaba como una sola pulsacion en ambas consolas.
habria que hacer alguna prueba, porque estoy probando algun emulador antiguo (que obviamente no esta programado para f200) y veo que ciertamente el caso que mas se nota es justo el que no podemos resolver el de las 3 teclas de la izquierda. pero por ejemplo los casos de direcciones contrarias al menos con el gngeo no se dan o se notan muy poco, quizas por como esten programado o como gestione las diagonales.
habria que hacer un programita que hiciera lo mismo que el test-mode, para ver si da los mismos resultados, o lo que esta mal es el test-mode.
Aiken
Bueno, yo tengo una gp 2x mk2 f-100
No se como ira la f-200, pero mi intuicion de electronico me dice que por mucho micro potente que uses, este necesita pins para conectarse con el exterior. Y claro, el numero de pins es limitado... Esto significa que hay que hacer economia de pins, y por lo tanto, se llega a estas ingeniosas soluciones, que en muchos casos sirven, pero en otros no son la mejor solucion...
Si alguien destripa una f-200 por lo que se que cuente, que cuente como va el pad...
Si algo así es lo que me temía, pero yo de experto en electrónica como que nada de nada. xD
Así que es por eso. Pues vaya con los de GPH. [wei]
pues esperemos que podamos arreglarlo un poco por software, y que lo puedan incluir el filtrado en el firware, porque sino vaya castaña.
Aiken
< - >
Si alguien destripa una f-200 por lo que se que cuente, que cuente como va el pad...
no tardara mucho en que alguien se cabree porque le matan porque el dpad no responde y estrelle la f200 contra la pared :D
Aiken
Bueno, pues acabé. Ahora veamos cuanto tardo en hacer un interface para probar el filtrado...
Bueno, pues acabé. Ahora veamos cuanto tardo en hacer un interface para probar el filtrado...
no hace falta que te hagas nada cañero, haz algo como el test-mode de la gp2x.
O simplemente haz unos circulos y cruces como hemos hecho aqui con la explicacion. :)
Aiken
Pues finalmente acabe, ea aquí el programilla de prueba:
GP2X F100
Los filtros corresponden a: http://wiki.gp2x.org/wiki/Suggested_Joystick_Configurations
A - Case 1 (ningún filtro)
X - Case 2
B - Case 3
Y - Case 4
Start - Salir
GP2X F200
A - Case 1 (ningún filtro)
X - Case 2 (filtro Aiken)
B - Case 3 (filtro Aiken mapeando diagonales en verticales/horizontales)
Y - Case 1 (ningún filtro)
Start - Salir
No tengo GP2X F200, así que no puedo asegurar que funcione, eso si, en mi F100 funciona bien los filtros puestos. Probarlo y ya me direis.
Para los programadores: dentro del zip esta incluida la librería.
Pues finalmente acabe, ea aquí el programilla de prueba:
GP2X F100
Los filtros corresponden a: http://wiki.gp2x.org/wiki/Suggested_Joystick_Configurations
A - Case 1 (ningún filtro)
X - Case 2
B - Case 3
Y - Case 4
Start - Salir
GP2X F200
A - Case 1 (ningún filtro)
X - Case 2 (filtro Aiken)
B - Case 3 (filtro Aiken mapeando diagonales en verticales/horizontales)
Y - Case 1 (ningún filtro)
Start - Salir
No tengo GP2X F200, así que no puedo asegurar que funcione, eso si, en mi F100 funciona bien los filtros puestos. Probarlo y ya me direis.
Para los programadores: dentro del zip esta incluida la librería.
eres un monstruo! has conseguido que debe de ver la peli, y me voy ahora mismo a probarlo :D
Aiken
eres un monstruo! has conseguido que debe de ver la peli, y me voy ahora mismo a probarlo :D
Aiken
Pues ya me dirás... xD
Pues ya me dirás... xD
buff vaya jaleo, sale un lio de la leche.
voy poniendote una a una a ver si las podemos ir resolviendo una a una.
Debe haber algun error.
Tanto en modo X como en modo B da este error.
OOO OOO
XOO -> OOO
OOO OXO
Ahora te paso mas.
OXO OOO
XOO -> OOO
OOO OXO
OXO OOO
OOX -> OOX
OOO OOO
OOO OOO
XOX -> OOX
OXO OOO
OXO OOO
XOX -> OOX
OOO OOO
Parece que siempre que interviene "derecha" anula a todo lo demas o algo asi.
Aiken
buff vaya jaleo, sale un lio de la leche.
voy poniendote una a una a ver si las podemos ir resolviendo una a una.
Debe haber algun error.
Tanto en modo X como en modo B da este error.
OOO OOO
XOO -> OOO
OOO OXO
Ahora te paso mas.
Aiken
Coñ0, ya veo el error. [wei] Ezperate ni dos segundos que lo tengo ya que se sale solo del horno...
Versión 0.2. Ahivá!
vamos paya!! :D asi da gusto ...
Pues yo diria que esta perfecto en los modos X y B para la F200.
Bueno salvado el caso de arriba+izqda+abajo que es imposible de arreglar, y que manda huevos estos de GPH.
Ahora a ver que hacemos con esto :(
Aiken
vamos paya!! :D asi da gusto ...
Pues yo diria que esta perfecto en los modos X y B para la F200.
Bueno salvado el caso de arriba+izqda+abajo que es imposible de arreglar, y que manda huevos estos de GPH.
Ahora a ver que hacemos con esto :(
Aiken
Pues na más puedo hacer yo. De que haga esto hasta que algún programador de los emus le de la gana usarlo... Quizás deba postearlo en el foro guiri y alguno que otro se animará.
Se fini. :brindis:
Pues na más puedo hacer yo. De que haga esto hasta que algún programador de los emus le de la gana usarlo. Quizás deba postearlo en el foro guiri y alguno que otro se animará.
en la opcion sin filtro, es tal como lo detecta SDL no? vamos que es como lo estaran detectando los emuladores, no? pues a ver si de esta forma mejora un poco para la gente que tenemos el dedo gordo y pulsamos 3 a la vez :D
si, postealo por los foros de programacion (incluido el foro de prog de aqui) y a ver si quieren al menos probarlo a ver si a alguien le va mejor :)
si vemos que esto mejora alguien habria que informar a GPH para que lo solucionen en el firmware o lo que sea, eso ya se lo comentaremos a Anarchy que el tendra contacto digo yo.
mas no se puede hacer, por cierto da gusto verte programar, ah! por cierto he echado un vistazo al codigo y esta muy organizadito y facil de leer da gusto, aunque no me he querido meter a entender las mascaras de los controles porque ha empezado ha echar humo la cabeza, pero vamos que al menos estaba estructuradito. ;)
Aiken
Ah! Se me olvidaba, que más gente lo pruebe, no vaya a ser que cada GP2X F200 se comporta de forma distinta, si no ya la hemos liado. :loco:
< - >
en la opcion sin filtro, es tal como lo detecta SDL no? vamos que es como lo estaran detectando los emuladores, no? pues a ver si de esta forma mejora un poco para la gente que tenemos el dedo gordo y pulsamos 3 a la vez :D
si, postealo por los foros de programacion (incluido el foro de prog de aqui) y a ver si quieren al menos probarlo a ver si a alguien le va mejor :)
si vemos que esto mejora alguien habria que informar a GPH para que lo solucionen en el firmware o lo que sea, eso ya se lo comentaremos a Anarchy que el tendra contacto digo yo.
mas no se puede hacer, por cierto da gusto verte programar, ah! por cierto he echado un vistazo al codigo y esta muy organizadito y facil de leer da gusto, aunque no me he querido meter a entender las mascaras de los controles porque ha empezado ha echar humo la cabeza, pero vamos que al menos estaba estructuradito. ;)
Aiken
Sí, es como SDL lo detecta, aunque no uso SDL para el control, leo los registros tal cual.
Y, no. La mayoria de emuladores usan minimal y esta tiene ya un filtrado por defecto, que es el de mapear las diagonales en horizontales/verticales.
Encontre esta manera poco ortodoxa de Solucionar el problema, aun no se que es lo negro que le pone pero junciona bastante bien n_n
oMYTG7BiylA
Saludos
Rivroner
14/11/2007, 07:51
Encontre esta manera poco ortodoxa de Solucionar el problema, aun no se que es lo negro que le pone pero junciona bastante bien n_n
oMYTG7BiylA
Saludos
Ese vídeo lo puso un forero (Therealyeep) de este mismo foro hace unos días, lo grabó él mismo para que viéramos como había hecho el mod a la cruceta ;)
Lo negro es cinta aislante creo , pero cortada a pedacitos :D
Encontre esta manera poco ortodoxa de Solucionar el problema, aun no se que es lo negro que le pone pero junciona bastante bien n_n
Saludos
Ya lo sabemos pero en este post estamos intentando resolverlo por software en lugar de con cinta aislante y el mod ese.
Aiken
Muy buen trabajo hamigo BuDis. Si es que esos de gamepark no nos dejan de sorprender. Sacan algo al mercado, y ale, espavilaos a que parezca bueno. Porque la verdad, ni un juego que use la táctil he visto por su parte aún...
Muy buen trabajo hamigo BuDis. Si es que esos de gamepark no nos dejan de sorprender. Sacan algo al mercado, y ale, espavilaos a que parezca bueno. Porque la verdad, ni un juego que use la táctil he visto por su parte aún...
Como ves, estaba estudiando muy intensamente PI. xD
Como ves, estaba estudiando muy intensamente PI. xD
jaja, por cierto, q tal te ha ido el examen?
jaja, por cierto, q tal te ha ido el examen?
Esto ya se habla en privado, a ver si te dignas a venir a la uni...
Esto ya se habla en privado, a ver si te dignas a venir a la uni...
Mañana ya si que me vengo xDD
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions Inc. All rights reserved.