Registrarse

[RH - ASM] eliminar pokemon mientras se desmayan

Estado
Cerrado para nuevas respuestas.

Ancer

Usuario de oro
hola e estado intentado poner la rutina de FBI de Eliminar Pokémon desfallecidos la cual esta en

https://www.pokecommunity.com/showpost.php?p=8528761&postcount=226

esta necesita una segunda rutina la cual es esta

https://www.pokecommunity.com/showpost.php?p=8527650&postcount=213

mi duda es que no logro que funcione la primera esto digo yo que es porque no se hacer una parte que el explica la cual es la del
You will notice that near the start of the routine there is some commented out code (denoted by a prefix "@" symbol). That's for a flag check. Change [flag/4] = your flag/4 in hex if you want to toggle by flag. Of course the normal battle mode toggle flag should be used as well.

en español

Notarás que cerca del comienzo de la rutina hay un código comentado (denotado por un símbolo de prefijo "@"). Eso es para un control de flag. Cambia [flag / 4] = tu flag / 4 en hex si deseas alternar por flag. Por supuesto, también se debe usar el indicador de palanca de modo de batalla normal.

alguien sabe como hacer esa parte

también desconozco esta parte

Uso:
si has optado por usar una flag, configurar para permitir futuras batallas para eliminar Pokémon a medida que se desmayan. Si no te limitaras a sentarte y dejar que los unicornios dentro del juego hagan el resto.
 

Omega

For endless fight
Miembro del equipo
Moderador/a
Es fácil, debes elegir la flag con la que activas este sistema, por ejemplo yo quiero activarlo con la flag 2016, entonces debo cambiar la parte de [flag/4] por 2016, te la remarco en la rutina:
Código:
.text
.align 2
.thumb
.thumb_func

main:
	push {r0-r5, lr}
	@mov r0, #0x[B][Color="Red"][flag/4][/Color][/B]
	@lsl r0, r0, #0x2
	@ldr r3, =(0x806E6D0 +1)
	@bl linker
	@cmp r0, #0x0
	@beq end
	ldr r0, =(0x2023E8A)
	ldrb r0, [r0]
	cmp r0, #0x0
	beq realEnd
	mov r5, #0x0

loop:
	ldr r0, =(0x2024029)
	ldrb r4, [r0]
	cmp r5, r4
	beq end
	ldr r0, =(0x2024284)
	mov r1, #0x64
	mul r1, r1, r5 @slot
	add r0, r0, r1 @address
	mov r1, #0x39 @C_HP
	ldr r3, =(0x803FBE8 +1)
	bl linker
	cmp r0, #0x0
	beq adjustSlots

skip:
	add r5, r5, #0x1
	b loop


adjustSlots:
	cmp r5, #0x5
	bge writeLastZero	
	mov r2, #0x5
	sub r2, r2, r5
	mov r0, #0x64
	mul r2, r2, r0 @size
	mov r1, r5
	mul r1, r1, r0
	ldr r0, =(0x2024284)
	add r0, r0, r1 @dest
	mov r1, #0x64
	add r1, r0, r1 @src
	ldr r3, =(0x8040B08 +1)
	bl linker


writeLastZero:
	ldr r0, =(0x2024478)
	mov r1, #0x0
	mov r2, #0x64
	ldr r3, =(0x81E5ED8 +1)
	bl linker

correctCounters:
	ldr r0, =(0x2024029)
	ldrb r1, [r0]
	sub r1, r1, #0x1
	strb r1, [r0]
next:
	mov r5, #0x0
	b loop	

end:
	ldr r0, =(0x2024029)
	ldrb r0, [r0]
	cmp r0, #0x0
	bne realEnd
	mov r0, #0x5E
	lsl r0, r0, #0x4
	ldr r3, =(0x806E6A8 +1)
	bl linker
	b realEnd


linker:
	bx r3

realEnd:
	pop {r0-r5, pc}


.align 2
Entonces quedaría así:
Código:
.text
.align 2
.thumb
.thumb_func

main:
	push {r0-r5, lr}
	@mov r0, #0x[B][Color="Red"]2016[/Color][/B] (Creo, puede que debas poner [2016/4], intenta ambas formas a ver que pasa xD)
	@lsl r0, r0, #0x2
	@ldr r3, =(0x806E6D0 +1)
	@bl linker
	@cmp r0, #0x0
	@beq end
	ldr r0, =(0x2023E8A)
	ldrb r0, [r0]
	cmp r0, #0x0
	beq realEnd
	mov r5, #0x0

loop:
	ldr r0, =(0x2024029)
	ldrb r4, [r0]
	cmp r5, r4
	beq end
	ldr r0, =(0x2024284)
	mov r1, #0x64
	mul r1, r1, r5 @slot
	add r0, r0, r1 @address
	mov r1, #0x39 @C_HP
	ldr r3, =(0x803FBE8 +1)
	bl linker
	cmp r0, #0x0
	beq adjustSlots

skip:
	add r5, r5, #0x1
	b loop


adjustSlots:
	cmp r5, #0x5
	bge writeLastZero	
	mov r2, #0x5
	sub r2, r2, r5
	mov r0, #0x64
	mul r2, r2, r0 @size
	mov r1, r5
	mul r1, r1, r0
	ldr r0, =(0x2024284)
	add r0, r0, r1 @dest
	mov r1, #0x64
	add r1, r0, r1 @src
	ldr r3, =(0x8040B08 +1)
	bl linker


writeLastZero:
	ldr r0, =(0x2024478)
	mov r1, #0x0
	mov r2, #0x64
	ldr r3, =(0x81E5ED8 +1)
	bl linker

correctCounters:
	ldr r0, =(0x2024029)
	ldrb r1, [r0]
	sub r1, r1, #0x1
	strb r1, [r0]
next:
	mov r5, #0x0
	b loop	

end:
	ldr r0, =(0x2024029)
	ldrb r0, [r0]
	cmp r0, #0x0
	bne realEnd
	mov r0, #0x5E
	lsl r0, r0, #0x4
	ldr r3, =(0x806E6A8 +1)
	bl linker
	b realEnd


linker:
	bx r3

realEnd:
	pop {r0-r5, pc}


.align 2

Avísame si no te funciona, aunque creo que así debe hacerse xD

Saludos!!!
 

Ancer

Usuario de oro
Ωmega;419988 dijo:
Es fácil, debes elegir la flag con la que activas este sistema, por ejemplo yo quiero activarlo con la flag 2016, entonces debo cambiar la parte de [flag/4] por 2016, te la remarco en la rutina:
Código:
.text
.align 2
.thumb
.thumb_func

main:
	push {r0-r5, lr}
	@mov r0, #0x[B][Color="Red"][flag/4][/Color][/B]
	@lsl r0, r0, #0x2
	@ldr r3, =(0x806E6D0 +1)
	@bl linker
	@cmp r0, #0x0
	@beq end
	ldr r0, =(0x2023E8A)
	ldrb r0, [r0]
	cmp r0, #0x0
	beq realEnd
	mov r5, #0x0

loop:
	ldr r0, =(0x2024029)
	ldrb r4, [r0]
	cmp r5, r4
	beq end
	ldr r0, =(0x2024284)
	mov r1, #0x64
	mul r1, r1, r5 @slot
	add r0, r0, r1 @address
	mov r1, #0x39 @C_HP
	ldr r3, =(0x803FBE8 +1)
	bl linker
	cmp r0, #0x0
	beq adjustSlots

skip:
	add r5, r5, #0x1
	b loop


adjustSlots:
	cmp r5, #0x5
	bge writeLastZero	
	mov r2, #0x5
	sub r2, r2, r5
	mov r0, #0x64
	mul r2, r2, r0 @size
	mov r1, r5
	mul r1, r1, r0
	ldr r0, =(0x2024284)
	add r0, r0, r1 @dest
	mov r1, #0x64
	add r1, r0, r1 @src
	ldr r3, =(0x8040B08 +1)
	bl linker


writeLastZero:
	ldr r0, =(0x2024478)
	mov r1, #0x0
	mov r2, #0x64
	ldr r3, =(0x81E5ED8 +1)
	bl linker

correctCounters:
	ldr r0, =(0x2024029)
	ldrb r1, [r0]
	sub r1, r1, #0x1
	strb r1, [r0]
next:
	mov r5, #0x0
	b loop	

end:
	ldr r0, =(0x2024029)
	ldrb r0, [r0]
	cmp r0, #0x0
	bne realEnd
	mov r0, #0x5E
	lsl r0, r0, #0x4
	ldr r3, =(0x806E6A8 +1)
	bl linker
	b realEnd


linker:
	bx r3

realEnd:
	pop {r0-r5, pc}


.align 2
Entonces quedaría así:
Código:
.text
.align 2
.thumb
.thumb_func

main:
	push {r0-r5, lr}
	@mov r0, #0x[B][Color="Red"]2016[/Color][/B] (Creo, puede que debas poner [2016/4], intenta ambas formas a ver que pasa xD)
	@lsl r0, r0, #0x2
	@ldr r3, =(0x806E6D0 +1)
	@bl linker
	@cmp r0, #0x0
	@beq end
	ldr r0, =(0x2023E8A)
	ldrb r0, [r0]
	cmp r0, #0x0
	beq realEnd
	mov r5, #0x0

loop:
	ldr r0, =(0x2024029)
	ldrb r4, [r0]
	cmp r5, r4
	beq end
	ldr r0, =(0x2024284)
	mov r1, #0x64
	mul r1, r1, r5 @slot
	add r0, r0, r1 @address
	mov r1, #0x39 @C_HP
	ldr r3, =(0x803FBE8 +1)
	bl linker
	cmp r0, #0x0
	beq adjustSlots

skip:
	add r5, r5, #0x1
	b loop


adjustSlots:
	cmp r5, #0x5
	bge writeLastZero	
	mov r2, #0x5
	sub r2, r2, r5
	mov r0, #0x64
	mul r2, r2, r0 @size
	mov r1, r5
	mul r1, r1, r0
	ldr r0, =(0x2024284)
	add r0, r0, r1 @dest
	mov r1, #0x64
	add r1, r0, r1 @src
	ldr r3, =(0x8040B08 +1)
	bl linker


writeLastZero:
	ldr r0, =(0x2024478)
	mov r1, #0x0
	mov r2, #0x64
	ldr r3, =(0x81E5ED8 +1)
	bl linker

correctCounters:
	ldr r0, =(0x2024029)
	ldrb r1, [r0]
	sub r1, r1, #0x1
	strb r1, [r0]
next:
	mov r5, #0x0
	b loop	

end:
	ldr r0, =(0x2024029)
	ldrb r0, [r0]
	cmp r0, #0x0
	bne realEnd
	mov r0, #0x5E
	lsl r0, r0, #0x4
	ldr r3, =(0x806E6A8 +1)
	bl linker
	b realEnd


linker:
	bx r3

realEnd:
	pop {r0-r5, pc}


.align 2

Avísame si no te funciona, aunque creo que así debe hacerse xD

Saludos!!!
no nada lo siento

algo me dice que no es lo de la flag en si pos na e probado eso sino lo que el dice al final es decir

si has optado por usar una flag, configurar para permitir futuras batallas para eliminar Pokémon a medida que se desmayan.

algo me dice que esto lo que falta pero no se a que se refiere
 

Omega

For endless fight
Miembro del equipo
Moderador/a
no nada lo siento

algo me dice que no es lo de la flag en si pos na e probado eso sino lo que el dice al final es decir

si has optado por usar una flag, configurar para permitir futuras batallas para eliminar Pokémon a medida que se desmayan.

algo me dice que esto lo que falta pero no se a que se refiere
Me equivoque en algo xD
Debes elegir una Flag y dividirla por 4

Entonces, si eliges la Flag 2FC (Hex) debes dividirla en 4, y te queda BF (En Decimal es: 764/4= 191), debes poner BF tal cual en la parte que te señale y listo.
 

Ancer

Usuario de oro
Ωmega;419996 dijo:
Me equivoque en algo xD
Debes elegir una Flag y dividirla por 4

Entonces, si eliges la Flag 2FC (Hex) debes dividirla en 4, y te queda BF (En Decimal es: 764/4= 191), debes poner BF tal cual en la parte que te señale y listo.
ok lo probare lastima que no se puede poner el meme de explosión de cabeza porque eso no me lo esperaba

una cosa mas para activarla se elige el 764 , 2FC o BF en el caso de que se tenga que activar cual es la que se elige

sino me equivoco sigue siendo 764 no?
 

Ancer

Usuario de oro
Ωmega;419996 dijo:
Me equivoque en algo xD
Debes elegir una Flag y dividirla por 4

Entonces, si eliges la Flag 2FC (Hex) debes dividirla en 4, y te queda BF (En Decimal es: 764/4= 191), debes poner BF tal cual en la parte que te señale y listo.
hola algo raro en la pagina de FBI pone que debería terminar en 00 00 00 00 pero al copiarlo esto es lo que hay

1F B4 BF 20 80 00 0C 49 FF F7 FE FF 00 28 07 D0 08 4C 21 68 00 29 03 D0 FF F7 FE FF 04 34 F8 E7 1F BC 00 06 00 0E 82 46 09 04 09 0C 03 4A 04 48 00 47 08 47 90 C9 34 08 D1 E6 06 08 74 28 02 02 EB E2 00 08

como ves no termina en 00 00 00 00 acaso lo copilo mal?
 
Estado
Cerrado para nuevas respuestas.
Arriba