Hola a todos espero estén bien el día de hoy quiero compartirles una idea que traigo desde hace un rato y que quiero que entre todos los que se interesen me puedan dar ideas y demás. Bueno a lo que viene, como dice el título del post quiero hacer un Arcade Stick para múltiples consolas clásicas. Se que hay placas especializadas para ello pero el costo se me hace exagerado, tambien esta la opción que nos mostró Artemio en esos videos ya viejitos en Atomix de sacrificar un control de cada consola y soldar pero dada la escaces de controles incluso Bootleg para algunas consolas se me hace ya un poco un desperdicio hacer esto y la verdad al final creo que se podría hacer algo Open Source que cualquiera que quiera pueda construir.
Mi idea surge aparte de un repositorio en Github que encontré buscando información del tema en Google.
Aquí les dejo el Link https://github.com/garybethel/DS4toSaturn
Y explicó la idea básica en este repositorio se programa un Arduino para recibir comandos desde mandos de PS3, PS4 o Xbox One y mandarlos a un SEGA Saturn. La idea es que podemos empezar con Saturn Armando un programa en Arduino que tome señales de Microswitches de botones y los pase al Saturn.
Y creo que a partir de ahí se podría desarrollar más consolas e ir añadiendo versiones e incluso que se detecte a que consola se conecta y poner la parte de codigo esoecifica para dicha consola y con esto hacer todo más automático y amigable con el usuario.
No sé mi meta serían las consolas.
NES, SNES, Génesis 3B, Génesis 6B, PC Engine, SEGA Saturn, SEGA Dreamcast, PS1, PS2, Xbox y GameCube. E incluso ya encarrerados no se pasar a PS3, PS4, Xbox 360, Xbox One, Wii, Wii U, Switch.
Ahora mismo se vislumbra como un sueño pero no sé creo que se puede.
Ustedes que Opinan?
Saludos a todos y cualquier comentario se agradece.
Enviado desde mi Mi A1 mediante Tapatalk
Arcade Stick Multiconsola
Reglas del Foro
Las reglas son muy sencillas. Por favor abstengase de postear acerca de copias piratas, descargas ilegales, enlaces, etc. Lo mismo aplica a material ofensivo, es decir, fuera de contexto o inapropiado.
Todo lo demás está permitido siempre y cuando no se esté ofendiendo a alguien más de manera directa e intencional. Por lo mismo no se permite insultar a otras personas.
Cualquier violación a éste reglamento, resultará en un ban permanente.
Las reglas son muy sencillas. Por favor abstengase de postear acerca de copias piratas, descargas ilegales, enlaces, etc. Lo mismo aplica a material ofensivo, es decir, fuera de contexto o inapropiado.
Todo lo demás está permitido siempre y cuando no se esté ofendiendo a alguien más de manera directa e intencional. Por lo mismo no se permite insultar a otras personas.
Cualquier violación a éste reglamento, resultará en un ban permanente.
Re: Arcade Stick Multiconsola
Creo que si se podría, pero generaría un retrazo en el input, así que no le veo mucho sentido, solamente que fuera por comodidad.
Enviado desde mi LG-M700 mediante Tapatalk
Enviado desde mi LG-M700 mediante Tapatalk
Re: Arcade Stick Multiconsola
Agradezco tu comentario y referente a lo que me comentas podrías explicarme un poco más del por qué habría retraso digo igual un control procesa la información de los botones que al final son Switches a tierra y la envia a la consola. Por eso pienso que si el programa se hace bien no debería hacer mayor problema.franzcron escribió:Creo que si se podría, pero generaría un retrazo en el input, así que no le veo mucho sentido, solamente que fuera por comodidad.
Enviado desde mi LG-M700 mediante Tapatalk
Enviado desde mi Mi A1 mediante Tapatalk
- Artemio
- Site Admin
- Mensajes: 3023
- Registrado: Lun Ago 06, 2012 5:04 pm
- Cuenta de Twitter: Artemio
- Ubicación: México
- Contactar:
Re: Arcade Stick Multiconsola
No estoy muy metido en el tema, pero creo que ya hay hasta productos comerciales para hacerlo. Rolman sabe de eso.
Pero lo que dices es cierto, la velocidad del Arduino sobra para hacerlo bien.
Por ejemplo, un Arduino Uno corre a 16Mhz, así que cada ciclo de reloj toma 0.0000625ms. Lo cual te da 266720 ciclos del Arduino por cuadro.
Supongo que la latencia más grande viene del tiempo de respuesta del protocolo de los controles. Peor no debe sobrepasar un cuadro.
Pero lo que dices es cierto, la velocidad del Arduino sobra para hacerlo bien.
Por ejemplo, un Arduino Uno corre a 16Mhz, así que cada ciclo de reloj toma 0.0000625ms. Lo cual te da 266720 ciclos del Arduino por cuadro.
Supongo que la latencia más grande viene del tiempo de respuesta del protocolo de los controles. Peor no debe sobrepasar un cuadro.
Re: Arcade Stick Multiconsola
Como menciona Artemio, estuve investigando y experimentando hace unos años sobre este tema. En ese entonces no había tantas opciones y los costos de hardware eran diferentes. Mi solución en su momento fue hacer una caja separada de las palancas con el hardware de "traducción" y hacer palancas custom para poder utilizarlas con la caja o en una SuperGun directo a JAMMA.
Dentro de esta caja puse dos PS360+, que soportan una buena cantidad de consolas. Esto sonaba como la opción ideal porque prometieron que liberarían el firmware Open Source, pero esto nunca sucedió y la PCB fue descontinuada cuando en PS4/XBOne cambiaron el protocolo de los controles para agregar mecanismos de autenticación y esto dificultó mucho el soporte con la implementación original que no tenía contemplado este escenario. Considera esto para tu diseño si quieres llegar a consolas de última generación.
Midiendo las entradas y salidas con un osciloscopio, vi que en la gran mayoría de los casos la respuesta del control estaba por debajo del milisegundo, con algunos máximos de 4 milisegundos, por lo cual la señal llega a tiempo a la consola para caer dentro del mismo cuadro y no presenta lag. Sólo hubo un caso extremo donde el XBox 360 tenía un problema particular con la implementación que en ocasiones rebasaba un cuadro, cosa que fue corregida en revisiones posteriores de PS360+.
Durante mis experimentos, hice algunos intentos con Raspberry Pi, pero tuve problemas generando timings precisos en GPIO. Supongo que un Arduino es mejor opción en costo/beneficio pero no he hecho ningún intento hasta ahora.
Yo te diría que es una gran idea y que en mi experiencia la veo viable, por lo menos de PS3/360/Wii hacia atrás. Estoy seguro que la comunidad lo recibiría con los brazos abiertos y más si todo es Open Source. Yo podría apoyar inicialmente probando timings si te interesa.
Saludos
Dentro de esta caja puse dos PS360+, que soportan una buena cantidad de consolas. Esto sonaba como la opción ideal porque prometieron que liberarían el firmware Open Source, pero esto nunca sucedió y la PCB fue descontinuada cuando en PS4/XBOne cambiaron el protocolo de los controles para agregar mecanismos de autenticación y esto dificultó mucho el soporte con la implementación original que no tenía contemplado este escenario. Considera esto para tu diseño si quieres llegar a consolas de última generación.
Midiendo las entradas y salidas con un osciloscopio, vi que en la gran mayoría de los casos la respuesta del control estaba por debajo del milisegundo, con algunos máximos de 4 milisegundos, por lo cual la señal llega a tiempo a la consola para caer dentro del mismo cuadro y no presenta lag. Sólo hubo un caso extremo donde el XBox 360 tenía un problema particular con la implementación que en ocasiones rebasaba un cuadro, cosa que fue corregida en revisiones posteriores de PS360+.
Durante mis experimentos, hice algunos intentos con Raspberry Pi, pero tuve problemas generando timings precisos en GPIO. Supongo que un Arduino es mejor opción en costo/beneficio pero no he hecho ningún intento hasta ahora.
Yo te diría que es una gran idea y que en mi experiencia la veo viable, por lo menos de PS3/360/Wii hacia atrás. Estoy seguro que la comunidad lo recibiría con los brazos abiertos y más si todo es Open Source. Yo podría apoyar inicialmente probando timings si te interesa.
Saludos
Re: Arcade Stick Multiconsola
Me encantaría poder empezar a trabajar con esto he estado investigando y parece muy plausible, hay gente que ya lo ha avanzado y justamente como indicas el tema radica en los timings. Ya tengo un poco estudiado como iría la estructura de control de Saturn y de Génesis 6 y 3 botones lo demás habrá que irlo sacando pero de inicio serían estos 2 si me pueden ayudar con los timings estaría genial. En cuanto al Hardware considerando un Arcade Stick robusto con 8 botones principales 4 direcciones y 3 botones de Auxiliares (Start, Select y Home), estaba pensando en usar de base un Arduino Mega sobre todo por la cantidad de inputs que tenemos y las salidas tenerlas a un DB9 para que de ahí sea fácil construir los cables custom.Rolman escribió:Como menciona Artemio, estuve investigando y experimentando hace unos años sobre este tema. En ese entonces no había tantas opciones y los costos de hardware eran diferentes. Mi solución en su momento fue hacer una caja separada de las palancas con el hardware de "traducción" y hacer palancas custom para poder utilizarlas con la caja o en una SuperGun directo a JAMMA.
Dentro de esta caja puse dos PS360+, que soportan una buena cantidad de consolas. Esto sonaba como la opción ideal porque prometieron que liberarían el firmware Open Source, pero esto nunca sucedió y la PCB fue descontinuada cuando en PS4/XBOne cambiaron el protocolo de los controles para agregar mecanismos de autenticación y esto dificultó mucho el soporte con la implementación original que no tenía contemplado este escenario. Considera esto para tu diseño si quieres llegar a consolas de última generación.
Midiendo las entradas y salidas con un osciloscopio, vi que en la gran mayoría de los casos la respuesta del control estaba por debajo del milisegundo, con algunos máximos de 4 milisegundos, por lo cual la señal llega a tiempo a la consola para caer dentro del mismo cuadro y no presenta lag. Sólo hubo un caso extremo donde el XBox 360 tenía un problema particular con la implementación que en ocasiones rebasaba un cuadro, cosa que fue corregida en revisiones posteriores de PS360+.
Durante mis experimentos, hice algunos intentos con Raspberry Pi, pero tuve problemas generando timings precisos en GPIO. Supongo que un Arduino es mejor opción en costo/beneficio pero no he hecho ningún intento hasta ahora.
Yo te diría que es una gran idea y que en mi experiencia la veo viable, por lo menos de PS3/360/Wii hacia atrás. Estoy seguro que la comunidad lo recibiría con los brazos abiertos y más si todo es Open Source. Yo podría apoyar inicialmente probando timings si te interesa.
Saludos
Saludos y de verdad agradezco su apoyo e interés en el tema.
Enviado desde mi Mi A1 mediante Tapatalk