- 积分
- 565
- 阅读权限
- 40
- 主题
- 9
- 帖子
- 510
- 注册时间
- 17-11-8
- 在线时间
- 474 小时
- UID
- 6179
- 精华
- 4
连长
- 大洋
- 1394
- 阅读权限
- 40
|
本帖最后由 jack_son 于 20-2-17 23:37 编辑
首先声明一点,我只是一个小白,以下修复工程及文档为nnezyj所著,我只是代其发表。
前言
BFI的蓝光盘已经发布了很多,但均反映问题多。目前我已知的问题有区码锁定无法破解、黑屏、乱序三个问题。前几天偶遇《纽伦堡大审判》BFI版,播放就黑屏了,为此,特请教本站nnezyj大佬,在他亲自操刀下,终于修复了此盘播放黑屏问题。但播放时发现了乱序问题,由于此盘乱序不同与狮门肉酱盘的乱序,BFI可谓把蓝光原盘结构用到了极致,经nn大佬指导,终于完美修复此盘的乱序问题。偶不敢独享,所谓“独乐乐不如众乐乐”,故将此盘整个修复工程发表出来。如果不妥的地方,还请各位指正。
本篇实例操作原盘:Judgment at Nuremberg 1961 1080p GBR Blu-ray AVC DTS-HD MA 5.1-COASTER。
主要修复
一、黑屏问题
二、乱序问题(经典)
注:修复的过程是枯燥的,需要不停的尝试修改、播放检测。如果无耐心,你可以不必往下看了。
一、黑屏问题
此盘使用PowerDVD17、18,DVDFAB Player、TMT5播放均黑屏,使用Scenarist QC播放仍然无法进入,任何画面都没有,Ctrl+T结果一样。
从文件来看,这张盘应该是一张BD-J菜单类的盘。
使用黄鸭子打开此张光盘,如下图
【这里面有关GPR、PSR的含义我就不多说了,不懂的参见WJ版主和nnezyj大佬相关的IG菜单帖子。】
一般说,寄存器GPR的默认值是0,道理很简单,你没有给寄存器赋值,里面是不会有数字的,初始值都是0。从指令上来看,出现了两次“Jump Title 7”。这个Title 7在哪?左边Index.bdmv里面有,是一个BD-J程序,文件是09955。
继续检查
正常情况,跳到BD-J一般会出来菜单,但首先得对一些播放使用到的区码、播放公司Logo画面等,但从指令上来看,Jump title 7之前并没有出现诸如PSR20、Play PL之类的指令。我曾经使用Backup里面的文件进行还原,然后制作成光盘,使用DVDFAB 进行修复,但依然结果一样,无法播放。
一番折腾之后,只有怀疑BD-J会不会就是对原盘进行正版检测一类的程序。
这张盘的SBD工程
先分析一下黄鸭子里面的指令跳转情况
0000 [48400300,0000055D ,00000000 ] NE GPR1373, 0 if GPR1373!=0
0001 [20810000,00000005 ,00000000] GoTo 5 跳转到第5行
0002 [50400008,000008CD ,0000003D ] Rnd GPR2253, 61
0003 [50400007,000008CD ,0000003D ] Mod GPR2253, 61
0004 [20810000,0000000A ,00000000] GoTo 10
0005 [48400200,0000055D ,00000001 ] EQ GPR1373, 1 if GPR1373=1
0006 [20810000,0000000A ,00000000] GoTo 10 跳转到第10行
0007 [50000001,00000430 ,80000004 ] Move GPR1072, PSR4
0008 [50400001,000002BD ,00000001 ] Move GPR701, 1
0009 [21810000,00000007 ,00000000] Jump Title 7
0010 [48400300,0000055D ,00000000 ] NE GPR1373, 0 if GPR1373!=0
0011 [20810000,0000000F ,00000000] GoTo 15
0012 [50000001,00000430 ,80000004 ] Move GPR1072, PSR4
0013 [50400001,000002BD ,00000001 ] Move GPR701, 1
0014 [21810000,00000007 ,00000000] Jump Title 7
0015 [50400001,00000000 ,00000002 ] Move GPR0, 2
0016 [48400100,00000000 ,00000002 ] BC GPR0, 2
0017 [20810000,00000015 ,00000000] GoTo 21
0018 [50400001,00000A73 ,000000C9 ] Move GPR2675, 201
0019 [50400001,00000A76 ,00000015 ] Move GPR2678, 21
0020 [20810000,00000033 ,00000000] GoTo 51
前面已经讲到,GPR寄存器初始值是0。我们按照程序执行过程一条一条往下走,发现执行到14行,就跳回到BD-J程序了。细心一点就会发现,这段代码在前15行,中始终拿GPR1373在0和1之间进行比较判断。那改变GPR1373的值,让GPR1373=1,再从头执行一遍代码,就会发现最后就跳过了“Jump Title 7”。这样,就可以断定BD-J只是一个检测代码,此原盘仍然是IG菜单,并不是最初我们看到的BD-J菜单。
到这,我们就怀疑这个GPR1373的值和“Jump Title 7”是我们解决问题的尝试点了。使用大金,在第一行前面增加一行导航指令。
然后MUX一下。注意下图箭头的地方
完成后,将index.bdmv和MovieObject.bdmv替换回原盘(注意备份原盘的这两个文件,不要问我为什么,习惯问题)。
使用黄鸭子打开
播放,一切OK了。
二、乱序问题
BFI的乱序问题比较突出,由于以前没接触过,不知道BFI的乱序模式是啥样。今天打开一开,真是把蓝光原盘结构运用到了极致,与狮门的完全不同。狮门的乱序是把一整段视频从物理上切割成若干个视频文件,然后通过播放列表进行组合成若干个不同的mpls文件,破解原盘时由于狮门的防盗版技术造成未能菜单未能指向正确的mpls。而BFI则不同,视频主文件仍然是一个,但同样播放时间的mpls若干,跟狮门一样,但里面只有一个是正确的。视频段采取从主视频中截取,然后在每个mpls中进行不同组合。
播放此张原盘,发现主菜单“PLAY FILM”后,播放的是0000.mpls。
众所周知,修复乱序问题,就是要从众多的mpls中找出一个正确的mpls。
经过繁琐的查找,终于找到了正确的mpls,00275.mpls。
为了验证,我使用外挂字幕方式,然后通过拖动检查视频是否与字幕一致来判断,也许方式有点老套,但本人只会这种。
修复这种IG菜单类乱序问题,目前有两种方式,第一种修改代码方式,第二种替换mpls方式。因为没有狮门类的mpls编号通过BD-J换算,所以采用第二种方式就是最简单的了。
第一种方式代码修改
我是采用SQC跟踪方式,点击“PLAY FILM”后,查看最后的指令,发现寄存器GPR2253=000,跟我们播放时调用到的mpls列表一致。
修改代码通过黄鸭子来进行
注意点击左下角的“Save”按钮。
第二种方式就很easy咯,直接把00000.mpls删除,然后将00275.mpls复制一份,更名为00000.mpls即可。
经验证,以上两种修改方式均能彻底修改这张原盘的乱序问题。
|
评分
-
查看全部评分
|