Registrarse

[ASM] [FR] - Mostrar hora en el Menú

Draizehn

🌙
Miembro del equipo
Moderador/a
¿Qué onda Waheros?
Hoy os traigo algo que de seguro le dara un toque profesional a vuestros juegos.
No es algo muy novedoso que digamos, ya que hay varios hacks que traen esto e incluso mejorado.
¿Y qué es? Pues una rutina que te muestra la hora en el Menú, es raro que no exista un tutorial en este foro, pero bueno.
No me enrollo más, ¡Vamos con el tutorial!

Antes de empezar, es mi deber dejar los créditos y estos son para Pokemon_XY de PokéCommunity

***

Paso 1: Inserta la rutina del DNS, la herramienta la puedes encontrar en el foro.
Paso 2: Inserta esta primera rutina:
.thumb
bl box_func
ldr r1, =0x20370FF
ldrb r0, [r1]
add r0, #1
strb r0, [r1]
mov r0, #0
add sp, sp, #0xC
pop {r4, pc}
.ltorg

box_func:
push {r4, lr}
ldr r4, =0x2037101
ldr r0, =(0x8750000 + rbox_config) ' Cambiar por el offset en el que colocarás la rutina.
ldr r3, =0x8003ce5
bl call_r3
strb r0, [r4]
ldr r3, =0x8003fa1
bl call_r3
ldrb r0, [r4]
mov r1, #0
ldr r3, =0x80F6F1D
bl call_r3
bl print_string
ldr r0, =(0x8750001 + print_string) ' Cambiar por el offset en el que colocarás la rutina+1.
mov r1, #2
ldr r3, =0x807741D
bl call_r3
ldr r1, =0x20370C0
strh r0, [r1]
pop {r4, pc}
.ltorg

print_string:
push {r4-r7, lr}
sub sp, sp, #0xC
ldr r0, =0x2021cd0
add r7, r0, #0
ldr r1, =0x300553c
ldrb r5, [r1, #7] @minute
ldrb r6, [r1, #8] @second
ldrb r1, [r1, #6] @hour
mov r2, #1
mov r3, #2
ldr r4, =0x8008E79
bl call_r4
bl go_padding
ldr r0, =0x2021CF0
add r7, r0, #0
add r1, r5, #0
mov r2, #1
mov r3, #2
ldr r4, =0x8008e79
bl call_r4
bl go_padding
ldr r0, =0x2021d04
add r7, r0, #0
add r1, r6, #0
mov r2, #1
mov r3, #2
ldr r4, =0x8008e79
bl call_r4
bl go_padding
ldr r5, =0x2021D18
ldr r1, =(0x8750000 + string) ' Cambiar por el offset en el que colocarás la rutina.
add r0, r5, #0
ldr r3, =0x8008FCD
bl call_r3
ldr r0, =0x2037101
ldrb r0, [r0]
mov r1, #3
str r1, [sp]
mov r1, #0xff
str r1, [sp, #4]
mov r1, #0
str r1, [sp, #8]
mov r1, #2
add r2, r5, #0
mov r3, #4
ldr r4, =0x8002C49
bl call_r4
ldr r0, =0x2037101
ldrb r0, [r0]
mov r1, #2
ldr r3, =0x8003F21
bl call_r3
add sp, sp, #0xC
pop {r4-r7, pc}
.ltorg

go_padding:
push {lr}
ldrb r0, [r7]
cmp r0, #0
bne back
mov r0, #0xa1
strb r0, [r7]
back:
pop {pc}

call_r3:
bx r3

call_r4:
bx r4

.align 2
rbox_config:
.byte 0x0 @bg_id
.byte 0x1 @x
.byte 0x1 @y
.byte 0xa @width
.byte 0x2 @height
.byte 0xf
.hword 0x8 @tileset_ofs
.word 0x8419f76 @pixels

.align 2
string:
.byte 0xce, 0xdd, 0xe1, 0xd9, 0xf0, 0xfd, 0x2, 0xf0, 0xfd, 0x3, 0xf0, 0xfd, 0x4, 0xff

Guarda y ve al offset 0x6F09C, luego pega (CTRL+B) estos bytes:
00 48 00 47 XX+1 XX XX 08
(XX+1 XX XX es el offset permutado en el que insertaste la rutina+1)

Paso 3: Inserta esta segunda rutina.
.thumb
cmp r0, #1
beq safari
ldr r0, =0x20370C0
ldrh r0, [r0]
ldr r3, =0x8077509
bl call_r3

safari:
ldr r4, =0x02037101
ldrb r0, [r4]
mov r1, #0
ldr r3, =0x806ef29

call_r3:
bx r3

Guarda y ve al offset 0x6EF1E, luego pega (CTRL+B) estos bytes:
00 00 00 49 08 47 YY+1 YY YY 08
(YY+1 YY YY es el offset permutado en el que insertaste la rutina+1)

Paso 4: Inserta esta tercera y última rutina.
.thumb
push {lr}
ldr r0, =0x20370c0
ldrh r0, [r0]
ldr r3, =0x8077509
bl call_r3
ldr r1, =0x20370F0
ldr r0, =0x806f5a5
str r0, [r1]
mov r0, #0
pop {pc}
call_r3:
bx r3

Guarda y ve al offset 0x6f4e8, luego pega (CTRL+B) estos bytes:
00 48 00 47 ZZ+1 ZZ ZZ 08
(ZZ+1 ZZ ZZ es el offset permutado en el que insertaste la rutina+1)

Así me quedó:


No deberías tener errores si sigues el tutorial al pie de la letra, si de casualidad tienes alguno, dímelo y tratare de ayudarte.
Eso es todo, nos vemos en otro Draicotuto (?)

~ Paz
 
Última edición:

AxelLoquendo

Todo terreno 👻
¿Qué onda Waheros?
Hoy os traigo algo que de seguro le dara un toque profesional a vuestros juegos.
No es algo muy novedoso que digamos, ya que hay varios hacks que traen esto e incluso mejorado.
¿Y qué es? Pues una rutina que te muestra la hora en el Menú, es raro que no exista un tutorial en este foro, pero bueno.
No me enrollo más, ¡Vamos con el tutorial!

Antes de empezar, es mi deber dejar los créditos y estos son para Pokemon_XY de PokéCommunity

***

Paso 1: Inserta la rutina del DNS, la herramienta la puedes encontrar en el foro.
Paso 2: Inserta esta primera rutina:
.thumb
bl box_func
ldr r1, =0x20370FF
ldrb r0, [r1]
add r0, #1
strb r0, [r1]
mov r0, #0
add sp, sp, #0xC
pop {r4, pc}
.ltorg

box_func:
push {r4, lr}
ldr r4, =0x2037101
ldr r0, =(0x8750000 + rbox_config) ' Cambiar por el offset en el que colocarás la rutina.
ldr r3, =0x8003ce5
bl call_r3
strb r0, [r4]
ldr r3, =0x8003fa1
bl call_r3
ldrb r0, [r4]
mov r1, #0
ldr r3, =0x80F6F1D
bl call_r3
bl print_string
ldr r0, =(0x8750001 + print_string) ' Cambiar por el offset en el que colocarás la rutina+1.
mov r1, #2
ldr r3, =0x807741D
bl call_r3
ldr r1, =0x20370C0
strh r0, [r1]
pop {r4, pc}
.ltorg

print_string:
push {r4-r7, lr}
sub sp, sp, #0xC
ldr r0, =0x2021cd0
add r7, r0, #0
ldr r1, =0x300553c
ldrb r5, [r1, #7] @minute
ldrb r6, [r1, #8] @second
ldrb r1, [r1, #6] @hour
mov r2, #1
mov r3, #2
ldr r4, =0x8008E79
bl call_r4
bl go_padding
ldr r0, =0x2021CF0
add r7, r0, #0
add r1, r5, #0
mov r2, #1
mov r3, #2
ldr r4, =0x8008e79
bl call_r4
bl go_padding
ldr r0, =0x2021d04
add r7, r0, #0
add r1, r6, #0
mov r2, #1
mov r3, #2
ldr r4, =0x8008e79
bl call_r4
bl go_padding
ldr r5, =0x2021D18
ldr r1, =(0x8750000 + string) ' Cambiar por el offset en el que colocarás la rutina.
add r0, r5, #0
ldr r3, =0x8008FCD
bl call_r3
ldr r0, =0x2037101
ldrb r0, [r0]
mov r1, #3
str r1, [sp]
mov r1, #0xff
str r1, [sp, #4]
mov r1, #0
str r1, [sp, #8]
mov r1, #2
add r2, r5, #0
mov r3, #4
ldr r4, =0x8002C49
bl call_r4
ldr r0, =0x2037101
ldrb r0, [r0]
mov r1, #2
ldr r3, =0x8003F21
bl call_r3
add sp, sp, #0xC
pop {r4-r7, pc}
.ltorg

go_padding:
push {lr}
ldrb r0, [r7]
cmp r0, #0
bne back
mov r0, #0xa1
strb r0, [r7]
back:
pop {pc}

call_r3:
bx r3

call_r4:
bx r4

.align 2
rbox_config:
.byte 0x0 @bg_id
.byte 0x1 @x
.byte 0x1 @y
.byte 0xa @width
.byte 0x2 @height
.byte 0xf
.hword 0x8 @tileset_ofs
.word 0x8419f76 @pixels

.align 2
string:
.byte 0xce, 0xdd, 0xe1, 0xd9, 0xf0, 0xfd, 0x2, 0xf0, 0xfd, 0x3, 0xf0, 0xfd, 0x4, 0xff

Guarda y ve al offset 0x6F09C, luego pega (CTRL+B) estos bytes:
00 48 00 47 XX+1 XX XX 08
(XX+1 XX XX es el offset permutado en el que insertaste la rutina+1)

Paso 3: Inserta esta segunda rutina.
.thumb
cmp r0, #1
beq safari
ldr r0, =0x20370C0
ldrh r0, [r0]
ldr r3, =0x8077509
bl call_r3

safari:
ldr r4, =0x02037101
ldrb r0, [r4]
mov r1, #0
ldr r3, =0x806ef29

call_r3:
bx r3

Guarda y ve al offset 0x6EF1E, luego pega (CTRL+B) estos bytes:
00 00 00 49 08 47 YY+1 YY YY 08
(YY+1 YY YY es el offset permutado en el que insertaste la rutina+1)

Paso 4: Inserta esta tercera y última rutina.
.thumb
push {lr}
ldr r0, =0x20370c0
ldrh r0, [r0]
ldr r3, =0x8077509
bl call_r3
ldr r1, =0x20370F0
ldr r0, =0x806f5a5
str r0, [r1]
mov r0, #0
pop {pc}
call_r3:
bx r3

Guarda y ve al offset 0x6f4e8, luego pega (CTRL+B) estos bytes:
00 48 00 47 ZZ+1 ZZ ZZ 08
(ZZ+1 ZZ ZZ es el offset permutado en el que insertaste la rutina+1)

Así me quedó:


No deberías tener errores si sigues el tutorial al pie de la letra, si de casualidad tienes alguno, dímelo y tratare de ayudarte.
Eso es todo, nos vemos en otro Draicotuto (?)

~ Paz
Esto esta perfecto tanto para personas que usan el cfru de skeli y las personas que no lo usan.
 

KERBEROS

Usuario de Platino
Esta muy bueno , me gusta, si DNS no tuviera el problema de bugear el intercambio de Pokémon, lo implementaría, aunque estoy en cfru, asi que ....
 
Arriba