Aiuto - Cerca - Utenti - Calendario
Versione completa: [GUIDA] alla configurazione dell'ambiente Devkitpro
.: GBArl.it :. News sulle Console Nintendo - Emulazione - Flash Cards - Trainer > GUIDE > Guide Nintendo DS > Guide Obsolete
Pagine: 1, 2
iceloop
Allora cominciamo..

Per prima cosa dovete procurarvi i seguenti file:

- DevkitARM
- libnds da: http://sourceforge.net/projects/devkitpro

- Msys da: http://prdownloads.sf.net/mingw/MSYS-1.0.10.exe?download

A questo punto create una cartella in C che chiamerete devkitpro (..che fantasia..)

Installate/estraete tutto in questa cartella.

L'ultima cosa da fare è settare tre variabili d'ambiente e aggiungere 2 percorsi al Path di sistema. Procediamo in ordine.

Tasto destro su risorse del computer->Proprietà->Avanzate->Variabili d'ambiente

Aggiungere alle varabili dell'utente le seguenti variabili:

[Variabile] [Valore]
DEVKITPRO /c/devkitpro
DEVKITARM /c/devkitpro/devkitarm
NDSLIBPATH /c/devkitpro/libnds

A questo punto aggiungete al PATH di *Sistema* le seguenti stringhe

c:\devkitpro\devkitarm\bin;
c:\devkitpro\msys\bin; oppure c:\devkitpro\msys\1.0bin; in base a dove msys ha installato la cartella bin.

Scaricate questo esempio http://iceloop.altervista.org/Rainbow.zip
per vedere se funziona il tutto:

Estraetelo in una cartella.

Dal prompt dei comandi dopo esservi recati nel percorso dove avete estratto i file
digitate make;

Se tutto va bene verrano creati i file .nds e.gba.nds più altri file che non ci interessano.

Spero di essere stato abbastanza chiaro.
Ciao ragazzuoli alla prossima




harhar.gif
Sephiroth87
oh, finalmente sono riuscito a farlo funzionare xD
strano però, perchè le cose che ho fatto erano sempre le stesse xD

ecco, infatti, ti pareva che funziona...
riesco a compilare solo la tua demo, ma altri prog no (non ho ancora provato a farne di miei, ma quelli di esempio delle ndslib) sigh.gif

edit: forse ci sono riuscito, appena torno a casa provo un po + seriamente yahoo.gif
Sephiroth87
cmq, dopo varie tribolazioni alla fine ce l'ho fatta, adesso mi metto all'opera biggrin.gif
Hangman
Bel mini-tutorial wink.gif
Colgo l'occasione per segnalarvi il mio sito che tratta proprio il software development su DS... l'ho aperto da poco (l'altro ieri) e ho iniziato a inserire qualche articolo.. l'indirizzo è http://dsdev.host.sk/ ... fatemi sapere cosa ne pensate wink.gif
Sephiroth87
interessante come progetto, spero si evolva bene biggrin.gif
Hangman
CITAZIONE (Sephiroth87 @ Venerdì 1 Luglio 2005 - 21:58)
interessante come progetto, spero si evolva bene biggrin.gif

Grazie biggrin.gif
Se qualcuno di voi vuole collaborare non ha che da chiedermelo!
Il mio indirizzo email è hangman(at)playerworld(dot)it ! (sostituite ovviamente (at) con "@" e (dot) con "." ). Mi farebbe molto piacere se qualcuno di voi accettasse tongue.gif
Sephiroth87
eheh, forse in futuro, adesso sono io che avrei bisogno di tutorial xD
Hangman
CITAZIONE (Sephiroth87 @ Venerdì 1 Luglio 2005 - 22:29)
eheh, forse in futuro, adesso sono io che avrei bisogno di tutorial xD

Prova ad iniziare con quelli della sezione Tutorials... Per ora ti dovrebbero bastare.. per il resto che linguaggi conosci? Qui si usa il C tongue.gif cmq in questi giorni ne metterò altri!
magic3
CITAZIONE (Hangman @ Venerdì 1 Luglio 2005 - 22:35)
CITAZIONE (Sephiroth87 @ Venerdì 1 Luglio 2005 - 22:29)
eheh, forse in futuro, adesso sono io che avrei bisogno di tutorial xD

Prova ad iniziare con quelli della sezione Tutorials... Per ora ti dovrebbero bastare.. per il resto che linguaggi conosci? Qui si usa il C tongue.gif cmq in questi giorni ne metterò altri!

Non è proprio così agli inizi da non sapere che si usa il C wink.gif
Sephiroth87
vabbè, veramente sono un po + avanti di così...

diciamo che allora a me non servono tutorial, ma documenti tecnici xD
Hangman
Ah scusa non lo sapevo, come non detto biggrin.gif
Hangman
CITAZIONE (Sephiroth87 @ Venerdì 1 Luglio 2005 - 22:40)
vabbè, veramente sono un po + avanti di così...

diciamo che allora a me non servono tutorial, ma documenti tecnici xD

Beh magari prova a leggere gli articoli nella sezione Tutorials! Nei primi trovi un po' di info su come funzionano i tools delle ndslib e un po' di codice ARM7 e ARM9 smile.gif

A proposito, qualche anima pia mi potrebbe aiutare a sistemare un po' il forum? Per ora ci sono solo tre sezioni e non so cosa altro metterci huh.gif
iceloop
Notizie sull'implementazione delle funzioni di libreria per adoperare il microfono?
Hangman
CITAZIONE (iceloop @ Sabato 2 Luglio 2005 - 10:19)
Notizie sull'implementazione delle funzioni di libreria per adoperare il microfono?

Nada... Io non ho trovato nulla...

iceloop: stai sviluppando un gioco?
iceloop
Mi piacerebbe tanto però non ho tantissimo tempo, per adesso sto preparando
la tesi per l'università. Quindi programmo nei ritagli di tempo.

Volevo realizzare un accordatore su DS, ma se non implementano le api per il microfono nisba.
Sephiroth87
lol, sono parechio + avanti allora xD

cmq, io lo odio sto compilatore, ieri si è rimesso a dare errori e adesso non va +...
Hangman
Io avrei in mente di fare una libreria con una serie di funzioni per semplificare alcune operazioni come il drawing di sprite, riproduzione di sfx etc (senza tralasciare il 3d, magari) Tu collaboreresti? smile.gif
Hangman
CITAZIONE (Sephiroth87 @ Sabato 2 Luglio 2005 - 10:34)
lol, sono parechio + avanti allora xD

cmq, io lo odio sto compilatore, ieri si è rimesso a dare errori e adesso non va +...

Basta che ti fai un makefile o ne scarichi uno (guarda caso sul mio sito ne trovi uno col tutorial 2 harhar.gif ) e vai di make tongue.gif
Sephiroth87
trovato, non era un problema di make, ma dava errori strani e non capivo niente...
falkar
che tipo di errori? ph34r.gif
cmq ci sono anche io sul sito di hangman (anche se sono giusto un discepolo laugh.gif )
Hangman
CITAZIONE (falkar @ Sabato 2 Luglio 2005 - 13:32)
che tipo di errori? ph34r.gif
cmq ci sono anche io sul sito di hangman (anche se sono giusto un discepolo laugh.gif )

Si, falkar si occupa della FAQ tongue.gif
A proposito della FAQ, se avete aggiunte da fare non esitate a scriverle sul forum, grazie mille!! biggrin.gif
koji_nanami
Io sarei interessato a collaborare a qualche progetto. Tuttavia essendo molto impreparato nel settore programmazione mi propongo per la grafica (in cui vado decisamente piu forte)
Hangman
Hai MSN? così parliamo lì smile.gif
koji_nanami
cercherò di registrarmi a msn anche se con quello posso collegarmi solo la sera (al lavoro via proxy nn va). Nel frattempo possiamo discuterne qui o in tramite PM.
DaRk_ViVi
CITAZIONE (koji_nanami @ Martedì 6 Settembre 2005 - 09:58)
cercherò di registrarmi a msn anche se con quello posso collegarmi solo la sera (al lavoro via proxy nn va). Nel frattempo possiamo discuterne qui o in tramite PM.

Prova http://webmessenger.msn.com/

Magari va. tongue.gif
falcon!!!
raga io ho provato a settare tutti gli ambienti (devkit arm, ndslib e ho pure minwg)
ma quando provo con la demo (nn questa di iceloop xke nn c'è piu) mi dice molti errori come se nn avessi messo i bin del devkitpro



QUalke dritta?
Hangman
L'errore è nel makefile. Probabilmente il percorso della cartella con gli header di ndslib
è errato.

Update: abbiamo parlato un po' via msn ed era il percorso nel makefile. Per chiunque altro avesse lo stesso problema, ricordate che il percorso va messo in questo modo:

ad es. se il percorso è:

C:/dsdev/ndslib/include

nel makefile dovete mettere

/C/dsdev/ndslib/include

wink.gif
falcon!!!
wow ce l'ho fatta! grazie hangman!

Dovevo solo scrivere nel makefile la directory delle ndslib e include cosi: /C/devkitpro/...
invece di C:\devkitpro\... tongue.gif
Blood
ormai quì non posta piu.. ma vorrei segnalare che questo cavolo mi segna sempre errori che vede.. avete qualche demo che a voi funziona da farmi scaricare? e vi riporto l'errore.. (per sicurezza)


ps.. ma non esiste un semplice tutorial dove si inizia da helloword! senza touch screeen che rendano piu complicata l'esistenza? perchè io sto iniziando adesso col C non conosco.. conosco il php pero'..
Blood
velocemente:
ho provato il demo che mi dice qua ma mi dà questo errore:

CODICE
> "make"
arm-elf-g++ -g -Wall -O2 -mcpu=arm7tdmi -mtune=arm7tdmi -fomit-frame-pointer -ffast-math -mthumb-interwork -I/c/devkitPro/libnds/include -DARM7 -c arm7_main.cpp -oarm7_main.o
arm7_main.cpp: In function 'void InterruptHandler()':
arm7_main.cpp:17: error: 'IF' was not declared in this scope
arm7_main.cpp:71: error: 'IF' was not declared in this scope
arm7_main.cpp: In function 'int main(int, char**)':
arm7_main.cpp:87: error: 'IME' was not declared in this scope
arm7_main.cpp:89: error: 'IE' was not declared in this scope
arm7_main.cpp:90: error: 'IF' was not declared in this scope
"make": *** [arm7_main.o] Error 1

> Process Exit Code: 2
senseiken
Se c'e' qualche demo io posso contribuire per la parte musicale. Ho esperienza quasi decennale con fasttracker su pc + protracker su amiga (credo che esistano player mod/xm per gba/nds), quasi altrettanti su commodore 64 e ho realizzato la colonna sonora di rayman per gbc. Insomma, se serve un musicista sono qua ragazzi.
Lino
CITAZIONE (Blood @ Martedì 8 Novembre 2005 - 09:31)
velocemente:
ho provato il demo che mi dice qua ma mi dà questo errore:

CODICE
> "make"
arm-elf-g++ -g -Wall -O2 -mcpu=arm7tdmi -mtune=arm7tdmi -fomit-frame-pointer -ffast-math -mthumb-interwork -I/c/devkitPro/libnds/include -DARM7 -c arm7_main.cpp -oarm7_main.o
arm7_main.cpp: In function 'void InterruptHandler()':
arm7_main.cpp:17: error: 'IF' was not declared in this scope
arm7_main.cpp:71: error: 'IF' was not declared in this scope
arm7_main.cpp: In function 'int main(int, char**)':
arm7_main.cpp:87: error: 'IME' was not declared in this scope
arm7_main.cpp:89: error: 'IE' was not declared in this scope
arm7_main.cpp:90: error: 'IF' was not declared in this scope
"make": *** [arm7_main.o] Error 1

> Process Exit Code: 2

Da una rapida lettura devi anteporre ad IF, IME ed IE, REG_.
Blood
è il codice originale, non scritto da me.. mi da questo problema con tutti quelli che dovrebbero funzionare.

Io penso che non carichi qualche libreria.. chissa ..
daygoshen
posta il codice...così vediamo tutti di poter capire il perkè!!!
Sephiroth87
posta arm7.cpp
Blood
ma è non è solo questo.. tutti quelli che dovrebbero funzionare fatti da altri e che a me solo non fungono.. provate voi stessi..

arm7
CODICE
//
// Codice ARM7 DSence -> Tutorial 2
// http://dsence.ordinaryvanity.com/
//

#include <nds.h>


#define TOUCH_CAL_X1 (*(vs16*)0x027FFCD8)
#define TOUCH_CAL_Y1 (*(vs16*)0x027FFCDA)
#define TOUCH_CAL_X2 (*(vs16*)0x027FFCDE)
#define TOUCH_CAL_Y2 (*(vs16*)0x027FFCE0)
#define SCREEN_WIDTH    256
#define SCREEN_HEIGHT   192
s32 TOUCH_WIDTH  = TOUCH_CAL_X2 - TOUCH_CAL_X1;
s32 TOUCH_HEIGHT = TOUCH_CAL_Y2 - TOUCH_CAL_Y1;
s32 TOUCH_OFFSET_X = ( ((SCREEN_WIDTH -60) * TOUCH_CAL_X1) / TOUCH_WIDTH  ) - 28;
s32 TOUCH_OFFSET_Y = ( ((SCREEN_HEIGHT-60) * TOUCH_CAL_Y1) / TOUCH_HEIGHT ) - 28;



void startSound(int sampleRate, const void* data, uint32 bytes, u8 channel=0, u8 vol=0x7F,  u8 pan=63, u8 format=0) {
 SCHANNEL_TIMER(channel)  = SOUND_FREQ(sampleRate);
 SCHANNEL_SOURCE(channel) = (uint32)data;
 SCHANNEL_LENGTH(channel) = bytes;
 SCHANNEL_CR(channel)     = SOUND_ENABLE | SOUND_ONE_SHOT | SOUND_VOL(vol) | SOUND_PAN(pan) | (format==1?SOUND_8BIT:SOUND_16BIT);
}


s8 getFreeSoundChannel() {
 for (int i=0; i<16; i++) {
   if ( (SCHANNEL_CR(i) & SOUND_ENABLE) == 0 ) return i;
 }
 return -1;
}




void InterruptHandler(void) {
 static int heartbeat = 0;

 if (IF & IRQ_VBLANK) {
   uint16 but=0, x=0, y=0, xpx=0, ypx=0, z1=0, z2=0, batt=0, aux=0;
   int t1=0, t2=0;
   uint32 temp=0;
   uint8 ct[sizeof(IPC->curtime)];

   
   // Update the heartbeat
   heartbeat++;

   // Read the X/Y buttons and the /PENIRQ line
   but = XKEYS;
   if (!(but & 0x40)) {
     // Read the touch screen
     x = touchRead(TSC_MEASURE_X);
     y = touchRead(TSC_MEASURE_Y);
     xpx = ( ((SCREEN_WIDTH -60) * x) / TOUCH_WIDTH  ) - TOUCH_OFFSET_X;
     ypx = ( ((SCREEN_HEIGHT-60) * y) / TOUCH_HEIGHT ) - TOUCH_OFFSET_Y;
     z1 = touchRead(TSC_MEASURE_Z1);
     z2 = touchRead(TSC_MEASURE_Z2);
   }

   batt = touchRead(TSC_MEASURE_BATTERY);
   aux  = touchRead(TSC_MEASURE_AUX);

   // Read the time
   rtcGetTime((uint8 *)ct);
   BCDToInteger((uint8 *)&(ct[1]), 7);

   // Read the temperature
   temp = touchReadTemperature(&t1, &t2);

   // Update the IPC struct
   IPC->heartbeat = heartbeat;
   IPC->buttons   = but;
   IPC->touchX    = x;
   IPC->touchY    = y;
   IPC->touchXpx  = xpx;
   IPC->touchYpx  = ypx;
   IPC->touchZ1   = z1;
   IPC->touchZ2   = z2;
   IPC->battery   = batt;
   IPC->aux       = aux;

   for(u32 i=0; i<sizeof(ct); i++) {
     IPC->curtime[i] = ct[i];
   }

   IPC->temperature = temp;
   IPC->tdiode1 = t1;
   IPC->tdiode2 = t2;


   //sound code  :)
   TransferSound *snd = IPC->soundData;
   IPC->soundData = 0;
   if (snd) {
     for (int i=0; i<snd->count; i++) {
       s8 chan = getFreeSoundChannel();
       if (chan >= 0) {
         startSound(snd->data[i].rate, snd->data[i].data, snd->data[i].len, chan, snd->data[i].vol, snd->data[i].pan, snd->data[i].format);
       }
     }
   }
 }

 // Acknowledge interrupts
 IF = IF;
}




int main(int argc, char ** argv) {
 // Reset the clock if needed
 rtcReset();

 //enable sound
 SOUND_CR = SCHANNEL_ENABLE | SOUND_VOL(0x7F);
 IPC->soundData = 0;

 // Set up the interrupt handler
 IME = 0;
 IRQ_HANDLER = &InterruptHandler;
 IE = IRQ_VBLANK;
 IF = ~0;
 DISP_SR = DISP_VBLANK_IRQ;
 IME = 1;

 // Keep the ARM7 out of main RAM
 while (1) swiWaitForVBlank();
 return 0;
}



arm9
CODICE
//
// Codice ARM9 DSence -> Tutorial 2
// http://dsence.ordinaryvanity.com/
//


#include <nds.h>
#include "nds/arm9/console.h"

int main(void)
{
 powerON(POWER_ALL);
 
 // Usa lo schermo principale per l'output
 videoSetMode(MODE_0_2D | DISPLAY_BG0_ACTIVE);
 vramSetBankA(VRAM_A_MAIN_BG);
 BG0_CR = BG_MAP_BASE(31);

 // Setta il colore del font a bianco
 BG_PALETTE[255] = RGB15(31,31,31);

 // Effettua lo swap degli schermi.
 // In questo modo lo schermo principale è lo schermo inferiore
 lcdSwap();

 // Inizializza la console. La funzione consoleInit() è piu' flessibile
 // ma consoleInitDefault ci permette di eseguire l'init in modo piu' semplice e rapido.
 consoleInitDefault((u16*)SCREEN_BASE_BLOCK(31), (u16*)CHAR_BASE_BLOCK(0), 16);

 consolePrintf("\n\n\tHello World!\n");
 consolePrintf("\n\nhttp://dsdev.host.sk/");

 while(1) {
   consolePrintSet(0,10);
   consolePrintf("Touch x = %x\n", IPC->touchX);
   consolePrintf("Touch y = %x\n", IPC->touchY);      
 }
 return 0;
}
Sephiroth87
boh, non so, sicuramente avrai installato male le librerie allora...
Blood
infatti è quello che penso anche io, vorrei sapere che libreria in questione sia.. così so' gia dove controllare invece che reinstallare tutto..

ps.. ho usato l'installazione automatica
Blood
continua l'errore anche con installazione manuale.. a sto punto non so.. sempre la stessa roba.. ho provato a eseguirlo anche da dos..

Microsoft Windows XP [Versione 5.1.2600]
© Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\Alex\Desktop\tut2>makje
"makje" non è riconosciuto come comando interno o esterno,
un programma eseguibile o un file batch.

C:\Documents and Settings\Alex\Desktop\tut2>make
arm-elf-g++ -g -Wall -O2 -mcpu=arm7tdmi -mtune=arm7tdmi -fomit-frame-pointer -ff
ast-math -mthumb-interwork -I/c/devkitpro/libnds/include -DARM7 -c arm7_main.cpp
-oarm7_main.o
arm7_main.cpp: In function 'void InterruptHandler()':
arm7_main.cpp:43: error: 'IF' was not declared in this scope
arm7_main.cpp:54: error: 'XKEYS' was not declared in this scope
arm7_main.cpp:110: error: 'IF' was not declared in this scope
arm7_main.cpp: In function 'int main(int, char**)':
arm7_main.cpp:125: error: 'IME' was not declared in this scope
arm7_main.cpp:127: error: 'IE' was not declared in this scope
arm7_main.cpp:128: error: 'IF' was not declared in this scope
make: *** [arm7_main.o] Error 1

C:\Documents and Settings\Alex\Desktop\tut2>

- -
secondo me funziona.. è il tutorial sbagliato.. avete qualche cosa da testare che a voi funziona? grazie!
Sephiroth87
il codice è giusto, è l'installazione sbagliata...

non so come aiutarti con l'installazione però, io l'ho fatta parecchi mesi fa enon ricordo +, inoltre ci ho litigato per parecchio tempo prima di riuscire a farlo andare...
daygoshen
forse non vanno le librerie?
Lino
ma che processore hai? stralol.gif stralol.gif
Blood
allora sia installazione manuale che automatica.. da sempre lo stesso problema.

ho un p4 2.8 ghz.. sto usando le libnds appena scaricate..
Lino
Ma usi libnds o ndslib? ndslib non vengono aggiornate da tempo.

Cmq Chris Double in questi giorni ha aggiornato i demos.
Blood
no tranquillo.. libnds aggiornatissimi da sourcenet XD
Blood
ragazzi mi è venuto un dubbio (ora mi lapidano) ma devo installare il visual c++ o borland? o è necessario solo il dev kit + libnds + msys?
Sephiroth87
no, non serve ne visual c++ ne borland...
falcon!!!
raga come mai se provo a creare un .nds per DSFLASH mi viene sto errore?
falcon!!!
tutti ignoranti del settore sigh.gif ?
Lino
Posat il makefile, dice che non trova un comando puo anche essere il compilatore.
Questa è la versione 'lo-fi' del forum. Per visualizzare la versione completa con molte più informazioni, formattazione ed immagini, per favore clicca qui.
Invision Power Board © 2001-2019 Invision Power Services, Inc.