Registrarse

[ASM] FR, E | Cambiar el orden de las medallas en la Trainer Card

Lunos

Enfrentando a La Organización
Miembro insignia
Holi, escribí este tutorial simple para ayudar a WesleyFG en PokeCommunity y decidí traerlo hasta aqui.
Primero que nada los creditos, que van para Touched por crear la rutina original para Fire Red justo aqui y a @BluRose por portearla a Pokémon Emerald justo aqui.
Sin mas que decir, empecemos.

Requisitos:
-ROM de Pokémon Fire Red (USA) v1.0 o ROM de Pokémon Emerald (USA).
-Editor de texto y editor hexadecimal de su preferencia (como siempre, yo usaré Notepad & HxD)
-El Ensamblador de HackMew que pueden descargar justo aqui.

Instrucciones:
1) Copiamos la siguiente Rutina ASM dependiendo de la ROM que estemos modificando:

Fire Red
Código:
.align 2
.thumb
    
@ 00 4B 18 47 XX + 1 XX XX 08 at 0x08AFC8 (0808AFC8 via r3)
hook_name:
    asr r7, r0, #0x10
    add r1, #0x11
    adr r0, order_table
    ldrb r0, [r0, r7]
    add r1, r1, r0
    ldrb r0, [r1]
    ldr r3, return
    bx r3
    
.align 2
return: .word 0x0808AFD0 + 1

@ Change the badge order using this table (reverse order)
order_table: .byte 5, 4, 7, 6, 1, 0, 3, 2

Emerald:
Código:
.align 2
.thumb
    
@ 00 4B 18 47 XX + 1 XX XX 08 at 0x0C4684 (080C4684 via r3)
hook_name:
    asr r7, r0, #0x10
    add r1, #0x11
    adr r0, order_table
    ldrb r0, [r0, r7]
    add r1, r1, r0
    ldrb r0, [r1]
    ldr r3, return
    bx r3
    
.align 2
return: .word 0x080C468C + 1

@ Change the badge order using this table (reverse order)
order_table: .byte 5, 4, 7, 6, 1, 0, 3, 2

La pegamos en un archivo de texto y modificamos la Linea 19 ajustando el orden de las medallas a nuestro gusto.
Luego guardamos ese archivo con un nombre que sea facil de recordar y la compilamos usando el ensamblador de HackMew linkeado ahi arriba.
Aqui hay un video mostrando el proceso

2) Abrimos la rutina compilada (el archivo .bin con el mismo nombre que tiene el archivo de texto con la rutina original) que se generará tras pasar nuestro .txt por "thumb.bat", copiamos todo y hacemos un Ctrl+B (Paste Write) en un offset que tenga espacio vacio dentro de nuestra ROM. Anoten ese offset, lo necesitarán.

Por cierto, como a mi me gusta apostarle a lo seguro sugiero poner la rutina en un offset que termine en 0, 4, 8 o C.

3) Iremos al siguiente offset dependiendo de la ROM que estemos modificando:

Fire Red: 08AFC8
Emerald: 0C4684

Allí vamos a pegar el siguiente hook usando Ctrl+B.
00 4B 18 47 XX XX XX 08
Nota: Si, es exactamente igual en ambas ROMs.

XX XX XX = Pointer hacia el Offset donde insertamos la Rutina ASM compilada, +1.
Ejemplo: Yo inserté la rutina en el offset 71A250 en Fire Red y en el offset E3CF80 en Emerald, por ende, tendria que reemplazar los XX XX XX con 51 A2 71 y 81 CF E3 respectivamente.

4) Probar.

Aqui una muestra del resultado en Fire Red:


Aqui una muestra del resultado en Emerald:


Y eso fue todo.​
 
Última edición:

BlueX

Veterano
Respuesta: FR y EM | Otros | Cambiar el orden de las medallas en la Trainer Card

Que buen detalle! a pesar de que sea una tonteria, da el gusto para tener todo bien ordenado. Gracias por trearlo :) .

Guardado en marcadores XD.
 
Arriba