Registrarse

FR | [Finalizada] Forzar evolución con ASM

Estado
Cerrado para nuevas respuestas.

eing

Miembro de honor
Miembro de honor
Bueno, dado que no soy de investigar FR, y no tengo más ganas de continuar con la investigación, os dejo la investigación que inicié.

Para forzar un pokémon a evolucionar solo hace falta compilar esta rutina, y ya está.

Código:
.thumb
.align 2

main:
    push {r0-r4,lr}
    ldr r1,.poke
    mov r2,#0x1
    ldr r3,.slot
    mov r4,r1
    bl evolucion
    pop {r0-r4,pc}
    
evolucion:
    push {r0}
    ldr r0, .R_evolucion
    mov r10,r0
    pop {r0}
    bx r10
    
.align 2
.poke: .word 0x30 @pokémon al que evoluciona
.slot: .word 0x0 @Slot
.R_evolucion: .word 0x080cdda9 @Rutina hace evolucionar
Como veis, el poke y el slot están prefijados, pero podeis editarlo, a modo de que chequeis antes en que pokemon debe evolucionar, de una tabla o que se yo.. y el slot, editar la rutina para que lo lea desde la var LASTRESULT.

Ah, después de evolucionar se queda la pantalla negra, habeis de hacer el return, que es lo que me faltó, pero me da una pereza terrible, y prefiero seguir con lo que realmente me interesa que es el PRHE y mi hack.
Que yo creo, que encontrando el offset de la rutina de evolución, vale.

Ea, un saludico.
 

Dani_SR_17

¡Pokémon LionHeart!
Respuesta: [FR][ASM] Forzar evolución

¿Nadie comenta? Pues es muy útil y se agradece mucho que lo compartas aunque este incompleto, seras..., a ver si aprendo ya algo de ASM y termino de retocarlo, aunque supongo que me las podré apañar.
 

Gold

Porrero a tiempo parcial
Miembro insignia
Respuesta: [FR][ASM] Forzar evolución

Veo que al igual que las rutinas ASM de GBC estas deben regresar al punto inicial tras ejecutarse, voy a probar a compilar la rutina y ver si funciona bien

Solo una duda ¿es necesario que el pokemon a evolucionar y la evolucion esten prefijados o es posible que sea algun pokemon del equipo que llevas?
 

Dani_SR_17

¡Pokémon LionHeart!
Respuesta: [FR][ASM] Forzar evolución

Veo que al igual que las rutinas ASM de GBC estas deben regresar al punto inicial tras ejecutarse, voy a probar a compilar la rutina y ver si funciona bien

Solo una duda ¿es necesario que el pokemon a evolucionar y la evolucion esten prefijados o es posible que sea algun pokemon del equipo que llevas?
Lo que debes prefijar es el slot del equipo que quieres evolucionar. Por eso hay que tener algo de cuidado y asegurarte de que llevas al Poke que quieres evolucionar, y posteriormente ver en que slot esta.
O eso he entendido.
 

eing

Miembro de honor
Miembro de honor
Respuesta: [FR][ASM] Forzar evolución

Veo que al igual que las rutinas ASM de GBC estas deben regresar al punto inicial tras ejecutarse, voy a probar a compilar la rutina y ver si funciona bien

Solo una duda ¿es necesario que el pokemon a evolucionar y la evolucion esten prefijados o es posible que sea algun pokemon del equipo que llevas?
Podría ejecutar un warp via asm tras la ejecucion de la funcion "evoluciona", y volver al mapa, recogido previamente via script. (En fr supongo que en la ram tambien están los datos de banco actual, mapa, posicion x e y del player)
Pero es es algo que me daria mas faena de la que tengo -Prhe- y no me apetece hacerlo como dije.
Pero bueno, al menos ahí esta la rutina que era lo necesario, ya los checks se pueden hacer con la cantidad de scripts que hay para fr para checkar un pokemon.
Y la rutina solo es editarla añadiendo donde carga el slot cambiarlo por la var, y despies de cargar la var hacer un ldrb rx,[rx,0x0] y ya está!
Porque evolucionar evolucionara en el que pongais en otra variable -usando lo mismo que arriba pero en poke ^^-
 

MegaSceptile9

Usuario mítico
Respuesta: [FR][ASM] Forzar evolución

Alguien me podría decir como agrego en dichoso ''return''?

Necesito esta rutina, pero no se nada de ASM, solo insertar :(
 
Estado
Cerrado para nuevas respuestas.
Arriba