Registrarse

[Duda] ¿Qué se requiere para programar un código en C e insertarlo en un hack?

Estado
Cerrado para nuevas respuestas.

Dragonite

But where's your heart
Pues mi duda es esa, tengo esa hermosa cualidad de definir mi duda casi al 100% en el título, pues nada.

Resumiendo, tengo entendido que muchos grandes hackers hacen sus cosillas en C, luego con un compilador "especial" (DevkitARM?) lo insertan y queda funcionando casi siempre. Por ejemplo, ShinyQuagsire hace esto, y también creo que @Andrea usa este método.

Pues nada, toda la información que pueda haber será bien recibida.
 

Invert

why so serious?
Bien, la verdad que no sé mucho sobre este tema de compilar rutinas en C.
Tal vez se me olvide algo, pero así es como lo hago.
Lo que necesitas es:
- devkitARM
Principalmente
Usaré como ejemplo la rutina para reemplazar la intro hecha por Shiny Quasire de Pokeco.


Nuestra rutina principal se llama Intro.C, esa es la que vamos a compilar.

Ahora, para hacerlo se necesita un make.

Código:
set PATH=D:\devkitARM\bin;%PATH%
: hello.c
	arm-none-eabi-gcc -mthumb -mthumb-interwork -g -c -w -std=c99 -o hello.out hello.c
	arm-none-eabi-ld -o hello.o -T linker.lsc hello.out
	arm-none-eabi-objcopy -O binary hello.o hello.bin
pause
Así es un make.
Donde pone "set PATH=D:\devkitARM\bin;%PATH%"
Es el lugar donde tú tienes la carpeta del DevkitARM.

Solo cambia la direccion, no toques donde pone PATH.

Bien, ahora como pueden ver en el ejemplo del make, pone "hello.o" "hello.out" "hello.bin"
Asi, nosotros cambiarémos todos esos nombres por intro. Así quedaría "intro.o" "intro.out" "intro.bin" En algunos lugares tambien estarán repetidos pero igualmente se cambian.
Más o menos quedaría así el make.


Como pueden ver, el make se hace en un block de notas.
Al final, se debe guardalo en formato .bat
En mi ejemplo sería make.bat


Ahora, pasaremos a crear un archivo llamado "linker.lsc"
Solo abran el block de notas y guardan sin escribir nada, pero lo guardan con el nombre "linker.lsc"

Bien, ahora solo haz doble click sobre tu make.


Si todo salió bien, tendrás tu archivo bin, despues de esto solo inserta ese archivo bin en un editor hex y llama a la rutina como si estuvieras llamando una rutina ASM "callasm 0x"

Ahí tienes :)
 

Dragonite

But where's your heart
Esto resuelve mi duda de COMPILAR, pero no la de PROGRAMAR, mi idea es PROGRAMAR como si de XSE se tratase (aunque con funciones mucho más amplias, claro está)
 

PabloGTD

WiiU developer
Pues precisamente yo lo he intentado varias veces, aunque nunca ha funcionado lo que he intentado.

No se necesita nada especial, salvo obviamente conocimientos de C y el compilador de ARM. Simplemente, programar como cualquier otro programa y usar el compilador adecuado, en este caso, para ARM. ¿Pero y cuando haga falta modificar zonas de memoria? La respuesta se llaman punteros. Gracias a ellos podrás acceder y modificar las zonas de memoria que necesites, así como crear variable dinámicas y todas las mierdas que te haga falta. También hay que tener en cuenta si necesitas que devuelva un valor o no. El uso de C tiene las mismas limitaciones que el ensamblador.
 
Estado
Cerrado para nuevas respuestas.
Arriba