Stage1st

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: 陶大知
打印 上一主题 下一主题

[汉化] 【汉化楼】PS1《猫犬协奏曲》完美汉化发布 25周年

[复制链接]
     
41#
发表于 2021-2-4 19:42 | 显示全部楼层
本帖最后由 Tring 于 2021-2-4 19:54 编辑
陶大知 发表于 2021-2-4 19:20
靠一個字一個字手打了字幕,但是遇到了意料外狀況:字母變得很糊而且還在一閃一閃的。附件為視頻。 ...

毕竟是经过编码的,可能是会糊掉,建议用黑体系(sans-serif系)的字体,如果必要可以加个粗,甚至可以勾个边。
闪的问题有可能是实际帧数和逻辑帧数不合,把frame前的#号去掉试试。
另外记得,源ISO文件每次改完后,要再次修改前,都要删掉再换回原版,否则修改就会在前一次的基础上叠加。(先试这一条,如果还是闪再动frame。)

评分

参与人数 1战斗力 +1 收起 理由
芷雅居 + 1 好评加鹅

查看全部评分

回复

使用道具 举报

     
42#
发表于 2021-3-21 04:34 | 显示全部楼层
陶大知 发表于 2021-3-19 21:15
您好,copy /b 命令合并的话每个STR文件的Sectors都会紧密连接在一起,而原STR.BIN中,每个文件的Sectors ...

你确定第2段能放出来么?
我觉得第1段能放出来是肯定的,关键是第2段。如果第2段能放出来说明这么搞是有效的,微调下就能解决。如果放不出来说明要改动的东西还比较多。
回复

使用道具 举报

     
43#
发表于 2021-3-21 18:07 | 显示全部楼层
陶大知 发表于 2021-3-21 09:06
我所有的都试了一下,能放出来的有这些:

STR0

别用什么copy来拼文件了,保存下面这个脚本为py文件运行试试吧。

  1. #! python3
  2. # coding: utf-8

  3. import os, os.path

  4. SECT_SIZE = 2352
  5. def concat_files(output, input_list):
  6.     base_snum = input_list[0][0]
  7.     with open(output, 'wb') as fo:
  8.         datalen = 0
  9.         last_iname = ''
  10.         for snum, iptname in input_list:
  11.             dstlen = (snum - base_snum) * SECT_SIZE
  12.             if dstlen > datalen:
  13.                 fo.write(bytes(dstlen - datalen))
  14.                 datalen = dstlen
  15.             elif dstlen < datalen:
  16.                 print('warning: src file is bigger than expected:',
  17.                       last_iname, datalen - dstlen)
  18.             last_iname = iptname
  19.             with open(iptname, 'rb') as fi:
  20.                 iptdata = fi.read()
  21.                 fo.write(iptdata)
  22.                 datalen += len(iptdata)

  23. if __name__ == '__main__':
  24.     concat_files(
  25.         'to.out', [
  26.             (321, 't1.txt'),
  27.             (322, 't2.txt'),
  28.             (323, 't3.txt'),
  29.             (324, 't1.txt'),
  30.         ])
  31.             
复制代码

自己改下底下的文件名和sect号。to.out那是输出文件名,t1.txt那一串是输入文件名,前面的321那一串数字是起始sect号。
注意,列表中的sect号一定要是从小到大顺着排的,不能错序。
如果有输入文件超了目标大小会报个警告,但是会继续把文件拼完。
回复

使用道具 举报

     
44#
发表于 2021-3-21 19:20 | 显示全部楼层
陶大知 发表于 2021-3-21 19:16
抱歉出大问题了,导出来的文件在jpsxdec里面只能读出第一个视频,其他全都是垃圾文件,而且导出的文件也 ...

sect号和以前比是对准的么?如果是对准的还这样,那就说明仅仅插空白数据是不行的。
回复

使用道具 举报

     
45#
发表于 2021-3-21 19:27 | 显示全部楼层
陶大知 发表于 2021-3-21 19:22
是对准的,尝试过2次都是如此。

你可以看下jpsxdec提示的那个index.log里的warning报的啥。

这东西说实话我挺不想折腾的。因为这些视频结构是基于cd track的,并不是基于普通文件系统的。是怎么组织到一起的不仔细研究挺难猜测的。
其实说实话,之前没对准sect号的时候,反而后面能读出几个视频,而且视频开头都无偏差,应该就能说明这格式并不是按偏移地址来索引的了。

我猜测的是,这个大概是一整段连续视频,然后通过某个帧索引表来索引不同段落。也就是真正索引的是帧号,而不是偏移地址。所以插空反而会导致文件失效。
回复

使用道具 举报

     
46#
发表于 2021-3-21 19:43 | 显示全部楼层
陶大知 发表于 2021-3-21 19:30
每隔16sector就报错,洋洋洒洒报错报了几千行。
不过用copy/b却能读出来,挺奇妙的。
...

你看下你转出来的每一个零散的视频文件的准确长度能否整除2352。
或者干脆把前10段的准确长度都贴出来看下。
回复

使用道具 举报

     
47#
发表于 2021-3-21 19:52 | 显示全部楼层
陶大知 发表于 2021-3-21 19:48
请问是看哪一个?其字节吗?

大小:  XXX (YYY 字节)

那个YYY的字节数。
不是占用空间的那个,是大小的那个。
回复

使用道具 举报

     
48#
发表于 2021-3-21 20:13 | 显示全部楼层
本帖最后由 Tring 于 2021-3-21 20:15 编辑
陶大知 发表于 2021-3-21 20:00
粗略算了一下,全部都没有被整除2352,要被2352整除有点小概率事件了。
  1. #! python3
  2. # coding: utf-8

  3. import math

  4. SECT_SIZE = 2352
  5. def concat_files(output, input_list):
  6.     with open(output, 'wb') as fo:
  7.         datalen = 0
  8.         for iptname in input_list:
  9.             dstlen = math.ceil(datalen / SECT_SIZE) * SECT_SIZE
  10.             if dstlen > datalen:
  11.                 fo.write(bytes(dstlen - datalen))
  12.                 datalen = dstlen
  13.             with open(iptname, 'rb') as fi:
  14.                 iptdata = fi.read()
  15.                 fo.write(iptdata)
  16.                 datalen += len(iptdata)

  17. if __name__ == '__main__':
  18.     concat_files(
  19.         'to.out', [
  20.             't1.txt',
  21.             't2.txt',
  22.             't3.txt',
  23.             't1.txt',
  24.         ])
  25.             
复制代码


试试这个吧,还是一样用,不需要sect号了。
现在只对齐sect边缘,不对齐sect号本身。

如果还是JPSXDEC都拆不出来,就把SECT_SIZE = 2352的数字改成2048。
回复

使用道具 举报

     
49#
发表于 2021-3-21 22:11 | 显示全部楼层
本帖最后由 Tring 于 2021-3-21 22:13 编辑
陶大知 发表于 2021-3-21 22:07
抱歉还是不正常,我还是把我压的STR给你,请你试试看。
链接: https://pan.baidu.com/s/1HvXa6qBe0vDTHG7 ...

我没用过那个转码工具,这细节就不清楚了。
都不行的话应该说明填空数据的方法是不太够的了。

我觉得真要琢磨不如去琢磨下为什么前5个能播出来,正好第6个就不行了。
回复

使用道具 举报

     
50#
发表于 2021-3-21 22:40 | 显示全部楼层
陶大知 发表于 2021-3-21 22:07
抱歉还是不正常,我还是把我压的STR给你,请你试试看。
链接: https://pan.baidu.com/s/1HvXa6qBe0vDTHG7 ...

我看了下你发的这几个,sect大小是2336,并不是2352。
所以你再试试我最前面的那个带sect号的拼接脚本,把里面的SECT_SIZE改成2336,重新跑一遍试试。
回复

使用道具 举报

     
51#
发表于 2021-3-21 22:50 | 显示全部楼层
本帖最后由 Tring 于 2021-3-21 22:59 编辑

另外可以试试在最前面加个头,直接copy拼到最前面就可以。
加了头的话,也可以试试其他的直接copy拼后面的效果。

头的内容我也不知道是啥意思,反正从原文件里拖出来的。

我觉得你发我的那几个,直接copy拼上就能用的可能性比较大。不行再加个头应该就差不多了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

     
52#
发表于 2021-3-22 18:57 | 显示全部楼层
陶大知 发表于 2021-3-22 18:25
抱歉之前尝试节省空间把惟一的30fps的视频压成了15fps,结果空间不减反增,之后弄糊涂了。
重新传了。 ...

你帧数压对的话,大小应该是不会改变的。自己拼一下应该就行了。

评分

参与人数 2战斗力 +2 收起 理由
对我来说 + 1 感谢
willzyj + 1 思路广

查看全部评分

回复

使用道具 举报

     
53#
发表于 2021-3-27 02:45 | 显示全部楼层
shikeyu 发表于 2021-3-24 15:40
这个不是BUG,这个文件长度是122072个扇区,如果包含扇区头部的16个字节提取,就是122072*2352=287113344 ...

嗯,倒数第二个视频的帧数好像还是压的15帧的样子。
我这里模拟器用NO$也会卡死。
回复

使用道具 举报

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

本版积分规则

小黑屋|Archiver|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|stage1st 沪ICP备13020230号-1 沪公网安备 31010702007642号

GMT+8, 2024-5-4 14:45 , Processed in 0.023861 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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