Dumpeador universal ¿es posible?

Hasta donde yo se, el dumpeador para hacer copias de seguridad de nuestros originales, sólo funciona en M3 y yo me preguntaba ¿por qué?

Quiero decir que hay homebrew para la DS para casi todo, con mejor o peor compatibilidad y mejor o peor hecho, pero sin embargo no hay a día de hoy un dumpeador dijeramos "universal", que sirva para cualquier tarjeta.

No tengo ni puñetera idea de programación ni de nada así, pero hoy en día que la mayoria de homebrew ya tiene acceso a las distintas tarjetas y casi todos de una manera u otra consiguen grabar datos en ellas, ¿donde esta el problema para volcar un original a una SD/MiniSD/MicroSD?... o en su defecto al pc via ftp o similar, aunque esto último quizás es perdir demasiado....

¿Existe alguna limitación "técnica" para hacerlo?
¿Sería posible una aplicación así?
¿Alguien se anima a hacerlo? (Si cuela, cuela... xD )

En fin, lo dicho, no entiendo muy bien porque con M3 se puede y con el resto no hay manera... Si alguien me ilumina....

Saludos.
Pues es que el dumper del M3 son de los creadores del M3, asi que es obvio que solo funcione en él.

Y si que se puede crear un dumper universal, el problema es que hay tantos Flashcarts que muchos de ellos utilizar una I/O (Vamos lo que te permite leer y escribir en un flash) diferente así que por lo tanto, había que buscar drivers de cada flashcart e intregarlos, así de sencillo y complicado es.

Y eso mas o menos es un resumen warro para que te hagas una idea.

Saludos.
Y no se pone nadie a hacerlo? Sacan homebrew de todo tipo pero no sacan uno para dumpear juegos :-?? No es tan difícil (para los que saben programar, yo no XD), no?
Pues es a lo que voy, que no parece tener """mayor complicación""" que cualquier otro homebrew, puesto que la mayoría funcionan en cualquier flash, y algunos de ellos incluso son capaces de escribir en la tarjeta.

Es que no concibo que nadie haya "empezado" por eso, puesto que todos presumimos de jugar a nuestras backups, y salvo los user de m3, los demás para hacerlo tenemos que tirar de las descargas en red...

Me parece excelente la variedad de scene que existe para esta portátil, aunque a todos les quede bastante por pulir, y no entendía si la falta de dumpeadores alternativos se debía realmente a que nadie le ha dado por currarselo, o si en cambio existía alguna limitación de hardware o similar que lo hacía imposible.

Asi pues, según vosotros (yo también lo sospecho), ¿no lo hay porque a nadie le ha dado por currarselo?

Saludos.

(Editado para corrección ortográfica grave) [ayay]
Encontre esto hace tiempo y unicamente he tenido un poco de tiempo a echarle un vistacillo al codigo fuente pero no recuerdo nada jajaj
A ver si sirve de algo...

Adjuntos

KorteX escribió:Encontre esto hace tiempo y unicamente he tenido un poco de tiempo a echarle un vistacillo al codigo fuente pero no recuerdo nada jajaj
A ver si sirve de algo...


Disculpa mi evidente ignorancia, pero tengo dos preguntas obligadas:
¿Qué es?
¿Como se usa?

He intentado arrancarlo desde ms2, pero no consigo ver la lista de instrucciones válidas, ni entiendo muy bien que hace o para que sirve.

Saludos.
Africa escribió:
Disculpa mi evidente ignorancia, pero tengo dos preguntas obligadas:
¿Qué es?
¿Como se usa?

He intentado arrancarlo desde ms2, pero no consigo ver la lista de instrucciones válidas, ni entiendo muy bien que hace o para que sirve.

Saludos.


+1

Necesito instrucciones [ayay]
UP

¿Seguimos sin saber que hace el adjunto de KorteX?

Incluyo el contenido del dumper.cpp para ver si alguien nos cuenta algo de ello:
// g++ -s -O2 -mno-cygwin -o dumper dumper.cpp && dumper

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char *argv[])
{
   if (argc < 2)
   {
      fprintf(stderr, "Please specify driveletter on command line.\n");
      return 1;
   }
   
   char s[256];
   sprintf(s, "\\\\.\\%c:", argv[1][0]);
   FILE *fCF = fopen(s, "rb");
   if (!fCF) { fprintf(stderr, "Could not open media.\n"); return 1; }
   unsigned char header[0x200];
   fread(header, 1, 0x200, fCF);

   char ndsFilename[32];
   memcpy(ndsFilename, header + 0xC, 4);
   strcpy(ndsFilename+4, ".nds");
   if (*(unsigned short *)(header + 0x15C) != 0xCF56) { fprintf(stderr, "Media does not contain correct data!\n"); return 1; }
   FILE *fNDS = fopen(ndsFilename, "rb");
   if (fNDS) { fprintf(stderr, "File '%s' already exists.", ndsFilename); return 1; }
   fNDS = fopen(ndsFilename, "wb");

   unsigned int size = 1 << (17 + header[0x14]);

   fseek(fCF, 0, SEEK_SET);
   for (unsigned int i=0; i<size; i+=0x200)
   {
      unsigned char buffer[0x200];
      fread(buffer, 1, 0x200, fCF);
      fwrite(buffer, 1, 0x200, fNDS);
   }

   fclose(fCF);
   fclose(fNDS);
   
   printf("Saved '%s'.\n", ndsFilename);

   return 0;
}


Saludos.
Up ^^

Empeñado en sacar algo de este post. [tadoramo]
8 respuestas