Hola de nuevo a todos, hoy les traigo un pequeño aporte que me ha salvado la vida, pues como el título dice, se trata de una rutina para extender la melodía de encuentros con entrenadores, si no comprendes de que va, lo pongo así:
En Fire Red, cuando un entrenador te ve y te va a retar siempre reproduce una melodía antes que comience la batalla, pues si no lo habías notado, FR solo posee tres de estas melodías (Es porque Pokémon Rojo y azul solo poseían 3), Pokemon Oro y Plata poseen 9, y Ruby y Zafiro 12, asi que pars evitar hacer monótonos los encuentros aqui te dejo una rutina para cambiar esto.
Aqui la rutina para compilar
Aqui la explicación:
cmp r0, #0xYY: Es la cantidad de melodías que van a usarse para los encuentros, como 0 se cuenta debes restarle 1 a la cantidad que vas a meter, por ejemplo si vas a poner 8 melodías entonces reemplaza los YY por 07.
table: .word 0x8FFFFFF: Ubicación en donde pondrás la tabla de canciones que van a reproducirse.
Compila la rutina y ponla en tu Rom, cuando lo hagas dirigete a 0x80650, y reemplaza el contenido de esta offset con esto:
Las XX representan el puntero donde pusiste la rutina.
Para armar la tabla solo sigue la siguiente estructura:
Un ejemplo de una tabla ya armada:
Recuerda que el número de melodía va en hexadecimal y permutada como si fuera un puntero.
Y con esto ya has extendido las melodías, para cambiar el número de melodía solo basta con editar el entrenador en Advance trainer y cambiar el número de melodía que vs a reprofu ir cuando te vea, recuerda que la melodía 0 cuenta.
Y es todo, todos los créditos van para Mastermind_X por la superútil rutina.
En Fire Red, cuando un entrenador te ve y te va a retar siempre reproduce una melodía antes que comience la batalla, pues si no lo habías notado, FR solo posee tres de estas melodías (Es porque Pokémon Rojo y azul solo poseían 3), Pokemon Oro y Plata poseen 9, y Ruby y Zafiro 12, asi que pars evitar hacer monótonos los encuentros aqui te dejo una rutina para cambiar esto.
Aqui la rutina para compilar
Código:
.text
.align 2
.thumb
.thumb_func
.global exclaimhack
main:
ldr r1, table
cmp r0, #0xYY /*Aqui irá la cantidad de melodías que van a reproducirse*/
ble back
mov r0, #0x3
back: lsl r0, r0, #0x1
add r1, r0, r1
ldrh r0, [r1, #0x0]
ldr r1, place
bx r1
.align
place: .word 0x080806BB
table: .word 0x8FFFFFF
cmp r0, #0xYY: Es la cantidad de melodías que van a usarse para los encuentros, como 0 se cuenta debes restarle 1 a la cantidad que vas a meter, por ejemplo si vas a poner 8 melodías entonces reemplaza los YY por 07.
table: .word 0x8FFFFFF: Ubicación en donde pondrás la tabla de canciones que van a reproducirse.
Compila la rutina y ponla en tu Rom, cuando lo hagas dirigete a 0x80650, y reemplaza el contenido de esta offset con esto:
Código:
00 49 08 47 XX XX XX 08
Para armar la tabla solo sigue la siguiente estructura:
Código:
[Pista 0][Pista 1][Pista 2]...
Código:
[56 01][2F 01][22 01]...
Y con esto ya has extendido las melodías, para cambiar el número de melodía solo basta con editar el entrenador en Advance trainer y cambiar el número de melodía que vs a reprofu ir cuando te vea, recuerda que la melodía 0 cuenta.
Y es todo, todos los créditos van para Mastermind_X por la superútil rutina.