Pages: 1 2 [3] 4 5 ... 9   Bas de page
Imprimer
Auteur Fil de discussion: [NDS/LIB] EFS v2 à beta tester  (Lu 22047 fois)
0 Membres et 1 Invité sur ce fil de discussion.
Arialia Hors ligne
Elite Member
**
Messages: 868


Voir le profil
« Réponse #30 : 20 Mai 2008, 07:02:26 »

Le pb viendrait pas de

Citation
    if (useDLDI) {   
        // seek to right position and read data
        fseek(nds_file, file->pos, SEEK_SET);
        len = fread(ptr, len, 1, nds_file);
    } else {   
        memcpy(ptr, file->pos + (void*)GBAROM, len);
}

dans la fonction EFS_Read. Il n'y aurait pas un pb de réentrance dans le code vu que devoptab est utilisé pour le fread ?

il y a des chances ...

pour éviter ça dans ton nds_file tu spécifie le 'device' ? 'fat:' par exemple ?
évite aussi les fonctions fichiers de haut niveau je pense .... c'est un read que tu devrais faire , pas un fread ... Azn

Journalisée

Mon blog de dev   - -  Mon tutoriel sur la libfat -- DSPhoto
Un bon programmeur est fainéant : il déteste refaire la même chose, il fait donc des fonctions Wink

Mais qui m'a mis des nounours roses ? Le rose c'est pour les homo et les gamines , beurk, mais ça va bien aux fleurs Smiley
Et aux jeux de Genevois Wink
Copper Hors ligne
Mega Member
***
Messages: 1296


Voir le profil
« Réponse #31 : 20 Mai 2008, 07:13:54 »

Par contre pourquoi cela serait-il lent uniquement sur Hardware Huh?
Journalisée
Arialia Hors ligne
Elite Member
**
Messages: 868


Voir le profil
« Réponse #32 : 20 Mai 2008, 07:52:39 »

sur emulateur il doit faire le memcpy ...
Journalisée

Mon blog de dev   - -  Mon tutoriel sur la libfat -- DSPhoto
Un bon programmeur est fainéant : il déteste refaire la même chose, il fait donc des fonctions Wink

Mais qui m'a mis des nounours roses ? Le rose c'est pour les homo et les gamines , beurk, mais ça va bien aux fleurs Smiley
Et aux jeux de Genevois Wink
Copper Hors ligne
Mega Member
***
Messages: 1296


Voir le profil
« Réponse #33 : 20 Mai 2008, 08:38:01 »

Ah oui effectivement pour le coup il faut vraiment debugguer sur hardware (ou emulateur gérant le DLDI)

Par contre fat: n'est pas le device par défaut ?
Journalisée
Noda Hors ligne
Full Member
***
Messages: 208


Voir le profil WWW
« Réponse #34 : 20 Mai 2008, 09:12:16 »

Le pb viendrait pas de

Citation
    if (useDLDI) {   
        // seek to right position and read data
        fseek(nds_file, file->pos, SEEK_SET);
        len = fread(ptr, len, 1, nds_file);
    } else {   
        memcpy(ptr, file->pos + (void*)GBAROM, len);
}

dans la fonction EFS_Read. Il n'y aurait pas un pb de réentrance dans le code vu que devoptab est utilisé pour le fread ?

Je me posait la question, mais NitroFS semble faire la même chose hmmm. Je vais faire un pti test de NitroFS sur hard pour tester sa vitesse, y'a quelque chose de bizarre quand meme...

Aralia: fat: est le device par défault, et de toute facon si tu affiche la variable efs_path le préfixe y est bien. Pour l'utilisation de fread par rapport à read, c'est qu'il me semble que fread est utilise le cache mais pas read, mais je me trompe peut etre..

En tout cas doit y avoir forcément une couille qq part!
Journalisée
Alekmaul Hors ligne
Papi codeur et
Administrateur
*****
Messages: 1401


Voir le profil WWW
Out of memory error ...

« Réponse #35 : 20 Mai 2008, 09:25:36 »

Oui, tu as raison, mais en regardant là (http://devkitpro.cvs.sourceforge.net/devkitpro/libfat/nds/source/nitrofs.c?revision=1.1&view=markup), ils font aussi l'inversion entre len et 1, à tester donc si le pb ne vient pas de cette lecture de 1 par 1 octet

Citation
  129 //reads from rom image either gba rom or dldi
  130 int nitroSubRead(struct nitroRawStruct *nrs, void *ptr, int len) {
  131    if(isNdsFile) { //read from ndsfile
  132       len=fread(ptr,1,len,nrs->ndsFile);
  133    } else {   //reading from gbarom
  134       memcpy(ptr, nrs->pos+(void*)GBAROM,len); //len isnt checked here because other checks exist in the callers (hopefully)
  135    }
  136    nrs->pos+=len;
  137    return(len);
  138 }
Journalisée

Mon site PortableDev : l'émulation sur GBA et sur DS
Noda Hors ligne
Full Member
***
Messages: 208


Voir le profil WWW
« Réponse #36 : 20 Mai 2008, 17:24:27 »

Bon j'ai testé en speed mon exemple avec NitroFS, et ca rame pareil... donc ca vient forcément des fonctions haut niveau du devoptab, pour l'instant rien à faire, à part peut etre tester avec les fonctions plus bas niveau (open, read etc au lieu de fopen, fread) pour voir si ca va plus vite ou pas.

Je vais en toucher quelques mots à Chism il aura ptetre une idée la dessus, et Wintermute aussi qui cassait bien les bonbons avec son devoptab qui au final fait ramer le bordel Langue
Journalisée
Alekmaul Hors ligne
Papi codeur et
Administrateur
*****
Messages: 1401


Voir le profil WWW
Out of memory error ...

« Réponse #37 : 22 Mai 2008, 06:03:24 »

Petit up pour les beta testeurs, il semble que le pb vient bien de l'inversion entre len, 1 et 1,len dans les fread comme indiqué ici : http://forum.gbadev.org/viewtopic.php?p=157323#157323

Si certains veulent tester avant (il faut mettre à jour soit même la lib, y'a pas encore d'update) que Noda continue la mise à jour de sa superbe lib Wink

PS : j'espère que AS_lib suivra dans la foulée ?
Journalisée

Mon site PortableDev : l'émulation sur GBA et sur DS
t4ils Hors ligne
Branleur
Elite Member
**
Messages: 961


Voir le profil WWW
« Réponse #38 : 22 Mai 2008, 08:49:18 »

c'est bien ça !

bravo les chti goy Wink
* t4ils va pouvoir aller mettre tout ça dans StillAliveDS Azn

edit : après pleins de test, ça fonctionne vraiment nickel Smiley
thanks Smiley
« Dernière édition: 22 Mai 2008, 10:33:23 par t4ils » Journalisée

Le codage amateur ? Parce que je le veux bien.
Toiletking Hors ligne
Mega Member
***
Messages: 1293


Voir le profil WWW
"Caca Boudin!"

« Réponse #39 : 22 Mai 2008, 09:21:10 »

Juste une chtite question (de noob  Wink ) : Est-il possible en bricolant la palib, de remplacer de manière transparente, via quelque p'tite modif de la lib, de remplacer PAFS par EFS et de garder les fonctions pafs telquel de manière à ce que, lors de la compilation avec ce dernier, on ne soit plus du tout aubliger de changer sont code?   Roll Eyes

Ca serait le reve! comme ca op, je compile avec la dite version et je garde toute la souplesse et la simplicité de mon pafs favoris  Kiss

Edit : comme ca la doc de pafs ne bougerai pas  Cool
« Dernière édition: 22 Mai 2008, 09:25:16 par Toiletking » Journalisée
Noda Hors ligne
Full Member
***
Messages: 208


Voir le profil WWW
« Réponse #40 : 22 Mai 2008, 21:02:28 »

Pour PAFS c'est possible, mais tu perdrais moins de temps à changer ton code qu'à faire ca  whistle

Sinon j'ai bien avancé sur l'EFS today, et j'ai augmenté les perfs encore de 10~40%  Cool

Au passage, les resultats d'un petit bench pour comparer les vitesses de l'EFS et de NitroFS:

Citation
EFS init OK! Testing...
Open a file: 0ms
small file fread (1blk): 15ms
small file fread (/1b): 15ms
dir listing: 1ms
big file fread (1blk): 1895ms
big file fread (/1b): 1895ms

NitroFS init OK! Testing...
Open a file: 177ms
small file fread (1blk): 194ms
small file fread (/1b): 195ms
dir listing: 184ms
big file fread (1blk): 2052ms
big file fread (/1b): 2049ms

Ca rockz hein Langue C'est même plus rapide que de passer par la libfat, du fait du handle unique de l'EFS on ne perd pas de temps à ouvrir à chaque fois un fichier et à remplir le cache Cheesy
Journalisée
Alekmaul Hors ligne
Papi codeur et
Administrateur
*****
Messages: 1401


Voir le profil WWW
Out of memory error ...

« Réponse #41 : 22 Mai 2008, 21:23:14 »

UNE RELEASE !!! UNE RELEASE !!! UNE RELEASE !!! UNE RELEASE !!! UNE RELEASE !!!  Wink Cheesy
Journalisée

Mon site PortableDev : l'émulation sur GBA et sur DS
Michoko Hors ligne
Full Member
***
Messages: 237


Voir le profil
« Réponse #42 : 22 Mai 2008, 21:32:59 »

Je dirais même plus :

UNE RELEASE !!! UNE RELEASE !!! UNE RELEASE !!! UNE RELEASE !!! UNE RELEASE !!! Cheesy Azn
Journalisée
Noda Hors ligne
Full Member
***
Messages: 208


Voir le profil WWW
« Réponse #43 : 22 Mai 2008, 23:21:50 »

La release candidate sort demain (flemme de l'uper là Langue), avec support de chdir() complet (à tester) et la possibilité de fournir un path dans l'init (facultatif), en vue du support futur de argv[] par DKP Smiley

Si les derniers tests sont concluants, la release finale suivra, couplé à une MAJ de l'ASlib Wink
Journalisée
stravingo Hors ligne
Sr. Member
****
Messages: 301


Voir le profil WWW
« Réponse #44 : 23 Mai 2008, 10:07:08 »

Très bonnes nouvelles Azn
Quand tu dis "sort demain" à 00:21, tu veux dire "aujourd'hui", hein ? (hein? hein?)
Journalisée

Mes jeux (Ka-BoOm, Setsuzoku no Puzzle) et apps (DS Weather Report, Treasures of Gaia, Miniville DS Manager, Secret Hordes) sur DS sont disponibles sur mon devblog
Pages: 1 2 [3] 4 5 ... 9   Haut de page
Imprimer

Aller à: