A9VG电玩部落论坛

 找回密码
 注册
搜索
楼主: tring

[集中讨论]MADE IN 俺 (22L补上关于ROM黑屏原因的最新发现)

[复制链接]

审判者

究竟怎样的人生才能让人喜欢上命运这个词

精华
5
帖子
11208
威望
10 点
积分
12714 点
种子
8 点
注册时间
2005-2-14
最后登录
2024-11-22
 楼主| 发表于 2009-4-30 12:11  ·  湖北 | 显示全部楼层
只是想要运行倒不难~
随便拿个16位编辑器打开ROM
把072B8处的62 FF FF EB改成80 00 A0 E3就可以了~

但是存档方面似乎没办法~网上有说的是因为用了新的存储芯片~

自己看ROM的结果是~这次9成是用了新的硬件结构~
前面我说的那个更改的效验代码~读取了一个很奇怪的ROM OFFSET:0x0D6000000这个地址~而且使用的ROMCTL(1A4)码也和后面读取ROM的不一样~初步感觉应该是个卡代中加入的新的硬件设备~……

另外有个很有趣的现象~
以往的ROM只要替换ARM7~再用模拟器运行的话铁定会出问题~而这次的替换后根本没任何反应~
所以可以判断存档部分的代码铁定还是被效验代码给关闭着在~
不管实际上存档代码能否运行成功(因为新硬件的问题)~但是目前的状况是那东西肯定没运行~

还有值得一提的是~关于前面提到的那个奇怪的OFFSET的读取检验~
在ROM一开头的时候会有一个很奇怪的查询代码~如果不做任何更改的话~在ROM开头效验跳过后运行就再也不会执行~
但是如果将D6000000的读取函数直接更改~这段代码就会反复执行卡住~
而若直接在开头就将这段代码给跳过的话~结果就更有趣了~
在我认为游戏应该存档的时候~发现程序开始调用那个D6000000的检查程序了(若不处理是不会调用的)~……

总之目前不知道这个检测程序的工作原理(就算不是新硬件)~想要接着弄的话就会很麻烦~

因为看起来很麻烦的样子~所以懒得管了~

精华
0
帖子
437
威望
0 点
积分
632 点
种子
5 点
注册时间
2004-7-3
最后登录
2023-5-29
发表于 2009-4-30 13:33  ·  浙江 | 显示全部楼层
LS的好专业、、、、期待早日破解

审判者

究竟怎样的人生才能让人喜欢上命运这个词

精华
5
帖子
11208
威望
10 点
积分
12714 点
种子
8 点
注册时间
2005-2-14
最后登录
2024-11-22
 楼主| 发表于 2009-5-2 05:48  ·  湖北 | 显示全部楼层
卧槽……我被囧到了!!~

今天在BUS上看到个本ROM的破解补丁~说是可以玩~但依旧不能存档~于是下下来看了下是啥原理~结果就被囧到了!~……

补丁是个很标准的替换ARM7形式的批处理~但是事实上一般ROM运行不了跟ARM7的关系不大(ARM7问题主要是存档问题)~所以对于该补丁原理感到诧异~就顺手将补丁里给的ARM7与原本ROM的ARM7比较了下~……结果令我感到超不可思议:这2个文件完全是一模一样的~一个字节都不差~……

替换的ARM7和原ARM7是一模一样的~而补丁打过后却是真的能起作用~……感到被耍了的我又重新着手看了下ROM~结果终于发现了问题的最根本所在~……
那个补丁真正起作用的原因在于那个BAT的写法~……BAT中用NDSTOOL解压ROM并没有带参数要求解压HEADER文件~因此在之后用NDSTOOL重新组合的时候~采用的是换算出的HEADER文件~
而这2个HEADER最大的区别在于~ROM大小~……

原本ROM在HEADER中的大小为128MB(1Gb)~而实际DUMP出的大小却为32MB(256Mb)~因此自动生成的HEADER中的大小这一项被填入了实际DUMP大小~……
关于这个~之前在网上也见有人提起过~更有人说这是因为BAD DUMP所导致的~……

我比较在意的是~通常如果只是这样~要么导致游戏彻底运行不正常~要么就根本没有影响~
而看过本次ROM~明显是特意在运行代码中检测了HEADER中的这项~而且若检测不通过(实际上原本ROM中的1G才是游戏默认的正确值~而运算出的256M这个值在这里被检测判定为不通过)~便停止ROM中的一部分代码~(即是我前面说的那些我不认得是干嘛用的代码)~而导致的结果则正好相反~由于运行了这些代码访问一些未知硬件会使得游戏无法运行~而检测错误后因为屏蔽掉了这部分代码~反而使得游戏能运行~……

这样也可以推测出那半数能运行该ROM的烧录卡~其实就是因为在载入ROM的时候拆解了HEADER~重新运算出实际大小~而与游戏中检测正确大小矛盾而屏蔽了未知代码~使得游戏才能运行出来~……

可是最终的问题还是在于该未知代码究竟是起何作用~因为这部分代码被屏蔽掉的话~明显游戏的正常功能便无法运作~存档不能等是必然结果~……

审判者

究竟怎样的人生才能让人喜欢上命运这个词

精华
5
帖子
11208
威望
10 点
积分
12714 点
种子
8 点
注册时间
2005-2-14
最后登录
2024-11-22
 楼主| 发表于 2009-5-2 05:55  ·  湖北 | 显示全部楼层
顺便再说一句~
游戏开头的HEADER检测代码中检测了HEADER中的3个值~
1个就是上面说的ROM大小~这个比较正常~
另外2个值非常诡秘~OFFSET为094H,098H
而了解HEADER结构的人多少会知道点~这2个偏移地址在的区段是这么被形容的~
088h   38h  Reserved (zero filled)
即为老N的保留区段~作为一般ROM来说是要被严格填0的~……而本ROM中这2个偏移被填入了 50 03 50 03 明显是有意义而非乱填入的值~……

精华
0
帖子
210
威望
0 点
积分
245 点
种子
0 点
注册时间
2007-2-3
最后登录
2020-2-2
发表于 2009-5-2 10:13  ·  重庆 | 显示全部楼层
BUS那个补丁就是重新拆分的,貌似是日站从烧录卡测试中得到的启示。
-_,-这下看来很欢乐.50 03……对header结构略微了解的人路过
tring感兴趣了?

求败者

核潜水艇

精华
10
帖子
21823
威望
35 点
积分
27131 点
种子
15 点
注册时间
2004-9-2
最后登录
2024-1-28
发表于 2009-5-2 10:13  ·  上海 | 显示全部楼层
我...我是来拜技术的T酱的................
该用户已被禁言

流放者(禁止发言)

通关党,一周目才是初恋~不强求,拿白金是缘分,拿不到是命..

精华
0
帖子
8929
威望
0 点
积分
9310 点
种子
5 点
注册时间
2004-7-16
最后登录
2020-10-9
发表于 2009-5-2 12:17  ·  广东 | 显示全部楼层
太技术,看不懂…………………………………………

VIP

The Legend Of Doraemon

精华
0
帖子
3508
威望
3 点
积分
4829 点
种子
157 点
注册时间
2006-1-13
最后登录
2024-11-22
发表于 2009-5-2 13:02  ·  广东 | 显示全部楼层
膜拜一下T酱……吾等的幸福掌握在乃手中鸟……

审判者

究竟怎样的人生才能让人喜欢上命运这个词

精华
5
帖子
11208
威望
10 点
积分
12714 点
种子
8 点
注册时间
2005-2-14
最后登录
2024-11-22
 楼主| 发表于 2009-5-2 15:15  ·  湖北 | 显示全部楼层
事实上这次有点无能为力~……
众多新SPI指令的作用~没有原卡而无从得知~
就算知道了~由于新硬件的加入~修改也必须是基于烧录卡LOADER的~
而烧录卡的LOADER代码我们这种外行人当然也是无从得知的~

所以真要想完美~还是指望烧录卡官方解决吧~……据说现在已经有卡能玩上了~……

精华
0
帖子
9
威望
0 点
积分
-31 点
种子
0 点
注册时间
2009-5-1
最后登录
2009-5-9
发表于 2009-5-2 16:07  ·  上海 | 显示全部楼层
tt的进去就黑连厂商表示都没看到!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|A9VG电玩部落 川公网安备 51019002005286号

GMT+8, 2024-11-23 09:09 , Processed in 0.193436 second(s), 16 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

返回顶部