Sería factible desarrollar un conversor de juegos entre plataformas??

No se si existe ya algo parecido o sería factible algo que me he preguntado siempre. Un programa que convierta todo el código de un juego de una consola para poder correrlo en otra. Imaginemos por ejemplo, no se, un juego de la Gameboy que se pudiera convertir en un juego de commodore Amiga al ser superior pero no tanto como para emularlo. No se si me explico
@rafa-lito Te explicas perfectamente pero no sé si un conversor se pueda hacer, porque hay muchas diferencias de arquitectura entre un amiga y una gameboy, siguiendo tu ejemplo, además de las optimizaciones que habrá que hacer y normalmente se hace juego por juego por muy juego de Gameboy que sea.

Otra cosa es cuando ambas plataformas tienen una arquitectura muy parecida como el MSX y el Spectrum, ahí creo que se podía hacer algo factible.

Saludos.
lo que hicieron con el super mario 64 no es algo similar ? lo pasaron a ps2 y dreamcast creo ? y no son emulador sino que supuestamente corre nativamente , ah se me olvidaba lo pasaron a pc tambien
Teoreticamente seria posible, pero requeriria un algoritmo muy muy complejo, al nivel de una IA muy avanzada, dado que al hacer ingenieria inversa se toman muchas decisiones y asunciones para optimizar el codigo a la arquitecura de destino.

Tengamos en cuenta que mucho software viene con bugs o aprovechan peculiaridades del hardware, o atan el codigo a la velocidad del hardware.

Como ejemplo el juego Air Strike Patrol de SNES, que usa una sombra debajo de la nave, y usa efectos a media scanline para renderizar esta sombra. Esto significa que el programador llevaba una cuenta de la posicion y el timing de renderizado. Ahora supongamos que se convierte automaticamente este juego pero ahora debe poder soportar pantallas 4K a 240hz. La frecuencia del SNES si no mal recuerdo, es 60.1hz, razon por la cual sufre problemas de sincronizacion con algunos escaladores. Pues bien, aun si capas el framerate a 60fps, si el juego usa la frecuencia de renderizado como reloj, o el juego va a correr ligeramente mas lento, o la posicion se va a desincronizar.

Tambien estan las diferentes capacidades del hardware, pasandonos a motores mas modernos que quitan algo de trabajo, algunos juegos estaban hechos para usar texturas de color indexado, esto es, usaban una paleta, y podias cambiar un solo color de la paleta y la imagen se veia afectada acordemente, de hecho algunas GPU de antes tenian soporte nativo, asi que solo mandabas la textura y la paleta a memoria y pasabas la instruccion al hardware, pero si el nuevo hardware no tiene la capacidad de hacer esto (como las tarjetas de video modernas), entonces tienes que implementar via software el soporte de color indexado y mandar a la grafica una imagen en rgb por ejemplo, y esto es asumiendo que el hardware tenga la potencia suficiente, recordemos que en algunos juegos, el mismo juego en sega saturn y en playstation, en uno usa dithering+video compuesto, para FALSEAR el efecto de transparencia, mientras que en playstation tiene soporte completo via hardware para transparencias. (Saturn si podia hacer transparencias pero no en todas las capas)

Megaman X4 en Sega Saturn
Imagen
Megaman X4 en Sony PlayStation
Imagen

Y esos solo son algunos ejemplos.
Habia algo ya asi, pero no recuerdo el nombre (hace bastantes años) .
Básicamente escribias el codigo segun sus parametros y luego compilabas a la maquina que querias. Recuerdo que valia para ps2 y dreamcast al menos, si lo encuentro lo edito y lo pongo.
Edit: Ps2, dreamcast, canoo y wii
BennuGD
Parece una chorrada pero, sería capaz la IA de hacerlo? Es que por ejemplo le digo al chatgtp que me saque un listado de un matamarcianos para zx spectrum y me lo saca, luego le digo que me lo.convierta a Gameboy y lo convierte, y le digo que ahora lo convierta a Amiga y lo hace el ioputi...supongo que no será lo mismo pero esto me deja a cuadros, porque te da hasta el más mínimo detalle.
Rafa-Lito escribió:No se si existe ya algo parecido o sería factible algo que me he preguntado siempre. Un programa que convierta todo el código de un juego de una consola para poder correrlo en otra. Imaginemos por ejemplo, no se, un juego de la Gameboy que se pudiera convertir en un juego de commodore Amiga al ser superior pero no tanto como para emularlo. No se si me explico


Bicheando ví algo de info, es imprecisa pero tal vez te despeje alguna duda.

https://gbatemp-net.translate.goog/thre ... _tr_pto=sc

https://askagamedev-tumblr-com.translat ... _tr_pto=sc

Rafa-Lito escribió:Parece una chorrada pero, sería capaz la IA de hacerlo? Es que por ejemplo le digo al chatgtp que me saque un listado de un matamarcianos para zx spectrum y me lo saca, luego le digo que me lo.convierta a Gameboy y lo convierte


Sí puede [sati]

En verdad creo que no aún, pero sí es capaz de hacer parte de esas taréas de forma eficiente, es de esperar que dentro de poco vaya escalando de forma exponencial

https://www.adslzone.net/noticias/ia/9- ... gramacion/

Rafa-Lito escribió:y le digo que ahora lo convierta a Amiga y lo hace el ioputi...supongo que no será lo mismo pero esto me deja a cuadros, porque te da hasta el más mínimo detalle


me ha gustado lo del ioputi [qmparto] el mundo vá a ser de las máquinas, como yo lo veo está bien así, porque pueden ser nuestro mayor legado con diferencia. Si ocurren SkyNet, Matrix o M3GAN, pues.. mala suerte para nosotros :)


PD, disculpa la tontunada, ¿tu avatar está inspirado en los frutos secos de la antigua empresa Blas?, es que los tengo grabados a fuego y me ha hecho ilusión, en 1988 compraba pipas y cacahuetes Blas a 10 Pesetas la bolsa, mientras iba a jugar a Vigilante, Dragon Ninja y otras recres de la época. Creo que el logotipo muestra un sombrero típico Cordobés pero la empresa era Malagueña..

https://www.facebook.com/malagaconacent ... 92605994:0

Imagen
rafa-lito escribió:Parece una chorrada pero, sería capaz la IA de hacerlo? Es que por ejemplo le digo al chatgtp que me saque un listado de un matamarcianos para zx spectrum y me lo saca, luego le digo que me lo.convierta a Gameboy y lo convierte, y le digo que ahora lo convierta a Amiga y lo hace el ioputi...supongo que no será lo mismo pero esto me deja a cuadros, porque te da hasta el más mínimo detalle.

Ni de broma. El código que te estará ofreciendo ChatGPT dudo siquiera que hiciera lo que dice que hace y que compilara sin errores. ChatGPT no es en sí una inteligencia artificial como tal. Sin la información que existe de código de otras personas no sería capaz de hacer nada, por lo que todo lo que te ofrece está básicamente basado en código existente en la red. Así pues, te mezcla código que funciona con otros que no funcionan, te mezcla código antiguo con otro nuevo, etc.... es un caos total.
@alvan pues no, jajaja. No está basado en eso aunque me gusta esa coincidencia jeje.
Rafa-Lito escribió:pues no, jajaja. No está basado en eso aunque me gusta esa coincidencia jeje.


Gracias por responderme, qué se le vá a hacer :) de todas formas ya me retrotraje a 1987 y 1988, cuando podíamos comprar un montón increíble de chuches con 25 Pesetas, habían recres hasta en las farmacias, la tele se podía ver y las calles aún mantenían esa atmósfera ochentera.. habría que pedirle a ChatGPT que haga una tésis sobre la nostálgia, es un concepto casi esotérico para mí y muy insondable

Perdón por el offtopic.
Tomax_Payne escribió:Habia algo ya asi, pero no recuerdo el nombre (hace bastantes años) .
Básicamente escribias el codigo segun sus parametros y luego compilabas a la maquina que querias. Recuerdo que valia para ps2 y dreamcast al menos, si lo encuentro lo edito y lo pongo.
Edit: Ps2, dreamcast, canoo y wii
BennuGD


Eso no tiene nada que ver eso es un lenguaje interpretado como puede ser python , javascript y dudo mucho que bennuGD fuera 100% compatible siempe había algun variación en el port o no implementaba todo.

Lo que te está pidiendo es un código especifico para un arquitectura o sistema operativo te lo transforme al código equivalente

Obviamente con algo de curro lo más parecido se puede hacer algo similar a un wrapper traductor similar a wine si comparten arquitectura de CPU que te permite ejecutar nativamente un binario para un sisstema del cual no fue diseñado el problema es cuando el hw es totalmente diferente ahí se complica la cosa por lo que por definición como tal universal no existe nada esto es lo que contesta chatgpt sin darme una herramienta específica.

Sí, existen herramientas y métodos para convertir código específico de Game Boy a otros sistemas como Amiga u otros hardware o sistemas operativos diferentes. Sin embargo, es importante tener en cuenta que la conversión no siempre es directa o automática, ya que las plataformas pueden tener diferencias significativas en cuanto a arquitectura, capacidades de hardware y API.

En el caso específico de la conversión de código de Game Boy a Amiga, es posible que debas realizar cambios considerables en el código para adaptarlo a la estructura y características del hardware y sistema operativo de Amiga. Algunas de las diferencias que pueden requerir modificaciones incluyen la forma en que se manejan los gráficos, el sonido, la entrada del usuario y la gestión de memoria.

No hay una herramienta universal o estándar para realizar esta conversión automáticamente, ya que cada sistema tiene sus particularidades. Sin embargo, puedes encontrar documentación y recursos en línea que te ayudarán a comprender las diferencias entre las plataformas y los pasos necesarios para realizar la conversión manualmente. También puedes buscar comunidades y foros especializados en programación retro o específicos de Amiga para obtener ayuda y orientación más específica.

Recuerda que la conversión de código entre plataformas puede ser un proceso complejo y laborioso, por lo que se recomienda tener conocimientos sólidos de programación y comprender las especificaciones técnicas tanto del sistema de origen como del sistema de destino.


Y si le pregunto por algún ejemplo nadaa de nada te dice que hay suss diferencíass paraa hacerlo.

Lamentablemente, no puedo proporcionarte ejemplos específicos de código de Game Boy convertido a Amiga o viceversa. La conversión de código entre plataformas tan diferentes requiere un análisis profundo y una adaptación detallada del código original a las características y capacidades del sistema de destino.

Dicho esto, puedo darte algunos ejemplos generales de las diferencias que podrías encontrar al convertir código de Game Boy a Amiga:

Gráficos: La Game Boy utiliza una pantalla LCD de baja resolución y una paleta de colores limitada, mientras que Amiga tiene una resolución más alta y capacidades gráficas más avanzadas. Por lo tanto, deberás ajustar el código relacionado con los gráficos para adaptarlo a las capacidades de Amiga.

Sonido: La Game Boy tiene un chip de sonido especializado, mientras que Amiga utiliza su propia unidad de sonido. Tendrás que reescribir el código de sonido para que sea compatible con el hardware de Amiga.

Entrada del usuario: Game Boy tiene botones físicos, mientras que Amiga utiliza un teclado y/o ratón. Esto implica que tendrás que modificar el código relacionado con la entrada del usuario para que funcione con los dispositivos de entrada de Amiga.

Gestión de memoria: Game Boy y Amiga tienen arquitecturas de memoria diferentes. Por lo tanto, es posible que necesites reorganizar y ajustar el código relacionado con la gestión de memoria para que sea compatible con Amiga.

Estos son solo ejemplos generales y las diferencias específicas pueden variar dependiendo del código y los sistemas involucrados. Como mencioné anteriormente, la conversión de código entre plataformas retro requiere un conocimiento profundo de ambas plataformas y una adaptación cuidadosa del código.
MaXiMu escribió:
Tomax_Payne escribió:Habia algo ya asi, pero no recuerdo el nombre (hace bastantes años) .
Básicamente escribias el codigo segun sus parametros y luego compilabas a la maquina que querias. Recuerdo que valia para ps2 y dreamcast al menos, si lo encuentro lo edito y lo pongo.
Edit: Ps2, dreamcast, canoo y wii
BennuGD


Eso no tiene nada que ver eso es un lenguaje interpretado como puede ser python , javascript y dudo mucho que bennuGD fuera 100% compatible siempe había algun variación en el port o no implementaba todo.

Lo que te está pidiendo es un código especifico para un arquitectura o sistema operativo te lo transforme al código equivalente

Obviamente con algo de curro lo más parecido se puede hacer algo similar a un wrapper traductor similar a wine si comparten arquitectura de CPU que te permite ejecutar nativamente un binario para un sisstema del cual no fue diseñado el problema es cuando el hw es totalmente diferente ahí se complica la cosa por lo que por definición como tal universal no existe nada esto es lo que contesta chatgpt sin darme una herramienta específica.

Sí, existen herramientas y métodos para convertir código específico de Game Boy a otros sistemas como Amiga u otros hardware o sistemas operativos diferentes. Sin embargo, es importante tener en cuenta que la conversión no siempre es directa o automática, ya que las plataformas pueden tener diferencias significativas en cuanto a arquitectura, capacidades de hardware y API.

En el caso específico de la conversión de código de Game Boy a Amiga, es posible que debas realizar cambios considerables en el código para adaptarlo a la estructura y características del hardware y sistema operativo de Amiga. Algunas de las diferencias que pueden requerir modificaciones incluyen la forma en que se manejan los gráficos, el sonido, la entrada del usuario y la gestión de memoria.

No hay una herramienta universal o estándar para realizar esta conversión automáticamente, ya que cada sistema tiene sus particularidades. Sin embargo, puedes encontrar documentación y recursos en línea que te ayudarán a comprender las diferencias entre las plataformas y los pasos necesarios para realizar la conversión manualmente. También puedes buscar comunidades y foros especializados en programación retro o específicos de Amiga para obtener ayuda y orientación más específica.

Recuerda que la conversión de código entre plataformas puede ser un proceso complejo y laborioso, por lo que se recomienda tener conocimientos sólidos de programación y comprender las especificaciones técnicas tanto del sistema de origen como del sistema de destino.


Y si le pregunto por algún ejemplo nadaa de nada te dice que hay suss diferencíass paraa hacerlo.

Lamentablemente, no puedo proporcionarte ejemplos específicos de código de Game Boy convertido a Amiga o viceversa. La conversión de código entre plataformas tan diferentes requiere un análisis profundo y una adaptación detallada del código original a las características y capacidades del sistema de destino.

Dicho esto, puedo darte algunos ejemplos generales de las diferencias que podrías encontrar al convertir código de Game Boy a Amiga:

Gráficos: La Game Boy utiliza una pantalla LCD de baja resolución y una paleta de colores limitada, mientras que Amiga tiene una resolución más alta y capacidades gráficas más avanzadas. Por lo tanto, deberás ajustar el código relacionado con los gráficos para adaptarlo a las capacidades de Amiga.

Sonido: La Game Boy tiene un chip de sonido especializado, mientras que Amiga utiliza su propia unidad de sonido. Tendrás que reescribir el código de sonido para que sea compatible con el hardware de Amiga.

Entrada del usuario: Game Boy tiene botones físicos, mientras que Amiga utiliza un teclado y/o ratón. Esto implica que tendrás que modificar el código relacionado con la entrada del usuario para que funcione con los dispositivos de entrada de Amiga.

Gestión de memoria: Game Boy y Amiga tienen arquitecturas de memoria diferentes. Por lo tanto, es posible que necesites reorganizar y ajustar el código relacionado con la gestión de memoria para que sea compatible con Amiga.

Estos son solo ejemplos generales y las diferencias específicas pueden variar dependiendo del código y los sistemas involucrados. Como mencioné anteriormente, la conversión de código entre plataformas retro requiere un conocimiento profundo de ambas plataformas y una adaptación cuidadosa del código.


Lo que quiere es "traducir" un codigo a otra maquina. Algunas veces se hizo, como el chaval que "tradujo" el asm del super mario bros a asm de megadrive, con un buen resulrado (salvo la musica).
En teoria los ports se hacian así. Pero dudo que se pueda hacer a pelo por lo diferente del codigo y de las prestaciones de las máquinas.
A nivel de hardware sí he visto poder poner NES a la SNES o megadrive a SNES pero es porque te meten el hardware con los pines compatibles para ese HW y lo añades como un addon .

Lo mismo de la gamegear/master system y la megadrive que tenia su adaptador.

Para la snes está el retrogen por si alguien le interesa.

El resto de cosaas que han salido sson adaptaciones , o lo que es un port hecho picaando código o hasta incluso se han creaado un mini emuldor esspecifico para la ocasión para correr essa rom y ya .
Algun dia mediante IA se podra hacer eso.

que la IA analice dos sistemas diferentes y puede hacer una version de un programa...

por ejemplo pedirle que desarrolle una version de AOF para CPS,que la IA se encargue de redimensionar,cambiar paletas de colores,codigo...

una vez analice los dos sistemas deberia ser capaz de hacer lo necesario,algun dia.

en españa grupos de programacion como Dinamic/Opera lo hacian,porteaban de ZX a MSX que daba gu$to,menudas IA debieron tener [sonrisa]
emerald golvellius escribió:Algun dia mediante IA se podra hacer eso.

que la IA analice dos sistemas diferentes y puede hacer una version de un programa...

por ejemplo pedirle que desarrolle una version de AOF para CPS,que la IA se encargue de redimensionar,cambiar paletas de colores,codigo...

una vez analice los dos sistemas deberia ser capaz de hacer lo necesario,algun dia.

en españa grupos de programacion como Dinamic/Opera lo hacian,porteaban de ZX a MSX que daba gu$to,menudas IA debieron tener [sonrisa]


Jajajaja. Pues mira. Sería el caso.
emerald golvellius escribió:Algun dia mediante IA se podra hacer eso.

que la IA analice dos sistemas diferentes y puede hacer una version de un programa...

por ejemplo pedirle que desarrolle una version de AOF para CPS,que la IA se encargue de redimensionar,cambiar paletas de colores,codigo...

una vez analice los dos sistemas deberia ser capaz de hacer lo necesario,algun dia.

en españa grupos de programacion como Dinamic/Opera lo hacian,porteaban de ZX a MSX que daba gu$to,menudas IA debieron tener [sonrisa]

Se te olvida un detalle importante, y es que muchos codigos fuentes de videojuegos están perdidos o no se conservan, así que no es tan fácil eso que dices.

La IA tendría que analizar el código ensamblador o máquina del código de una arquitectura para poder adaptarlo a otra, pero para ello tendría que conocer qué instrucciones pertenecen a tal rutina y eso es sumamente complejo. Por no hablar ya de que el material gráfico igualmente estará perdido, por lo que habría que extraerlos y readaptarlos a la otra máquina sin tener los originales...

Y luego está lo complejo del tema que perfectamente a explicado @ZedHqX4. Personalmente, lo veo algo tan lejano, que pienso que no sería posible ni que finalmente el resultado final fuese aceptable.

Y ahora ya entramos en la cuestión de que dentro de X años, probablemente a nadie le interesará jugar a nada de CPS, Spectrum, ni siquiera PSX en la máquina original ni quizás en emulador. Nuestra generación está ya (o cerca de) los 40-50 años, y a la siguiente generación dudo muy mucho que le interese ver tal juego que ni siquiera conocen ni sienten nostalgia por él, en otra plataforma que tampoco conocerán. Así pues, poco interés le veo a esto, más allá de la curiosidad de que se pudiera lograr.

Sinceramente, me gusta ver los videojuegos en el Sistema original para los que fueron concedidos. No le veo sentido a jugar a un Final Fantasy VII en una Nintendo 64, porque el resultado sería bastante inferior a su original.
Flanders escribió:
emerald golvellius escribió:Algun dia mediante IA se podra hacer eso.

que la IA analice dos sistemas diferentes y puede hacer una version de un programa...

por ejemplo pedirle que desarrolle una version de AOF para CPS,que la IA se encargue de redimensionar,cambiar paletas de colores,codigo...

una vez analice los dos sistemas deberia ser capaz de hacer lo necesario,algun dia.

en españa grupos de programacion como Dinamic/Opera lo hacian,porteaban de ZX a MSX que daba gu$to,menudas IA debieron tener [sonrisa]

Se te olvida un detalle importante, y es que muchos codigos fuentes de videojuegos están perdidos o no se conservan, así que no es tan fácil eso que dices.

La IA tendría que analizar el código ensamblador o máquina del código de una arquitectura para poder adaptarlo a otra, pero para ello tendría que conocer qué instrucciones pertenecen a tal rutina y eso es sumamente complejo. Por no hablar ya de que el material gráfico igualmente estará perdido, por lo que habría que extraerlos y readaptarlos a la otra máquina sin tener los originales...

Y luego está lo complejo del tema que perfectamente a explicado @ZedHqX4. Personalmente, lo veo algo tan lejano, que pienso que no sería posible ni que finalmente el resultado final fuese aceptable.

Y ahora ya entramos en la cuestión de que dentro de X años, probablemente a nadie le interesará jugar a nada de CPS, Spectrum, ni siquiera PSX en la máquina original ni quizás en emulador. Nuestra generación está ya (o cerca de) los 40-50 años, y a la siguiente generación dudo muy mucho que le interese ver tal juego que ni siquiera conocen ni sienten nostalgia por él, en otra plataforma que tampoco conocerán. Así pues, poco interés le veo a esto, más allá de la curiosidad de que se pudiera lograr.

Sinceramente, me gusta ver los videojuegos en el Sistema original para los que fueron concedidos. No le veo sentido a jugar a un Final Fantasy VII en una Nintendo 64, porque el resultado sería bastante inferior a su original.

Pues nos tendremos que conformar con la conquista del Universo,algo es algo.
yo queria ver el Violent Storm version NeoGeo [mamaaaaa]
16 respuestas