Archive for April, 2009

Introducció al homebrew (3 de 3)

Sunday, April 5th, 2009

En aquest tercer i darrer tutorial instal·larem un emulador de Nintendo DS que ens servirà per comprovar els resultats de les nostres aplicacions sense la necessitat de fer servir la consola portàtil.

Tal i com vam comentar en la primera part, el cartutx R4 ens servirà per carregar el nostre homebrew a la DS. No obstant, això només és pràctic una vegada els programes estan acabats i no pas pels que encara s’estan desenvolupant. Més que res per que cada vegada que volguéssim provar el programa en la consola hauríem de compilar, gravar el programa a l’R4, encendre la DS i observar els resultats. Per això instal·larem un emulador, el qual ens permetrà veure els resultats en el nostre ordinador de forma immediata, sense la necessitat d’haver de gravar el programa a l’R4 i encendre la DS.

Per acabar també instal·larem i configurarem un IDE que enllaçarem amb l’emulador i que ens ajudarà al moment d’escriure els nostres programes.

3.1 Instal·lació de l’emulador

Instal·larem l’emulador DeSmuME que per sort es pot instal·lar des dels repositoris d’Ubuntu escrivint una sola línia en el terminal:

$ sudo aptitude install desmume

$

3.2 Instal·lació i configuració de l’IDE

Com a entorn de desenvolupament instal·larem un eclipse, que tot i que en un principi està pensat per a desenvolupar projectes en Java, podem trobar versions preparades per a programar projectes en C i C++.

Obrim un navegador i descarreguem en la nostra home l’eclipse IDE per C/C++ des d’aquesta pàgina. Un cop descarregat obrim una sessió de terminal i el descomprimim:

$ tar -zxvf eclipse-cpp-ganymede-SR2-linux-gtk.tar.gz
$

Des del navegador d’arxius anem a la carpeta eclipse i executem el programa (és necessita tenir la màquina virtual de Java per fer-ho!). Al ser la primera vegada que l’executem ens demanarà de crear un directori de treball en la nostra home a on s’emmagatzemaran els projectes. Podem deixar tranquil·lament el nom el que ens proposa per defecte.

Acte seguit,

  • Tanquem la pestanya de Welcome
  • Des del menú anem a File -> New -> C Project

Screenshot 01

  • Li donem un nom al projecte (per exemple prova)
  • A tipus de projecte seleccionem Makefile -> empty project
  • Cliquem el botó Finish

Screenshot 02

  • Des del menú anem a File -> Import…
  • Seleccionem General -> File System
  • Cliquem el botó Next
  • Cliquem el botó Browse…
  • Busquem i seleccionem la carpeta template de les PAlib
  • Cliquem el botó Finish

Screenshot 03

  • Tornem al menú i cliquem File -> Properties
  • Seleccionem la categoria C/C++ Build
  • Anem a la pestanya Behaviour
  • Substituïm tots els camps all per build
  • Cliquem el botó Apply

Screenshot 04

  • Seleccionem la categoria C/C++ Build -> Build Variables
  • Cliquem l’opció Show system variables
  • Fem doble clic sobre les variables DEVKITPRO, DEVKITARM i PAPATH
  • Cliquem el botó Apply

Screenshot 05

  • Seleccionem la categoria C/C++ General -> Path and Symbols
  • Anem a la pestanya Includes
  • A Languages cliquem l’opció GNU C
  • Cliquem el botó Add…
  • Cliquem el botò d’File system…
  • Busquem i seleccionem la carepta lib/include/nds de les PAlib
  • Cliquem el botó Ok
  • Cliquem el botó Apply
  • Repetim el procés per al llenguatge GNU C++
  • Cliquem el botó Ok

Screenshot 06

3.3 Enllaçar l’eclipse amb l’emulador

Arribat en aquest punt només ens queda enllaçar l’entorn de desenvolupament amb l’emulador que hem instal·lat en l’apartat 3.1.

  • Des del menú anem a Run -> External Tools
  • Seleccionem External Tools Configurations…

Screenshot 07

  • Seleccionem Program
  • Fem clic amb el botó dret sobre Program
  • Creem una nova configuració

Screenshot 08

  • A Name podem posar DeSmuME
  • A Location posem /usr/games/desmume
  • A Working Directory cliquem Browse Workpsace…
  • Seleccionem el projecte i cliquem OK
  • A Arguments posem prova.nds (“nom_projecte” + “.nds”)

Screenshot 09

  • Cliquem el botó Apply
  • I per últim cliquem el botó Run

Això generarà un fitxer prova.nds (que posaríem a l’R4) dins la carpeta del projecte del nostre directori de treball, que l’emulador recuperarà com a paràmetre i executarà:

Screenshot 10

Ara només quedaria adquirir uns bons llibres de C, algun altre de videojocs, estudiar la gran varietat d’exemples que venen amb les PAlib, i començar a programar. Happy coding!

Enllaços per començar amb les PAlib

PAlib – Wiki
PAlib – Fòrums
Nintendo DS Development Tutorial :: PAlib

Fonts consultades

Toshen Project Devblog – Configurer Eclipse
PlayerAdvance.org – Utiliser Eclipse comme IDE

Introducció al homebrew (2 de 3)

Wednesday, April 1st, 2009

En aquest segon tutorial instal·larem en el nostre sistema les llibreries necessàries per poder desenvolupar aplicacions i jocs per a la nostra Nintendo DS.

Abans però, caldrà que tinguem instal·lats un parell de paquets els quals ens permetran compilar programes i descomprimir algun dels fitxers que descarregarem més endavant. D’aquesta manera, obrirem una sessió de terminal i executarem les següents comandes:

$ sudo aptitude install build-essentials

$ sudo aptitude install unzip

$

Una vegada fet això ja podrem instal·lar les llibreries específiques per al desenvolupament de la Nintendo DS: les devkitARM i les PAlib.

Les devkitARM són unes llibreries que formen part del projecte devkitPro i que han estat pensades per compilar programes per a dispositius amb processadors ARM (com ara la Nintendo DS, la Game Boy Advance o la GP2X). Treballen a un nivell baix de hardware, pel que escriure un joc des de zero fent servir aquestes llibreries pot ser força tediós. Es per això que també instal·larem les PAlib, unes segones llibreries que estan just per sobre les devkitARM (no treballen a un nivell tant baix de hardware) i que ens facilitaran la feina a l’hora de crear els nostres programes.

És important comentar que les PAlib són una mica antigues i només funcionen amb les versions del devkitARM que descarregarem a continuació. Si instal·léssim versions més noves podríem trobar-nos amb problemes a l’hora de compilar i els nostres programes no funcionarien.

2.1 Instal·lació de les llibreries devkitARM

Obrirem el navegador i descarregarem aquest fitxer en la nostra home. Quan s’hagi descarregat obrirem una altra vegada una sessió de terminal i crearem una carpeta anomenada devkitpro en la nostra home, hi posarem el fitxer que acabem de descarregar i el descomprimirem:

$ mkdir devkitpro
$ mv devkitARM_r21-linux.tar.bz2 devkitpro/
$ cd devkitpro/
devkitpro$ bzip2 -dc devkitARM_r21-linux.tar.bz2 | tar -xv
devkitpro$

Seguim treballant des del terminal per descarregar un parell de llibreries més, les quals desarem dins d’una carpeta que anomenarem libnds:

devkitpro$ mkdir libnds
devkitpro$ cd libnds/
devkitpro/libnds$ wget aquest fitxer
devkitpro/libnds$ bzip2 -dc libnds-20071023.tar.bz2 | tar -xv
devkitpro/libnds$ wget aquest fitxer
devkitpro/libnds$ bzip2 -dc dswifi-0.3.4.tar.bz2 | tar -xv
devkitpro/libnds$ wget aquest fitxer
devkitpro/libnds$ bzip2 -dc libfat-nds-20070127.tar.bz2 | tar -xv
devkitpro/libnds$

2.2 Instal·lació de les llibreries PAlib

Descarreguem les PAlib i les descomprimim dins la carpeta devkitpro:

devkitpro/libnds$ cd ../
devkitpro$ wget aquest fitxer
devkitpro$ unzip PAlib_080823_Archive.zip
devkitpro$

Un cop arribat en aquest punt ja tindrem les llibreries instal·lades en una estructura de directoris semblant a la següent:

/
|__ home
     |__ la_meva_home
          |__ devkitPro
               |__ devkitARM
               |__ libnds
               |__ Other Libs
               |__ PAlib

2.3 Variables d’entorn i prova de compilació

Ara només queda definir unes variables d’entorn i provar de compilar un dels exemples que venen amb les PAlib per comprovar que tot s’ha instal·lat satisfactòriament. Per fer-ho obrim el fitxer .bashrc situat a la nostra home (el fitxer és ocult!), i afegim les següents línies al final del fitxer:


# devkitPro
export DEVKITPRO=$HOME/devkitpro
export DEVKITARM=$DEVKITPRO/devkitARM
export PAPATH=$DEVKITPRO/PAlib/lib

Per acabar refresquem les variables d’entorn i provem de compilar un dels exemples des del terminal:

$ source .bashrc
$ cd devkitpro/PAlib/examples/Text/Normal/HelloWorld
devkitpro/PAlib/examples/Text/Normal/HelloWorld$ make

built … HelloWorld.ds.gba
dsbuild 1.21 – Oct 23 2007
using default loader
devkitpro/PAlib/examples/Text/Normal/HelloWorld$

Si veiem que la comanda make no torna ningun error i acaba amb les línies de “dsbuild 1.21 – Oct 23 2007″ i “using default loader”, voldrà dir que les llibreries s’han instal·lat correctament. Per contra, si observem algun error o avís, i un resultat diferent a l’esperat, voldrà dir que alguna cosa s’ha fet malament i haurem de repassar el procés d’instal·lació.

Fonts consultades

Wiki devkitPro:Getting Started/devkitARM
Wiki PAlib: Installing Your Dev Environment
Dev-Scene.com
ElOtroLado.net