引用
引用第41楼zc198727于2025-05-13 10:18发表的 :
求助大佬,我用您这个方法试着修改了心灵咒杀师这个游戏,用的redump多bin镜像,重构成iso后可以正常修改,放回到原来redump的文件夹修改cue后也能正常运行,但是却没有背景音乐,也试着把iso转回bin,以及转换成单bin+cue和单iso也都试了,都是同样的问题没有背景音乐,原redump镜像背景音乐是可以正常播放的,不知道大佬了解如何解决么

好奇这种播放音轨的方式,追了一下代码,发现是利用通过读取扇区数据的方式来播放音轨的,原理就是通过获取在数据区中的音轨索引扇区位置,然后直接按读取数据的方式去读取该扇区的数据,但是读取的扇区位置已经超过了整个镜像数据的范围了,到达了音轨的范围了,然后根据光驱cpu的特性,会自动转化为播放该部分的音轨。
要想解决音轨播放的方法有2种
第1种方法: 按主楼的方式重构镜像,并且将cdda1 cdda2 cdda3.....,将这类带音轨命名的无后缀文件一起复制进去重构镜像(复制此类文件的时候会报错,但是不要理会,保留这些出错的文件,复制完以后,此类的文件都会是0kb的空文件),生成的iso之后,到iso中的头部文件名toc索引中找到这些文件,将里面的LBA扇区位置重新计算改成重新生成的iso的位置即可(这个方法比较简单,只需要计算生成的iso大小,然后再相应的填写那些音轨索引的实际LBA扇区位置就可以了)
第2种方法:修改原游戏的代码,将按扇区位置播放音轨改成直接按正常音轨播放(这个方法需要会ss的汇编,将原来的读取方式完全改成播放音轨的方式,比较麻烦)
顺便说一句,目前仅发现心灵咒杀师以及Hissatsu! (Japan) 这2个游戏是使用这种方法播放音轨的,其他游戏暂时未发现。