Registrarse

[ASM] Insertar Rutina ASM

Adke

weeeh
Este post es simplemente la traducción de este otro hecho por @Andrea

A lo que vamos:

Paso 1: descargar el ensamblador
Antes que nada, hay que descargar el ensamblador de rutinas asm que podéis encontrar Aquí

Una vez descargado metedlo todo en una carpeta (recomendablemente en el escritorio), pero puede estar en cualquier parte. Yo la llamaré Assembly

En esta carpeta meteremos las rutinas asm.

Paso 2: escribir la rutina
Pongo como ejemplo una rutina simple
Código:
.thumb
.align 2

push {r0-r1,lr}
ldr r0, = 0xoffset
mov r1, #0xval
strb r1,[r0]
pop {r0-r1,pc}
La rutina la escribimos en el Bloc de Notas y antes de guardarlo donde pone Tipo marcamos la opción "Todos los archivos (*.*)" y guardas la rutina con el nombre que quieras y le pones al final .asm
Por ejemplo: rutina.asm

Guarda la rutina en la carpeta y pasamos al tercer paso.

TPaso 3: Compilar la rutina
Ahora hay que abrir el programa que descargamos antes, para esto hay que usar un programa ya incluido en el Sistema Operativo de Windows: el cmd
Para abrir esto vas a Inicio>Buscar>cmd y se te abrirá una pestaña tal que así


ahora explico lo que significa lo de la imagen:
Primero, podemos ver el comando "CD" que significa "Change Directory", es decir, que nos permite cambiar de carpeta hasta llegar a la que habíamos creado (Assembly).
Una vez que hemos llegado a la carpeta deseada hay que escribir "thumb" para activar el archivo "THUMB.BAT" y el nombre de la rutina asm.

Si no hay errores en la rutina saldrá el mensaje "Assembled succcessfully" y se habrá creado un nuevo archivo en nuestra carpeta con el mismo nombre que nuestra rutina pero acabado en .bin
Esta será nuestra rutina compilada.

Paso 4: insertar la rutina
Para insertar la rutina es necesario tener un editor hexadecimal (HxD por ejemplo)
Abrimos el archivo .bin con HxD y hacemos lo mismo con la ROM.

Ahora buscamos un espacio libre en nuestra rom, copiamos la rutina y la pegamos en el espacio libre
Atención! no se pega usando Ctrl.+V sino Ctrl.+B esto es porque Ctrl.+V añade espacio y Ctrl. +B sobreescribe. Esto es muy importante.

Ya podemos cerrar el editor hexadecimal y solo nos queda el último paso.

Paso 5: llamar a la rutina desde un script
El comando que se usa es el siguiente:
callasm 0x(direccion donde insertaste la rutina +1)

Por ejemplo, si insertaste la rutina en la direccion 800000 tendrías que escribir:
callasm 0x800001

Espero que se entienda correctamente y todos los créditos a Andrea, yo solo lo he traducido.


PD: una aclaración es que no es estrictamente necesario usar el cmd para compilar las rutinas, puedes simplemente arrastrar tu archivo .asm al thumb.bat y, si la rutina no tiene errores, se compilará directamente.
Pero si tiene errores no se te compilará y no te dirá que errores tiene la rutina, cosa que si hace el cmd.
 

Guilly Alpha

It's eleven o'clock
Respuesta: GBA | Otros | Insertar Rutina ASM

Vale, tengo que decirlo, me has ayudado bastante, porque aunque se ingles, si un tutorial esta en ingles no me empano de nada.

Muchas gracias por traducir un tutorial para algo tan importante!!!!
 

Jaizu

Usuario mítico
Respuesta: GBA | Otros | Insertar Rutina ASM

Sabes que puedes abrir un cmd en una carpeta si pulsas shift y right click?
Por lo demás el tuto está bien, simple y funcional
 

Master Brock

Miembro insignia
Miembro insignia
Usuario de Platino
Respuesta: GBA | Otros | Insertar Rutina ASM

Muchas gracias tío, iba a hacerlo yo como te dije, pero me ahorraste trabajo.
La clave es ir haciendo tutoriales de este tipo de cosas que, aunque sean sencillas, sigue habiendo gente que no sabe aplicar en sus hacks.

Bien explicadito, era de esperar de ti ^^
Buen trabajo Jefee!!
 

DeadApolo

A'KERIA'S TRACES
Respuesta: GBA | Otros | Insertar Rutina ASM

Jojojojojo ¡pero que aporte!, la verdad nunca aprendí a insertar rutinas :C, gracias a esto es probable que aprenda...¿probable? ¡no! seguro que aprendo xDDD.

Espero que sigan llegando estos grandes aportes y que la gente siga con tantas pilas como las que han tenido estos últimos días xD.

Atte:

ApoloD - DeadApolo actualmente.
 
Re: GBA | Otros | Insertar Rutina ASM

Hiciste (aunque no hayas sido tú ) un tutorial perfecto hiciste que algo difícil ahora parezca facil
 

Sukhoik8

Mejor Rom hacking, mejor persona
Respuesta: GBA | ASM | Insertar Rutina ASM

Buen aporte con esta herramienta novatos en el ASM (Incluyendome) Podrán ensamblar su primer ASM
 
Arriba