- 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.