jiangzhengwenjz 发表于 2015-11-27 13:28:49

火红菜单显示时间功能

本帖最后由 jiangzhengwenjz 于 2015-11-27 21:01 编辑

预览图:

当然这个还是不太完善需要优化的,不过暂时没有时间,因此这个贴只是提供信息性质的。严重的bug也是没有发现
1)用DNS加入实时时钟系统(rtc),并在模拟器中打钩
2)写入这些源码,并作注释中对应字节更改/*0x6F09C - 00 48 00 47 XX+1 XX XX 08
源码中所有0x8750000改为代码写入地址
源码中所有0x8750001改为代码写入地址+1*/
.thumb
bl box_func
ldr r1, =0x20370FF
ldrb r0,
add r0, #1
strb r0,
mov r0, #0
add sp, sp, #0xC
pop {r4, pc}
.ltorg

box_func:
push {r4, lr}
ldr r4, =0x2037101
ldr r0, =(0x8750000 + rbox_config)
ldr r3, =0x8003ce5
bl call_r3
strb r0,
ldr r3, =0x8003fa1
bl call_r3
ldrb r0,
mov r1, #0
ldr r3, =0x80F6F1D
bl call_r3
bl print_string
ldr r0, =(0x8750001 + print_string)
mov r1, #2
ldr r3, =0x807741D
bl call_r3
ldr r1, =0x20370C0
strh r0,
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, @minute
ldrb r6, @second
ldrb r1, @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)
add r0, r5, #0
ldr r3, =0x8008FCD
bl call_r3
ldr r0, =0x2037101
ldrb r0,
mov r1, #3
str r1,
mov r1, #0xff
str r1,
mov r1, #0
str r1,
mov r1, #2
add r2, r5, #0
mov r3, #4
ldr r4, =0x8002C49
bl call_r4
ldr r0, =0x2037101
ldrb 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,
cmp r0, #0
bne back
mov r0, #0xa1
strb r0,
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/*0x6EF1E - 00 00 00 49 08 47 YY+1 YY YY 08*/
.thumb
cmp r0, #1
beq safari
ldr r0, =0x20370C0
ldrh r0,
ldr r3, =0x8077509
bl call_r3

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

call_r3:
bx r3/*0x6f4e8 - 00 48 00 47 ZZ+1 ZZ ZZ 08*/
.thumb
push {lr}
ldr r0, =0x20370c0
ldrh r0,
ldr r3, =0x8077509
bl call_r3
ldr r1, =0x20370F0
ldr r0, =0x806f5a5
str r0,
mov r0, #0
pop {pc}
call_r3:
bx r3

Deicde丶笑沧海 发表于 2015-11-27 18:48:26

这个太叼 坐等绿宝石

jiangzhengwenjz 发表于 2015-11-27 21:05:38

Deicde丶笑沧海 发表于 2015-11-27 18:48
这个太叼 坐等绿宝石

让泡泡给你移植

CLEM 发表于 2024-2-11 22:50:35

楼主,代码写入地址指的是什么?它和XX+1 XX XX 一样吗?

CLEM 发表于 2024-2-11 22:54:10

有没有补丁啊楼主,我把代码写入地址和XX+1 XX XX 理解为asm编译后写入的地方,插入装了CFRU的蓝本后,进入游戏打开菜单直接闪退…

CLEM 发表于 2024-2-12 21:41:29

CLEM 发表于 2024-2-11 22:54
有没有补丁啊楼主,我把代码写入地址和XX+1 XX XX 理解为asm编译后写入的地方,插入装了CFRU的蓝本后,进入 ...

楼主,那能麻烦你改进一下这个代码嘛,最好能兼容CFRU,非常感谢...

CLEM 发表于 2024-2-12 21:43:55

CLEM 发表于 2024-2-11 22:54
有没有补丁啊楼主,我把代码写入地址和XX+1 XX XX 理解为asm编译后写入的地方,插入装了CFRU的蓝本后,进入 ...

这里的代码写入地址指的是rtc地址吗?以英文版火红1.0为蓝本,我试了一下午还是不行。
pokemoncommunity上也找不到菜单时间显示的教程,如果有类似教程麻烦你告诉我。
页: [1]
查看完整版本: 火红菜单显示时间功能