Registrarse

[ASM] FR | Extender las Melodías de Encuentros con Entrenadores

Gold

Porrero a tiempo parcial
Miembro insignia
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

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
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:
Código:
00 49 08 47 XX XX XX 08
Las XX representan el puntero donde pusiste la rutina.

Para armar la tabla solo sigue la siguiente estructura:
Código:
[Pista 0][Pista 1][Pista 2]...
Un ejemplo de una tabla ya armada:
Código:
[56 01][2F 01][22 01]...
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.
 

Naren Jr.

Puto amo
Usuario de Platino
Respuesta: FR | ASM | Extender las Melodías de Encuentros con Entrenadores

Oye justo pensé en esto ayer que acomodaba un par de midis.... realmente gracias por el aporte.

Pero tengo una duda...

Como hago que un trainer llame x canción? D: o suenan solas...

No se si me explico
 

Guilly Alpha

It's eleven o'clock
Respuesta: FR | ASM | Extender las Melodías de Encuentros con Entrenadores

GUau, otra rutina en un mismo dia!!

Genial, algo muy util!!
Y tengo la misma duda qie naren xD.
Como se que midi va a reproducir el entrenador al verme?

Muchas gracias por el aporte!
 

Gold

Porrero a tiempo parcial
Miembro insignia
Respuesta: FR | ASM | Extender las Melodías de Encuentros con Entrenadores

La melodía que suena al verte un entrenador se cambia con Advance Trainer.

Es en donde dice "intro music"
(Ahi tiene puesto 11 porque es una scan de Ruby)
 

Jo7a

Kiero mi nick amarillo D:
Respuesta: FR | ASM | Extender las Melodías de Encuentros con Entrenadores

Este tutorial lo probé hace tiempo, pero creo recordar que era de Jambo (también tenía otro tuto de cambiar las midis de batalla según la trainerclass).

Pero a pesar de ser una rutina fácil de aplicar, no me funcionó no sé por qué.
Haber si ahora la pruebo de nuevo haber si va.

Gracias por el aportazo ;D
 

darkeon75

ROM Hacker
Respuesta: FR | ASM | Extender las Melodías de Encuentros con Entrenadores

El tutorial no me funcionó.

Pero haciendo un pequeño cambio si me funcionó y era que en la tabla de entrenadores hay que añadir FE FF para que la tabla funcione correctamente, quedando así:

[56 01][2F 01][22 01]...FE FF

De esta manera si funcionaría el tutorial correctamente.
 

Dragonsden

Leyenda de WaH
Cuando habla de dirigirse a 0x80650, es literalmente darle a Crtl+g y poner ese offset, yo personalmente me fui al 650 ya que en la mayoría de ocasiones el 80 de inicio se refiere a que es parte del rom, y lo que sigue es el offset real, ha dado la casualidad de que el offset real empezaba en 80, lo dejo por aquí porque he pasado un buen rato sin saber qué era lo que fallaba y resultó ser eso, también he añadido un +1 al puntero de la rutina y ha funcionado, junto con lo del comentario anterior de añadir FE FF a la tabla de encounters.
 
Arriba