Registrarse

[RH - ASM] tengo problema a copilar una rutina

Estado
Cerrado para nuevas respuestas.

Ancer

Usuario de oro
hola la cosa es que estoy tratando de poner una rutina de FBI la cual es la de eliminar pokemon cuando se desmayan la cosa es que en una parte dice que se necesita la de batalla por movimiento y la misma el dice que tiene que terminar en 00 00 00 00 la cual al copilarla no me sale haci alguien sabe porque ¿:.

esto es lo que me copila

Código:
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

y la rutina es esta

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

main:
	push {r0-r4}
	mov r0, #0xBF @flag to check divided by 4
	lsl r0, r0, #0x2
	ldr r1, =(0x806E6D0 +1)
	bl linker
	cmp r0, #0x0
	beq noCrash
	ldr r4, .table

loop:
	ldr r1, [r4]
	cmp r1, #0x0    [MENTION=31902]Che[/MENTION]ck table entry is null
	beq noCrash
	bl linker @call table routine
	add r4, r4, #0x4 @get next table routine
	b loop
	

noCrash:
	pop {r0-r4}
	lsl r0, r0, #0x18
	lsr r0, r0, #0x18
	mov r10, r0
	lsl r1, r1, #0x10
	lsr r1, r1, #0x10
	ldr r2, =(0x2022874)
	ldr r0, =(0x800E2EA +1)
	bx r0

linker:
	bx r1
	
	
.align 2

.table:
	.word 0x[pointer to routine table] @THIS IS FREE SPACE IF IT'S YOUR FIRST TIME USING THIS ROUTINE
 
Última edición:

MetalKaktus

A la luz del quinto día, mira al este
Miembro insignia
No me he enterado mucho del problema por la descripción, tal vez si nos pasas la rutina, el post desde donde lo has sacado y todo eso te podría ayudar.
 

Ancer

Usuario de oro
No me he enterado mucho del problema por la descripción, tal vez si nos pasas la rutina, el post desde donde lo has sacado y todo eso te podría ayudar.
https://www.pokecommunity.com/showthread.php?p=8527650

es esta pero al copilarla me sale haci

Código:
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

esta es la rutina

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

main:
	push {r0-r4}
	mov r0, #0xBF @flag to check divided by 4
	lsl r0, r0, #0x2
	ldr r1, =(0x806E6D0 +1)
	bl linker
	cmp r0, #0x0
	beq noCrash
	ldr r4, .table

loop:
	ldr r1, [r4]
	cmp r1, #0x0    [MENTION=31902]Che[/MENTION]ck table entry is null
	beq noCrash
	bl linker @call table routine
	add r4, r4, #0x4 @get next table routine
	b loop
	

noCrash:
	pop {r0-r4}
	lsl r0, r0, #0x18
	lsr r0, r0, #0x18
	mov r10, r0
	lsl r1, r1, #0x10
	lsr r1, r1, #0x10
	ldr r2, =(0x2022874)
	ldr r0, =(0x800E2EA +1)
	bx r0

linker:
	bx r1
	
	
.align 2

.table:
	.word 0x[pointer to routine table] @THIS IS FREE SPACE IF IT'S YOUR FIRST TIME USING THIS ROUTINE

A lo mejor hay que añadi esos ceros manualmente,pero si no se explica...
lo intente y se reinicio el juego
 
Última edición:

Ancer

Usuario de oro
Pon un offset de espacio vacío ¡(segun dice las instrucciones)
Hola disculta podrías probarla cuando tengas tiempo
Yo la e probado usando NO$GBA cuando activo la primera y me manda a la segundo cambia el código ,es decir no lo lee cono debería

Ah y para activarlas es con la flag en hexadecimales multiplicada por 4 ,pero en la rutina se pone dividida por 4 es decir:
BF en la rutina normal
Y 2FC para activarla
 
Estado
Cerrado para nuevas respuestas.
Arriba