libXM7 Forum Index libXM7
Nintendo DS XM replay library
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Base di partenza
Goto page Previous  1, 2, 3  Next
 
Post new topic   Reply to topic    libXM7 Forum Index -> Altri argomenti
View previous topic :: View next topic  
Author Message
BMirco



Joined: 22 Jan 2010
Posts: 17
Location: asti

PostPosted: Tue Apr 20, 2010 12:39 pm    Post subject: Reply with quote

compilare con ALT+1 ed emulare sono cpace..
Ma la cosa che intndo dire è: se hai tempo non puoi tu fare un corso.
Ad esempio :

Code:
#include <nds.h>
#include <stdio.h>

volatile int frame = 0;

void Vblank() {
     frame++;
}
   
int main(void) {
   touchPosition touchXY;

   irqSet(IRQ_VBLANK, Vblank);

   consoleDemoInit();

   iprintf("      Hello DS dev'rs\n");
   iprintf("     \x1b[32mwww.devkitpro.org\n");
   iprintf("   \x1b[32;1mwww.drunkencoders.com\x1b[39m");
 
   while(1) {
      swiWaitForVBlank();
      touchRead(&touchXY);
      iprintf("\x1b[10;0HFrame = %d",frame);
      iprintf("\x1b[16;0HTouch x = %04X, %04X\n", touchXY.rawx, touchXY.px);
      iprintf("Touch y = %04X, %04X\n", touchXY.rawy, touchXY.py);      
   
   }

   return 0;
}


questo è quello che è scritto in hello_world

Code:
#include <nds.h>
#include <stdio.h>

sono le ditettive preprocessore che indicano quali librerie includere

volatile int frame = 0; si dichiara una variabile integere e gli si da come valore 0
e via di seguito.

una cosa se io vogli scrivere sullo schermo superiore come faccio
se io voglio scrivere colorato, e spostarmi xy?

io non ho idea.. mi serve un corso o qualcuno che mi spieghi..
Very Happy
per questo ti chiede se puoi fare un corso ...
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
sverx
Site Admin


Joined: 04 Jun 2009
Posts: 108

PostPosted: Tue Apr 20, 2010 1:27 pm    Post subject: Reply with quote

diciamo che per scrivere un tutorial così vasto mi ci vorrebbero anni ed intanto nessuno ne trarrebbe vantaggio... però non ho problemi ad impegnare qualche minuto ogni giorno per specifiche domande.

Ad esempio per scrivere testo devi usare le librerie per la console, dettagliate in questa pagina della documentazione delle libnds.

Per scrivere sullo schermo superiore dovrai definire, per esempio, che il motore 2D secondario (il SUBEngine) sia collegato allo schermo superiore (ovvero imponi che il MAINEngine sia collegato allo schermo inferiore) con la funzione lcdMainOnBottom()

A questo punto con consoleDemoInit() inizializzi la console, con iprintf() ci scrivi dentro, con consoleSetWindow() puoi definire il rettangolo dentro al quale vuoi scrivere.

Non ci sono modi per scrivere a più colori, ma si può cambiare il colore del testo o dello sfondo agendo direttamente sulla palette, per esempio.

Poi, come spesso capita nelle cose legate alla programmazione, c'è più di un modo per fare una stessa cosa, ed ogni modo ha vantaggi e svantaggi. L'esperienza insegna come scegliere quella giusta... e per farsi l'esperienza bisogna provare, e anche sbagliare Smile
Back to top
View user's profile Send private message Send e-mail
BMirco



Joined: 22 Jan 2010
Posts: 17
Location: asti

PostPosted: Tue Apr 20, 2010 10:08 pm    Post subject: ok Reply with quote

ma da uno che non ha mai programmato nulla per il ds, è tutto scritto in cinese.
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
sverx
Site Admin


Joined: 04 Jun 2009
Posts: 108

PostPosted: Wed Apr 21, 2010 8:55 am    Post subject: Reply with quote

mi rendo conto della difficoltà iniziale... ci ho messo tantissimo anche io all'inizio.

partiamo dal fatto che se conosci già il C / C++ devi 'solo' entrare nell'ottica di avere un hardware diverso dal PC, un hardware con caratteristiche specifiche e con un set di API ancora tutto sommato un po' povero (per questo nacquero le PAlib, che ancora hanno molto successo) e che quindi ti obbliga per tante cose a dialogare ancora direttamente con l'hardware.

Se conosci il C allora potresti provare a prendere gli esempi del mio tutorial e a modificarli un po' qui un po' lì per sperimentare cose diverse.

Se invece non conosci il C direi che iniziare con la programmazione del DS non è proprio il caso, diventa davvero molto più complicato del necessario.

Ultima nota: chi inizia a programmare sul DS tipicamente prova a realizzare un gioco sullo stile di Pong. Se ti senti più lanciato potresti provare a rifare Arkanoid come esercizio di programmazione Smile
Back to top
View user's profile Send private message Send e-mail
BMirco



Joined: 22 Jan 2010
Posts: 17
Location: asti

PostPosted: Wed Apr 21, 2010 12:10 pm    Post subject: fa impazzire Reply with quote

Io il c/c++ lo conosco, ma non riesco ad entrare nell'ottica del ds..
Mi rendo conto che le Palib sono moltissimo limitate. Leggendo il sito che ti avevo indicato, noto
che molte cose base mancano..
In questi giorni sto tentando di far comunicare in ds con un pc. Con le palib mancava tutta la parte
di riconoscimento dell'accesspoint, l'asseganzione dell'ip sia dinamico che in dhcp..
Tutte funzioni che in devkitPro ci sono, ma sparse.
In dswifi9.h hai tutto quello che riguarda la wireless.
In socket.h ha tutto quello che riguarda la socks, dal creare un server a un client.
Molte cose, noto, che sono intuitive, ma molte no...
Per questo ti avevo proposto se potevi fare un breve corso.. ogni volta che puoi fai un esempio con i commenti e lo metti qui.
Poi come diceva un mio inssegnante "Al mondo è gia tutto fatto, resta solo l'abilita di riuscire a combinarle tra di loro"..
toca a chi legge prendere e modificare le parti dicodice a suo piacimento e uso..
Decidi te, ogni volta tratti cio che ti viene in mente...
Mi puoifare un esempio di come posso scrivere ciao sulo schermo superiore , a coordinate xy atua scelta. grazie..
Grazzie mille
Mirco
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
sverx
Site Admin


Joined: 04 Jun 2009
Posts: 108

PostPosted: Wed Apr 21, 2010 12:55 pm    Post subject: Reply with quote

Se conosci già il C siamo a un buon punto di partenza.

Invece per il wifi purtroppo non c'è ancora una libreria completa e stabile per fare tutte le cose confortevolmente, bisogna ancora pasticciare un po'. In ogni caso anche qui, parti dagli esempi che ci sono insieme alla libndswifi, e magari anche guardare il sorgente di AirScan se vuoi sbirciare come hanno risolto certe cose... io non ho ancora fatto niente con il wi-fi, per il momento...

Per scrivere "Ciao!" sullo schermo superiore in una specifica locazione, dato che non c'è (o, più facilmente, non conosco Very Happy ) il modo per spostare il cursore, io userei la funzione consoleSetWindow() che definisce una finestra rettangolare dentro la quale vanno le scritte:

Code:
lcdMainOnBottom();
consoleDemoInit();
consoleSetWindow(5,5,10,10);
iprintf("Ciao!");


Così la scritta "Ciao!" apparirà al sesto carattere della sesta riga, sullo schermo superiore.

Smile
Back to top
View user's profile Send private message Send e-mail
BMirco



Joined: 22 Jan 2010
Posts: 17
Location: asti

PostPosted: Wed Apr 21, 2010 7:05 pm    Post subject: a buon punto Reply with quote

Oggi sono riuscito, unendo due esempi AP_Search e httpget, a fare un programma che ricerca accesspoint e poi si connette a un server a uno specifico ip...
Ho creato in visual basic un programma server in ascolto sulla porta 1976, una accesspoint aperto (per la sicurezza e solo collegato pc-accepoint, senza nessun collegamento a internet). Sul ds ho fatto un programam che :
* ricerca l'accesspoint
* si fa rilasciare l'ip
* si conette al server
* senda una stringa tipo "stringa di prova" e vb la visualizza in una label
* in vb scrivi una parola o frase, la senda al ds, il ds la visualizza a video e la ritraspette uguale e in fine il serva la visualizza
Con questo voglio dire che a volte le cose banali sono le piu difficili..
ha solo un errore il progemma del ds, iprintf mi visualizza solo da meta schermo in su e non riesco a capire il perchè.
Booooooooooooooooooo
GRazie per l'esempio domani lo provo Wink
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
BMirco



Joined: 22 Jan 2010
Posts: 17
Location: asti

PostPosted: Wed Apr 21, 2010 7:23 pm    Post subject: ho letto Reply with quote

Ho letto in una dei numerosi .h
che per spostarti puoi usare gli escape

lcdMainOnBottom();
consoleDemoInit();
iprintf(“\x1b[Y;XH Ciao!");

dove x e y sono le coordinate che vanno da 0 a 31 per x e da 0 a 23 per y
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
sverx
Site Admin


Joined: 04 Jun 2009
Posts: 108

PostPosted: Thu Apr 22, 2010 8:22 am    Post subject: Re: a buon punto Reply with quote

Beh, cavolo, bel programma già! Ad esempio potresti fare un semplice client ftp per poter trasferire sul DS dei file dal PC, ad esempio dei file .NDS, e poi lanciarli, sarebbe molto utile alla comunità degli homebrewer che stanno sempre a infilare e togliere le microSD nelle chiavette e nelle cart... così si potrebbe velocizzare la fase di test sull'hardware Smile

BMirco wrote:
ha solo un errore il progemma del ds, iprintf mi visualizza solo da meta schermo in su e non riesco a capire il perchè.


non c'è per caso una finestra definita nella console? Prova a ridefinirla usando

Code:
consoleSetWindow(0,0,32,24);


invece riguardo:
Quote:
iprintf(“\x1b[Y;XH Ciao!");

eh, immaginavo ci fosse il modo di spostare il cursore tramite sequenze di escape... non l'ho mai cercate però Wink
Back to top
View user's profile Send private message Send e-mail
BMirco



Joined: 22 Jan 2010
Posts: 17
Location: asti

PostPosted: Thu Apr 22, 2010 1:01 pm    Post subject: non va Reply with quote

int main(void) {
//---------------------------------------------------------------------------------
consoleDemoInit();
lcdMainOnTop();
iprintf("Hello World!");

lcdMainOnBottom();
consoleSetWindow(0,0,0,32,24);
iprintf("Ciao!");

while(1) {
swiWaitForVBlank();
}
return 0;
}

io ho provato a fare questo ma scrive sempre sullo schermo superiore..
io cerco il modo per scrivere su entrambi gli schermi..
come si fa?
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
Display posts from previous:   
Post new topic   Reply to topic    libXM7 Forum Index -> Altri argomenti All times are GMT + 1 Hour
Goto page Previous  1, 2, 3  Next
Page 2 of 3

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © phpBB Group. Hosted by phpBB.BizHat.com

Free Web Hosting | File Hosting | Photo Gallery | Matrimonial


Powered by PhpBB.BizHat.com, setup your forum now!
For Support, visit Forums.BizHat.com