国语视界

 找回密码
 立即注册
搜索
查看: 153|回复: 8

[蓝光技术] 如何跳过 狩猎.Jagten.2012 美版的进入菜单前的logo、trailer

[复制链接]
  • TA的每日心情
    开心
    20-3-22 00:07
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    2

    主题

    78

    帖子

    13

    积分

    列兵

    Rank: 1

    大洋
    26
    矿工
    0
    发表于 20-2-24 18:12 | 显示全部楼层 |阅读模式
    本帖最后由 filmfans 于 20-2-24 23:00 编辑

    发行公司是Magnolia,这个厂牌太恐怖,长达10多分钟的前奏才能进入主菜单,用工具看了,貌似不是HDMV模式的,BD-J反编译也找不到切入点,有前辈能指点如何跳过logo、trailer播放吗?

    该用户从未签到

    5

    主题

    352

    帖子

    158

    积分

    论坛大神

    大洋
    2344
    矿工
    0
    QQ
    发表于 20-2-24 23:02 | 显示全部楼层
    00002.mpls 里的片头四个片子预告删了替换成一张1秒黑屏视频完事



    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    20-3-22 00:07
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    2

    主题

    78

    帖子

    13

    积分

    列兵

    Rank: 1

    大洋
    26
    矿工
    0
     楼主| 发表于 20-2-24 23:24 | 显示全部楼层
    我当时实在解不出来了,就想过用的你方法,但这是下策,在我手里95%的原盘我都能顺利跳过,这个没脾气了,一多半BD-J的都是写在配置文件里,硬编码到jar里貌似不多,因为这样很笨,无法通用,所以我想jar包里是不是还有配置文件
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    20-3-4 09:53
  • 签到天数: 151 天

    [LV.7]常住居民III

    2

    主题

    205

    帖子

    26

    积分

    禁止发言

    大洋
    7
    矿工
    0
    发表于 20-3-4 23:50 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    20-3-19 12:09
  • 签到天数: 857 天

    [LV.10]以坛为家III

    32

    主题

    1120

    帖子

    2255

    积分

    版主

    Rank: 16Rank: 16Rank: 16Rank: 16

    大洋
    9666
    矿工
    9
    发表于 20-3-12 14:48 | 显示全部楼层
    本帖最后由 nnezyj 于 20-3-14 12:41 编辑

    跳转写在了代码内!

    打开 pw.class 文件,找到 public final void controllerUpdate(ControllerEvent controllerEvent) 函数
    在 if (controllerEvent instanceof EndOfMediaEvent) {} 的代码段里
    找到 np.s == 505 的判定段,修改 np.d(3) 为 np.d(0)

                        } else if (np.s == 505) {
                            np.d(3);
                        }

    np.d(int TitleNumber) 的调用语句,用于跳转到指定 Title
    TopMenu Title = 0

    上面的修改方法,是让播放机在播放完毕 PlayList#505 的 Logo 视频后,跳转到 TopMenu 主菜单 Title



    跳过logo、trailer播放


    如果,需要一开始就直接进入 TopMenu 主菜单 Title。

    理论上应该由 FirstPlayback Title 内的 HDMV 指令直接跳转至 TopMenu。
    MO#0 第 2179 行指令:
      Move GPR4075 1;
      Jump Title GPR4075;
    FirstPlayback 为 HDMV Title,这个可以使用 BDedit 查看原盘结构。

    查看过代码,这种直接跳转不可行,因为代码内,首次运行 BD-J 程序,默认是依旧是会播放 PlayList#505 的,然后再执行相应 Title 跳转。
    【这里排除掉区码不对、已播放过的原盘再次播放等干扰因素】

    代码修改方法:

    打开 MagnoliaTheHunt.class 文件,找到 private static void b(boolean z) 函数
    找到 np.c(505); 的调用语句,修改 np.c(505); 为 np.d(0);

            } else if (z) {
                np.c(505); /* np.c(int playlistId) | "bd://PLAYLIST:00505" */
            }

    np.c(int playlistId) 的调用语句,用于播放指定编号的 PlayList 视频



    =============================分隔符==================================
    以上代码修改方法,虽然可以跳转到 TopMenu Title,但相关的菜单显示及控制类没有运行
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    20-3-22 00:07
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    2

    主题

    78

    帖子

    13

    积分

    列兵

    Rank: 1

    大洋
    26
    矿工
    0
     楼主| 发表于 20-3-12 19:06 | 显示全部楼层
    牛逼 我会找时间试试,感谢,有时间试试
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    20-3-19 12:09
  • 签到天数: 857 天

    [LV.10]以坛为家III

    32

    主题

    1120

    帖子

    2255

    积分

    版主

    Rank: 16Rank: 16Rank: 16Rank: 16

    大洋
    9666
    矿工
    9
    发表于 20-3-14 00:48 | 显示全部楼层
    本帖最后由 nnezyj 于 20-3-14 13:18 编辑
    nnezyj 发表于 20-3-12 14:48
    跳转写在了代码内!

    打开 pw.class 文件,找到 public final void controllerUpdate(ControllerEvent cont ...


    我做了实际测试,虽然可以跳转,但是菜单不可操作!
    因为 Title#3 会执行菜单加载进程。

    直接修改跳到 TopMenu Title,没有相应的菜单加载代码运行,菜单便不可操作。


    --------------------------------------------------------
    以下是代码说明:

    pw.class 的 public final void controllerUpdate(ControllerEvent controllerEvent) 函数
    在 controllerEvent instanceof MediaPresentedEvent 代码段下
    调用的 gy.class 内执行与菜单相关的加载代码

                                    if (is.a(4) == 3) {
                                        if (lu.a() == 514) {
                                            new gy().a(9000L);
                                        }
                                    }


    gy extends TimerTask ,gy是一个计时器任务,在循环计时,直到菜单相关的函数都加载完毕,之后跳转 Title#4
    在 gy.class 类的 public final void run() {} 代码段里,最后的语句 np.d(4); 就是执行完毕后跳转到 Title#4

    Title#4 播放 PlayList#513,即预告片
    --------------------------------------------------------

    原盘的播放顺序:
    FirstPlayback --> Title#1 PlayList#505 Logo视频 --> Title#3 PlayList#514 --> Title#4 PlayList#513 预告片 --> Title#5 PlayList#508 --> TopMenu PlayList#500 主菜单

    -----------------------------------------------------

    如果保留播放 Logo,然后播放 MPLS#514 警告视频,然后就进入主菜单

    那么,只用修改 gy.class 文件 public final void run() {} 代码的 np.d(4); 为 np.d(0);

    ------------------------------------------------------
    修改 gy.class 测试成功!

    ===========================分隔符==============================
    若是不播放 Logo,直接进入主菜单
    除了修改 gy.class 文件 public final void run() {} 代码的 np.d(4); 为 np.d(0);
    还要修改 MagnoliaTheHunt.class 文件,
    找到 MagnoliaTheHunt.class 文件的 private static void b(boolean z) 函数
    找到 np.c(505); 的调用语句,修改 np.c(505); 为 new gy().a(9000L);


    此测试不成功!

    播放直接进入主菜单,还需要修改其他地方,没心思折腾了……
    =========================================================
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    20-3-19 12:09
  • 签到天数: 857 天

    [LV.10]以坛为家III

    32

    主题

    1120

    帖子

    2255

    积分

    版主

    Rank: 16Rank: 16Rank: 16Rank: 16

    大洋
    9666
    矿工
    9
    发表于 20-3-14 01:31 | 显示全部楼层
    链接: https://pan.baidu.com/s/1fls4jlgI7pGCMxI4fs-ZiQ 提取码: y9rh

    jar文件及证书等
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    20-3-22 00:07
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    2

    主题

    78

    帖子

    13

    积分

    列兵

    Rank: 1

    大洋
    26
    矿工
    0
     楼主| 发表于 20-3-15 23:04 | 显示全部楼层
    看来还需进一步研究 谢谢@nnezyj指导,还有哪位高手可以再试试,不胜感激
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|cnlang.org

    GMT+8, 20-3-31 09:37 , Processed in 0.018578 second(s), 13 queries , Gzip On, MemCache On.

    Powered by Discuz! X3.4

    © 2001-2018 Comsenz Inc.

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