L!no
GBA Developer
Hoy les traigo una rutina que encontre en pokecommunity para saber que tecla pulso el jugador, la rutina es de FBI,creditos para el.
¿qué necesitamos?
---------------------
HxD
Un cerebro (obligatorio)
---------------------
Empezemos!
Primerodescargamos FR compilamos esta rutina y la insertamos en un offset vacio:
Como los amo a todos, les dejare la rutina ya compilada:
Para quienes la vayan a insertar ya compilada, el espacio necesario es de 30 bytes.
----------------------------------------------------------------------------------
¡Es muy importante anotar donde la insertaron!
----------------------------------------------------------------------------------
Ok, sigamos.
Vayan al offset 6B89A con ctrl+G y pegen escribiendo ctrl+B esto:
Ejemplo:
Rojo: Te da diez segundos para elegir una tecla, una vez elegida, mantener.
Azul: Compara la variable 0x8000 con 0x20, que significa que tocamos izquierda.
Negro: La condicion, sin condicion no hay compare.
Ya ven,con esto pueden hacer el sistema de hacks como pokemon triangulo origen o pokemon ancient en su propio hack.
Y por ultimo,las imagenes del testeo:
Click para ver el album.
¿qué necesitamos?
---------------------
HxD
Un cerebro (obligatorio)
---------------------
Empezemos!
Primero
.text
.align 2
.thumb
.thumb_func
main:
ldr r0, =(0x30030F0)
ldrh r1, [r0, #0x2E] @byte in super state for keypress
cmp r1, #0x0
beq cont
ldr r0, =(0x20370B8) @var 0x8000 location
strh r1, [r0]
ldr r4, =(0x806B922 +1)
bx r4
cont:
mov r0, #0x1
and r0, r0, r1
cmp r0, #0x0
beq section
ldr r1, =(0x806B922 +1)
bx r1
section:
ldr r0, =(0x806B8A6 +1)
bx r0
.align 2
.align 2
.thumb
.thumb_func
main:
ldr r0, =(0x30030F0)
ldrh r1, [r0, #0x2E] @byte in super state for keypress
cmp r1, #0x0
beq cont
ldr r0, =(0x20370B8) @var 0x8000 location
strh r1, [r0]
ldr r4, =(0x806B922 +1)
bx r4
cont:
mov r0, #0x1
and r0, r0, r1
cmp r0, #0x0
beq section
ldr r1, =(0x806B922 +1)
bx r1
section:
ldr r0, =(0x806B8A6 +1)
bx r0
.align 2
Como los amo a todos, les dejare la rutina ya compilada:
07 48 C1 8D 00 29 03 D0 06 48 01 80 06 4C 20 47 01 20 08 40 00 28 01 D0 03 49 08 47 03 48 00 47 F0 30 00 03 B8 70 03 02 23 B9 06 08 A7 B8 06 08
Para quienes la vayan a insertar ya compilada, el espacio necesario es de 30 bytes.
----------------------------------------------------------------------------------
¡Es muy importante anotar donde la insertaron!
----------------------------------------------------------------------------------
Ok, sigamos.
Vayan al offset 6B89A con ctrl+G y pegen escribiendo ctrl+B esto:
Código:
00 00 00 48 00 47 XX XX XX 08[CODE]
Donde XX XX XX es el pointer a nuestra rutina +1.
[SPOILER="como crear el pointer"]Imaginemos que yo puse la primera rutina en la posicion 0x800000:
Tomen su direccion y agregenle 1:
0x800000 - 0x800001
Separenla en 3 grupos de dos numeros/letras:
0x800001 - 0x80 0x00 0x01
Ahora pongan el primer grupo en el ultimo lugar y el ultimo en el primero:
0x80 0x00 0x01 - 0x01 0x00 0x80
Y nuestro pointer es:
01 00 80[/SPOILER]
¿Que hicimos?
Le dimos a la variable 0x8000 la funcion de guardar la tecla que pulsamos.
Y los valores de las teclas son:
[QUOTE]Abajo: 0x80
Arriba: 0x40
Izquierda: 0x20
Derecha: 0x10
A: 0x1
B: 0x2
Select: 0x4
Start: 0x8[/QUOTE]
Para saber que tecla es pulsada pongan esto en un script:
[CODE]pause 0x250
compare 0x8000 0x(valor de la tecla)
if 0x1 goto @(direccion)
Código:
#dynamic 0X800000
#org @inicio
lock
msgbox @msg 0x6
[COLOR="Red"]pause 0x250[/COLOR]
[COLOR="Blue"]compare 0x8000 0x20[/COLOR]
[COLOR="Black"]if 0x1 goto @continua[/COLOR]
msgbox @msg1 0x6
release
end
#org @continua
msgbox @msg2 0x6
release
end
#org @msg
= maldicion... esta contraseña es\nnueva...\l¿que hago?\lpulsa [R] para poner la contraseña\loriginal o [L] para apretar numeros al\lazar
#org @msg1
= la alarma! yo me piro!
#org @msg2
= uffff...\nabrio!
Azul: Compara la variable 0x8000 con 0x20, que significa que tocamos izquierda.
Negro: La condicion, sin condicion no hay compare.
Ya ven,con esto pueden hacer el sistema de hacks como pokemon triangulo origen o pokemon ancient en su propio hack.
Y por ultimo,las imagenes del testeo:
Click para ver el album.
Última edición: