Pokemon Center | 口袋中心 以口袋妖怪为主题并带有其他动漫游戏的讨论

 找回密码
 加入口袋中心
搜索
查看: 15243|回复: 9

绿宝石自己的【内置时钟】,不再依赖模拟器的【真实时钟】

[复制链接]

39

回帖

995

现金

10

勋章券

离开家乡的彷徨

Rank: 4Rank: 4

积分
146

时光印记Lv.1

发表于 2013-6-6 20:52:24 | 显示全部楼层 |阅读模式
绿宝石自己的【内置时钟】,不再依赖模拟器的【真实时钟】
16MB绿宝石_01.png 16MB绿宝石_02.PNG
一直以来时钟问题一直困扰着很多玩家和改版爱好着。
所谓时钟,就是游戏中的时间,同时一些时间的启动是依赖于其中的时间。
而绿宝石的时钟系统只能依赖于模拟器的“真实时钟”选项,否则游戏中的时间将固定在某一点上。
这样,游戏中的“电视购物”,“幻岛出现”,“树果成长”,“涨潮落潮”,“抽奖”等事件将无法正常启动。

现在绿宝石自己的【内置时钟】终于实现了,可以不再依赖模拟器的【真实时钟】。

正文:
本教程仅适用于美版绿宝石(BPEE)。
首先在ROM中搜寻一个相当的空位,将以下代码写入ROM中。
注意:写入的地址的最后一个数字位数一定要在F或者3或者7或者B。

数据代码(感谢zjzj1118建议将0x0200F024改成0x0201f000)
FFB420480068113000901E4C24689A34631C1D4F3D7800787A1C85421CD038701078461C3006000E10703B2814DD002616701E78013E3106090EFF290BD13B261E702678013E3140FF2902D1172100F00CF8217000E01970FFBC0C4801880F4A101C031C4B400A48004707B4054800689830018801390A4A914200DB0649018007BCF746905D000300F0010230010004F105000800800000FFFF0000FF03000094000000


记下这个写入的地址。比如我写入的地址是0xBD80D0。
但是系统调用这个新命令,需要在地址上+1,这是规则。于是就变成0xBD80D1,把它转成指针形式的数据,就是D180BD08。

在0x5e6 写入以下代码:
01B400480047xxxxxxxx01BC

xxxxxxxx就是之前得到的指针。

比如我之前的得到的代入就是
01B400480047D180BD0801BC

在0x2FB06 写入以下数据
C046C046


最后模拟器去掉真实时钟选项,并重新加载游戏即可。

感谢“pokecommunity”的Gamer2020编写了此命令。
参考http://www.pokecommunity.com/showthread.php?t=297913

原代码
.text
.align 2
.thumb
.thumb_func
.global emeraldclockfix

/*At 80005e6 write 01B400480047xxxxxxxx01BC with xxxxxxxx being the offset for this routine.
To disable the error code text write C046C046 at 0802FB06
Offset 0200F024 may not be safe in emerald but this can be changed to anything desired.
This code seems to work but is not fully tested. Use at your own risk.*/
main:

push    {r0-r7}
ldr     r0,.PLAYER_DATA
ldr     r0, [r0]
add     r0,r0, #0x11
str     r0,[sp]
ldr     r4,.PLAYER_DATA
ldr     r4, [r4]
add     r4,r4, #0x9A
add     r3,r4,#0x1
ldr     r7,.SUM_BUFF
ldrb    r5,[r7]
ldrb    r0,[r0]
add     r2,r7,#0x1
cmp     r5,r0
beq     Game_Code_and_Return
strb    r0,[r7]
ldrb    r0,[r2]
add     r6,r0,#0x1
lsl     r0,r6,#0x18
lsr     r0,r0,#0x18
strb    r0,[r2]
cmp     r0,#0x3B
ble     Game_Code_and_Return
mov     r6,#0x0
strb    r6,[r2]
ldrb    r6,[r3]
sub     r6,#0x1
lsl     r1,r6,#0x18
lsr     r1,r1,#0x18
cmp     r1,#0xFF
bne     SOMETHING3
mov     r6,#0x3B
strb    r6,[r3]
ldrb    r6,[r4]
sub     r6,#0x1
and     r1,r6
cmp     r1,#0xFF
bne     SOMETHING2
mov     r1,#0x17
bl      SOMETHING4

SOMETHING2:

strb    r1,[r4]
b       Game_Code_and_Return

SOMETHING3:
                             
strb    r1,[r3]

Game_Code_and_Return:

pop     {r0-r7}
ldr     r0,.SUM_GAME_OFF
ldrh    r1,[r0]
ldr     r2,.SUM_VAL
mov     r0,r2
mov     r3,r0
eor     r3,r1
ldr     r0,.RETURN_OFFSET
bx      r0

SOMETHING4:
                          
push    {r0-r2}
ldr     r0,.PLAYER_DATA
ldr     r0, [r0]
add     r0,r0, #0x98
ldrh    r1,[r0]
sub     r1,#0x1
ldr     r2,=.SUM_VAL2
cmp     r1,r2
blt     SOMETHING1
ldr     r1,.SUM_VAL3

SOMETHING1:                           

strh    r1,[r0]
pop     {r0-r2}
mov     r15,r14

.align 2

.PLAYER_DATA:
.word 0x03005D90
.SUM_BUFF:
.word 0x0200F024
.SUM_GAME_OFF:
.word 0x04000130
.RETURN_OFFSET:   
.word 0x080005F1
.SUM_VAL2:
.hword 0x8000
.hword 0x0000              
.SUM_VAL3:
.hword 0xFFFF
.hword 0x0000  
.SUM_VAL:
.hword 0x3FF

另特别感谢zjzj1118关注此问题,为研究内置时钟作出的贡献。
感谢海のLUGIA给予此问题的探讨的帮助。

测试
1.如勾选“真实时钟”,真实时钟依然有效,且优先于“内置时钟”。
2.内置时钟走动速度是参照,游戏本身的“游戏时间”的,1分钟比1分钟速度走动。
3.进入战斗后BUG,屏幕右下会出现一个8*8的坏点,已修复

[ 本帖最后由 Nightind 于 2013-6-7 12:49 编辑 ]
回复

使用道具 举报

2万

回帖

13万

现金

347

勋章券

管理员

起源の钻角犀兽

Rank: 27Rank: 27Rank: 27

积分
51493

Missingno论坛十周年纪念物挥金如土勋章Lv3水中王者勋章Lv3时光印记Lv.3Omega红宝石发售确认纪念章Alpha蓝宝石发售确认纪念章

发表于 2013-6-6 20:54:50 | 显示全部楼层
怎么说呢,大好事啊,不过说实话游戏时间1分钟兑换1分钟过一天那是有点漫长滴~

PS:如果勾上真实时钟,游戏里的实际时间为真实时钟+内置时钟
啊咧咧,又挖坑不填哎╮(╯▽╰)╭

告别真新镇后不知经过多久,擦伤,砍伤,朋友的数目,让我有点自豪,那时候因为流行而跑去买的,这双轻便的运动鞋,现在成了,找遍全世界也找不到的,最棒的破鞋子……
口袋中心·绿宝石·改(更新1.6.4版)
【口袋中心出品】魂银·壹式改点壹(全493)    【科普向】魂银中少有人注意到的洛奇亚传说故事
宝可梦卡牌 / 限定精灵图示    好吧,这是官方微博-_-    好吧,这是我的微博-_-
我的B站号    美术作品之我的宝可梦人设画    个人制作的FC魂斗罗2代hack版
回复 支持 反对

使用道具 举报

57

回帖

157

现金

0

勋章券

繁华都市的喧闹

Rank: 5Rank: 5Rank: 5

积分
241
发表于 2013-6-6 21:20:30 | 显示全部楼层
不错,这是好物
回复 支持 反对

使用道具 举报

5326

回帖

90

现金

282

勋章券

口袋新世纪的元老

蝮蛇

Rank: 20Rank: 20Rank: 20Rank: 20

积分
20977
QQ

ORAS活动限定勋章Ver.3黑白女主角特制版水中王者勋章Lv3御姐型LUGIA时光印记Lv.3ORAS活动限定勋章Ver.1No.280 拉鲁拉斯Omega红宝石发售确认纪念章

发表于 2013-6-7 00:57:49 | 显示全部楼层
…的确是漫长,模拟器的加速效果会影响游戏时间么?
回复 支持 反对

使用道具 举报

1345

回帖

190

现金

37

勋章券

踏入阳光的成就

Rank: 14Rank: 14Rank: 14Rank: 14

积分
3816

论坛十周年纪念物挥金如土勋章御姐型LUGIA黑白女主角特制版黑白系列女主角【夜间版】金银好CP第一弹-凤王金银好CP第一弹-LUGIA

发表于 2013-6-7 15:46:14 | 显示全部楼层
1分钟比1分钟,那加速会怎么样?
回复 支持 反对

使用道具 举报

1287

回帖

2万

现金

2

勋章券

黑暗山洞中的修炼

Rank: 13Rank: 13Rank: 13

积分
2731

时光印记Lv.1水中王者勋章Lv2挥金如土勋章Lv2

发表于 2013-6-7 19:29:13 | 显示全部楼层
感谢楼主给我们的分享,谢谢,辛苦了,我慢慢研究去。
回复 支持 反对

使用道具 举报

36

回帖

1725

现金

1

勋章券

新伙伴的欢笑

Rank: 3

积分
81

时光印记Lv.1

发表于 2013-8-25 02:26:00 | 显示全部楼层
有点清楚!相信好处是很多的吧!
回复 支持 反对

使用道具 举报

422

回帖

74

现金

3

勋章券

碧蓝大海飞溅的水滴

Rank: 9

积分
1013
QQ

异化型LUGIA【M超梦版】御姐型LUGIA金银好CP-Ho-oh/LUGIA【正常向】萌化型LUGIA萌化型LUGIA黑白系列男主角【白日版】水中王者勋章Lv1XY系列-爆炸才是男人的浪漫

发表于 2014-2-13 11:09:16 | 显示全部楼层
好复杂完全看不懂
回复 支持 反对

使用道具 举报

98

回帖

901

现金

3

勋章券

手举徽章的兴奋

Rank: 6Rank: 6

积分
341

时光印记Lv.1

发表于 2014-9-8 16:50:29 | 显示全部楼层
请问楼主,我用改版美版绿宝石ROM的话,会白屏。不知何原因导致。
也没和改版的内容地址冲突,只用了00的空位放置代码,求解
回复 支持 反对

使用道具 举报

12

回帖

66

现金

0

勋章券

口袋学堂外的努力

Rank: 2Rank: 2

积分
38
发表于 2016-4-16 18:17:44 | 显示全部楼层
有没有火红啊?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入口袋中心

本版积分规则

手机版|Archiver|Pokemon Center

GMT+8, 2024-3-28 17:03 , Processed in 0.132514 second(s), 82 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表