¿Como hacer un port?

pues muchas veces en el foro nos alegramos cuando vemos q han conseguido portar el DOOM, el Duke Nukem 3d, el Wolfestein...etc y me pregunto, que es necesario para hacer un port?
como saber si el juego que queremos portar, lo soportará la DS? que conocimientos se necesitan? que programas hacen falta?

pues siempre he tenido interes en este tema y la verdad se muy poco sobre el, asi que haber si alguien con mas conocimientos que yo me puede explicar mas sobre todo el tema, saludos
La forma más fácil y más complicada de hacer un port es a la vez tener el código fuente.

Con el código fuente del programa / juego, lo único que tienes que hacer es cambiar las instrucciones de llamadas a sistema por las que soporta la DS (tan sólo hay que sustituir de forma mecánica una pequeña parte del código). Éstos cambios suelen ser muy sencillos, pero a la vez es muy difícil conseguir el código fuente de algo. Un programa Homebrew... vale, pero un juego como el Quake... Conseguir el código de eso es más complicado...
y como puedo saber el codigo de fuente de un juego? no existe ningun tutorial de como hacer ports para la ds no? xD
Pos hombre, si fuera algo sencillo habría ports de todos los juegos del 2000 p'atrás y todos seríamos unos grandiosos programadores. Te recomiendo para entrar al mundillo:
1- Aprender inglés (esencial)
2- Meterte en el foro de gbadev.org
3- Leer, leer, leer y después si eso preguntar (en ese foro, en eol tienes éste hilo que quizá te ayude también)

Saludosss
- Asumo sabes programar para en C, sabes programar para el hardware para el que fué diseñado el software, que supongo será una PC, así como programar para el hardware destino, en este caso DS.

- Antes que nada necesitas documentarte sobre el funcionamiento tanto del hardware para el que fué diseñado el software, así como el hardware para el que pretendes hacer el port. Deben quedarte claros tanto su funcionamiento, los recursos con que cuenta, así como sus limitaciones y diferencias.

- Necesitas el código fuente del software que deseas portar. Generalmentre solo lo poseen los creadores del software, a menos que lo hayan hecho público. Tienes la opción de desensamblar el codigo executable y obtener el código en ensamblador y a partir de este deducir el código en C, pero resulta bastante complicado, requiriendo de mucho esfuerso y conocimientos.

- Despues debes estudiar el código fuente y entender como funciona el software en el hardware original para poder adaptarlo. ¿Cuánta memoria utiliza? ¿Para que la utiliza? ¿Cómo utiliza los periféricos? ¿Que librerias utiliza? ¿Existen versiones para el hardware destino?.

- Analizar los posibles problemas en la conversión del software, sobretodo compenzar y/o rediseñar la manera en que administran los recursos de ser necesario. Un problema bastante común en proyectos para DS es la falta de memoria. DS solo tiene 4MB de RAM.

- Una vez comprendido el funcionamiento del software y analizada la administración de recursos puedes proceder a sustituir el código fuente original por código equivalente específico para el hardware destino, por ejemplo, sustituir el código para manejar el teclado del PC por código para manejar los botones del DS, el código encargado de la tarjeta de video en el PC por código que maneje el hardware de video de la DS. También sera necesario que sustituyas aquellas funciones que solo estén disponibles en el hardware origen y que la DS no posea, como por ejemplo, la coma flotante, que tendrá que ser sustituida por coma fija en el código portado.
ok gracias por las respuestas, no pensaba ponerme a hacer un port ya que no tengo los conocimientos necesarios, pero al menos ahora se hacerme una idea de el proceso, gracias!
5 respuestas