Página Principal

PALIB SE HA MUDADO

Creemos que este sitio ha sido hackeado, y por eso creamos una nueva web con un nuevo foro. http://palib-dev.com/

Día 1 - Instalación y Compilación

Este tutorial está compuesto de 2 partes:

  • Instalación de devkitPro y de la PAlib, así como de todas las cosas que puedas necesitar.
  • Compilación de un típico “hello world” y entender como se usa el template

Instalación

Información sobre la instalación de devkitpro y PAlib así como una rápida visión de traspasarlo por flash o wifi.[flashme/wifime/passme] (necesito ayuda en esto, ya que solamente conozco el passme)xD.

Instalación

Bien, para tener todo lo necesario para la programación de la DS, primero debes descargar e instalar devkitPro, utilizando la ultima versión del instalador devkitPro updater.

Instala devkitPro con este estupendo instalador. ¡Cuidado! puedes desmarcar las librerías PSP ó GBA, pero por favor, deja el resto marcado (MSYS, devkitarm, libnds...). Si algo falta, no funcionará. Si no estás seguro, deja todo marcado y no tendrás problemas.

Ahora bien, los últimos paquetes de devKitPro instalan las librerias devKitARM_r26 en adelante, mientras que PALib, por ahora, trabaja con devKitARM_r21, por lo que vamos a instalarlo a parte. Para ello elimina o renombra la carpeta de devKitARM en la carpeta de devKitPro y luego descarga el paquete devKitARM_r21 y descomprimelo en el mismo lugar http://www.megaupload.com/?d=JFQ496UO

Vamos a hacer lo mismo con la carpeta libnds que se encuentra en el directorio de devKitPro. Borramos la que hay y la sustituimos por la que podemos descargar aquí.

Sustuimos tambien las libfat y el ds wifi por las compatibles con palib. Tienes que colocarlos en la carpeta de libnds. Sobreescribid cuando lo pida:

- Libfat: http://www.megaupload.com/?d=RHF0LICP

- Dswifi: http://www.megaupload.com/?d=87J6QVEQ

PAlib ahora requiere que tengas instalado .Net framework. Este es usado por PAGfx (convertidor de gráficos), PAFS (sistema de archivos) y el IDE VHam. ¡Obtenlo aquí!

A continuación, descarga e instala PAlib (usando el instalador): PAlib Installer. Instálalo en el mismo directorio que devkitPro y todo debería estar correcto.

Ten cuidado cuando vayas a instalar el devkitpro y la PALib, ya que no puedes hacerlo en una carpeta que contenga un espacio en el nombre (tal como “c:\DS Development\PA Lib\”). Igualmente, si está instalado en el Escritorio, tampoco funcionará, pues el directorio también contiene espacios en su “path” (”c:\Documents and Settings\...”).

Ahora que ya tenemos todo instalado... ¡Vayamos al siguiente paso! :-)

Micheal Bach 29/11/2005 10:17 — Traducido por Wonder Boy 09/09/2006 01:49

Micheal Bach 29/11/2005 10:17 — Traducido por Andres Rodriguez 03/03/2008 21:09

Prueba de Compilación

Intentaremos compilar un ejemplo.

Abre PAlib\Examples\Text\Normal\Helloworld\ y haz doble click sobre el fichero build.bat para compilarlo... si todo va bién, deberás de obtener 3 ficheros: helloworld.ds.gba, helloworld.nds y helloworld.sc.nds.

¡Ey, ha sido fácil!

Ahora, existen 2 formas de cargar las ROMs: usando emuladores (ten cuidado, tienen muchos bugs) ó directamente en hardware (flashme/passme/wifime/wmb).

Traducido por Wonder Boy 09/09/2006 02:14

Emuladores

En la actualidad hay sólo 5 emuladores. De todas formas, sólo usaremos dos por ahora.

  • HyperDS fue el primer emulador en salir, nunca se sacó una versión pública, nunca lo usé... lol
  • Dualis, sin embargo, funciona bastante bien! Lo uso normalmente, es bastante bueno para realizar pruebas en 2D, soporta ya gran multitud de opciones. Sólo un problema: la versión r12 tiene un bug que hace que se bloquee cuando usas el Stylus, así que lo mejor sería que usaras la versión r11 en tus pruebas.. Personalmente, yo lo tengo asociado con los ficheros .nds por lo que sólo hace falta un doble click en una ROM para cargarla :-P
  • iDeaS es el otro gran emulador que mirar! Fue el primero en soportar 3D y sonido, y... bueno, aún continúa siendo el único que realmente lo hace. La última versión que hay es la 1.0.0.8c y hemos visto screenshots de las versiones que se avecinan que nos hacen creer que la siguiente versión será realmente buena, pero todavía no sale...
  • DeSmuMe es probablemente el emulador más rápido para DS. Incluso aunque aún no soporta sonido y zoom/rotación, merece la pena probarlo. El autor original de DeSmuME es YopYop156. Ha dejado de trabajar en él a principios de abril de 2006 y pasó el testigo a un nuevo equipo de desarrolladores en SourceForge.
  • No$gba Emula gran cantidad de cosas de la NDS, incluyendo 3D. Emula sonido. Ejecuta muchos juegos comerciales.
  • El último emulador es DSemu, y probablemente hará una gran reaparición con sus nuevas funciones de plugins.

Ensata es otro emulador disponible. Se trata de un emulador que Nintendo incluye con el SDK oficial. Debido a que es ilegal poseer este emulador, no lo usamos ;-)

Instalando el homebrew en la DS

Lo primero que necesitaras es un soporte, donde instalar y ejecutar los programas que vayas creando en tu DS, esto se consigue comprando y usando un “flash cart”, la mayoría de las flash carts que existen son para GBA pera actualmente se estan haciendo y funcionando bien para la DS (slot 1). Tu puedes conseguir diferentes tipos y marcas de cartuchos flash, alguno con memoria interna, otros sin ella. Revisaré los mas populares, tambien te recordare que puede que no quieras adquirirlo, o o puedes hacerlo desde la tienda que te enlazaré, pero tú tendras que comprar uno si tu realmente intentas ejecutar tus programas en una Nintendo DS. Tambien necesitaras un PassMe.

  • EFA Linker: Descripción de la tienda:: “El EFA es conocido como el mas versatil Flash Linker de GBA a día de hoy.

Cruzando el mundo, Los cartuchos flash EFA, son elegidos para competiciones por su, fidelidad, rendimiento, y facilidad de uso”. Estos pequeños diablillos llevan tiempo con nosotros y tienen una calidad contrastada. Ellos vienen en modelos de 256megabit, 512 megabit, y 1 gigabit.

  • EZ Flash: Mollusk’s cartucho flash a elegir.

Rapidamente, cuando flaseamos una rom, flaseamos el .ds.gba (no el .nds), y SIN el loader, no funciona... La descripción de la tienda dice algo como esto: “El EZ-Flash III es uno de los últimos flash kits con muchas caracteristicas avanzadas, que no son solo para jugadores. El incorpora, un sistema operativo basado en iconos, apariencia PDA, y funcion EZ-Disk (funciona como un flash disk USB). El EZ-Flash III es compatible con NDS, GBA(SP), y GBM!”. Este EZ-Flash III viene con tamaños de 1 y 2 gigabits. También ahi disponible el EZ Flash y EZ Flash II, por favor comprueba en las tiendas que venden el producto si estas interesado.

  • SuperCard: La Supercard no dista mucho del Linker EFA o el EZ Flash. La diferencia aqui está en el medio para almacenar los juegos de DS, usan CF o memorias SD. Esto puede ahorrarte un poco de dinero si tienes alguna de ellas, de tú camara digital por ejemplo. La SuperCard esta echa para trabajar con el SuperPass, el cual será explicado despues.

A pesar de ser el vecino nuevo en el bloque, el M3 Perfect, parece que trabaja de una manera infalible. Fabricado fuera de China, el M3, se vende como un reproductor de peliculas, pero hace maravillas ejecutando homebrew. Frecuentemente sacan actualizaciones en su site M3adapter.com. El M3 Perfect disponible ahora, funciona con CF y tarjetas SD.

  • G6: De los fabricantes del M3 es el G6. Estos fabricantes deben encantarles numerar sus productos. A diferencia de la o el M3, la G6 tiene tres variaciones, cada una con su propia memoria interna para almacenar programas. Los tamaños son de 1 gigabit, 2 gigabit, y 4 gigabit.

Ahora, no importa lo que hagas, necesitaras usar uno de estos metodos para ejecutar tus programas de la DS. Tienes cuatro opciones, de las cuales las dos primeras parece que son las más populares.

  • PassMe : Es el que actualmente uso, y me encanta! Es basicamente una tarjeta de DS Grande que va en el Slot 1. Tu pones un cartucho original dentro de el, el cual se salta las protecciones de la DS, y usa la tarjeta para los SAVEGAMES tambien. Necesitaras un cartucho flash de GBA (Yo tengo un EZ Flash, por ejemplo) en el cual almacenaras la rom o programa. Para las versiones mas nueves de programas, son necesarios otros Passme, aqui teneis donde encontrarlos: PassMe2/Passkey2/SuperPass is invented.

debería funcionar bien... Usando un passme o wifime, solamente uno, tu flaseas tu DS, y despues funcionará como un passme, con un cartucho flash de gba, excepto esa primera vez para el flaseo, no volveras a necesitar el passme! Esta guay, porque si algun amigo tiene cartuchos flash de gba, podras flasear sus DS’s y todos tendras homebrew sin nada más. Se cuidados porque Nintendo, viene implementando sus juegos WiFi compatibles con un codigo que sobreescribe el espacio que tiene el flashme.

  • WiFiMe : Si no estoy equivocado (gracias Aquarius :p), wifime es una aplicación para enviar atraves de wifi, el codigo boot para arrancar el cartucho flash de gba, es por decirlo asi un Passme virtual usando wifi.
  • R4DS Evolution : Una tarjeta versatil, solo hace falta Drag & Drop, nada de passme. No tiene memoria interna, lo cual hace falta comprar una MicroSD, el Flash Card viene con: Lector MicroSD, Correa para DS, Tarjeta R4(flash card), estuche de silicona para dos juegos y Software para hacerla funcionar(con Moonshell incorporado en el software)
  • Wireless Multi Boos (WMB) : Ultimo metodo, este funciona solamente para roms más pequeñas de 4mb. Esto solo envia la demo atraves del wifi directamente en la DS, pero tu ds debería estar preparada para reconocer codigo sin firmar (Yo usé el remplazo de firmware Flashme). Pero tiene esta limitación de tamaño...

Lo más recomendable es tener una R4DS Evolution, que no hace falta procesos complicados, y si no, que tuvieras tu cartucho flash y tarjeta passme del mismo sitio, para asegurarte la compatibilidad, ahora puedes combinar como sigue: EFA Linker y EZ Flash con PassMe2, SuperCard con SuperPass, y M3 o G6 con PassKey2.

                                                                   

Micheal Bach 30/11/2005 09:18

Traducido por: Doctor_Who(OM)

Poner el archivo correcto en tu cartucho flash

tan pronto como tu compiles tu programa/ejemplopalib/homebre, “magicamente” apareceran tres archivos en tu directorio principal:

  • <program_name>.ds.gba –> usa este en un gbamp y EZ
  • <program_name>.nds –> este es para emuladore y (puede no funcionar) para M3 y G6
  • <program_name>.sc.nds –> este es para el Supercard

simplemente pincha en el archivo que necesites y ponlo en tu cartucho flash! bien hecho!

Lotti 01/09/2006 20:00

Usando el SuperCard con SuperPass
Si estas usando el SuperCard con un SuperPass (como se ve en la foto de abajo), el homebrew debería ser facil de seleccionar desde el menu, tan pronto como enciendas la DS, un menu aparecerá en la pantalla superior.
www.palib.info_screens_supercard_ds_superpass.jpg www.palib.info_screens_supercard_supercard_menu.jpg

Usando la SuperCard con una DS Flaseada
Si tienes la Bios de la DS Flasheada con el metodo FlashMe, despues de insertar la SuperCard dentro del slot, tan pronto como la Ds este encendida, mantener pulsado los botones A + B + X + Y, El menu de la Supercard debería verse como sigue, selecionar el archivo llamado “mygame.sc.nds” (te acuerdas?) y lanzarlo pulsando A, si todo a ido bien el programa debería ejecutarse. Bien hecho ;-)

www.palib.info_screens_supercard_nds_with_flashme.jpg www.palib.info_screens_supercard_boot_nds_sc.jpg www.palib.info_screens_supercard_moonshell.jpg

Fabs85 14/12/2005 traducido by omarcus

Compilación

Este es un tutorial rápido para comiplar...

Misterios de la plantilla PA

Lo primero, necesitaras abrir el PALibTemplate. Explicaré como funciona.... Puedes ver que contiene tres pequeños archivos y tres directorios.

Descripción de Template

Que és, un template? (plantilla) Lo se! puedes decir que un template es algun formulario de algo, para tener una estructura y formato (los contenidos de la wikipedia por ejemplo). En otras palabras, es una estructura organizada que contiene todos tus archivos de desarrollo, para un determinado proyecto. Ahora, dentro de él, puedes tener C (codigo) archivos, imagenes de sprites, fondos, sonidos, etc...

Para los directorios :

  • source → contiene la parte más importante, el codigo fuente, el cual basicamente es el codigo de ejecucion (archivos .c o .cpp)
  • include → contendras los archivos de cabezera los cuales son pequeñas ayudas/informaciones sobre el codigo fuente (archivos .h)
  • data → será usado despues, para sonido, etc...

Para los archivos :

  • Makefile → archivo importante pero complicado, explica como compilar el programa, no te preocupes por eso :P
  • logo.bmp and logo_wifi.bmp → archivos de imagen usados cuando se envia la rom atraves del wifi.
  • build.bat → archivo importante, usado para construir, compilar, crear, la rom...
  • clean.bat → cuando tu quieres publicar el codigo fuente, o cuando tu acabaste de codear, clean.bat borra todos los archivos fabricados en la rom. <eso hace el tamaño total mucho mas pequeño... <basicamentge, borra todos los archivos creados usando build.bat.
  • project.vhw → este esta guay, abre el proyecto en VisualHam, el editor que sera usado....

Traducido por omarcus

Codigo principal del Template

Ahora, deberás abrir template.pnproj, o ir dentro del directorio source/ y abrir main.c. Este es el nombre recomendado, main.c es el archivo principal del programa. De hecho, contiene todos los elementos basicos que serán cargados por defecto cuando la rom se ejecute. El template main.c contiene todo lo necesario para ejecutar PAlib. Si tu compilas y ejecutas las roms en un emulador o en DS, Si compilaras y ejecutaras la rom en un emulador o DS, tal cual esta en el main.c, no pasaría nada, simplemente verías dos pantallas en blanco.... Esto es lo que ves la primera vez que abres main.c:

// Includes
#include <PA9.h>       // Include for PA_Lib
 
// Function: main()
int main(int argc, char ** argv)
{
	PA_Init();    // Inicializa PA_Lib
	PA_InitVBL(); // Inicializa un VBL standard
	
	// Bucle infinito para mantener el programa funcionando
	while (1)
	{
		PA_WaitForVBL();
	}
	
	return 0;
} // End of main()

translated by: Doctor_Who

(OM)

Decodificando el código !

Si ya tienes conocimientos de programación en C++, probablemente esto te va a resultar muy secillo. Para los que no lo tienen, quizás no lo sea tanto, por eso detallaré cada linea a continuación...

// Includes 
 

Simple : // Significa que el texto a continuación es un comentario... Cuando ponemos //, le estamos diciendo al compilador que no compile lo que le sigue a la derecha, porlo que puedes escribir cualquier texto como comentarios! Esta linea esta solamente ahi para decir que puedes poner archivos para incluir aquí (imagenes, etc...)

#include <PA9.h> 
 

Esto significa: Por favor incluye la librería Palib dentro de mi código, yo lo necesitaré ! Si no pones esto, las funciones de la librería Palib, no serán reconocidas, y obtendras errores. El concepto de usar includes, llegará a ser muy importante despues ya que los includes son usados para añadir archivos con graficos, otro código importante, y más.

int main(int argc, char ** argv)

Esto puede verse raro, pero lo tendras en todos los projectos: es el comienzo de tu programa, donde todo comienza. No te preocupes intenando averiguar por que está :) simplemente que sepas que cualquier cosa detras de ‘{’ sera ejecutado !

PA_Init();    // Initializes PA_Lib
PA_InitVBL(); // Initializes a standard VBL 
 

Estas 2 lines se usaran en todos los proyecto que usen Palib. La primera es una inicialización general. Esto prepara tu programa para usar sprites, fondos, texto, todo. Sin esto la Palib no empezará a funcionar. La segundo, con el VBL, puede ser modificada por usuarios avanzados. Basicamente, el VBL permite sincronizar el programa con la pantalla, a 60 frames por segundo. Si no inicializas el VBL, cualquier programa funcionara los más rápido posible (como 100000 frames por segundo, lo cual es injugable) o no funcionará del todo (quedándose colgado en el primer frame). Siempre debes dejar estas dos lineas en tu programa.

// Infinite loop to keep the program running
	while (1){

El comando while, ejecuta el codigo que sigue, en corchetes, mientras el resultado del comando en el (aquí esta a 1), es diferente de 0. Aquí, siempre es 1, asi basicamente este un loop infinito. Para que? Bien, si no tienes ese loop, cada linea del codigo sera ejecutada solamente una vez y el programa saldrá, sin mostrar nada más. Esto permite al programa continuar de manera infinita, o por lo menos hasta que es jugador pulse el boton de apagado. El concepto es que en cada ejecución atraves del loop while, el programa calculará todo lo que necesita para la proxima vez que dibuje la pantalla y despues lo dibujará.

PA_WaitForVBL();

Este último comando sincroniza el loop infinito que comentamos antes, con la fracuencia de pantalla (60fps). Si no la pones, el programa funcionará como dije antes, MUCHO mas rapido que la frecuencia de la pantalla

	}
	
	return 0;
} // End of main()

Todo esto es el final de codigo, siempre ahi, siempre como este, no te preocupes por el, solo dejalo ahi solo :p Ahora sabes todo sobre el template, vamos a ver como mostrar texto !

Micheal Bach 30/11/2005 09:37 — Translated by Doctor_Who

Hola Mundo

Un simple Hola Mundo, sirve para mostrar que facil puede ser... Con este no entraremos en detalles de programación para la DS, solo es para mostrarte que puede ser facil y para introducirte al dia 2 :p

El sistema de textos utiliza los backgrounds, normalmente un background (tienes cuatro capas para elegir), y tambien puedes elegir que pantalla y que y donde ponerlo.Hay otras funciones como configurar la fuente del texto, o cambiar el color de las letras, pero ya las veremos mas tarde :p

Puedes encontrar una copia (o muy similar) de este código en PAlibExamples/Text/Helloworld

#include <PA9.h> //Include PAlib
 
int main(void)
{
	PA_Init();     //Inicia la libreria PA_Lib
	PA_InitVBL(); // Inicia el Vertical Blanking
 
	PA_InitText(1,2); //Escribelo para escribir en la pantalla 1, background 2
	PA_OutputSimpleText(1,1,1,"Hello World !");  //Escribe el texto en la pantalla 1, con coordenadas 1,1
 
	while(1)
	{
		//Loop infinito para seguir ejecutando el programa indefinidamente
                PA_WaitForVBL();
	}
	
	return 0;
}

Como puedes ver, la mayoria del código es muy similar, pero no es exactamente igual, al código basico. En realidad hemos añadido dos lineas:

        PA_InitText(1,2); //Escribelo para escribir en la pantalla 1, background 2
	PA_OutputSimpleText(1,1,1,"Hello World !");  //Escribe el texto en la pantalla 1, con coordenadas 1,1

Lo primero se usa para iniciar el texto, cargando la fuente del texto en la video ram de la DS. Si no se hiciese esto, el texto pareceria un garabato... deberia ser como escribir, pero cambiando cada letra de forma aleatoria ... no serviria ;) PA_InitText tiene 2 argumentos: la pantalla (0 para la pantalla inferior, 1 para la pantalla superior), y el background a usar (0 para la capa mas superior, 1 para la siguiente, 2, y 3 para la mas inferior...).

PA_OutputSimpleText(1,1,1,”¡Hola Mundo!”), como dijimos, escribe el texto en la pantalla. Si el background fué iniciado con InitText... (En estos momentos, te habras dado cuenta que las funciones PAlib empiezan por PA_...) La funcion texto tiene 4 argumentos:

  • Pantalla (0-1)
  • Horizontal (X) tile desde el que empieza, desde 0 hasta 31. Cada tile es un cuadrado de 8×8 pixeles, asi que el tile 0 esta en la posicion 0, tile 1 en la posicion 8 (en pixeles), etc...
  • Posición vertical , es lo mismo que el horizontal, pero desde 0 hasta 23...
  • Texto... este texto empieza y acaba con ‘“‘, para que el compilador C lo reconozca...

Una vez entendido esto, simplemente pulsa F6 para compilar y ejecutarlo en DualiS, o F7 para compilarlo y ejecutarlo en DeSmuME ! Pulsando F5 hace una compilacion normal sin cargar la rom(se puede utilizar para compilarlo y pasarlo a la DS...)

Usando PALib con Visual C++ 2005 Express

Como desarrollador que soy, trabajo con Visual Studio a diario. Así que, cuando decidí empezar a programar para la NDS, me encontré probando muchos IDEs diferentes (Entornos de Desarrollo Integrados), tratando de encontrar las características que tenía en Visual Studio. Probé con Programmers Notepad, VisualHAM, EditPlus, PSPad, y muchos más. Ninguno me convencía del todo.

Así que empecé a indagar cómo podría usar el Visual C++ 2005 Express (de libre descarga) con PALib. Y aprendí unas cuantas cosas de diferentes sitios: parte de ello en la Wiki francesa sobre PALib (No sé leer en francés, pero me guiaba por las imágenes), parte en las FAQ (preguntas frecuentes) de devkitPro, hasta que finalmente logré realizar un proyecto en PALib utilizando Visual C++. Ahí es cuando descubrí el tutorial de VCExpress para OGRE’s (un motor 3D), así que decidí retocar un poco mi proyecto base para convertirlo en tutorial.

En esta guía explicaré cómo puedes configurar un entorno de desarrollo en pleno funcionamiento con Visual C++ 2005 Express y PALib. Como puedes ver en la siguiente imagen, existen unas cuantas ventajas al utilizar este método:

  • Un entorno de desarrollo completamente integrado gracias al administrador de proyectos.
  • Empezar a trabajar un proyecto basico con unos pocos clics.
  • Autocompletado de código / tecnología IntelliSense
  • Información sobre errores de compilación en el propio entorno
  • La posibilidad de construir tu aplicación completa pulsando una sola tecla
  • Probar tu aplicación pulsando también una sola tecla.

Requisitos

Antes de que empieces, asegurate de tener instaladas las siguientes cosas:

Sigue las guías de la wiki de PALib para asegurarte de que puedes al menos compilar y ejecutar un proyecto basico (utilizando cualquier editor y la línea de comando “make”), para que puedas estar seguro de que tu entorno de desarrollo está correctamente configurado.

Importante: Te sugiero instalar PALib dentro de la carpeta devkitPro, porque el asistente (básicamente lo que es la función de autocompletar código) es probable que no funcione si lo instalas en otro lugar.

*Esto necesita actualizarse a VC++ 2008

Configuración del entorno

Cuando instalas el devkitPro y el PALib, estos también añaden algunas variables de entorno en tu sistema. Pero estas variables son de uso para la herramienta “make”, de modo que el nombre de la ruta está escrito en “Estilo UNIX”. De modo que, para que PALib y devkitPro puedan compilar bajo Visual Studio, primero necesitamos poner una nueva variable de entorno.

Entra en “Inicio → Configuración → Panel de Control → Sistema”. Pincha en “Avanzado” y después en “variables de entorno”. En la parte de “Variables de Sistema” (la de abajo) pincha en el botón “Nueva” y añade una variable con el nombre “DKP_HOME”. En el recuadro de “Valor”, escribe la dirección de la carpeta raíz donde está instalado tu devkitPro, “Estilo Windows” (por ejemplo, “c:\...” en vez de “/c/...”).

Si utilizar Windows Vista necesitarás derechos de administrador. Aquí la configuración de las variables de entorno está en “Inicio → Panel de Control → Sistema y Mantenimiento → Sistema → Configuración avanzada del sistema (en la columna azul de la izquierda)”. O simplemente botón Inicio, y en el recuadro inferior donde pone Iniciar búsqueda, introduce systempropertiesadvanced.

Instalación

Descarga el asistene aquí: http://www.thechip.net/images/PALibAppWizard.zip

Ahora instalemos el asistente PALib. Extra el contenido del ZIP dentro de una carpeta PERMANENTE. Los archivos de plantilla quedarán ahí y no podrán ser eliminados, de lo contrario te cargarás el asistente. Te recomiendo utilizar una carpeta llamada “PALibAppWizard” dentro de la carpeta raíz devkitPro, así estará junto con “PALibExamples” y “PALibTemplate”. Eso es lo que yo hago.

Después de que extraigas los contenidos, verás dos archivos JavaScript: “VC8_Express_Setup.js” y “VC8_Setup.js”. Como seguramente supondrás, el primero es para Visual C++ 2005 Express y el segundo es para otras versiones de Visual C++ 2005. Haz doble clic sobre el correspondiente a tu version e instalará el asistente de forma automática. Yo sólo tengo Visual C++ 2005 Express, así que no me culpéis si el asistente no funciona con VC++ 2005 Pro. No puedo probarlo. Desde DtD Software: He probado el script con Microsoft Visual Studio 2005 Pro y funciona como la seda.

Para hacerlo funcionar con VC2008 Express, modifica lo siguiente: cambia todos los “8.0” a “9.0” y los “VC8” a “VC9” en “VC8_Express_Setup.js” cambia “Wizard=VsWizard.VsWizardEngine.8.0” a “Wizard=VsWizard.VsWizardEngine.9.0” en “PALibAppWizard.vsz” después ejecuta el archivo .js

Si todo salió bien, verás el siguiente mensaje:

Si utilizas Windows Vista verás el mensaje anterior pero, aun así, no se habrá instalado correctamente. Así que copia manualmente los archivos especificados a continuación.

Instalación Alternativa, Método 1 - Inicio -> Ejecutar

Si tus archivos .js están registrados en otro programa, como Dreamweaver, el método previo no funcionará (el script se abrirá dentro del editor, y no funcionará). Si es tu caso, puedes ejecutar manualmente el script .js, mediante el cuadro Run. Haz clic en Inicio y después en Ejecutar y escribe:

WScript.exe <ubicación del setup js>

La ubicación anterior debería ser el camino absoluto y el nombre del archivo .js que necesitar utilizar. Con eso debería funcionar.

Instalación Alternativo, Método 2 - Copiar archivos manualmente

Si tienes miedo de que ponga en el archivo .js algún virus ultra-potente que haga reventar tu monitor y borre todos los DVDs que tengas en un kilómetro a la redonda, puedes copiar manualmente los archivos del AppWizard a otra ubicación. ,Sigue lo siguientes pasos:

  1. Abre el PALibAppWizard.vsz en tu editor de texto.
  2. Cambia “ABSOLUTE_PATH” a la carpeta donde extrajiste el ZIP del AppWizard.
  3. Copia “PALibAppWizard.ico” y “PALibAppWizard.vsz” en:
    • [Visual Studio]/VC/Express/VCProjects
  4. Copia “PALibAppWizard.vsdir” en:
    • [Visual Studio]/VC/Express/VCProjects/NintendoDS
    • (Puedes crear la carpeta “NintendoDS” manualmente)

Eso es todo, tu AppWizard se ha instalado. Ahora sigue el resto de la guía para configurar algunas cosas más en tu Visual Studio.

Creación del Primer Proyecto

Abre Visual C++. Antes de apresurarte a hacer clic en “Nuevo Proyecto” para ver el PALib, hagamos una cosa más que nos será de gran utilidad. Como sabemos que a la herramienta “make” que utilizamos para compilar un proyecto en PALib no le gustan los archivos largos ni los directorios con espacios, te sugiero que, dentro de Visual C++, cambies la ruta especificada donde se guardan por defecto los proyectos, así no tendrás que especificarla cada vez que crees uno nuevo.

Ve a “Tools”, después “Options”, después “Projects and Solutions”, y ahí en “General”. Cambia la celda “Visual Studio Projects Location” a una carpeta sin espacios. Te sugiero algo corto, como verás que he hecho yo en la siguiente imagen.

Ahora ya puedes hacer clic en “Archivo” → “Nuevo” y seleccionar “Nuevo Proyecto”. Si instalaste el AppWizard correctamente, verás una nueva categoría llamada “NintendoDS”, y dentro de esta, tendrás el asistente “PALib Application”. Esto es un proyecto preconfigurado, con todas las cosas que necesitas para poder compilar un proyecto PALib dentro de Visual C++ ya configurado para ti. Introduce un nombre para el proyecto, comprueba la ubicación para estar seguro de que no tienes un directorio con espacios, y haz clic en “Aceptar” para iniciar el asistente.

No hay mucho material para cambiar desde el asistente. Estuve pensando en algunas opciones que podría incluir en él, pero mi creatividad no estaba por la labor cuando escribí este asistente. La primera pantalla es una visión general del proyecto que estás creando. haz clic en “Siguiente” cuando estés listo para continuar.

En esta segunda página, puedes elegir entre “aplicación estándar” y “aplicación mínima”. “¿Cuál es la diferencia?”, te preguntarás (en lugar de preguntarme a mi, ajajajej... ejem). Es sencillo: la segunda opción es lo mínimo que necesitas para construir un proyecto en PALib. Puedes compilarlo y ejecutar la aplicación que genera, pero no hará nada. La primera aplicación, en cambio, es una aplicación “Hola Mundo” completamente funcional, con dos líneas más de código que realmente hacen algo. Y esta es la gran diferencia! Haz clic en “Finalizar (/Finish)” para generar tu proyecto.

Ahora probaremos los archivos generados por el asistente:

  • logo.bmp → esta es la imagen que mostrará tu aplicación en los cargadores de la DS.
  • logo_wifi.bmp → el logo que se usa con el WiFi.
  • main.cpp → el archivo de programa main, con parte del código ya escrito para ti.
  • Makefile → un archivo de creación PALib optimizado para Visual Studio.
  • ReadMe.txt → información.

Fíjate en cómo Visual Studio es capaz de organizar tu proyecto mediante el tipo de contenido... Es incluso mejor cuando tienes un montón de archivos en tus proyectos!

He retocado el Makefile del PALib (que se encunetra en la plantilla PALibTemplate) para que pueda funcionar mejor con Visual Studio. De este modo, puedes usar todas las opciones de creación que ofrece Visual Studio: “Build”, “Rebuild” y “Clean”. Rebuild realmente es lo mismo que abrir “Clean” y después “Build”.

Bien, estamos listos, probemos ahora nuestro proyecto por primera vez. Haz clic en “Build” y después en “Build Solution”, o pulsa F7. Visual C++ empezará a compilar tu proyecto utilizando el Makefile. Puedes ir viendo lo que hace en la ventana “Output” (de salida). Esto compilará todos tus archivos fuente, los enlazará en un archivo binario (código máquina), y llamará a las herramientas que generan tres archivos para ti: un “.nds”, un “ds.gba”, y un “.sc.nds”. Estos archivos serán generados en la subcarpeta “Release” (publicación) de tu proyecto. Si la última línea en la ventana de salida muestra “Build: 1 succeeded”, entonces todo ha salido bien. Si no has tocado el código y aún así aparece un error, estás bien, pero que bien jjjorobado... En este caso vas a tener que eliminar los archivos DevKitPro y PaLib y después instalarlos de nuevo y seguir los pasos desde el comienzo de la creación y asegurarte de que no te has saltado nada.

NOTA: Para los usuarios de Windows Vista, id a Proyecto → Propiedades de [NombreProyecto]. Expandir el árbol “Propiedades de configuración” en la barra de la izquierda y hacer clic en NMake. Después clic en la casilla “Build Command Line” y en una casilla con ... dentro debería aparecer a la derecha. Haz clic aquí para hacer aparecer un area de texto donde escribir los comandos. Inserta una nueva línea antes de lo que hay ya escrito y añade “set PATH=C:\devkitPro\devkitARM\bin;C:\devkitPro\devkitARM\arm-eabi\bin;C:\devkitPro\devkitARM\libexec\gcc\arm-eabi\4.1.1;%PATH%” en él (sin comillas). Guardalo, ahora deberías poder compilar correctamente. A mi me aparecen algunos errores en un par de archivos de cabecera de sonido del PALib sobre conversiones incorrectas desde punteros void a punteros u32. Si haces doble clic en el error, serás transportado a la línea en cuestión. Añade un (u32*) para que quede así “blahblah = (u32*)blaghblagangjklaglk;” en sendas líneas (las que generan el error). Yo hice eso y la compilación me funcionaba como la seda y la NO$GBA leía el archivo sin problema. – Ari Velazquez (arivelz@gmail.com)

Finalmente no olvides configurar las variables del directorio Visual C++ para que funcione el sistema IntelliSense con el PALib! Ve a Herramientas → Opciones → Proyectos & Soluciones → Directorios VC++, después elige “Incluir Archivos” del menú deslizante de arriba a la derecha, y añade “<path to PALib>\include\nds” y “<path to PALib>\libnds\include” (sin las comillas, y sustituye <path to PALib> por la carpeta donde instalaste el PALib). Ahora sólo pulsa Ctrl+Espacio, y VC++ autocompletará las funciones y nombres de clase por ti.

Configuración de un emulador en Visual C++

Este paso es opcional, pero altamente recomendable. Vamos a configurar un emulador de NDS como Herramienta Externa, así podrás probar tus proyectos con facilidad. Haz clic en “Herramientas”, “Opciones Externas”. Después haz clic en “Añadir” para añadir una herramienta externa. Puedes crear una herramienta externa para cada emulador que utilices, pero aquí muestro cómo crear una para NDeSmuME, el único que yo utilizo.

Escribe el nombre del emulador en el recuadro donde pone “Título”, después la ruta absoluta al ejecutable (EXE) del emulador en el recuadro “Commando”. En el recuadro “Argumentos” puedes escribir “$(TargetDir)\$(TargetName).nds” (sin comillas), y en “Directorio Inicial” escribir “$(TargetDir)”. De este modo estás pasando el archivo .nds que acabas de generar como argumento al emulador, y así se ejecutará de forma automática. Si utilizas un emulador como No$GBA, deberás cambiar “.nds” por “.ds.gba” sin comillas en el recuadro Argumentos.

Puedes configurar incluso un acceso directo en el teclado (dentro de “Herramientas”, “Opciones”, “Entorno”, “Teclado”), para poder probar tu aplicación rápidamente. Para configurar una clave para tu emulador, elige el comando “Tools.ExternalCommand[x]” de la lista, donde [x] es el orden de tu herramienta en la lista. Por ejemplo, mi emulador es la tercera herramientas en la lista, así que su comando es “Tools.ExternalCommand3”. Mi acceso directo es “Shift+F10”, así que cuando cambio algo en mi código, sólo tengo que pulsar “F7” para generar y “Shift+F10” para probarlo. Fácil, ¿no?

Puedes configurar un script para copiar el archivo a tu tarjeta como Herramienta Externa, para que sea todavía más fácil probar la aplicación en tu NDS. No he incluido cómo hacerlo en la guía por una razón muy sencilla: No tengo una Nintendo DS. Estoy pensando en comprarme una (y una Supertarjeta), pero de momento no hay guita. Así que cualquier donación será bienvenida. ;)

Edit: Si alguno quiere saber cómo se configura ese script que haga lo siguiente para crear una herramienta externa. Después pon “C:\WINDOWS\system32\xcopy.exe” en el recuadro de comando (esto es para XP, es posible que sea distinto en Windows Vista) después poner “$(ProjectDir)\Release\$(TargetName).nds X:\ /y” (donde x es la letra del dispositivo) en el cuadro de Argumentos, y finalmente “$(TargetDir)” en el recuadro de directorio inicial.

Conclusión

Eso es todo. Ahora tienes un entorno de desarrollo completamente funcional para tus juegos y aplicaciones de Nintendo DS. Obviamente no podrás depurar tu proyecto utilizando el depurador Visual C++ (aunque sería grandioso) pero todo lo demás defería funcionar de forma impecable.

Actualización: Me ha salido un error con el último PDALib en VCExpress, está reflejado aquí: http://forum.palib.info/index.php?topic=4200.0

Linux

Originalmente realizado por KerneL, revisado por ObsidianX, Traducido por Omarbenyabir.

Éste es un bonito método paso-a-paso para usar PAlib y compilar bajo Linux. Tengo Ubuntu (Linux) funcionando en mi ordenador, pero es muy genérico para la mayoría por eso debe de escoger su distro adecuada. Para los usuarios de Apple MacOSX, la mayoría de estos manuales funcionan. La única diferencia es el uso del comando ‘make’. Para ésto puede utilizar XCode

Instalación Rápida

Para tener una instalación rápida de PAlib en Linux puedes usar el Heather’s Script (Modificado por Rapfnny):

#! /bin/bash
 
#
# PAlib Linux Installation Script by Rapfnny (www.bob-omb.net - irc.bob-omb.net)
# 08/10/2009
#
 
echo
echo 'This script will download and install everything needed to use devkitPro and PAlib with linux as of 08/10/2009.'
echo ''
echo 'Press ENTER to continue.'
read
 
#
# devkitPro Directory
#
 
echo ''
echo 'Changing to the home directory: ' $HOME '...'
cd $HOME 
 
echo ''
echo 'Creating the directory for devkitPro:' $HOME'/devkitpro ...'
mkdir devkitPro
 
#
# DevKitARM
#
cd $HOME/devkitPro
 
echo ''
echo 'Downloading devKitARM...'
wget http://downloads.sourceforge.net/project/devkitpro/devkitARM/devkitARM%20release%2026/devkitARM_r26-i686-linux.tar.bz2
 
echo ''
echo 'Decompressing devKitARM...'
bunzip2 devkitARM_r26-i686-linux.tar.bz2
tar xvf devkitARM_r26-i686-linux.tar
rm devkitARM_r26-i686-linux.tar
 
#
# LibNDS
#
 
cd $HOME/devkitPro
mkdir libnds
cd libnds
 
echo ''
echo 'Downloading LibNDS...'
wget http://downloads.sourceforge.net/project/devkitpro/libnds/libnds%201.3.8/libnds-1.3.8.tar.bz2
 
echo ''
echo 'Decompressing LibNDS...'
bunzip2 libnds-1.3.8.tar.bz2
tar xvf libnds-1.3.8.tar
rm libnds-1.3.8.tar
 
#
# dsWifi
#
 
cd $HOME/devkitPro/libnds
 
echo ''
echo 'Downloading dsWifi...'
wget http://downloads.sourceforge.net/project/devkitpro/dswifi/dswifi%200.3.10/dswifi-0.3.10.tar.bz2
 
echo ''
echo 'Decompressing dsWifi...'
bunzip2 dswifi-0.3.10.tar.bz2
tar xvf dswifi-0.3.10.tar
rm dswifi-0.3.10.tar
 
#
# libFAT
#
 
cd $HOME/devkitPro/libnds
 
echo ''
echo 'Downloading libFAT...'
wget http://downloads.sourceforge.net/project/devkitpro/libfat/libfat%201.0.4/libfat-nds-1.0.4.tar.bz2
 
echo ''
echo 'Decompressing libFAT...'
bunzip2 libfat-nds-1.0.4.tar.bz2
tar xvf libfat-nds-1.0.4.tar
rm libfat-nds-1.0.4.tar
 
#
# PAlib
#
 
cd $HOME/devkitPro
 
echo ''
echo 'Downloading PAlib...'
mkdir PAlib
cd $HOME/devkitPro/PAlib
wget http://www.programix.info/other_downloads/PAlib090801.7z
 
echo ''
echo 'Decompressing PAlib...'
7z x PAlib090801.7z
 
rm PAlib090801.7z
 
#
# Paths
#
 
echo ''
echo 'Finished setting up PAlib. You need to set up the paths permanently in ~/.bashrc'
echo 'A text editor will open. Add the following lines of text to it and save and close the text editor.'
echo ''
echo 'export DEVKITPRO=~/devkitPro'
echo 'export DEVKITARM=$DEVKITPRO/devkitARM'
echo 'export PAPATH=$DEVKITPRO/PAlib/lib'
echo ''
echo 'Press ENTER to continue.'
read
 
gedit ~/.bashrc
 
source ~/.bashrc

Para usar el Heather’s Script, copia y pega en un archivo, llamado “install.sh” y ejecuta “./install.sh” en un terminal. Ésto descarga todos los archivos necesarios, los extrae y los coloca en las carpetas adecuadas. Se instala en la carpeta devkitPro en su carpeta Home.

Nota de Omarbenyabir: Algunos archivos no los descarga. Adjunto un .rar en el que esta todo lo necesario y funciona a fecha de 4-1-10. Solo hace falta descomprimirlo en la carpeta personal. http://www.MegaShare.com/1724082 http://rapidshare.com/files/330376359/DevkitPro_preparado_para_Ubuntu.rar elige el que quieras

Requerimientos

Éstos son los componentes que necesitas para instalar el entorno de desarrollo en Linux:

La última versión de PAlib disponible en éste link: (nota de Omarbenyabir: ésta no es la última versión, pero el link funciona a fecha de 3-1-2010)

* http://www.palib.info/downloads/Stable/PAlib_080823_Archive.zip

devkitARM release 21: (es la release 21 porque otras releases no son compatibles con PAlib 080823)

* http://www.megaupload.com/?d=JFQ496UO

libnds 20071023

* http://www.megaupload.com/?d=WL0WXL3K

dswifi 0.3.6

* http://www.megaupload.com/?d=87J6QVEQ

libfat-nds 20070127

* http://www.megaupload.com/?d=RHF0LICP

Organización de las carpetas

Antes de nada, hay que organizar las cosas. Creamos una carpeta llamada ‘devkitPro’ y le habilitamos los derechos de lectura/escritura. Ésta guía asume que la carpeta se encuentra en tu directorio personal, pero no tiene por qué ser así. Extrae todo lo de los archivos PAlib, devkitARM, y libnds al directorio devkitPro. Después extrae dswifi y libfat-nds en la carpeta libnds.

Ahora debes tener una organización como ésta:

/
|--home
       |--<login>	
	     |--devkitPro
		|-devkitARM
		|--libnds
		     |-dswifi
		     |-libfat-nds
		|-PAlib		

Variables de entorno

La instalación de PAlib requiere tres variables de entorno. La mejor manera de hacerlas es abrir el archivo “~/.bashrc” (si usas otro bash usa el archivo rc correspondiente). Abre tu editor de textos favorito y añade estas tres líneas (al final):

export DEVKITPRO=/home/yourUsername/devkitPro  #this will need to change if your devkitPro folder is elsewhere. Also, replace "yourUsername" with your actual username.
export DEVKITARM=$DEVKITPRO/devkitARM
export PAPATH=$DEVKITPRO/PAlib/lib

Adapte estas líneas de acuerdo a su ubicación en la instalación. Aplicar los cambios con este comando (sólo hay que hacer esto una vez):

$ source ~/.bashrc

Verifica que todo está bien con el comando ‘env’ (muestra todas las variables de entorno). Los siguientes comandos pueden ayudarte a buscar las nuevas variables.

$ env | grep DEVKITPRO
$ env | grep DEVKITARM
$ env | grep PAPATH

Tenga en cuenta que si se ejecuta alguno de estos comandos y sólo recibe otros $ prompt, la variable no se ha creado. Si este es el caso vuelva atrás y compruebe su archivo .bashrc para comprobar si lo ha escrito bien. Sepa también que no verá $ HOME en lo que muestra el comando ‘env’ porque el path es su carpeta home. Ejemplo:

$ env | grep DEVKITPRO
DEVKITPRO=/home/<login>/devkitpro
$

El comando Make

Bien, lo que necesita usted saber es si usted puede usar realmente PAlib. Para hacerlo, abre un terminal. Necesitarás compilar en paz para comprobarlo: escribe “make” en el terminal. Si le devuelve algo así:

bash: make : unknown command

Entonces tienes un problema. En caso contrario, si recibes algo diferente, enhorabuena, puedes continuar. Si obtienes este error, abre tu gestor de paquetes favorito (synaptic, aptitude o usa apt-get...) y busca por el paquete “make”. (Si no estás en Ubuntu, busca el paquete correspondiente a tu distro) Instálalo, el gestor se encargará de las dependencias. Ahora el terminal debe mostrar lo siguiente:

$ make
make: *** Pas de cibles spécifiées et aucun makefile n'a été trouvé. Arrêt.

O en un SO inglés:

$ make
make: *** No targets specified and no makefile found.  Stop.

Testeando el nuevo entorno

Ahora vamos a testear la nueva instalación. Ve a la carpeta /PAlib/examples/Text/HelloWorld , para un buen ejemplo en la primera prueba. Una vez ahí, escribe:

$ make

Si la compilación acaba en:

Nintendo DS rom tool 1.30 - Jul 24 2006 06:34:31 by Rafael Vuijk (aka DarkFader)built ... Keyboard.ds.gba
dsbuild 1.21 - Jul 24 2006
using default loader

Entonces el trabajo lo hemos realizado correctamente. Tienes un PAlib totalmente funcional, ¡Enhorabuena!

Si obtienes algún error verifica los foros para ver si han encontrado algo y lo han solucionado. De lo contrario, si usted consigue algo como lo siguiente:

$ make
main.c
In file included from /home/ryan/devkitPro/PAlib/include/nds/arm9/PA_Sound.h:15,
                 from /home/ryan/devkitPro/PAlib/include/nds/PA9.h:37,
                 from /home/ryan/devkitPro/PAlibExamples/Input/Keyboard/KeyboardCustom/source/main.c:2:
/home/ryan/devkitPro/PAlib/include/nds/arm9/PA_FS.h: In function 'PA_FSInit':
/home/ryan/devkitPro/PAlib/include/nds/arm9/PA_FS.h:66: error: 'REG_EXMEMCNT' undeclared (first use in this function)
/home/ryan/devkitPro/PAlib/include/nds/arm9/PA_FS.h:66: error: (Each undeclared identifier is reported only once
/home/ryan/devkitPro/PAlib/include/nds/arm9/PA_FS.h:66: error: for each function it appears in.)
In file included from /home/ryan/devkitPro/PAlib/include/nds/PA9.h:42,
                 from /home/ryan/devkitPro/PAlibExamples/Input/Keyboard/KeyboardCustom/source/main.c:2:
/home/ryan/devkitPro/PAlib/include/nds/arm9/PA_Motion.h: In function 'PA_MotionInit':
/home/ryan/devkitPro/PAlib/include/nds/arm9/PA_Motion.h:23: warning: implicit declaration of function 'motion_init'
make[1]: *** [main.o] Error 1
make: *** [build] Error 2

...entonces de alguna manera estropeaste el libnds y debes empezar de cero el proceso de extracción, teniendo cuidado de no volverlo a estropear.

Un IDE en Linux: Code::Blocks

Code::Blocks es un IDE para varios sistemas operativos y es bueno para Linux.Es muy parecido a Visual C++ 2008 Express para Windows

Configuración

Es bastante simple. Buscas instalar Code::Blocks así como sus plugins. En el repositorio de Ubuntu estos archivos se llaman ‘codeblocks’ y ‘codeblocks-contrib’. El ‘codeblocks-contrib’ instala algunos paquetes Contribuited, por lo que sin ella no puede establecer las opciones de entorno.

Cuando los tienes instalados, abre Code::Blocks y ve al apartado Settings(configuración) y, a continuación Environment y desplácese hacia abajo para Variables de entorno. Haga clic en Añadir y escribe:

Key: DEVKITPRO Value: Carpeta donde devkitPro esté instalado

Key: DEVKITARM Value: La carpeta devkitARM dentro de la carpeta devkitPro

Key: PAPATH Value: La carpeta ‘lib’ dentro de la carpeta PAlib dentro de la carpeta devkitPro

Haz click sobre ‘Set Now’ y después en ‘Yes’. Ahora estás totalmente preparado

Herramientas Linux

DeSmuMe es un emulador de código abierto y tiene una versión para Linux, la cual está includida en PAlib_080823_Archive.zip que has descargado antes.

Para compilarlo, vamos a la misma carpeta donde lo hemos extraido y ponemos esto en la consola( nota de Omarbenyabir: ésto es inutil, ya que desde el centro de software de ubuntu lo podemos encontrar) :

$ ./configure
$ make
$ sudo make install

DeSmuMe puede encontrarse en los repositorios de Linux.

En las basadas en RPM prueba el comando: yum install desmume En las basadas en DEB, será probablemente: apt-get install desmume

También puedes utilizar Dualis o NO$GBA ejecutables de Windows con Wine. Instalar Wine usando su gestor de paquetes(o el centro de software de Ubuntu) y luego ejecutar el emulador deseado a través de Wine.

$ wine Dualis.exe
etc...

Usted puede utilizar PAGfx en Linux (sí, sí, es un archivo. Exe que se puede ejecutar en Linux) siempre y cuando tengas instalado Mono. Mono es una. NET runtime y es más probable en su gestor de paquetes.Ir a echar un vistazo .... También tendrá que compilar la versión de Linux de la herramienta desde la PAGfx binario siempre con PAlib se codifica para la Microsoft.NET e incluye el código que no funciona en Mono. Usted puede encontrar algunos archivos binarios en los foros PAlib si no quiere pasar por la molestia de compilarlo usted mismo, pero creo que usted lo encontrará muy fácil de hacer;) Este es un proceso fácil, así que no te preocupes. Todo lo que necesitas hacer es instalar el compilador de Mono GMCS que, en Ubuntu, es tan fácil como escribir:


$ sudo apt-get install mono-gmcs

Después de esto, ve a /tools/pagfx-Linux/ en su directorio de PAPATH y escriba los siguientes comandos:

$ ./configure
$ make

Ahora, si quieres ser capaz de ejecutar en cualquier lugar PAGfx.exe ejecuta:

$ make install

but that’s a matter of preference. If you don’t want it globally accessible you can just copy the EXE out of the archive in /PAGfx/PAGfx/bin/Release. You’ll find that it’s already set to executable and you can run it right then and there. If this doesn’t work you can always prefix it with ‘mono ‘:

$ ./PAGfx.exe
o...
$ mono PAGfx.exe

EL archivo EFS_Lib en “Other Libs” del archivo PAlib que hasdescargdo comes with a Linux version of the EFS builder.

Alright we did all the work of setting it up for you, now go make us some games, damnit!

FAQ - Installing and Compiling

Mac OS X

Mac section added 12/19/2006 by http://v8media.com, using Mac OS X 10.4.8

Install Apple's Developer Tools (Xcode)

Any recent machine will come with the Developer Tools on the installer discs, or sometimes as a separate disc. If you just bought your machine, install off the disc.

If you didn’t just buy your computer, it’s best to look to Apple’s web site to get the most recent developer tools. The place to go for this is: http://developer.apple.com/tools/. It involves registration, but no money. Look around while you are in there, as there are some useful tools for all sorts of things you might do when scripting, programming, or even creating video on the Mac.

Once you have this installed you should have a folder at the root of your hard drive called “Developer”. You will also have many command line tools added. Most importantly, “make”.

Set Up Your Mac's Environment Paths

There seem to be many ways to do this, and it seems to depend partly on which “shell” you have installed or selected I use the Mac OS X default for 10.4, which is bash. To find out which shell you use, open the Terminal program (from Applications/Utilities) and then select the “Terminal” menu item and select “Window Settings”. Make sure the top drop-down item “Shell” is selected. In that screen, you should see the 2nd line saying Shell: . If it’s bash, here’s how to set your “environment paths”.

If you are using something other than bash, you either know what you are doing, or will need to find a tutorial to set up your environent paths for your shell.

Environment Paths are just paths in your operating system that you or a program define to let yourself or a program do something more easily. For example, say that everyday you have to log in to another machine using the terminal using ssh to check a university email. The first step would be to log in to the server, probably using a program called ssh. Here’s what a command for that might look like: “ssh -i firstname.lastname@server.university.com”. If you are doing this from your own machine, you can simplify this by making what is called an alias. your alias for this example might simply be “unimail” or something of the sort. Far easier to remember. We do this in a hidden file in your home directory called .bash_profile.

1) To create the file, or open the file if it already exists, open a new terminal window. 2) type in (without the quotes) “pico ~/.bash_profile”. Now you should see a blank screen and some text a the bottom starting with: Get Help, Exit, WriteOut . . . You are in a program called Pico. All control is via the keyboard, your mouse won’t help you here. 3) copy and paste these next two lines:

export DEVKITARM=/opt/local/devkitPro/devkitARM
export DEVKITPRO=/opt/local/devkitPro
export PAPATH=/opt/local/devkitPro/PAlib

4) Hold the “control” key, and then press the “x” key, this sends the Exit command to the program. It asks if you want to save, so press the “y” button. It then comes up with a screen asking what the name of the document should be, we gave it a name when we made the command to open Pico, so just hit the “return” key.

5) Either close this terminal window or type source ~/.bash_profile so that your changes will take effect in it.

6) There is no step 6.

Install DevKitARM, libnds, and dswifi

FIXME

Disclaimer: I have not gotten a dswifi app to compile yet, I’m filling in what I know how to do so that someone who knows this part well will have an easy time of updating this with the correct information. Thanks ahead of time to whoever fills this information in!

Download the current version of devkitARM (It was at 21 as of 11/25/2007). This includes devkitARM and libnds. Here’s the link: http://sourceforge.net/project/showfiles.php?group_id=114505&package_id=124207&release_id=549080. This is processor specfic. If you have an Apple PPC machine, download the osx version, if you have an Intel machine, download the Intel version. Both contain double-clickable package files. Go ahead and install these.

There are also examples listed “nds examples 20060817”. Download those, or a newer version if one exists. Now we start getting to issues. It seems like the libs we just installed aren’t fully aware of the capabilities of the OS, and don’t seem to be able to deal with spaces in the names of files. As long as you put the example files and any others that you are working on directly into the “Users/MyUserName/Documents” or in a folder with no spaces and with project names with no spaces, you will have no issues. I found it easier to put the stuff in a folder in the root of my hard drive. So I have “ianDS”, and “libnds_examples_20060817” as two folders in the root of my main drive.

After you place these files, we can test out some compiling. Here’s a step-by-step easy way to do this.

1) Have one Terminal window open, and one Finder window where you can see the example file you want to try compiling. I’m using this file: /libnds_examples_20060817/Graphics/2D/256_color_bmp/. What you want to be able to see is the draggable folder name of the project.

2) Type “cd " into the terminal. That’s a space after c, and d. 3) Drag the folder of the project you want to work on to the Terminal and let it go. It copied the whole path in there so you don’t have to do it your self or find your way there using shell commands. 4) type “make”

You should see something like this in your terminal window:

v8media.com_permanent_palib.info_wiki_compile_terminal_make.jpg

The important part there is where it says “built” near the bottom. As opposed to “Error”.

You should also see that your folder filled up a bit so it looks like this (if you are using column mode):

v8media.com_permanent_palib.info_wiki_compile_after.jpg

Woohoo! If you see this, you’ve just compiled multiple copies of a program. These can run on your flashed Nintendo DS or in emulators. For instructions on specific cards, look here, which is back up the page in the Windows section Putting the homebrew on the DS. If you are going to be doing much coding, I suggest using an emulator most of the time as this will be far faster than swapping cards, moving files, and unplugging and plugging cables every time you compile. Maybe just toss it onto actual hardware when you get something that you wonder how it looks for real or is complex enough that it may work differently than on an emulator.

One other thing you can do here while you still have the Terminal window open: type “make clean” and hit return. This should get rid of the files that were created during your “make” expedition. This can help you make sure that any errors you might get were not from extra files in your project.

PAlib

Next up is PAlib. http://palib.info/forum/modules/PDdownloads/. Take the latest stable release, in Zip format. Unzip it, and move the PAlib folder into /opt/local/devkitPRO alongside the other folders there. You may also need to replace /opt/local/devkitPRO/libnds with the version included with PAlib, but I would reccommend not doing this unless you get errors building PAlib examples ever. The rest of the folders and files in PAlib are examples and documentation, so they can go wherever you please.

Note: If you are having problems with testing, check that PA_Makefile is in the PALib directory (it may be in the PALib/lib directory). If it isn’t, move all the files from PALib/lib to PALib.

Testing PAlib

To test that everything has been installed properly, fire up Terminal.app and cd to the location where you installed PAlibExamples. Next type the following commands:

cd Demos/Bunny
make clean
make

With luck, you should see something like this after the last command:

arm-eabi-g++ -g -mthumb-interwork -mno-fpu -L/usr/local/devkitPRO/PAlib/lib 
-specs=ds_arm9.specs main.o -L/usr/local/devkitPRO/PAlib/lib -lpa9 
-L/usr/local/devkitPRO/libnds/lib -lfat -lnds9 -ldswifi9 -o build.elf
Nintendo DS rom tool 1.33 - Jan 31 2007 19:37:59
by Rafael Vuijk, Dave Murphy,  Alexei Karpenko
built ... Bunny.ds.gba
dsbuild 1.21 - Jan 31 2007
using default loader

Other Software

A piece of software that can be quite helpful on newer Apple Intel machines is WINE. WINE stands for WINE Is Not an Emulator. Since the newer Apple machines already have Intel chips, you don’t need an emulator to be able to run Windows programs, what you need is an environment to run those programs. Download from here: http://darwine.opendarwin.org/download.php. That’s an easy download and install, but you do need to have X11 installed, which you can find here: http://www.apple.com/downloads/macosx/apple/x11formacosx.html.

Some programs will need a Windows DLL file in order to run. If this is the case, you’ve got to find the DLL, maybe copy it from a Windows machine you have access to. Once you have it, just put it in the same folder with the program that you are trying to run. Start off simple and try with the sample programs that come with Darwine before you try something else.

Since the only programs you really need to run on the Windows side of things will most likely be the graphics conversion programs, being able to open them in a window instead of in a whole operating system is ideal. The program that comes with PAlib seems to work ok. You should find it here on your computer after installing PAlib: “/opt/local/devkitPro/PAlib/Tools/PAGfx/PAGC Frontend.exe”.

If you are running a less recent Apple machine with some sort of PPC chip (G3-G5) what you will want is a copy of QEMU. The Mac OS X version is called just “Q”. You can find this here: http://www.kju-app.org/kju/. If you are familiar with Virtual PC, you will find this to be pretty similar. Including that you will need a copy of Windows 98, 2000, or XP in order to use it.

Unfortunately, I have yet to get Darwine to run PAGfx, so I am currently using Parallels, which is a paid product. But worth not having to boot into Windows if all you are using is some tiny utility program. http://www.parallels.com/en/products/workstation/mac/. If you get Darwine to run some of these utilities, please post your success.

Another piece of useful software is GraphicConverter from LemkeSoft http://www.lemkesoft.com/. You can apparently use this to convert images to the format for the GBA and DS.

Here is how to do the preliminary steps: Make sure you have the most recent version of GraphicConverter. If you don’t it might not work. After you check (or download it), open your file in GraphicConverter. Simply save the file as a “Byte-Array-Header” file.

After you do this, you can take your “.h” file and put it into a piece of software called hConvert http://www.patatersoft.info/hconvert.html. hConvert will take your .h file and turn it into a .bin file.

See the site for more info: http://www.patatersoft.info/manual.html

With the release of PAGfx-Linux, MacOSX users now have the oportunity to use the PAGfx command line version without a problem. All you have to do is to install ‘mono’ (http://www.mono-project.com/Main_Page), automake 1.10 and autoconf. Autoconf can be installed using apt-get tool (very useful, install it if you haven’t yet), but automake has to be installed manually (apt-get only finds up to 1.9 version), however the instructions can be found easily googleing a bit. Then follow the instructions on the README file in PAGfx-Linux folder to install PAGfx. Once everything is installed you only have to put all your graphics on one folder, create the PAGfx.ini file (see sprites tutorial) and go to that folder on the terminal and type ‘pagfx’.

Wireless Setup

You will be glad to see that Apple’s Airport cards can be used to talk directly with the DS. Superb instructions here: http://www.macosxhints.com/article.php?story=20051119155606277.

FAQ - Instalación y Compilación

P1. Me sale el siguiente error cuando intento compilar un ejemplo: ‘make’ is not recognized as an internal or external command, operable program or batch file.

  • Supongo que devkitPro no se ha instalado correctamente, o que algunos paquetes (MSys) no se han instalado... prueba a reinstalarlo y mira si eso arregla tu problema. Recuerda, instalar también requiere establecer las variables de entorno correctamente. También si has movido alguno de los directorios o algo después de la descarga, no funcionará y te saldrán errores. Por favor reinstala en un directorio (c:/devkitPro/ preferiblemente) y no lo muevas!

P2. Obtengo el siguiente error cuando intento compilar un ejemplo: “Devkitpro has reached an internal error, it must shut down”.

  • No estoy seguro de por qué ocurre eso pero esto es lo que puedes hacer: asegúrate de que tienes el último instalador de devkitPro, ejecútalo y elige “Download only, don’t install”. Una vez hayas hecho eso, vuelve a ejecutar el programa y haz click en “Download an install”. No volverá a descargar los archivos, de modo que no tienes de qué preocuparte. Si aún no funciona, puedes ejecutar individualmente cada EXE descargado para conseguir el mismo efecto.

Translated by PadrinatoR 20/09/2006 11:21Sección de Linux y MacOS X en proceso por Omarbenyabir ============== Próximo → Día 2 - Aprendiendo CMollusk 28/11/2005 00:43 — Translated by Wonder Boy 10/09/2006 14:07//

 
day1es.txt · Last modified: 07/01/2010 16:36 by omarbenyabir
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki