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


Voir le profil WWW
« 18 Mai 2008, 21:14:17 »

Yop!

Comme promis il y a quelques temps, voilà la dernière (r)évolution de l'EFSlib! Smiley
J'ai repris les bonnes idées du driver NitroFS de Eris (pas mal buggé, en passant  whistle), et modifié la lib en conséquence.

au programme de la v2:
- lib entièrement réécrite, du coup c'est plus compatible avec les v1.x (roooh!), mais...
- ajout des drivers et d'une intégration devoptab (kézako = voir plus bas)
- détection auto de la mémoire GBA, et intégration d'un driver dédié

Cette v2 conserve les avantages classiques de l'EFS, à savoir (pour rappel):
- permet d'alléger ce qui est chargé en RAM (l'EFS n'étant pas chargé en RAM), et de dépasser tranquillement la limite des 4Mo
- pas de fichiers qui trainent partout sur la carte mémoire, et de noob qui comprennent où qui faut copier les fichiers, fait plus "pro" (un seul fichier NDS en tout et pour tout, comme les roms commerciales)
- sauvegarde directement dans l'EFS, donc pas de fichier .ini, .sav ou autres en plus
- compatible avec tous les linkers qui ont un support DLDI
- fonctionne sur slot-1 et 2
- détection auto du fichier NDS et sauvegarde du path trouvé (re-recherche auto en cas de déplacement du fichier)
- lecture/ecriture de fichier dans l'EFS
- gestion de plusieurs fichiers ouverts en même temps
- parcours des répértoires

Les super nouveautés de la v2, en mieux compréhensible Langue :
- compatible avec les linker GBA (détection auto), et avec les émulateurs aussi sans rien avoir à changer dans le code! (par contre l'écriture n'aura aucun effet)

- l'intégration dans devoptab permet d'utiliser toutes les fonctions io standard du C, du coup c'est très facile de porter du code! un pti exemple d'ouverture de fichier pour voir concretement ce que ca donne:

FILE *f;
f = fopen("efs:/mon_fichier.txt", "rb+");
fclose(f);

Du coup forcément va falloir modifier (légèrement) les sources se basant sur l'EFSlib v1.x, mais ca en valait la peine à mon sens  Azn


Le truc c'est que j'ai fait tout ca en 1 aprem, du coup si y'a des beta testeur qui veulent bien faire plein de tests la dessus ca m'arrangerait pas mal Langue

EDIT: vlà la lib à tester, à ses risques et périls

* EFSv2.rar (15.52 Ko - Téléchargé 207 fois.)
« Dernière édition: 18 Mai 2008, 21:37:06 par Noda » Journalisée
MasterDje Hors ligne
Diet Coke Addict
Global Moderator
*****
Messages: 3249


Voir le profil WWW
« Réponse #1 : 18 Mai 2008, 21:25:16 »

aye carumba... ça s'annonce sympa de chez sympa, tout ça, Noda !!
Journalisée

stravingo Hors ligne
Sr. Member
****
Messages: 301


Voir le profil WWW
« Réponse #2 : 18 Mai 2008, 21:44:30 »

Ça m'a l'air très bien tout ça, d'autant plus que j'ai un projet sur le feu qui va en avoir besoin Azn
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
t4ils Hors ligne
Branleur
Elite Member
**
Messages: 961


Voir le profil WWW
« Réponse #3 : 18 Mai 2008, 21:57:31 »

j'utilise justement efslib dans mon dernier homebrew Smiley
je testerais la v2 avec plaisir Wink
Journalisée

Le codage amateur ? Parce que je le veux bien.
Cid2Mizard Hors ligne
Super Mega Member
****
Messages: 4064


Voir le profil WWW
Disciple Kukulcanien

« Réponse #4 : 18 Mai 2008, 22:29:36 »

Génial ça m'a l'air tout bénéf Cheesy, manque plus que l' ASLib v2 (avec le retour des valeurs de chaque  fréquenceLips Sealed   Wink
« Dernière édition: 18 Mai 2008, 22:33:07 par Cid2Mizard » Journalisée

Noda Hors ligne
Full Member
***
Messages: 208


Voir le profil WWW
« Réponse #5 : 18 Mai 2008, 22:54:02 »

L'ASlib qui va avec sera releasée une fois le beta test fini Wink

Sinon tu entends quoi par le "retour des valeurs de chaque fréquence"?
si c'est ce à quoi je pense, je vois pas trop ce que viendrait faire le calcul d'une transformée de fourier discrète dans une lib de son :s Sachant que c'est faisable sans trop de galère à coté (avec les timers + buffers + positions dans ceux-ci, c'est possibles de lire en temps réel les samples de la musique streamée).

En tout cas j'espère que y'aura pas de bug (j'ai tout codé d'un coup et compilé tout à la fin, sans tester Langue), mais pouvoir tester sous ému sans rien faire, c'est un vrai bonheur Langue

En plus en rajoutant 2 lignes de code on passe de la libfat à l'efs, ce qui permet de tester les codes libfat sous ému aussi  Cheesy :

Code
(c):
int id = FindDevice("efs");
setDefaultDevice(id);

et hop EFS devient la device par défaut du coup n'importe quelle appel type fopen("fichier", "rb") fera appel à l'EFS sans avoir à ajouter de préfixe "efs:" Wink
Journalisée
Toiletking Hors ligne
Mega Member
***
Messages: 1293


Voir le profil WWW
"Caca Boudin!"

« Réponse #6 : 18 Mai 2008, 22:57:34 »

Ah ben c'est du propre ca l'avènement internet  Undecided avec une info obsolète tout les 6 mois  Tongue

ARGH mon tuto est foutu!  Cheesy

Edit : ca ma l'air de la bombe tout de même hein  Wink

Juste pour info, d'après mes test, l'exemple marche même sous no@gba  Cheesy, ca être pareil avec la palib?  angel
« Dernière édition: 18 Mai 2008, 23:09:51 par Toiletking » Journalisée
Minishlink Hors ligne
Mega Member
***
Messages: 1439


Voir le profil WWW
Quand on veut, on peut !

« Réponse #7 : 19 Mai 2008, 06:44:36 »

Bon ben je teste ça ce soir, ça, m'a l'air super ça les nouveautés ! Cheesy
Juste un truc qui me chiffone c'était censé ne pas fonctionner sur linker slot-2 la dernière version avant celle-là ? Je suis sur SC SD et ça marche Undecided
Journalisée

Cid2Mizard Hors ligne
Super Mega Member
****
Messages: 4064


Voir le profil WWW
Disciple Kukulcanien

« Réponse #8 : 19 Mai 2008, 07:52:59 »

Euh moi aussi la v1 tourne sur un slot-2  Azn

Edit : La transformée de fourrier discrète, j'ai rien pigé  Grin, je veux juste dire, si on capte la fréquence en temps réel sur chaque canaux (peu importe comment), on aurait droit à un visualiseur de fréquence pour le MP3 Smiley
« Dernière édition: 19 Mai 2008, 08:48:00 par Cid2Mizard » Journalisée

The_Pimousse Hors ligne
Sr. Member
****
Messages: 353


Voir le profil
« Réponse #9 : 19 Mai 2008, 08:40:09 »

j'ai tout codé d'un coup et compilé tout à la fin, sans tester Langue
Bon, bin voila ... c'est decide ... tu es mon dieu !

Sinon, j'ai pas encore eu l'occasion/volonte de teste EFS (v1) ou ASlib mais je ne peux que saluer le travail fourni !
Journalisée

L'experience, c'est le nom que l'on donne a ses erreurs
Blash Hors ligne
Newbie
*
Messages: 43


Voir le profil
« Réponse #10 : 19 Mai 2008, 09:07:27 »

Salut Noda.
Merci encore pour ton excellent travail.

Quel bonheur de ne plus avoir a construire une image fat et tout le bazar.

Pour mes tests avec ton prog:
No$gba 2.6A: fonctionne correctement
ideas 1.0.2.2: seul le fichier .gba fonctionne. Le .nds ne fonctionne pas même en patchant avec le driver r4 dldi.

Je testerai plus tard sur hardware.

Juste 2 petits points:
dans ton prog la taille utilisée n'est pas exacte vu qu'il voit qu'un seul gros fichier.
voici le code quui donne la bonne taille pour un fichier
Code
(cpp):
 fseek(file, 0, SEEK_END);
 size = ftell(file);
 fseek(file, 0, SEEK_SET);
 size = size - ftell(file);
 

La fonction stat retourne 0 pour le chap stat.st_size

Je continue mes tests. Merci encore pour cette lib  Wink
Journalisée
Michoko Hors ligne
Full Member
***
Messages: 237


Voir le profil
« Réponse #11 : 19 Mai 2008, 09:30:35 »

ENORME !!  Cheesy

Merci Noda, je vais tester ça asap ! LoneWolfDS utilise l'efslib dans tous les sens, autant dire que le seul fait de ne plus avoir de différences entre l'émulation et le hardware réel est absolument fantastique !

De plus, ca devrait rendre loneWolfDS compatible avec des linkers tels que le M3 Perfect Lite. Je te fais un retour dès que possible !

Merci encore !
Michoko
Journalisée
morukutsu Hors ligne
Sr. Member
****
Messages: 499


Voir le profil
Noctambule

« Réponse #12 : 19 Mai 2008, 13:09:41 »

On peut lier cette nouvelle EFS avec les Virtual Files de l'ulib pour utiliser directement les routines de chargement habituelles ?
Journalisée
Noda Hors ligne
Full Member
***
Messages: 208


Voir le profil WWW
« Réponse #13 : 19 Mai 2008, 13:33:30 »

Juste un truc qui me chiffone c'était censé ne pas fonctionner sur linker slot-2 la dernière version avant celle-là ? Je suis sur SC SD et ça marche Undecided

Oui ca fonctionnait sur slot-2, mais pas sur les flash kit GBA Azn

Edit : La transformée de fourrier discrète, j'ai rien pigé  Grin, je veux juste dire, si on capte la fréquence en temps réel sur chaque canaux (peu importe comment), on aurait droit à un visualiseur de fréquence pour le MP3 Smiley

Pour faire un visualiseur de fréquence, il faut faire une transformée de Fourier discrète sur le signal Wink C'est assez lourd en calcul donc je vais pas m'amuser à faire pour rien dans l'ASlib, par contre c'est possible de faire ca en externe comme indiqué dans mon post précédent.

Pour mes tests avec ton prog:
No$gba 2.6A: fonctionne correctement
ideas 1.0.2.2: seul le fichier .gba fonctionne. Le .nds ne fonctionne pas même en patchant avec le driver r4 dldi.

Juste 2 petits points:
dans ton prog la taille utilisée n'est pas exacte vu qu'il voit qu'un seul gros fichier.
voici le code quui donne la bonne taille pour un fichier
Code
(cpp):
 fseek(file, 0, SEEK_END);
 size = ftell(file);
 fseek(file, 0, SEEK_SET);
 size = size - ftell(file);
 
La fonction stat retourne 0 pour le chap stat.st_size

Pour ideas, a priori c'est normal car quand il load un .nds il ne l'adresse pas en tant que rom gba (contrairement à no$ ou desmume), par contre il le fait bien quand on load un .ds.gba (logique Wink)

Sinon pour la taille du fichier c'est bien ce que j'ai mis, pas besoin de ta correction, car là on est bien dans l'EFS, donc il ne voit pas 1 gros fichier mais bien plusieurs petits Smiley

Sinon pour stat tu parles de stat() ou de la structure retournée par dirnext()?
car j'ai implémentée fstat() et ca retourne bien la taille avec st_size, faudra que je teste avec stat() pour voir. Par contre dirnext() ne remplit pas st_size, ce sera rajoutée dans la release finale (j'ai eu la flemme de le rajouter hier Langue)

On peut lier cette nouvelle EFS avec les Virtual Files de l'ulib pour utiliser directement les routines de chargement habituelles ?

A priori pas de contre indications vu que ca marche pareil que la libfat Smiley D'ailleurs, y'a meme rien de spécial à rajouter, pour utiliser l'EFS tu peux simplement ajouter le préfixe "efs:" pour tes fichiers et par magie ca ira les chercher dans l'EFS Azn
« Dernière édition: 19 Mai 2008, 13:35:11 par Noda » Journalisée
ecaheti Hors ligne
Jr. Member
**
Messages: 50


Voir le profil
« Réponse #14 : 19 Mai 2008, 13:50:23 »

Pour la FFT en direct, c'est relativement très tendu.
Pour l'avoir codé pour mon projet avec le robot, on en a chié. (et au final, même pas de reconnaissance vocal, juste une reconnaissance "musical" (un note la fois hein, pas pousser mémé dans les orties))
Journalisée
Pages: [1] 2 3 ... 9   Haut de page
Imprimer

Aller à: