¿como se des-ensambla losjuegos de DS?

Hola

Mi objetivo es hacer lo que ya ha hecho un usuario en ste oro y es ver como se programan ciertas aplicaciones o juegos comerciales de NDS, algoritmo concretos.

Para ello me gustaria, si es posible, saber como poder desensamblar un juego para obtene lo mas cercano posible al código fuente o saber como puedo obtener información del juego

si es posibleme gustaría que me indicarais las herramientas necesarias ;)

muchas gracias
Desde luego no va a ser tan fácil como lo pintas, pero bueno.

Puedes utilizar una herramienta llamada ndstool, que desempaqueta las distintas secciones que contiene una rom .nds

Cuando desempaquetas todo, podrás ver los archivos asociados a los sonidos, imágenes, etc. Así como los archivos binarios de cada uno de los dos micros, arm7 y arm9.

Podrías buscarte despues un desemsamblador de arm y buscarte mucho mucho tiempo para analizar lo más mínimo.

Espero haberte ayudado ;)
eso es lo que busco un buen desensamblador ARM, de garantias.

Espero que alguien me pueda ayudar ;)

aun asi ago debe haber porque hay gente que modifica juegos los parchea los menus, so debe hacerse de alguna forma ^_^
Tal y como te escribí, yo usé IDA Pro que no desensambla bien algunos juegos... el que mejor me desensambló fue una demo del Tetris que es la que usé para todo el tema del stylus.

Para ello no tuve que descomponer el .nds con ndstools, sino que a pelo el .nds lo desensambla si haces uso de un loader que hay para IDA Pro.

Igualmente, muy jodido veo pillar de un juego el reconocimiento de caracteres ya que no se sabe por dónde empezar, mientras que el stylus es una historia distinta porque la comunicación del ARM7 con la pantalla táctil sigue unos pasos concretos...

En fin, lo dicho, suerte ;)
Pero si el IDA solo soporta ARM 3, 4 y 5! Ya tuviste suerte, PadrinatoR

Una pregunta: Después de desensamblar, ¿con qué programa se traduce a C?

Gracias y un saludo,
ninor escribió:Pero si el IDA solo soporta ARM 3, 4 y 5! Ya tuviste suerte, PadrinatoR

Lo sé! jajaja Había un 'loader' para cargar juegos de NDS y como ya dije no los desensambla perfectamente, el Brain Training por ejemplo apenas era desensamblado y no encontraba dónde leía los datos de calibración de la táctil, es decir, no encontraba nada XD

ninor escribió:Una pregunta: Después de desensamblar, ¿con qué programa se traduce a C?


A mano :) Hay que estudiarse los algoritmos y hacer una traducción. En el caso de los algoritmos encargados de leer pulsaciones del stylus y sus coordenadas, es decir, código del ARM7, está portado perfectamente.

Del ARM9 está portado perfectamente sólo la conversión de coordenadas de la pantalla táctil a pixels, sin embargo el código que se encarga de controlar los errores tuve que modificarlo un pelín (sólo dos líneas) para que funcionara correctamente... es difícil encontrar todo lo necesario entre tanto código ofuscado en ensamblador :P
Pues vaya tela...

Y no se puede utilizar ensamblador directamente en medio de los fuentes de C? Algo así como un bloque de ejecución en otro lenguaje?
Por ejemplo con Delphi se podía hacer.
Supongo que dependerá de las 'features' propias del compilador/linker utilizado.

Voy a empezar a vender camisetas con tu avatar!
(tranqui, te daré parte de lo que saque) [sonrisa]

Un saludo,
ninor escribió:Pues vaya tela...

Y no se puede utilizar ensamblador directamente en medio de los fuentes de C? Algo así como un bloque de ejecución en otro lenguaje?
Por ejemplo con Delphi se podía hacer.
Supongo que dependerá de las 'features' propias del compilador/linker utilizado.


Supongo que sí, pero normalmente traducía el código a C para estudiar ahí el código más fácilmente, no es lo mismo ver if's y for's que saltos y comparaciones y cosas raras XD Y además así será más fácil que alguien incluya mis aportaciones en las libnds jaja

ninor escribió:Voy a empezar a vender camisetas con tu avatar!
(tranqui, te daré parte de lo que saque) [sonrisa]


jiajiajia ya te pasaré mi número de cuenta XDXDXD Aunque no creas que venderás mucho XD
7 respuestas