iceloop
Tuesday 21 June 2005 - 11:35
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?downloadA 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.zipper 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
Sephiroth87
Tuesday 21 June 2005 - 12:10
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)
edit: forse ci sono riuscito, appena torno a casa provo un po + seriamente
Sephiroth87
Friday 24 June 2005 - 16:09
cmq, dopo varie tribolazioni alla fine ce l'ho fatta, adesso mi metto all'opera
Hangman
Friday 1 July 2005 - 20:43
Bel mini-tutorial
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
Sephiroth87
Friday 1 July 2005 - 20:58
interessante come progetto, spero si evolva bene
Hangman
Friday 1 July 2005 - 21:03
CITAZIONE (Sephiroth87 @ Venerdì 1 Luglio 2005 - 21:58)
interessante come progetto, spero si evolva bene
Grazie
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
Sephiroth87
Friday 1 July 2005 - 21:29
eheh, forse in futuro, adesso sono io che avrei bisogno di tutorial xD
Hangman
Friday 1 July 2005 - 21: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
cmq in questi giorni ne metterò altri!
magic3
Friday 1 July 2005 - 21:38
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
cmq in questi giorni ne metterò altri!
Non è proprio così agli inizi da non sapere che si usa il C
Sephiroth87
Friday 1 July 2005 - 21:40
vabbè, veramente sono un po + avanti di così...
diciamo che allora a me non servono tutorial, ma documenti tecnici xD
Hangman
Saturday 2 July 2005 - 09:04
Ah scusa non lo sapevo, come non detto
Hangman
Saturday 2 July 2005 - 09:06
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
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
iceloop
Saturday 2 July 2005 - 09:19
Notizie sull'implementazione delle funzioni di libreria per adoperare il microfono?
Hangman
Saturday 2 July 2005 - 09:24
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
Saturday 2 July 2005 - 09:32
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
Saturday 2 July 2005 - 09:34
lol, sono parechio + avanti allora xD
cmq, io lo odio sto compilatore, ieri si è rimesso a dare errori e adesso non va +...
Hangman
Saturday 2 July 2005 - 09:34
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?
Hangman
Saturday 2 July 2005 - 09:36
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
) e vai di make
Sephiroth87
Saturday 2 July 2005 - 09:44
trovato, non era un problema di make, ma dava errori strani e non capivo niente...
falkar
Saturday 2 July 2005 - 12:32
che tipo di errori?
cmq ci sono anche io sul sito di hangman (anche se sono giusto un discepolo
)
Hangman
Saturday 2 July 2005 - 13:15
CITAZIONE (falkar @ Sabato 2 Luglio 2005 - 13:32)
che tipo di errori?
cmq ci sono anche io sul sito di hangman (anche se sono giusto un discepolo
)
Si, falkar si occupa della FAQ
A proposito della FAQ, se avete aggiunte da fare non esitate a scriverle sul forum, grazie mille!!
koji_nanami
Monday 5 September 2005 - 20:48
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
Tuesday 6 September 2005 - 08:42
Hai MSN? così parliamo lì
koji_nanami
Tuesday 6 September 2005 - 08: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.
DaRk_ViVi
Tuesday 6 September 2005 - 09:07
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.
falcon!!!
Tuesday 6 September 2005 - 10:58
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
Tuesday 6 September 2005 - 11:11
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
falcon!!!
Tuesday 6 September 2005 - 11:37
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\...
Blood
Tuesday 8 November 2005 - 09:17
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
Tuesday 8 November 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
senseiken
Tuesday 8 November 2005 - 09:55
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
Tuesday 8 November 2005 - 11:05
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
Tuesday 8 November 2005 - 11:13
è 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
Tuesday 8 November 2005 - 12:15
posta il codice...così vediamo tutti di poter capire il perkè!!!
Sephiroth87
Tuesday 8 November 2005 - 12:33
posta arm7.cpp
Blood
Tuesday 8 November 2005 - 13:27
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
Tuesday 8 November 2005 - 13:31
boh, non so, sicuramente avrai installato male le librerie allora...
Blood
Tuesday 8 November 2005 - 13:36
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
Wednesday 9 November 2005 - 12:53
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
Wednesday 9 November 2005 - 13:26
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
Wednesday 9 November 2005 - 13:37
forse non vanno le librerie?
Lino
Wednesday 9 November 2005 - 14:27
ma che processore hai?
Blood
Thursday 10 November 2005 - 12:56
allora sia installazione manuale che automatica.. da sempre lo stesso problema.
ho un p4 2.8 ghz.. sto usando le libnds appena scaricate..
Lino
Thursday 10 November 2005 - 14:28
Ma usi libnds o ndslib? ndslib non vengono aggiornate da tempo.
Cmq Chris Double in questi giorni ha aggiornato i demos.
Blood
Thursday 10 November 2005 - 20:11
no tranquillo.. libnds aggiornatissimi da sourcenet XD
Blood
Sunday 13 November 2005 - 09:47
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
Sunday 13 November 2005 - 10:15
no, non serve ne visual c++ ne borland...
falcon!!!
Sunday 26 February 2006 - 10:36
raga come mai se provo a creare un .nds per DSFLASH mi viene sto errore?
falcon!!!
Friday 3 March 2006 - 09:42
tutti ignoranti del settore
?
Lino
Friday 3 March 2006 - 12:11
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.