Pages: 1 ... 3 4 [5] 6 7 ... 9   Bas de page
Imprimer
Auteur Fil de discussion: [NDS/LIB] EFS v2 à beta tester  (Lu 22074 fois)
0 Membres et 1 Invité sur ce fil de discussion.
Cid2Mizard Hors ligne
Super Mega Member
****
Messages: 4064


Voir le profil WWW
Disciple Kukulcanien

« Réponse #60 : 29 Mai 2008, 07:54:23 »

pas de problème esf + asLib de mon côté
d'ailleurs, je lis un mp3 avec efs:/ dans le chemin sans problèmes Smiley

Euh oui mais je parle de ASlib + Lobbylib  Azn
Journalisée

Alekmaul Hors ligne
Papi codeur et
Administrateur
*****
Messages: 1401


Voir le profil WWW
Out of memory error ...

« Réponse #61 : 29 Mai 2008, 08:04:58 »

Et pour l'ASLib et la LobbyLib, je suis embété dès que j'initialise l'ASLib , que se soit avant ou après la Lobby, ca ne va pas soit j ai pas de wifi ou soit sa plante dès l'init.

Y a une solution pour utiliser ASLib + LobbyLib ?
Certainement un pb de gestion des FIFO entre l'arm7 et l'arm9, cherche de ce coté là.
Journalisée

Mon site PortableDev : l'émulation sur GBA et sur DS
Zombie Hors ligne
Sr. Member
****
Messages: 294


Voir le profil
« Réponse #62 : 29 Mai 2008, 08:05:16 »

Merci pour ta réponse Noda... J'utilisais effectivement l'ASlib modifiée (pour EFS)...

Maintenant, je n'ai plus d'erreur mais quand je lance le NDS sur mon émulateur, j'obtiens ca à l'air de se figer et je n'ai aucune musique...

Voici mon code :

Code
(c):
EFS_Init(EFS_AND_FAT, NULL);
 
PA_InitASLibForMP3(AS_MODE_MP3 | AS_MODE_SURROUND | AS_MODE_16CH);
 
AS_MP3StreamPlay("efs:/music/music1.mp3");
AS_SetMP3Loop(true);
 

Je loupe p-e un truc ?  Azn

EDIT :
Ca plante au "PA_InitASLibForMP3" pour être précis...

EDIT2:
Ah ben si je vire la ligne "PA_InitASLibForMP3", ca marche  Azn
Cette ligne est-elle vraiment nécessaire ?

EDIT3:
Ok, je faisais juste le gros boulet... La ligne "PA_InitASLibForMP3" était déjà plus haut dans mon code... Donc en double, ca ne passait pas...   whistle
« Dernière édition: 29 Mai 2008, 09:13:17 par Zombie » Journalisée
Alekmaul Hors ligne
Papi codeur et
Administrateur
*****
Messages: 1401


Voir le profil WWW
Out of memory error ...

« Réponse #63 : 02 Juin 2008, 07:20:31 »

Yop Noda,
Je viens de détecter un gros problème d'incompatibilité avec les linkers qui ne possède pas de reconnaissance des fichiers en "case sensitive" (comme le MK5 je pense).
Ces derniers sauvegardent les noms de fichiers en MAJUSCULE, même si tu les indiques en minuscule.
Ainsi, si tu mets ton homebrew dans un sous répertoire (style /Homebrews), le premier lancement fonctionne bien, mais l'écriture du path dans le fichier NDS indique /Homebrews/FICHIER.NDS, même si ce dernier est nommé Fichier.nds
Ce qui fait qu'au second lancement, impossible d'initialiser EFS ... planton du homebrew Sad

Je me demande s'il n'y a pas de pb aussi à la lecture si tu stockes des données dans un sous répertoire de ton arbo efs, il n'arrivait plus à la trouver, j'étais obligé de tout mettre à la racine de l'arborescence.
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 #64 : 02 Juin 2008, 07:59:27 »

Ce problème vient visiblement de la libfat avec certains linkers, qui dès que le fichier est en format 8.3 passe en majuscules... je vais vérifier que dans l'init de l'EFS je fais bien gaffe à pas prendre les majuscules en compte (car la libfat est case insensitive de toutes facons il me semble, le cas contraire serait bien problématique par contre :s).

Pour les fichiers dans arborescence faudrait que je teste, mais c'est fort possible que ca vienne d'un bug de ndstool qui implémente mal la contruction du NitroFS. Pour retrouver un fichier (id) de toutes facons c'est la fonction de parcours de ndstool qui a été modifiée dans EFS, et pour la lecture de celui-ci, l'offset de départ c'est simplement offset de base + décalagege*id, et il n'y a que l'id qui change la dedans. Donc une fois l'id trouvé, si les fichiers sont pas au bon endroit je crois pas pouvoir faire grand chose :/ ou alors j'ai loupé un truc dans les spec du NitroFS  Undecided C'est simple a vérifier sinon: le coup des répertoires, ca marche avec NitroFS ou pas? vu qu'il parcourt le NitroFS différement, si ca marche avec NitroFS ca devrait etre corrigeable a priori.

Sinon un truc qu'à dit Michoko me chagrine quand même l'arborescence qui marche sur ému (driver GBA) et pas sur linker (driver DLDI) sachant que ce qui change entre les 2, c'est la lecture qui passe de memcpy à fseek + fread :/ Bug bizarre de la libfat? (ce serait loin d'être le 1er que je trouve...)
Journalisée
Alekmaul Hors ligne
Papi codeur et
Administrateur
*****
Messages: 1401


Voir le profil WWW
Out of memory error ...

« Réponse #65 : 02 Juin 2008, 10:35:49 »

bon ... pb résolu mais tu vas pas être content Noda  ...

En fait, le pb vient de l'utilisation des read / open / close / write à la place des fread / fopen / fclose / fwrite.

En effet, après quelques recherches, j'ai trouvé que le pb venait de l'écrasement de la zone de signature de l'efs sur MK5 (pas sur d'autres linkers comme l'edge où sa fonctionne bien ...).
Dans la fonction checkfile, sur MK5, le lseek(f, 0, SEEK_SET); suivi du dataChunk_size = read(f, dataChunk, EFS_READBUFFERSIZE); ne fait pas ce qu'il faut. En effet, le 1er octet est oublié dans la lecture, ce qui fait que la signature est trouvé à offset-1 à la place de offset et ça écrase donc l'octet de poids fort de la taille du fichier nds.
Lors du second lancement du homebrew, la taille n'étant pas correcte, ploum, planton :/
Je suis hélas certain que les autres read / write impliquent le pb de répertoire qui ne fonctionne pas sur MK5. Je vais essayer de tout remettre avec des fread/fwrite (même si c'est plus lent, je sais Noda  Wink) pour tester ...
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 #66 : 02 Juin 2008, 13:14:39 »

Hmm c'est possible que ca vienne d'autre chose (cf bug de la libfat): j'ai remarqué récemment que faire des lecture puis écritures consécutives dans un fichier marchaient pas terribles parfois, genre:

fread(truc)
fseek(0)
fwrite(truc)

et le fwrite se retrouve écrit a un offset de 1024 sur mon DSX... un fclose puis re-fopen entre le fread et le fwrite résoud le pb.

Vu que le checkfile a été écrit ya pas mal de temps, c'est possible que y'ai pas de fclose entre les fread et les fwrite, ce qui peut causer ce souci là. Je regarderai ca ce soir.

EDIT: j'ai regardé, c'est bien ca Wink. Rajoute donc un close puis open avant le lseek et tout devrait se passer comme prévu Wink
« Dernière édition: 02 Juin 2008, 13:16:47 par Noda » Journalisée
Alekmaul Hors ligne
Papi codeur et
Administrateur
*****
Messages: 1401


Voir le profil WWW
Out of memory error ...

« Réponse #67 : 02 Juin 2008, 14:50:58 »

Soit mais comme indiqué, si je remplace les close/read/write/lseek par fclose/fread/fwrite/fseek, y'a plus aucun pb ..., étrange non ?
De plus, les répertoires dans la structure efs ne fonctionnent pas , un peu avec les fread/fcllose (ou j'ai merdé dans ma version customisée, ce qui est possible ..Azn)

bref, en tout état de cause, je garde pour l'instant ma version "customisée" avec les fread/fwrite/fclose histoire de pouvoir tester avec le MK5
Journalisée

Mon site PortableDev : l'émulation sur GBA et sur DS
Campanile Hors ligne
Elite Member
**
Messages: 925


Voir le profil WWW
sic

« Réponse #68 : 02 Juin 2008, 15:26:39 »

Je me permets de m'interférer au milieu de tout ça, tu as un driver DLDI MK5 qui gère le write Alekmaul ?
J'ai peut être des problèmes aux yeux mais chez Chism j'ai vu qu'un read  Cry
Du coup si tu as une version custom(ou dispo partout et que j'ai loupé) read/write, je suis preneur Smiley
Journalisée

L'expérience, c'est ni plus ni moins qu'une petite quantité d'information qui aurait été fort utile quelques secondes avant qu'on l'apprenne...
Alekmaul Hors ligne
Papi codeur et
Administrateur
*****
Messages: 1401


Voir le profil WWW
Out of memory error ...

« Réponse #69 : 02 Juin 2008, 15:35:33 »

oui, pour moi, il gère le write, c'est celui de la libfat. En plus, c'est de l'auto patch dldi, donc y'a pas de pb.

Pour en revenir à ton post Noda, en plus  le pb est bien avant le write pouisque c'est à la lecture que ça va pas, donc dés le début , ici :

Citation
                fseek(f, 0, SEEK_SET);
                while(efs_offset<size && !found) {
                    dataChunk_size = read(f, dataChunk, EFS_READBUFFERSIZE);
Dés le début, pof le premier octet est pas lu et je ne crois pas qu'il y a des write avant

Mais bon, j'abandonne sur MK5, j'ai trop de bug là, je comprends plus ce qui plante dans ma version customisé ...
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 #70 : 02 Juin 2008, 16:34:53 »

Bizarre que ca plante sur un read là, a moins que le seek ne soit mal implémenté Huh? En plus fread & co se basent sur des read etc, donc c bizarre que ca marche avec et pas sans (la seule différence à ma connaissance étant le buffering).

J'ai un MK5 donc je regarderai à l'occasion, mais c'est très étrange Sad
Journalisée
Noda Hors ligne
Full Member
***
Messages: 208


Voir le profil WWW
« Réponse #71 : 05 Juin 2008, 08:23:28 »

Bon j'ai fait quelques tests et effectivement il y a problème avec le seek du driver DLDI du MK5, qui fait aussi que les répertoires ne marchent pas (je suppose donc que tu as un mk5 ou assimilé Michoko?? Wink)

J'ai posté sur le forum Neoflash à ce sujet.

Sinon grace à un gentil monsieur de gbadev, un petit bug a été résolu qui permet à l'EFS de fonctionner correctement avec le driver GBA sur hardware, donc amélioration de la compatibilité Wink

Dans la prochaine version, je vais intégrer mon pti moteur de parsing de répertoire que j'ai fait pour chdir un peu partout, ce qui fait que y'aura plus de prise de tete à savoir comment entrer les chemins pour les fichiers répertoire etc, tout les paths standard et relatifs seront supportés (comme "./blabla/../../ici/fichier.txt" par ex) Smiley

Au fait est ce que le maximum de monde pourrait tester le fichier précompilé EFSv2.nds de la dernière build (page 4 du topic) pour savoir si le test de listage des répertoires marchent sur d'autres linker que le mk5?

j'éditerai au fur et à mesure ce post pour savoir quels linkers ont déjà été testés:
- MK5 (& clones comme NCard): marcho pô
- DS-X: ok
- SCLite : marcho pô
- CycloDS : marcho pô
-
« Dernière édition: 05 Juin 2008, 14:38:36 par Noda » Journalisée
Michoko Hors ligne
Full Member
***
Messages: 237


Voir le profil
« Réponse #72 : 05 Juin 2008, 08:36:42 »

Salut Noda,

Non malheureusement mon linker est un CycloDS Evolution Wink
Je vais retester ton NDS précompilé, mais de mémoire ça fonctionnait. Je pense que mon problème vient plutôt d'un grand nombre de fichiers dans la ROM.
Journalisée
Alekmaul Hors ligne
Papi codeur et
Administrateur
*****
Messages: 1401


Voir le profil WWW
Out of memory error ...

« Réponse #73 : 05 Juin 2008, 11:54:19 »

En fait, faut aller plus loin dans le test et lancer 2 fois le fichier nds car le MK5 a le problème de lecture du ficheir au second lancement (moment où il recherche la signature qu'il ne peut trouver car il a écrasé cette dernière au premier lancement) ...
Aussi, il faut mettre le fichier dans un sous répertoire pour éviter qu'il prenne la racine du linker comme argent comptant.
Ainsi, le test sera plus probant Azn
Journalisée

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


Voir le profil
« Réponse #74 : 05 Juin 2008, 12:40:54 »

Bon je retire ce que j'ai dit, il semblerait bien qu'il y ait un problème.

Conditions du test:
- EFSv2.nds compilé avec la RC1 et placé dans le répertoire "/homebrew/"
- Linker CycloDS Evolution avec firmware 1.31
- Dès le premier lancement, la ROM bloque sur "listing '/list/' directory"
- Idem pour le 2ème lancement
- sur NO$GBA 2.6a, tout fonctionne bien avec le même fichier NDS

Il y a donc bien un souci Smiley

Edit: Noda, si tu veux m'envoyer des builds de test, je me ferai un plaisir de te faire un retour.
« Dernière édition: 05 Juin 2008, 13:29:18 par Michoko » Journalisée
Pages: 1 ... 3 4 [5] 6 7 ... 9   Haut de page
Imprimer

Aller à: