- Sat
- 1
- Nov
- 08
Sviluppare videogiochi homebrew per Nintendo DS ( ma non solo ) con DevKitPro
Di in C++, Nintendo DS, homebrew Controls: +-close
DevKitPro, cos’è e a cosa serve
DevKitPro è un tool di sviluppo per la creazone di videogiochi homebrew per Nintendo DS, GameBoy Advance, GP32, Playstation Portable e GameCube.
Possiamo scaricare DevKitPro da questa pagina.
Installazione su sistemi Windows
L’installazione è decisamente semplice in quanto guidata da un installer, che sceglie per noi i componenti da installare in base al sistema per il quale vogliamo sviluppare. L’ultima versione disponibile di questo installer è la 1.4.7. Per procedere all’installazione il consiglio è di inserire l’installer in una directory chiamata DevKitPro, eseguirlo e selezionare l’opzione che mantiene i file da scaricare, in caso avessimo la necessità di reinstalare tutto.
Ogni console richiede i suoi componenti per lo sviluppo, per programmare per il Nintendo DS, il GBA e il GP32 abbiamo bisogno del devkitARM. Per il Gamecube la scelta è il devkitPPC. Infine per la PSP il devkitPSP. Dopo aver proceduto alla selezione per il mantenimento in locale dei files scaricati selezioniamo quindi l’opzione relativa al download del DevKitArm. Non deselezionate nessuno dei componenti che l’installer selezionerà in automatico per voi o avrete milioni di errori.
Una volta scaricati tutti i componenti, l’installer procederà all’installazione vera e propria e la voce DevKitPro comparirà tra i vostri programmi installati, consiglierei di non modificare la path di installazione ( C:/devkitPro ).
PALib, librerie opensource per Nintendo DS
Le Programer Arsenal Libraries, PALib, sono dele librerie per creare giochi homebrew per NIntendo DS. Potete scaricare le librerie dal sito ufficiale.
Scaricato l’installer lanciatelo e installate le librerie nella stessa diretory del DevKitPro ( C:/devkitPro ).
devkitARM_r23 non compatibile
La versione dl devKitArm scaricata dall’installer del devKitPro, la r23 non è compatibile con le PALib al momento in cui scrivo. Per far in modo che tutto funzioni dobbiamo scaricare la versione r21, che possiamo recuperare da sourceforge.
Per effettuare la sostituzone vi cosiglio di entrare in C:/devkitPro, rinominare l’attuale directory devkitARM in devkitARM_r23 ( o quello che vi pare ) ed incollare sempre su C:/devkitPro la versione r21, ovviamente dopo averla scompattata.
Variabili d’ambiente
Affinchè tutto funzioni a dovere non ci rimane altro che modificare una variabile d’ambiente del nostro sistema operativo, aggiungendo 2 percorsi. Cliccate col tasto destro del mouse su Risorse del Computer, selezionate la linguetta ‘avanzate’, guardando in basso dovreste vedere il tasto ‘variabili d’ambiente’. Cliccatelo, comparirà una nuova finestra con due riquadri: quello che interessa a noi è il riquedro in basso, variabili di sistema.
Cerchiamo la voce ‘Path’, clicchiamola 2 volte ( o in alternativa clicchiamo il tasto modifica dopo averla selezionata ), dobbiamo AGGIUNGERE agli eventuali percorsi già esistenti i seguenti percorsi, C:\devkitpro\devkitarm\bin; e c:\devkitPro\msys\bin; .
Verificate che questi percorsi non fossero già esistenti prima di inserirli, quindi date OK fino a chiudere tutte le finestre aperte.
I Template
I template sono dei file che sono richiesti in ogni progetto. All’interno di C:\devkitPro\palib\template potete vedere quali sono questi files. E’ indispensabile che ogni progetto contenga questi files in quanto sono indispensabili per la compilazione. Inoltre ogni progetto dovrebbe contenere le directories contenute nel template. Qui di seguito uno schema di come deve essere composto un template:
- source: è la cartella che contiene i sorgeti, i files .c o .cpp
- data: è la directory che contiene eventuali file media richiesti dal progetto
- include: è la directory che contiene eventuali file di intestazione, i files .h
- logo.bmp: è il logo che sarà visualizzato usando la modalità wireless
- built.bat: file indispensabile per la compilazione
- clean.bat: file indispensabile per la compilazione
- Makefile: file indispensabile per la compilazione
Codice e compilazione
Il linguaggio utilizzato per scrivere software per il Nintendo DS è il C/C++. Insieme al devKitPro è presente un buon editor, il Programmers Notepad. Ora vedremo come creare il classico ‘Hello World’ utilizzando tutto ciò che abbiamo installato.
Hello World
Create su C:\devkitPro una directory e nominatela helloworld. Ora spostatevi su C:\devkitPro\palib\template e copiate i file e le directories del template, tutto ciò che è stato indicato poche righe fa come indispensabile ( ovvero source, data, include, logo.bmp, built.bat, clean.bat, Makefile ) ed incollatelo in C:\devkitPro\helloworld. Eliminate il file main.c all’interno di source. Aprite il Programmers Notepad e selezionate File -> New -> Project. Vi sarà richiesto un nome per il progetto e una directory. Inserite ‘MyFirstProject’ come nome progetto e selezionate C:\devkitPro\helloworld come directory.
Il passo successivo sarà importare i files fisici del template contenuti nella directory helloworld, nel progetto del Programmers Notepad. Per far ciò cliccate col tasto destro del mouse sul nome del progetto e selezionate la voce Add Magic Folder. Selezionate C:\devkitPro\helloworld e cliccate avanti e quindi fine. I file del template saranno aggiunti al vostro progetto.
Codice Sorgente
Qui di seguito il listato del codice sorgente di Hello World che salveremo all’interno di source con il nome di main.c:
main.c
// Hello World function !!
#include <PA9.h> // Includiamo le PAlib
int main(void) {
// Inizializzazione delle PAlib e sincronizzazione dello schermo
PA_Init();
PA_InitVBL();
// Inizializzazione del testo
PA_InitText(1, // Top screen...
2); // Use background number 2
// Output del testo e posizione
PA_OutputSimpleText(1,1,1,"Hello World !"); // Top screen, tile x = 1, y = 1...
// Ciclo infinito dell'applicazione
while(1) {
// Questa funzione deve sempre esserci in quanto aggiorna i registri del NintendoDS
PA_WaitForVBL();
}
return 0;
}
// ricordarsi a questo punto di lasciare una NewLine andando a capo dopo l'ultima parentesi graffa
Questo esempio era già presente tra i moltissimi esempi già inclusi nella cartella examples di palib, il mio scopo era di illustrare la creazione di un progetto che fosse compilabile direttamente dal Programmers Notepad.
Per far comparire il file main.c appena salvato in source nel nostro progetto di Programmers Notepad, all’interno della finestra Projects, clicchiamo col tasto destro sulla directory principale del nostro progetto, helloworld e selezioniamo refresh. Per compilare selezioniamo Tools -> Make o utilizziamo lo shortcut Alt+1, se non abbiamo comesso errori la compilazione andrà a buon fine.
Testare il progetto
Dopo la compilazione otteremo nella directory del progetto due nuovi files, uno dei quali con estensione .nds, quello che ci serve. Apriamo quindi uno dei molti emulatori Nintendo DS presenti al’interno della directory C:\devkitPro\palib\emulators, per esempio utilizziamo l’Ideas, il risultato sarà il seguente:
Termina qui l’articolo relativo all’installazione dell’ambiente di sviluppo homebrew per Nintendo DS. Per dubbi e richieste vi invito a lasciare un commento.
No related posts.
Related posts brought to you by Yet Another Related Posts Plugin.













Il programma che hai citato per scaricare le palib, non funziona, non scarica bn il tutto..
( avevo detto che lo postavo e lo posto XD )
Hai fatto bene a scriverlo.
Spesso l’installer 1.4.7 installa male devkitPro sul sistema, facendo in modo che, all’atto della compilazione il sistema restituisca alcuni fastidiosi errori come:
1) ‘make’ non è un comando riconosciuto
2) error: fat.h: No such file or directory
Questo perchè durante l’installazione alcuni componenti vengono scaricati male. Per evitare questi errori ci sono diversi metodi, il più veloce è disinstallare tutto e reinstallare DESELEZIONANDO i componenti gba e gp32 ( ovvero libgba, libfatgba, examples gba, examples gp32 ). Fatto ciò tutto verrà installato correttamente e funzionerà cme si deve.
1)Si ma se a me dovessero per caso servire le librerie “gba” e “gp32″..?
2)Spiega anche come si usano le librerie “saberoff”
3)non ha nulla di sbagliato oltre al fatto che manca forse la lib.?
#include
#include “saberoff.h”
// Function: main()
int main(int argc, char ** argv) {
// PAlib Inits
PA_Init();
PA_InitVBL();
// Text Init
PA_InitText(1,
2);
}
{
PA_Init(); // Initializes PA_Lib
PA_InitVBL(); // Initializes a standard VBL
PA_InitText(0, 0);
PA_InitSound(); // Init the sound system
PA_OutputSimpleText(0, 6, 10, “Press A to play the sound”);
// Infinite loop to keep the program running
while (1)
{ // Play the sound if A is pressed…
if (Pad.Newpress.A) PA_PlaySimpleSound(0,saberoff);//here, too. Only saberoff
PA_WaitForVBL();
}
return 1;
}
Ti rispondo punto per punto:
1) Le lib gba ( Game Boy Advance ) ti servirebbero nel caso tu voglia programmare per game boy advance, noi stiamo provando, nei miei articoli, a programmare per il Nintendo DS. Nel caso in futuro ti servano comunque puoi installarle a mano, estraendo gli archivi direttamente nella directory di installazione di devkitpro.
2) Non sono arrivato alle librerie saberoff, quindi per ora non ho nulla da dire n proposito
3) Immagino tuttavia che si tratti di librerie per la gestione dei file audio. Attualmente le uniche librerie audio che ho testato con successo sono le AS_SoundVBL, anche per il formato MP3.
Visto che parlarne in un commento sarebe eccessivamente lungo ti chiedo di avere un po’ di pazienza fin quando non realizzerò il tutoril sull’argomento. Ti faccio notare comunque che il samplerate dovrebbe essere convertito a 11025 Hz per fare in modo che tutto funzioni. Dico dovrebbe perchè non sono sicuro al 100% di questa cosa ( approfondirò quando scriverò a proposito ). Per convertire il samplerate di un file audio devi usare un programma di conversione, tipo Total Audio Converter, ma ci sono decine di programmi a questo scopo.
Ciao e grazie per aver scritto
Ciao a tutti
provai a sviluppare qualcosa su DS qualche tempo fa ma avendo bisogno di sviluppare un’applicazione tipo video guida che visualizzasse dei Video selezionati da una lista (qualsiasi formato va bene andrebbero compressi ad hoc) mi sono trovato nell’impossibilità di poterli riprodurre con fluidità e qualità video/audio accettabile
pensavo anche a flash ma credo non sia ancora maturo un flahs pèlayer da usare
ci sono stati degli sviluppi in merito?
avete suggerimenti?
grazie mille
Ciao gino8080,
purtroppo ancora non ho avuto il tempo di vedere e scrivere qualcosa in merito alla gestione dei video con il Nintendo DS. Non ho capito tanto la questione di Flash, hai bisogno di sviluppare un’applicazione per il Nintendo DS o un’applicazione web? Nella seconda ipotesi la gestione c’è, utilizzando Actionscript 3 puoi gestire i tuoi video come vuoi. Ciao e facci sapere.