Buenos días, tardes o noches. Antes de que digáis nada, sé que estáis pensando cosas como "¿no tenían los cartuchos de DS un tamaño ilimitado?" o cosas de esas. Pues bien, a continuación os explico todo un poco:
Sí que es cierto que las ROMs de DS tienen un tamaño variable, puesto que son un conjunto de archivos ordenados en carpetas. Esto es una gran ventaja frente a GBA, puesto que la ROM sólo ocupa lo que necesita. Ahora bien, ya sabemos que los cartuchos de DS pueden tener, normalmente, 128MB o 256MB. Todos los juegos de la cuarta generación (DP/Pt/HGSS) funcionan en cartuchos de 128MB. Pokémon B2W2 funciona en uno de 256MB, y no estoy seguro de en cuál funciona BW. Pero vamos a lo que nos interesa:
Si hackeáis Pokémon DP/Pt no tendréis problemas con la ROM. Tiene suficiente espacio y no creo que, por más cosas que le metáis, supere los 128MB. Sin embargo, la ROM de HGSS está casi al borde de su capacidad. ¿Qué pasa si, al remplazar los mapas por los nuestros, o al escribir muchos scripts, nuestra ROM supera los 128MB a los que está "destinado a funcionar" el juego? En DeSmuME, te salta un aviso diciéndote que el Header de la ROM (no confundir con el header/cabezal de los mapas) está equivocado, pero leerá el juego. Sin embargo, no tendremos esa misma suerte en No$GBA o en la propia DS. Si nuestra ROM de HGSS supera los 128MB, tendremos que hacer que el juego esté "programado" para funcionar en 256MB. ¿Cómo se hace? Es de las cosas más fáciles que se pueden hacer en una ROM:
Coge un editor hexadecimal, y en el offset 0x14 verás el valor 0xA. Cámbialo por 0xB y ya está. Tu ROM ahora podrá llegar hasta los 256MB (que no creo que superéis en la vida). Esto hará que los emuladores más "ortopédicos" como No$GBA o tarjetas pirata como la r4 puedan leer el juego sin problema.
Espero que os ser útil, me he acordado de las madres de cientos de japoneses para poder solucionar esto.