Me he dado cuenta que la función que he hecho para ver la extensión no funciona bien, no toma por igual .xx que .XX
Y el problema de esto, es que al parecer, no funciona ninguna función, ni la de mostrar texto ni nunguna, solo funciona sumar la variable, es raro raro raro.
PD: Solved (alguna mejora que añadir?)
//Funcion comprobar si es un .nds o no
int C_extension(const char* nombre){
//Declaramos variables
u8 valido = 0;
u8 longitud = 0;
u8 i = 0, j = 0;
char * extension;
//Obtenemos la longitud del array
longitud = strlen(nombre);
//Obtenemos la extension que tiene
for(i = (longitud-4); i < longitud; i++){
extension[j] = nombre[i];
j++;
}
//Comprobamos
if((strcmp(extension,".nds") == 0) || (strcmp(extension,".NDS") == 0))
{
valido = 1;
}else{
valido = 0;
}
return valido;
}
//Para trimmear la SD completa sirve esta misma funcion solo que como "carpeta" usamos ("."), como en chdir(".");
void Dir_struct(const char* carpeta){
DIR *directorio;
struct dirent *infodir;
u8 valido = 0;
u16 rom = 0;
u16 carp = 0;
u8 i=0;
//Abrimos la carpeta
directorio = opendir(carpeta);
if(directorio == NULL)
{
NF_WriteText(0,0,7,21,"ERROR");
for(;;){
swiWaitForVBlank();
}
}
while((infodir = readdir(directorio)) != NULL )
{
valido = C_extension(infodir->d_name);
switch(valido){
case 0:
if((strcmp(infodir->d_name,".") != 0) && (strcmp(infodir->d_name,"..") != 0)){
carp++;
}
break;
case 1:
strcpy(buffer, infodir->d_name);
rom++;
break;
}
i++;
}
//Debug
NF_WriteTextVAR(0,0,1,21,"Nº Roms : %d",rom);
NF_WriteTextVAR(0,0,1,22,"Nº Carpetas : %d",carp);
NF_UpdateTextLayers();
}