Asthroth

Membres
  • Compteur de contenus

    43
  • Inscription

  • Dernière visite

Tout ce qui a été posté par Asthroth

  1. Bonjour à tous, voici un petit nds fini tout cho sorti du four. Le but est simple, déplacer le stylet le plus vite possible, ca marche comme ca: A on lance le "chronométrage" du stylet de nouveau A, ca arrete le chronométrage. Simple non? Il n'y a pas de sauvegarde des scores, le but ici étant juste de valider la mesure de la "vitesse" du stylet. il y aura certainement une autre version avec une meilleur prise en charge de cette pseudo-vitesse car celle-ci ne me donne pas entière satisfaction, mais bon, c'est un premier jet. c'est ici: http://vincent.dupont21.free.fr/Compteur.nds Pas testé sur console car ayant été obligé de mettre a jour ma 3DS, ma R4 ne fonctionne plus dessus, mais ca, je le savais. un conseil, aller y doucement sur l'ecran tactile
  2. merci ce qui m'a le plus poser de soucis, c'est de me remettre dans le trigo pour calculer la rotation des sprites
  3. Bonsoir à tous, Comme indiqué dans le sujet, j'ai 2 questions de programmations: - comment gérer une IHM? Je n'ai pour le moment trouvé que 2 solutions. La première, la plus simple et la plus rapide à mettre en place, est de ne faire que les éléments d'interface rectangulaire, et ensuite il suffit de tester des intervalles de positions du stylet pour savoir sur quoi j'ai cliqué. La deuxième, si l'on veut avoir des éléments de formes diverses et de faire un tableau de 256*192 éléments (1 par pixel) et de remplir chauqe élément avec ce que l'on a besoin pour gérer l'interface. Plus longue à mettre a place mais beaucoup plus souple (et certainement plus lourde d'un points de vu RAM occupée). - ma deuxieme question concerne le "stockage" de données. Existe-t-il une sorte de SGBD pour DS? Car là aussi, soit je stocke toutes mes données en dur dans le code, soit je fait des accès à un fichier externe (mais cela implique la mise en place de tout un bordel et en plus, pour diffuser le NDS, c'est beaucoup moins souple) Bref, ici aucune des 2 solutions ne me convient (mais j'ai bien peur de devoir tout mettre en hard dans le code, paglop quoi) Avez vous des idées voir même, suite à des dev' personnels, des exemples? Merci d'avance. PS: Et bonne année 2014 à tous
  4. Merci pour ce retour Lechuck Norris et heureux de voir que cela te plaise. Je vais voir d'ou ce bug peut provenir, je n'ai pas encore eu le temps de tester sur une véritable R4.
  5. Petite mise à jour toujours au meme audroit: http://vincent.dupon...r/Aiguilles.nds il est désormais possible grace n'importe bouton de la DS de switcher entre 2 graphismes, très basique mais cela me permet de poser certaines bases de programmation sur le DS.
  6. Merci pour ces encouragements, c'est fait plaisir. Je pense faire une petite modif dans la journée, on pourra switcher entre 2 visuels, t je ne pense pas aller plus loin. Pour le réglage de l'heure, c'est une bonne idée, mais dans tous les cas, on ne pourra pas régler l'heure "hardware" de la DS, on ne peut le faire que depuis l'ecran de réglage de la DS, mais peut etre que je me trompe. Pour la largeur de l'image, je n'ai pas trouvé d'image sympa faisant 256*192, j'ai donc prit ce que j'ai trouvé.
  7. J'ai mis a jour le NDS (toujours le meme lien), mais non testé sur console pour le moment, je ferais cela dans la soirée je pense, donc sur emulateur ca marche, à voir sur console.
  8. Je viens de faire un essai sur ma DS3D et, contrairement à l'emulateur, l'heure ne se met pas à jour, il va donc falloir que je fasse autrement par rafraichir l'heure.
  9. Bonjour à tous, désolé de ne pas être passé plus souvent, mais le temps m'a manqué et donc je l'ai consacré au développement sur la DS chérie Voici donc ce qui en est ressortit, un petit applicatif vraiment basique mais que m'a bien occupé en tout cas Celui-ci est encre a améliorer dans le sens ou les graphismes sont vraiment....bref, je pense revoir cette partie mais le plus gros est fait. Pour le moment il n'a été testé que sur emulateur, n'ayant pas ma console à disposition cette semaine. Dites moi ce que vous en dites et si vous avez des questions, je serais heureux d'y répondre: http://vincent.dupont21.free.fr/Aiguilles.nds
  10. Merci pour tous ces bons conseils
  11. Bonjour ALI, mon principal problème n'est pas le code en C (ca fait un bail que j'en ai pas fait, mais comme ca fait pres de 15 ans que je travaille dans le domaine du développement d'application, ca va, je gère ) mais c'est plutot des problèmes liés à la LibNDS, j'ai beaucoup de mal à trouver des infos complètes sur divers sujet, essentiellement sur le graphismes. Par exemple, j'ai deja des classes qui gère divers aspects de la console (comme l'ecran tactile ou les boutons), mais pour le graphisme, il y a des choses que je n'arrive pas à faire, et c'est tout simplement (des fois) car on ne peut pas le faire, mais comme c'est dit nulle part, je rame pendant des jours en m'acharnant sur un truc alors qu'en faite, on peut pas le faire. Par exemple, faire de l'alpha blending entre deux bitmap, impossible et pourtant ca à l'air tout bête. J'en ai conclu qu'on ne pouvait pas le faire puisque le meme code fonctionne très bien entre deux tiles maps. Du coup, j'ai perdu une semaine sur ce truc alors que cela ne semble pas réalisable, bref, c'est ce genre de chose qui bloc, mais pas le code en c++ (oui, je fais du c++ à la place du c, l'habitude de la POO)
  12. Je pense que je vais un peu revoir mes ambitions à la baisse, mais là, c'est bon, c'est repartit
  13. Aujourd'hui, la journée a été plutot positive. J'ai réussie a faire fonctionne un petit bout de code de la libfat sur la liker (mais ne fonctionne pas sur l'emulateur, ca va pas etre tres pratique pour le dev, mais bon) et j'ai enfin réussie a faire un truc graphique qui fonctionne (tres tres basique, mais rien que cela, pour moi, c'est une vrai victoire). Je vais donc finaliser l'utilisation tres basique de la Linfat pour le besoin que j'en ai et après je me remet sur des essais graphiques. Ca met du beaume au coeur
  14. Bonsoir à tous, le constat est des plus mauvais. Je galère vraiment sur la partie graphique, trop peut d'explications complètes sur le net (je ne trouve que des bout de code incomplets ou de la donc purement technique), trop peu d'aide disponible, bref, je rame vraiment sur la partie graphique. Et mon principal probème, c'est le temps, je dispose de trop peu de temps libre, je pensais pouvoir avancé doucement mais régulièrement mais je fais du surplace depuis plus d'une semaine sur un truc qui semble hyper simple, mais que je n'arrive jamais à faire touner faute de vraiment savoir l'implication de chaque instruction. Bref, a ce rythme là, je vais en avoir pour des mois et des mois pour sortir un truc qui, au final, ne correspondra pas à l'idée que je m'en faisais. je pense donc sérieusement abandonné le développement. Dommage, ca aurait été amusant, mais c'est là aussi que la bas blesse, je ne m'amuse pas du tout, je passe mon temps a faire des recherches sur le net, et faire des essais en m'inspirant de ce que je trouve sans vraiment comprendre ce que je fait, je n'y prends plus de plaisir. Je vais encore insister un peu et si d'ici la fin de la semaine rien de concret n'en ressort, je jette l'éponge. Voila, tout est dit je pense.
  15. bonjour a tous, je cherche un éditeur qui me permettrait de gérer les MAP . J'ai testé PERN Editor mais il plante trop souvent et est inutilisable. Jai trouvé tiled qui est très bien mais il ne semble pas faire d'export au format me permettant d'utilisé les fihciers généré dans un projet utilisant le LibNds. Donc si vous conaissez cela, faites moi signe Sinon je les ferais à la main, mais ca va vite être long et fastidieux.
  16. Bonjour a tous, mise a jour du sujet avec quelques protos pour valider certains aspects des background. Je galère un peu donc j'avance doucement et j'ai due mettre de coté certaines fonctionnalitées, je verais plus tard car là j'avance plus du tout.
  17. apres essai sur ma R4, la sauvegarde ne fonctionne pas, je vais voir si l'on peut se passer de ce test du CARD_ID ou voir pourquoi cet ID est vide sur le linker. Edit: voici l'explication de ce test: http://forum.gbadev.org/viewtopic.php?t=5924 De ce que jai compris (mon anglais est plutot moyen), c'est pour gérer un cas assez particulier, donc a voir si on peut s'en passer ou alors s'assurer que les données que l'on est en train de lire sont bien les notre par exemple en mettant et tout début de sauvegarde un petit "machin", une sorte d'ID a nous, et si la SRam n'est pas vide et ne commence pas par ce machin, mettre un message disant qu'il faut redemarrer sa console. je ferais un essai et ferait un retour ici.
  18. Bonjour, j'avoue ne pas avoir testé sur linker, donc il va falloir que je me penche sur la question effectivement. Quand au fait de compléter afin d'obtenir la taille afin d'otenir la taille de 512 Ko, je ne vois pas bien comment faire autrement non? La seule chose qui me chagrine dans l'utilisation de la FAT (et c'est pour cela que je n'ai pas du tout étudié cette méthode) est la suivante: Quand on lance un .nds pour la première fois sur un linker, un .sav du meme nom que le linker est créé automatiquement, et donc avec la gestion de la SRam, on a pas a s'occuper du nom du fichier. D'ailleur sur emulateur, un fichier est automatiquement créé avec le bon nom. Avec la fat, on ne peut pas savoir quel nom donner au fichier et du coup, si on a plusieurs .nds sur le meme linker, comment savoir le nom a donner pour ne pas ecraser les donner d'un autre .nds parceque dire que l'on regarde par exemple si un default01.sav existe deja on passe au default 02 et ainsi de suite jusqu'a trouver un nom libre, mais apres, le .nds, comment sait-il le nom de sa propre sauvegarde. Bref, ca devient vite compliqué. Je pense que la meilleure solution est de se servir de la SRam. Je vais chercher de mon coté comment resoudre ce soucis de la SRam sur un linker et je ferais un retour ici.
  19. Bonne chance en espérant que ca résolve ton problème
  20. Moi j'ai trouvé cela et j'en ai fait une classe. J'ai fais des essais et ca fonctionne, après c'est encore en cours de développement, donc peut etre à débugger un peu Le H #ifndef DEF_SRam #define DEF_SRam #include "nds/arm9/console.h" #ifdef ARM9 #define WAIT_CR REG_EXMEMCNT #else #define WAIT_CR REG_EXMEMSTAT #endif // #define WAIT_CR 0x04000204 class SRam { public: SRam(); ~SRam(); void LireSauvegarde(char *, int); //méthode pour lire la sauvegarde de la SRam vers le membre sram_data bool EnregistreSauvegarde(char *, int); //Methode pour enregistrer les données vers la SRam void DonneCardID(char *); //renvoie le card ID private: void InitAccessSRam(void); /* Enable the ARM9 to access the GBA cartridge memory area */ int is_homebrew_cartridge(char * ) ; //Méthode qui va vérifier si la PASS est bien respecté void memcpySRam(char* , char * , int ); //Methode permettant d'ecrire dans une zone mémoire void memsetSRam(char* , char , int ); //Methode permettant d'initialiser une zone mémoire char card_id[5]; char sram_data[101]; //contenu de la SRAM apres lecture de celle-ci //char copy_status[32]; }; #endif Le CPP #include "SRam.h" #include <nds.h> #include <stdio.h> //constructeur SRam::SRam() { //RAZ de la copy local des 100 premiers octets de la SRAM memsetSRam(sram_data, 0, sizeof(sram_data)); memsetSRam(card_id, 0, sizeof(card_id)); // copie le contenu des 4 caractères de l'identifiant de la ROM dans une variable locale //Ce doit être 'PASS' pour toutes les homebrew ROM's. cet ID est localisé à l'adresse 0x080000AC. memcpySRam(card_id, (char*)0x080000AC, 4); } //destructeur SRam::~SRam(){} // active le ARM9 pour accéder à la zone memoire de la cartouche void SRam::InitAccessSRam(void) { WAIT_CR &= ~0x80; } //méthode pour lire la sauvegarde de la SRam vers le membre sram_data void SRam::LireSauvegarde(char *TxtRelue, int Taille) { //copie le contenu de la SRAM vers une variable locale memcpySRam(sram_data, (char*)SRAM, Taille - 1); strcpy(TxtRelue,sram_data); } //Methode pour enregistrer les données vers la SRam //renvoie 1 si c'est ok, sinon renvoie 0 bool SRam::EnregistreSauvegarde(char *TxtSauve, int Taille) { /* Copy une chaine de texte dans la SRAM si la cartouche a un homebrew ROM. */ if(is_homebrew_cartridge(card_id)) { memcpySRam((char*)SRAM, TxtSauve, Taille); return 1; } else return 0; //memcpy(copy_status, error, sizeof(error)); } //Méthode qui va vérifier si la PASS est bien respecté int SRam::is_homebrew_cartridge(char * card_id) { return card_id[0] == 'P' && card_id[1] == 'A' && card_id[2] == 'S' && card_id[3] == 'S'; } //Methode permettant d'ecrire dans une zone mémoire void SRam::memcpySRam(char* dest, char * src, int size) { while(size--) *dest++ = *src++; } //Methode permettant d'initialiser une zone mémoire void SRam::memsetSRam(char* dest, char fill, int size) { while(size--) *dest++ = fill; } void SRam::DonneCardID(char * cardID) { strcpy(cardID, card_id); } Ca va te faire un .SAV que tu pourra relire par la suite et modifier.
  21. et si tu tire, aléatoirement, 3 chiffres compris entre 0 et, disons, 1 000 000, et que tu les sauvegarde sur la cartouche. Ce trinome de chiffres pourrait contitué un ID et meme si l'unicité du tirage n'est pas garantie à 100%, on en est pas loin non? Le tirage n'est fait qu'un fois bien sur, à la première utilisation.
  22. Peut etre en récupérant l'adresse MAC de la DS non? après comment on fait ca, aucune idée, désolé.
  23. Bonjour, j'ai commencé avec la NDSLib et j'ai passé pas mal de temps pour finalement ne pas réussir à le faire fonctionner. Par contre tu m'as donné l'idée de regarder dans la PALib (dans le code source) comment ils font et voir si je peux trouver de quoi m'aider. Merci à toi.
  24. petit complément, voici comment je procède pour changer mes 2 BG: videoSetMode(MODE_5_2D | DISPLAY_BG2_ACTIVE | DISPLAY_BG3_ACTIVE); vramSetBankA(VRAM_A_MAIN_BG_0x06000000); vramSetBankB(VRAM_B_MAIN_BG_0x06020000); //enable a background int bg2Main = bgInit(2, BgType_Bmp8, BgSize_B8_256x256, 0,0); int bg3Main = bgInit(3, BgType_Bmp8, BgSize_B8_256x256, 0,0); //use the standard drunken logo dmaCopy(drunkenlogoBitmap, bgGetGfxPtr(bg3Main), drunkenlogoBitmapLen); dmaCopy(drunkenlogoPal, BG_PALETTE, drunkenlogoPalLen); dmaCopy(DBZ_vs_marvelBitmap, bgGetGfxPtr(bg2Main), DBZ_vs_marvelBitmapLen); dmaCopy(DBZ_vs_marvelPal, BG_PALETTE, DBZ_vs_marvelPalLen); //et enfin le fondu: REG_BLDCNT = BLEND_ALPHA | BLEND_SRC_BG2 | BLEND_DST_BG3; for(fadeValue = 0; fadeValue <= 16; fadeValue++) { REG_BLDY = fadeValue; swiWaitForVBlank(); } Résultat j'ai un fondu de mon BG vers le noir, et non un fondu de mon premier BG vers le deuxieme, de l'alpha blending quoi Merci pour votre aide
  25. Bonjour à tous, j'ai fait quelques recherches sur le net et impossible de trouver un bout de code fonctionnel. Voilà, je travaille sur la gestion de la vidéo et plus particulièrement des background sur la DS, et j'ai trouvé que l'on pouvait faire du fondu entre deux background: REG_BLDCNT = BLEND_ALPHA | BLEND_SRC_BG2 | BLEND_DST_BG3; Mais le soucis est que je n'arrive pas à assigner un background à BG2 ET BG3 en même temps afin de faire un joli fondu. sauriez vous comme il faut procéder? Merci d'avance.