u8 Lector;
fatInitDefault();
if (!fatInitDefault)
{
PA_OutputSimpleText(0,21,6,"Error!");
PA_OutputSimpleText(0,2,12,"No se pudo acceder a fat!");
PA_OutputSimpleText(0,1,16,"Asegurese de haber parcheado");
PA_OutputSimpleText(0,1,18,"con dldi");
while (1){
PA_WaitForVBL();
}
}
FILE* prueba = fopen ("Twotm.sav","rb");
if(prueba == NULL) {
FILE* prueba5 = fopen ("Twotm.sav", "wb");
fwrite("1",1,1, prueba5);
fclose(prueba5);
}
fread(Lector,1,1,prueba);
if (Lector == 1){
while (1){
PA_WaitForVBL();
}
}
Aguilera_87 escribió:gracias!! yo tambien me voy a poner a hacer pruebas con fat... espero que no sea muy complicao (lo chungo es tener ke meter sacar la SD para cada prueba)
no hay ningun emulador ke de verdad emule fat.. porque muchos lo dicen pero yo no lo he conseguido. asi ke tocara hacer las pruebas con la consola, que no seran pocas
saludos!!
keda escribió:Hola Amchacon!
Tu problema es que estás intentando reabrir un archivo que ya está abierto. Si lo que vas a hacer primero es escribir, ábrelo desde el principio como "wb", escribe, luego ciérralo y después ábrelo con "rb", lees y cierras. También está la opción de abrirlo como escritura y lectura. Si mal no recuerdo era con "rb+" o con "wb+". Tienes más información sobre ficheros AQUI.
Creo que también está mal el fwrite("1",1,1, prueba5); , puesto que le estás diciendo que guarde un "1" como carácter y no como un número. Puedes probar a quitarle las comillas, aunque, como ya he dicho, no estoy muy seguro de que esté mal.
Sobre lo del fat, has probado a poner PA_InitFat(); ?
Saludos ^^
EDITO: Vale, creo que lo del fat es porque tiene que ser directamente if (!fatInitDefault()){ (fíjate que le he añadido los paréntesis para que sea considerado como una función), porque, si mal no recuerdo, el fat no se puede iniciar dos veces.
Aguilera_87 escribió:gracias!! yo tambien me voy a poner a hacer pruebas con fat... espero que no sea muy complicao (lo chungo es tener ke meter sacar la SD para cada prueba)
no hay ningun emulador ke de verdad emule fat.. porque muchos lo dicen pero yo no lo he conseguido. asi ke tocara hacer las pruebas con la consola, que no seran pocas
saludos!!
if (!fatInitDefault()){
PA_OutputSimpleText(0,21,6,"Error!");
PA_OutputSimpleText(0,2,12,"No se pudo acceder a fat!");
PA_OutputSimpleText(0,1,16,"Asegurese de haber parcheado");
PA_OutputSimpleText(0,1,18,"con dldi");
while (1){
PA_WaitForVBL();
}
}else{
// comprobamos que exista el archivo
if (!access("Twotm.sav")){ // si existe, leemos
FILE* prueba = fopen ("Twotm.sav","rb");
fread(&lector,sizeof(lector),1,prueba); //el & es necesario (lee más abajo por qué)
fclose(prueba);
}else{ // si no existe, lo creamos
FILE* prueba = fopen ("Twotm.sav", "wb");
fwrite("I",sizeof(lector),1, prueba); // es recomendable el uso de sizeof(variable) para no tener que calcular tu mismo
fclose(prueba); // el espacio que se necesita o lo que ocupa cada variable
}
if (lector == 'I'){ // los caracteres se indican con comillas simples; las dobles indican cadenas de texto
PA_OutputSimpleText(0,5,5,"Conseguido!");
while (1){
PA_WaitForVBL();
}
}else{
PA_OutputSimpleText(0,5,5,"Fallido");
}
}
keda escribió:Puedes utilizar dsftp + firezilla para no tener que estar sacando la SD. A mi me va muy bien ^^
Y no os preocupéis que el fat no es tan complicado, es cuestión de pillarle el truco.
char lector[9];
if (!fatInitDefault())
{
PA_OutputSimpleText(0,21,6,"Error!");
PA_OutputSimpleText(0,2,12,"No se pudo acceder a fat!");
PA_OutputSimpleText(0,1,16,"Asegurese de haber parcheado");
PA_OutputSimpleText(0,1,18,"con dldi");
while (1){
PA_WaitForVBL();
}
}
else{
if (!access("Twotm.sav")){
FILE* prueba = fopen ("Twotm.sav","rb");
fread(&lector[9],9,1,prueba);
fclose(prueba);
}else{
FILE* prueba5 = fopen ("Twotm.sav", "wb");
fwrite("I",1,1, prueba5);
fclose(prueba5);
}
}
if (lector[9] == "niveles=2"){
while (1){
PA_OutputSimpleText(0,5,5,"Conseguido!");
PA_WaitForVBL();
}
}
char Lector[9];
FILE* prueba = fopen ("Twotm.sav", "ab");
fwrite(&idioma,1,1, prueba);
fclose(prueba);
FILE* prueba = fopen ("Twotm.sav","rb");
fread(&lector,3,1,prueba);
fseek(prueba, 4, 1);
fread(&idioma,1,1,prueba);
fclose(prueba);
keda escribió:el fread directamente mueve el indicador del archivo de texto, con lo cual, al hacer el primer fread el indicador ya está en la posición 4, así que sobra el fseek.
Saludos ^^
amchacon escribió:Eso no es fat ^^. Estas incluyendo el sonido a la rom...
Las funciones de Palib para los sonidos estan ya anticuadas, ahora tienes que usar librerias aparte. Como por ejemplo mikmod para la reproduccion de archivos mod.
En este ejemplo de palib explican su funcionamiento:
Palib\examples\Sound\MikMod
Creo que no es compatible con fat...
Saludos!