Problema con fat

Hola
Estoy empezando a programar con la ds y seguramente la duda que os voy a preguntar en muy tonta viendo todo lo que se hace por aqui...
El caso es que estoy intentando usar libfat para cargar un fondo en una de las pantallas, pero cuando lo pruebo en la DS me sale siempre :File *nombre* not found. Erroe code:1 system stopped.

He intentado poner los archivos en diferentes carpetas pero es imposible.. y creo que con la NDSTT no hace falta parchear lo de DLDI.. Este es mi codigo resumido con las lineas en donde supongo está el problema:
#include <PA9.h>
#include <fat.h>

int main(void)   {

    PA_Init();
    PA_InitVBL();

     if (!fatInitDefault){
           PA_OutputText(1, 1, 0, "FAT Init failed!/n Is your .nds patched with DLDI?");
     }

PA_FatInitAllBuffers(); //Initialise all the buffers

PA_FatSetBasePath("data");

    PA_InitText(1,2);
    PA_InitText(0,2);

    while(1)    {
            PA_FatEasyBgLoad(0, 2, "Image0");
    }
       PA_WaitForVBL();
    }
    return 0;
}


No me da error de fat, asi que supongo que no tengo que parchear, pero no tengo ni idea de donde tengo que poner la imagenes para que se vean. Pensaba que con el PA_FatSetBasePath al ponerle data, bastaba con ponerlo en el directorio raiz de la ds y alli en otra carpeta llamada "data", pero no me lo lee.
Lo que dejo alli son los archivos que me genera paGfx: Image0.c e Image0.pal.c
es decir, en el raiz dejo:
programa.nds
data/Image0.c
data/Image0.pal.c

Tambien he probado a dejar alli los BIN de: info, pal,map,tiles que me genera, pero tampoco.
ah! tambien he probado en dejarlo en data/bg/...

Alguien sabe que puede estar pasando? es para dejar de volverme loca cargando cada vez el archivo en la tarjeta y esta en la DS..etc.. :) gracias
En PA_FatSetBasePath("data"); . Prueba a poner un / para indicar que es en una carpeta. Seria:
PA_FatSetBasePath("/data");

pd: Has puesto un PA_OutPutText antes de un PA_InitText ? .Si no lo pones no te saldra texto alguno.
amchacon escribió:En PA_FatSetBasePath("data"); . Prueba a poner un / para indicar que es en una carpeta. Seria:
PA_FatSetBasePath("/data");

pd: Has puesto un PA_OutPutText antes de un PA_InitText ? .Si no lo pones no te saldra texto alguno.


:) si que habia puesto el output despues, pero lo acabo de cambiar y todo sigue igual, parece que no hay que parchear (he puesto un ELSE para asegurarme) y he probado con /data pero tampoco le gusta.
Los archivos que tengo que poner son los .c o los BIN?
Igual es cosa del programita de la ndstt? pero bien lo necesitare para probar lo que haga..no? vaya lio llevo :)
gracias de todas formas :)
marttha escribió:
amchacon escribió:En PA_FatSetBasePath("data"); . Prueba a poner un / para indicar que es en una carpeta. Seria:
PA_FatSetBasePath("/data");

pd: Has puesto un PA_OutPutText antes de un PA_InitText ? .Si no lo pones no te saldra texto alguno.


:) si que habia puesto el output despues, pero lo acabo de cambiar y todo sigue igual, parece que no hay que parchear (he puesto un ELSE para asegurarme) y he probado con /data pero tampoco le gusta.
Los archivos que tengo que poner son los .c o los BIN?
Igual es cosa del programita de la ndstt? pero bien lo necesitare para probar lo que haga..no? vaya lio llevo :)
gracias de todas formas :)

Yo tengo la ndstt (que por cierto se dice la dstt a secas) y no hace falta parchear. Y la dstt claro que le va el fat

Prueba crear una carpeta dentro de data que se llame bg. Pon ahi tu fondo en bin, no cambies nada de codigo y prueba
amchacon escribió:
marttha escribió:
amchacon escribió:En PA_FatSetBasePath("data"); . Prueba a poner un / para indicar que es en una carpeta. Seria:
PA_FatSetBasePath("/data");

pd: Has puesto un PA_OutPutText antes de un PA_InitText ? .Si no lo pones no te saldra texto alguno.


:) si que habia puesto el output despues, pero lo acabo de cambiar y todo sigue igual, parece que no hay que parchear (he puesto un ELSE para asegurarme) y he probado con /data pero tampoco le gusta.
Los archivos que tengo que poner son los .c o los BIN?
Igual es cosa del programita de la ndstt? pero bien lo necesitare para probar lo que haga..no? vaya lio llevo :)
gracias de todas formas :)

Yo tengo la ndstt (que por cierto se dice la dstt a secas) y no hace falta parchear. Y la dstt claro que le va el fat

Prueba crear una carpeta dentro de data que se llame bg. Pon ahi tu fondo en bin, no cambies nada de codigo y prueba


Ya he probado y nada, sigue mostrando el mensaje de error. El fondo en bin te refieres a todos los archivos bin que pagfx genera de cada fondo, no?
Has probado directamente con PA_FatEasyBgLoad(0, 2, "/data/Image0"); o PA_FatEasyBgLoad(0, 2, "data/Image0"); ??

Y cambiando el / por \??
keda escribió:Has probado directamente con PA_FatEasyBgLoad(0, 2, "/data/Image0"); o PA_FatEasyBgLoad(0, 2, "data/Image0"); ??

Y cambiando el / por \??

si..todo eso esta probado..
Una pregunta, el iDeaS al soportar FAT se supone que me lo tendria que sacar bien, no? (a parte de probarlo en la DS por sia caso)
lee imagenes .bin o .raw(no recuerdo, uno de esos dos es), pero no es el formato que intentas hacerle leer de seguro.

salu2
y xq no pruebas con PA_InitFat(); ??
keda escribió:y xq no pruebas con PA_InitFat(); ??

Muchisimas gracias. Esta solucionado.
Tenias razon, he mirado y:
bool PA_InitFat() {
   return fatInitDefault();
}


Asi que por defecto fatInitDefault(); siempre me devolvia true.
Ahora el problema ha cambiado y segun el numero de background que elija me pide 55 bloques libres. Solo me pasa en el 1 y en el 3. Sin embargo en el 2 me lo saca perfectamente..igual los fondos solo pueden ir alli... lo mirare.
Alguien sabe como probar FAT en iDeaS o cualquier otro emulador?
Me tarda mucho al cargar y las imagenes no salen bien...
marttha escribió:Alguien sabe como probar FAT en iDeaS o cualquier otro emulador?
Me tarda mucho al cargar y las imagenes no salen bien...


No estoy seguro, y si no es así que alguien me corrija, pero creo que no había ningún emu que soportase el fat, por lo que tendrás que probar directamente en la DS
yo te recomiendo que te pases a usar la librería efs, ya que las pafs creo que estan un poco desactualizadas

EDIT: esto me pasa por no leer bien
ANTONIOND escribió:
...
Suikoden77 escribió:yo te recomiendo que te pases a usar la librería efs, ya que las pafs creo que estan un poco desactualizadas

No habla de PAFS.

i failed, jeje. La verdad esque no te puedo ayudar, no he usado la libfat en ningun momento
keda escribió:
marttha escribió:Alguien sabe como probar FAT en iDeaS o cualquier otro emulador?
Me tarda mucho al cargar y las imagenes no salen bien...


No estoy seguro, y si no es así que alguien me corrija, pero creo que no había ningún emu que soportase el fat, por lo que tendrás que probar directamente en la DS

Te equivocas. El iDeaS emula el FAT (solo lectura) siempre que parchees el archivo nds con el DLDI del R4 y lo actives en las opciones. La carpeta que se considera la raíz de la tarjeta es la que contiene al nds. El desmume si no me equivoco también emula FAT. Es más, el no$gba también permite emularlo usando un sistema especial (FCSR):
http://dev-scene.com/NDS/FCSR_Tutorial
Suikoden77 escribió:yo te recomiendo que te pases a usar la librería efs, ya que las pafs creo que estan un poco desactualizadas

No habla de PAFS.
13 respuestas