Registrarse

[Rutina] Nuevos sistemas evolutivos [FR]

MetalKaktus

A la luz del quinto día, mira al este
Miembro insignia
Este tutorial es una extensión de un tutorial que posteó @Naren Jr. En su momento. Se trata de añadir nuevos métodos evolutivos además de los ya existentes que vienen por defecto en el Fire Red. Por lo tanto lo primero será configurar mediante edición hexadecimal para que la ROM reconozca nuevos sistemas evolutivos. Para eso quiero que sigáis los pasos que se indican en el tutorial antes mencionado:

https://whackahack.com/foro/t-40029/fr-asm-nuevos-metodos-evolutivos

Una vez que ya hayaís expandido la tabla de evoluciones aquí os dejo más metodos aparte de los que que posteo Naren:

Código:
.text
.align 2
.thumb
.thumb_func
.global sylveon

main:
push {r0-r7}
add r0, r6, r7
lsl r0, r0, #0x3
add r0, r2, r0
add r3, r0, r3
ldrh r2, [r3, #0x2]
mov r0, r8
mov r5, #0x0
loop:
mov r1, #0xD
add r1, r1, r5
bl decrypt
mov r11, r0
pop {r0-r7}
mov r1, r11
ldr r4, movedata
mov r6, #0xC
mul r6, r1
add r4, r4, r6
ldrb r4, [r4, #0x2]
cmp r4, #0xXX @replace XX with 16 if you are using MrDollSteak's rombase, otherwise keep the index that you have set while adding fairy type
beq true
cmp r5, #0x3
beq exit
add r5, #0x1
b loop

decrypt: 
push {r0-r7}
ldr r2, decryptpoke
bx r2
true:
mov r9, r3
pop {r0-r7}
mov r1, r9
ldr r0, levelcheckloc
bx r0
exit:
pop {r0-r7}
ldr r0, noevo
bx r0

.align
movedata: .word 0x08250C04  
levelcheckloc: .word 0x0804310D
noevo: .word 0x08043111
decryptpoke: .word 0x0803FBE9

.text
Código:
.align 2
.thumb
.thumb_func
.global Pancham

main:
push {r0-r7}
mov r5, #0x0
loop: 
ldr r0, firstpoke
mov r1, #0xB
mov r6, #0x64
add r4, r5, #0x0
mul r4, r6
add r0, r0, r4
bl decrypt
mov r9, r0
pop {r0-r7}
mov r1, r9
ldr r3, basestattable
mov r4, #0x1C
mul r4, r1
add r3, r3, r4
ldrb r6, [r3, #0x6]
ldrb r7, [r3, #0x7]
cmp r6, #0x11
beq levelcheck
cmp r7, #0x11
beq levelcheck
cmp r5, #0x5
beq exit
add r5, #0x1
b loop

levelcheck: 
pop {r0-r7}
ldr r0, levelcheckloc
bx r0

exit: 
pop {r0-r7}
ldr r0, noevo
bx r0

decrypt: 
push {r0-r7}
ldr r2, decryptpoke
bx r2

.align
basestattable: .word 0x08254784
firstpoke: .word 0x02024284
levelcheckloc: .word 0x08043017
noevo: .word 0x08043111
decryptpoke: .word 0x0803FBE9

Código:
.text
.align 2
.thumb
.thumb_func
.global mapbankANDnapnumber

main:
push {r0-r7}
add r0, r6, r7
lsl r0, r0, #0x3
add r0, r2, r0
add r3, r0, r3
ldrh r2, [r3, #0x2]
mov r0, r8
ldr r6, mapbank
ldrh r6, [r6, #0x0]
cmp r6, r2
bne exit
mov r10, r3
pop {r0-r7}
mov r1, r10
ldr r0, levelcheckloc
bx r0
exit:
pop {r0-r7}
ldr r0, noevo
bx r0

.align
levelcheckloc: .word 0x0804310D
noevo: .word 0x08043111
mapbank: .word 0x02031DBC

Código:
.text
.align 2
.thumb
.thumb_func
.global weatherevo

main:
push {r0-r7}
ldr r6, currentweather
ldrb r6, [r6, #0x0]
cmp r6, #0x3
beq rain
cmp r6, #0x5
beq rain
cmp r6, #0xD
beq rain
pop {r0-r7}
ldr r0, noevo
bx r0
rain:
pop {r0-r7}
ldr r0, levelcheckloc
bx r0

.align
levelcheckloc: .word 0x08043017
noevo: .word 0x08043111
currentweather: .word 0x02036E12

Código:
.text
.align 2
.thumb
.thumb_func
.global mantykeevo

main:
push {r0-r7}
add r0, r6, r7
lsl r0, r0, #0x3
add r0, r2, r0
add r3, r0, r3
ldrh r2, [r3, #0x2]
mov r5, #0x0
loop: ldr r0, firstpoke
mov r1, #0xB
mov r6, #0x64
add r4, r5, #0x0
mul r4, r6
add r0, r0, r4
bl decrypt
mov r9, r0
pop {r0-r7}
mov r1, r9
cmp r1, r2
beq levelcheck
cmp r5, #0x5
beq exit
add r5, #0x1
b loop
levelcheck: mov r10, r3
pop {r0-r7}
mov r1, r10
ldr r0, levelcheckloc
bx r0
exit: pop {r0-r7}
ldr r0, noevo
bx r0
decrypt: push {r0-r7}
ldr r2, decryptpoke
bx r2
.align
firstpoke: .word 0x02024284
levelcheckloc: .word 0x0804310D
noevo: .word 0x08043111
decryptpoke: .word 0x0803FBE9


Una vez que ya hayáis insertado vuestra rutina debéis editar el .ini del programa que uséis para la edición de los Pokémon. Para eso continuad hasta el último punto del tutorial de Naren.

Los créditos de cada rutina podéis encontrarlos en este post en Pokeco, que es de donde yo las saqué: https://www.pokecommunity.com/showthread.php?t=329357

Se que no es un tutorial muy extenso pero no pienso volver a repetir lo mismo que ya se ha hecho en otro tuto, solo quiero añadir más métodos.
 

Sukhoik8

Mejor Rom hacking, mejor persona
Un perfecto aporte, con esto se podría hacer un hack definitivo. Gracias por postearlo aquí. :p
 

Saisar

Hago lo que puedo para ayudar a los demás ;)
Probe y probe la rutina de evolucion por pokemon tipo siniestro y no me funciona.
Lo probe en una rom limpia de FR y me funciona. pero en la base que tengo con el Parche de Mr. doolssteaks no me funciona. AYUDA :,v

Este tutorial es una extensión de un tutorial que posteó @Naren Jr. En su momento. Se trata de añadir nuevos métodos evolutivos además de los ya existentes que vienen por defecto en el Fire Red. Por lo tanto lo primero será configurar mediante edición hexadecimal para que la ROM reconozca nuevos sistemas evolutivos. Para eso quiero que sigáis los pasos que se indican en el tutorial antes mencionado:

https://whackahack.com/foro/t-40029/fr-asm-nuevos-metodos-evolutivos

Una vez que ya hayaís expandido la tabla de evoluciones aquí os dejo más metodos aparte de los que que posteo Naren:

Código:
.text
.align 2
.thumb
.thumb_func
.global sylveon

main:
push {r0-r7}
add r0, r6, r7
lsl r0, r0, #0x3
add r0, r2, r0
add r3, r0, r3
ldrh r2, [r3, #0x2]
mov r0, r8
mov r5, #0x0
loop:
mov r1, #0xD
add r1, r1, r5
bl decrypt
mov r11, r0
pop {r0-r7}
mov r1, r11
ldr r4, movedata
mov r6, #0xC
mul r6, r1
add r4, r4, r6
ldrb r4, [r4, #0x2]
cmp r4, #0xXX @replace XX with 16 if you are using MrDollSteak's rombase, otherwise keep the index that you have set while adding fairy type
beq true
cmp r5, #0x3
beq exit
add r5, #0x1
b loop

decrypt: 
push {r0-r7}
ldr r2, decryptpoke
bx r2
true:
mov r9, r3
pop {r0-r7}
mov r1, r9
ldr r0, levelcheckloc
bx r0
exit:
pop {r0-r7}
ldr r0, noevo
bx r0

.align
movedata: .word 0x08250C04  
levelcheckloc: .word 0x0804310D
noevo: .word 0x08043111
decryptpoke: .word 0x0803FBE9

.text
Código:
.align 2
.thumb
.thumb_func
.global Pancham

main:
push {r0-r7}
mov r5, #0x0
loop: 
ldr r0, firstpoke
mov r1, #0xB
mov r6, #0x64
add r4, r5, #0x0
mul r4, r6
add r0, r0, r4
bl decrypt
mov r9, r0
pop {r0-r7}
mov r1, r9
ldr r3, basestattable
mov r4, #0x1C
mul r4, r1
add r3, r3, r4
ldrb r6, [r3, #0x6]
ldrb r7, [r3, #0x7]
cmp r6, #0x11
beq levelcheck
cmp r7, #0x11
beq levelcheck
cmp r5, #0x5
beq exit
add r5, #0x1
b loop

levelcheck: 
pop {r0-r7}
ldr r0, levelcheckloc
bx r0

exit: 
pop {r0-r7}
ldr r0, noevo
bx r0

decrypt: 
push {r0-r7}
ldr r2, decryptpoke
bx r2

.align
basestattable: .word 0x08254784
firstpoke: .word 0x02024284
levelcheckloc: .word 0x08043017
noevo: .word 0x08043111
decryptpoke: .word 0x0803FBE9

Código:
.text
.align 2
.thumb
.thumb_func
.global mapbankANDnapnumber

main:
push {r0-r7}
add r0, r6, r7
lsl r0, r0, #0x3
add r0, r2, r0
add r3, r0, r3
ldrh r2, [r3, #0x2]
mov r0, r8
ldr r6, mapbank
ldrh r6, [r6, #0x0]
cmp r6, r2
bne exit
mov r10, r3
pop {r0-r7}
mov r1, r10
ldr r0, levelcheckloc
bx r0
exit:
pop {r0-r7}
ldr r0, noevo
bx r0

.align
levelcheckloc: .word 0x0804310D
noevo: .word 0x08043111
mapbank: .word 0x02031DBC

Código:
.text
.align 2
.thumb
.thumb_func
.global weatherevo

main:
push {r0-r7}
ldr r6, currentweather
ldrb r6, [r6, #0x0]
cmp r6, #0x3
beq rain
cmp r6, #0x5
beq rain
cmp r6, #0xD
beq rain
pop {r0-r7}
ldr r0, noevo
bx r0
rain:
pop {r0-r7}
ldr r0, levelcheckloc
bx r0

.align
levelcheckloc: .word 0x08043017
noevo: .word 0x08043111
currentweather: .word 0x02036E12

Código:
.text
.align 2
.thumb
.thumb_func
.global mantykeevo

main:
push {r0-r7}
add r0, r6, r7
lsl r0, r0, #0x3
add r0, r2, r0
add r3, r0, r3
ldrh r2, [r3, #0x2]
mov r5, #0x0
loop: ldr r0, firstpoke
mov r1, #0xB
mov r6, #0x64
add r4, r5, #0x0
mul r4, r6
add r0, r0, r4
bl decrypt
mov r9, r0
pop {r0-r7}
mov r1, r9
cmp r1, r2
beq levelcheck
cmp r5, #0x5
beq exit
add r5, #0x1
b loop
levelcheck: mov r10, r3
pop {r0-r7}
mov r1, r10
ldr r0, levelcheckloc
bx r0
exit: pop {r0-r7}
ldr r0, noevo
bx r0
decrypt: push {r0-r7}
ldr r2, decryptpoke
bx r2
.align
firstpoke: .word 0x02024284
levelcheckloc: .word 0x0804310D
noevo: .word 0x08043111
decryptpoke: .word 0x0803FBE9


Una vez que ya hayáis insertado vuestra rutina debéis editar el .ini del programa que uséis para la edición de los Pokémon. Para eso continuad hasta el último punto del tutorial de Naren.

Los créditos de cada rutina podéis encontrarlos en este post en Pokeco, que es de donde yo las saqué: https://www.pokecommunity.com/showthread.php?t=329357

Se que no es un tutorial muy extenso pero no pienso volver a repetir lo mismo que ya se ha hecho en otro tuto, solo quiero añadir más métodos.
Probe y probe la rutina de evolucion por pokemon tipo siniestro y no me funciona.
Lo probe en una rom limpia de FR y me funciona. pero en la base que tengo con el Parche de Mr. doolssteaks no me funciona. AYUDA :,v (Lo siento, no se como borrar mi anterior comentario xD)
 

Eddie

U Got Woomy
Eso se debe a el parche de Mr. doolssteaks ocupa varios espacios,o se debe a que no has editado tales ini del Gen III Suite,y,de seguro se traba u algo trata de explicarte mejor para ayudarte y que error te da.
 

KERBEROS

Usuario de Platino
@Turambar
oye, inserte la rutina de evo-por-mapa ,y asumo que quedo bien, porque lo hice mas de una vez y me da el mismo error, asi que resumo que es a la hora de editar la ini en PGE.
coloco :
EvolutionName19=Map Name
Evolution19Param=mapname
(porsupuesto cada uno en su lugar ordenado. pero solo abre la edicion de nombre de mapa, no me deja editar el banco o bank, ni el mapa o map!
espero puedas ayudarme!

 
Arriba