Registrarse

[ASM] FR | Cómo extender las variables y flags seguras

Dark Aurora

Apolo Kaktus :v
Holuuu Waheros, darikawaiii de regreso, hoy les traigo un tutorial sacado de Pokecommunnity (creditos a Jambo51 de pokecommunity) en el cual se explica como a aumentar el numero de variables: de 0x900 a 0x18FF y flags: de 0x5000 a 0x51FF.
Este tutorial depende sobre el parche JPAN a si que si no lo saben usar o no lo conocen recomiendo buscarlo
Tambien aclaro que mi ingles no es perfecto a si que partes las complemento con un traductor personal.
Bueno, si tienen comentarios o ven que algo no funciona solo diganme :3
Comencemos

Una rom de FR limpia con el parche JPAN (recuerden tener una copia)
HxD (

Flags:
Código:
.text
.align 2
.thumb
.thumb_func
.global flaggethack
main:
	mov r0, #0x9
	lsl r0, r0, #0x8
	cmp r4, r0
	blt normal
	mov r0, #0x19
	lsl r0, r0, #0x8
	cmp r4, r0
	bge noget
	mov r0, #0x9
	lsl r0, r0, #0x8
	sub r4, r4, r0
	add r6, r4, #0x0
	str r4, [sp, #0x0]
	ldr r0, memoryblock
	lsr r1, r6, #0x3
	add r0, r0, r1
exit:	pop {r4-r6}
	pop {r1}
	bx r1
normal:	ldr r0, normalmemoryblock
	ldr r0, [r0, #0x0]
there:	lsr r1, r6, #0x3
	mov r3, #0xEE
	lsl r3, r3, #0x4
	add r1, r1, r3
	add r0, r0, r1
	b exit
noget:	add r0, r4, #0x0
	b there
.align
memoryblock:	.word 0x0203C000
normalmemoryblock:	.word 0x03005008
Ensamblar esta rutina e insértar con el HxD en una ubicación terminada con un 0, 4, 8 o C (Anotar donde la insertaron). Luego ir a 0x6E5D6 y cambiar el código de allí a:

Código:
01 48 00 47 00 00 XX XX XX 08
Donde estan las XX poner la dirrecion que debian anotar permutada si no la anotaron lastima hagan todo denuevo <3 (si no saben permutar pueden buscar la herramienta de Naren Jr.)

Y listo, podran usar las flags desde la 0x5000 a la 0x51FF (inclusive) con el parche JPAN

Variables:
Código:
.text
.align 2
.thumb
.thumb_func
.global varflaghackone

main:
	mov r2, #0x40
	lsl r2, r2, #0x8
	cmp r4, r2
	blt exit
        mov r2, #0x41
	lsl r2, r2, #0x8
	cmp r4, r2
	blt normal
	mov r2, #0x50
	lsl r2, r2, #0x8
	cmp r4, r2
	blt exit
        lsl r2, r4, #0x10
        cmp r2, #0x0
        blt alt
	mov r2, #0x52
	lsl r2, r2, #0x8
	cmp r4, r2
	bge exit
	ldr r0, memoryblock
	mov r2, #0x50
	lsl r2, r2, #0x8
	sub r4, r4, r2
	lsl r4, r4, #0x1
	add r0, r0, r4
exit2:	pop {r4-r6}
	pop {r1}
	bx r1
exit:	mov r0, #0x0
	b exit2
normal:	ldr r0, return
	bx r0
alt:	ldr r0, return2
	bx r0
.align
memoryblock:	.word 0x0203C200
return:	.word 0x0806E473
return2:	.word 0x0806E50D
Ensamblar esta rutina, abrir el HxD con la rom y ponerla en una dirrecion terminada en 0, 8, 4 o C (Anotar donde la pusieron)
Luego ir a 0x6E45C y cambiar el codigo:

Código:
00 48 00 47 XX XX XX 08
En las XX poner la dirrecion permutada

Y eso es todo. Una vez insertada esta rutina, puede utilizar cualquiera de las variables entre 0x5000 y 0x51FF (inclusive) de forma segura sin ningún problema!

Las rangos de variables que se pueden usar son:
0x4000 - 0x40FF
0x5000 - 0x51FF
0x8000 - 0x8016

Cabe señalar que estas rutinas no son mutuamente excluyentes. Puedes tener ambas o puedes tener uno o el otro. No necesitas tanto para el hack de las flags, o ambos para el hack de las variables. Obviamente, si quieres tanto el hack de las flags o el de las variables puedes usar ambos.

Bueno no se si se entiende, pero por si las dudas les dejo el link del post: https://www.pokecommunity.com/showthread.php?t=302476

Tambien aprobecho la oportunidad de agradecer a @Ánima y a @SoulofBandit por ayudarme tanto desde que llegue al foro
 

Dark Aurora

Apolo Kaktus :v
Respuesta: FR-Tutorial de como extender las variables y flags seguras

Aun asi el anterior es de 2014, no viene mal volverlo a renovar para los nuevos que no quieren buscar el las 30 paginas del subforo de tutoriales
 

Gold

Porrero a tiempo parcial
Miembro insignia
Respuesta: FR-Tutorial de como extender las variables y flags seguras

No le veo yo al porque rehacer un tutorial que traduje, los nuevos mejor que usen el índice de tutoriales, es muy efectivo y es mejor que reescribirlos.

Por cierto, no se requiere del bugeado parche de Jpan, solo requiere el parche Save Block Hack de Jpan, que es muy diferente al que posteas.
 
Arriba