Board logo

标题: [老游杂谈] PS2的向后兼容性故事:一位工程师的建造经历 [打印本页]

作者: chenke    时间: 2023-5-4 20:48     标题: PS2的向后兼容性故事:一位工程师的建造经历

翻译 by chenke 请勿转载

PS2的向后兼容性故事:一位工程师的建造经历

随着PlayStation 2在日本于3月4日迎来20周年庆,欧美地区也将在今年晚些时候纷纷跟进,各种类型的游戏媒体无疑会推出列表和回顾文章,纪念这款文化上极具意义且成功的主机之一。虽然很多关注点可能会集中在许多独特而多样化的游戏上,这些游戏帮助使PS2成为一个普及程度极高的力量,但不应忘记,系统的另一个关键支柱是与原始PlayStation库的大部分游戏向后兼容功能。此功能此前主要局限于任天堂的掌机和一些早期的世嘉系统,它帮助在硬件世代之间提供了一种连续性感,这在那个时候在主机领域是很少见的,给了PS2的起始阵容一种竞争对手只能羡慕的先发优势。这是一个遗产,将在Sony所有后续系统中以不同程度的方式持续存在,直到PlayStation 4,当Jim Ryan在Time的采访中轻蔑地驳斥消费者对该技术的需求时说,“为什么会有人玩这个?”

噢,时代变了,而且很快就变了。

不用说,自那以后,由于微软将与原始Xbox和Xbox 360的向后兼容性作为Xbox One的主要卖点,两家公司都在某种形式上承诺为其下一款主机提供向后兼容性,因此Sony的态度已经改变。当然,所有这些努力都必须从某个地方开始,对于Sony来说,这是由一个你很可能没有听说过的前工程师飯田哲也(Tetsuya Iida)来完成的。飯田的故事非常引人注目,他在被聘用仅仅几年之后,就被赋予了开发PS2向后兼容性的责任,而且在他职业生涯还很新鲜的时候。2018年,他撰写了一系列文章,详细描述了他所承担的艰苦孤独的旅程,让这个功能得以实现。值得纪念的是,在PS2日本发布20周年纪念日之际,我很荣幸能够分享我的翻译。虽然大部分内容仍保持他的原始呈现方式,包括全文所用的图片,但我在联系他进行提问后,也有少量部分进行了补充澄清。它还轻微地重新格式化成一个连续帖子,而不是原来的五个独立帖子。

无论如何,在向后兼容性和游戏保护在文化和学术方面变得比以往任何时候都更加重要之际,分享这个被遗忘但极为重要的故事,对我来说是一种个人荣誉。虽然这个基本概念可能不是由PS2发明的,但飯田的工作肯定是推动将其普及到玩家主流意识中的一个重要催化剂,使历史能够在当时相对复杂的PC仿真领域之外得以保持活力和可访问性。如果没有他的直接贡献,成千上万的PS1游戏将被剥夺在新千年的第二次机会,而这个行业可能需要更长的时间才能了解它的过去,因为它确实在其现在和未来都有着重要的位置。

汤姆·詹姆斯

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

我在SCE开发了PS1兼容性模拟器
飯田哲也

在1996年,我作为新毕业生的第二批雇员之一加入了索尼电脑娱乐公司。那时SCE开发部门大约有50人左右?久夛良木先生是部长,我们是最年轻的员工。如果我没记错的话,我是在Square进入索尼第三方开发商行列宣布不久后被雇用的。在《最终幻想VII》即将发布的时候,我有机会观看了其中的剧情动画片段,与很多人一样,我清晰地记得看到Aerith壮烈牺牲的震撼场面......

我记得我在加入SCE后的第一份工作就是编写一个视频转换器,可以对影片文件应用滤镜。那也是我职业生涯中的第一个程序。问题是,当我加入团队时,我可能是所有人中最没有用处的一个。我并没有太多关于电气工程技能的实际经验,也不知道如何启动Windows 3.1,更不用说如何编写任何程序了。即使现在,我还是忍不住想知道索尼当时为什么要雇用我。

幸运的是,由于公司开设的培训计划,我有机会学习编程。这些材料对我来说很容易掌握,从那次培训结束后,我感觉自己可以编写任何东西。在之后的工作中,我做了很多零碎的事情,从检查CD模拟器到模型数据转换器,libc等等,直到1998年左右,我们的团队接到了下一代PlayStation硬件的简报。

此后,研究和开发组被分成两个团队。一个团队继续专注于当时的PlayStation硬件,而另一个则将目光投向下一代。作为一个喜欢尝试新事物的人,我想进入后者的团队工作。我认为我参加了面试,因为我记得后来被特别分配到该团队,这真的让我很兴奋。

一旦我加入了PlayStation 2团队,我的任务就是让PS1游戏在新系统上运行。当时,老游戏不能在新的游戏主机上运行是很正常的,但SCE想要颠覆这一趋势,我认为这是他们的前瞻性想法。考虑到那时我只在公司工作了几年,我非常高兴能够参与到这样一项重要的工作中。

当决定让PS2兼容PS1游戏时,计划已经是让PS2重复使用PS1的主处理器作为新硬件的输入/输出处理器。然而,问题在于那时并没有准备包括PS1的其他硬件,这意味着其余部分必须通过软件模拟来实现。在此之前,我一直涉足软件工程领域,所以我需要编写PS1的SPU(音频硬件)模拟器。

PS2的音频芯片由两部分构成:核心和数字信号处理器。一位专门从事声音工程的高级团队成员负责DSP方面的模拟工作,而我则集中精力研究核心。为此,我们在一个承包商设立的房间里开始写所需的程序。房间里没有窗户,我记得我们在工作时经常争论。但这段时间也不是完全糟糕的,我们因此成为了非常亲密的朋友。

我不记得我们工作了多久,但有一天,一切都被毫无形式地推翻了。事实证明,PS1的音频芯片最终会作为PS2内部的一部分包含在内,这意味着我们所有的工作都被抛弃了。

我们一直在编写的SPU模拟器变得无用,而且由于采用PS1的音频芯片并没有损害PS2自己的新声音处理器,我们的角色变得不明确。我们推测接下来会发生什么,比如可能为那个新的声音处理器编写测试向量。然而,我的下一个任务却让我大吃一惊。

具体而言,我被负责模拟PS1的图形处理器,这个请求让我非常困惑。已经有其他人应该在负责这个工作了,但当我问发生了什么时,我被告知他们已经辞职了,我必须接手他们离开的位置,毫不含糊。可以说,在做了音频工作之后,转而去做图形处理方面是相当大的转变。但这最终并不重要,因为我没有太多话语权或选择。不管喜欢还是不喜欢,我必须接受这个命令,即使整个过程非常令人困惑。

这并不意味着我认为这是一个不可能完成的任务。在我看来,模拟器本身就像一种转换器,主要是将旧处理器设计的指令转换成新目标处理器可以理解和执行的指令。从这个意义上说,即使音频和图形硬件有它们自己的差异,但最终它们都基本上发送命令。模拟器所做的就是改变这些命令的形状和流程。只要模拟器经过充分的测试,最后应该都能够正常工作,即使这在实践中显然是非常困难的部分。

当我接手GPU模拟工作时,之前负责的人已经建立了基本框架,因此我不必完全从头开始。我的首要任务是了解PS1和PS2的GPU规格。之后,我开始实现缺失的功能,最初试图重编程PS1的GPU指令。

第一个在PS2模拟器中启动的PS1游戏是《山脊赛车》。作为PS1的发行游戏之一,选择它作为第一个目标启动游戏,感觉非常深刻。再次思考这是PS2的一种先驱意义时,我打开设备。

话虽如此,最初的结果很不完美。例如,每个比赛开始时出现的“赛车女王”被渲染成马赛克,而不是正确的精灵。此外,当你完成一圈时,屏幕变成了粉红色。但我只是高兴能看到游戏运行。即使实际上唯一被模拟的是GPU,那时我就知道通过这种软件模拟水平可以在PS2上实现PS1的向后兼容性。

1999年3月2日清晨,我站在东京国际论坛的舞台幕布后面,在那里,PlayStation Meeting 1999将于当天晚些时候正式向全世界展示PlayStation 2。我的任务是在宣布现行PlayStation(PS1)与之兼容时,演示实际运行的PS1游戏。

我之所以从前一晚开始工作,是因为自从第一次看到Ridge Racer运行以来已经过了几个月,GPU模拟器有了很大的进步。许多PS1游戏都可以运行,其中表现最好的是古惑狼3,成为演示用的游戏。但有时会停止。

如果演示中出现问题就麻烦了。结果直到当天这个错误仍未被解决。但我们知道只要一直运行就不会卡住。于是我们决定整夜使用实际设备进行古惑狼3测试。

我和我的后辈整夜连续玩古惑狼3,可以通过一个开关将手头的监视器图像投影到大屏幕上。当然,我们也玩得很尽兴。

在度过紧张的夜晚后,真正的演示当天实际设备保持良好运行状态。索尼公司的出井先生也参加了这个盛大的活动。演示展示了EE和GS等PS2的核心部件的强大能力。每次演示,虽然在舞台后面看不清楚,但都可以听到欢呼和嘈杂声。活动进行得很顺利,并且终于到了宣布与PS1兼容性的时候。

实际上,我对那个场景记忆不太清楚。古惑狼这个横向卷轴游戏的主角一遍又一遍地跳过障碍物,不断向前走……应该是这样的。然而,我操作的古惑狼遇到了一个障碍,无法跳过,陷入了困境。最终我不知道它是否跳过了障碍物……现在我完全没有记忆了。

然而,与PS1兼容性的发布受到了热烈的掌声。演示也成功地进行了,尽管我的操作很笨拙。这个活动是非常成功的。

PlayStation 2最终于2000年3月4日在日本发布。如果我没记错的话,对PS1模拟器的工作基本上是在新年前完成的。最后,有一些游戏就是无法正常运行,导致我们编制了一个公共黑名单,列出玩家无法在系统上玩的PS1游戏。

在日本硬件发布之后,北美和欧洲也相继推出,PS1游戏自然也得到了模拟器的支持。在它们发布之前,我去了索尼美国和欧洲的办公室协助调试工作,这是我第一次出国。尽管PS2最终并非与PS1完全向后兼容,但几乎支持全部的PS1游戏。现在回顾当时,那个任务可能是我职业生涯中最重要的任务。

久夛良木健在他的团队设定了很高的标准,告诉我们始终要根据是否真正达到了全球最佳水平来衡量我们的工作质量。当我考虑我自己一生中做过的符合这个目标的事情时,我想到的第一件事就是我在PS1向后兼容性方面的工作。这就是我为此感到自豪的原因。

需要明确的是,我肯定不能独自完成,有很多人在路上帮助我。最终,如果不是我做到了,其他人也会的。无论如何,我能够将如此庞大的项目进行到底,对此我感到非常自豪。我只希望在我的一生中还有机会再次做类似的事情。
作者: hisame    时间: 2023-5-4 21:07

posted by wap, platform: 小米 红米
老任你看看你,n64为啥不兼容sfc
作者: fvdllf    时间: 2023-5-4 21:20

引用:
原帖由 hisame 于 2023-5-4 13:07 发表
posted by wap, platform: 小米 红米
老任你看看你,n64为啥不兼容sfc
任天堂的思路是这样的,旧游戏搬上新主机我们可以再卖一遍
作者: 天使也掉毛    时间: 2023-5-4 21:26

引用:
原帖由 hisame 于 2023-5-4 13:07 发表
posted by wap, platform: 小米 红米
老任你看看你,n64为啥不兼容sfc
非官方设备支持兼容sfc fc gb
作者: 2012啊    时间: 2023-5-4 23:00

posted by wap, platform: Android
ps2跑ps1是挺好了,ps2的刷新率和ps1不一样,ps2上光盘跑ps1游戏会完全切换到ps1的刷新率。就算那个半成品的完全软件跑的官方ps模拟器,也能完全精确ps刷新率。ps3以后反而不行了,跑ps1模拟器完全是ps3主机的刷新率。
倒是老任,那个sfc上的sgb硬件卡带,很不讲究得以sfc刷新率跑gb游戏,这俩机种刷新率也不一样的,可能是主机做不到吧

本帖最后由 2012啊 于 2023-5-4 23:01 通过手机版编辑
作者: linkzzy    时间: 2023-5-4 23:55

posted by wap, platform: Android
老任的sfc不也是计划兼容fc,cpu都选好了,只不过没成
作者: chenke    时间: 2023-5-5 00:02

引用:
原帖由 2012啊 于 2023-5-4 23:00 发表
posted by wap, platform: Android
ps2跑ps1是挺好了,ps2的刷新率和ps1不一样,ps2上光盘跑ps1游戏会完全切换到ps1的刷新率。就算那个半成品的完全软件跑的官方ps模拟器,也能完全精确ps刷新率。ps3以后反而不行了, ...
SFC的SGB2修复了GB帧率问题
作者: 道克斯    时间: 2023-5-5 02:41

posted by wap, platform: iOS
ps2新老各版本在兼容ps游戏上有没有什么差异?
作者: neo1tgfc    时间: 2023-5-5 05:26

posted by wap, platform: iPhone
菜鸡啊,那时候vgs 的纯软件模拟已经相当完美了
作者: Kuzuryuusen    时间: 2023-5-5 06:51

posted by wap, platform: iPhone
首发PS2不是里面有一套PS1的硬件吗?到后来60G版本才是模拟啊
作者: 惆怅的蚂蚁    时间: 2023-5-5 09:10

引用:
原帖由 Kuzuryuusen 于 2023-5-5 06:51 发表
posted by wap, platform: iPhone
首发PS2不是里面有一套PS1的硬件吗?到后来60G版本才是模拟啊
再想一下是PS2还是PS3,PS2哪来的60G版本啊。。。
作者: chenke    时间: 2023-5-5 13:15

引用:
原帖由 道克斯 于 2023-5-5 02:41 发表
posted by wap, platform: iOS
ps2新老各版本在兼容ps游戏上有没有什么差异?
有,PS1向后兼容性 薄机比厚机更差。
作者: SSforME    时间: 2023-5-5 14:59

理论上ps2的cpu可以完全兼容ps1的cpu
也就是说可以实现psp模拟ps1那样的兼容
但可能考虑到发售时间
ps2早期版本直接加上了ps1硬件
后期薄机就全阉割了
改成软件模拟
但是兼容性不如psp的
严重怀疑psp的官方ps1模拟器是在ps2官方ps1模拟器基础上改良的

作者: 铁甲飞龙09    时间: 2023-5-6 22:59

posted by wap, platform: iPhone
引用:
原帖由 @SSforME  于 2023-5-5 14:59 发表
理论上ps2的cpu可以完全兼容ps1的cpu
也就是说可以实现psp模拟ps1那样的兼容
但可能考虑到发售时间
ps2早期版本直接加上了ps1硬件
后期薄机就全阉割了
改成软件模拟
但是兼容性不如psp的
严重怀疑psp的官方ps1模拟器是在ps2官方ps1模拟器基础上改良的
7w也是硬件兼容,7w5开始变模拟了
作者: genesisx    时间: 2023-5-7 14:25

posted by wap, platform: Android
以前不是有个说法,只要能拿到PS2的开发源代码就能在低配电脑(比如mx400显卡)上流畅玩PS2游戏?所以当时索尼机器能顺畅模拟自家老机器游戏是因为有源代码??
作者: 聋则嗅明XP    时间: 2023-5-7 19:48

posted by wap, platform: iPhone
引用:
原帖由 @SSforME  于 2023-5-5 14:59 发表
理论上ps2的cpu可以完全兼容ps1的cpu
也就是说可以实现psp模拟ps1那样的兼容
但可能考虑到发售时间
ps2早期版本直接加上了ps1硬件
后期薄机就全阉割了
改成软件模拟
但是兼容性不如psp的
严重怀疑psp的官方ps1模拟器是在ps2官方ps1模拟器基础上改良的
后期主机运行ps1的高兼容性,我认为是因为sony诏安了vgs。
作者: saisi    时间: 2023-5-7 22:30

谈不上招安vgs     Connectix后来是被微软收购开发Virtual PC虚拟机去了
sony应该是买了vgs的源代码
作者: 无毛之胸    时间: 2023-5-8 06:10

posted by wap, platform: 小米 红米
ps2跑PS1有补间处理功能,能极大消除ps1的3d贴图马赛克,用起来还是挺不错的,不比n64的画面差。
作者: 特攻一番鬼    时间: 2023-5-8 12:24

posted by wap, platform: Android
我一直以为ps2是硬件兼容ps1
作者: 最后生还者    时间: 2023-5-13 06:02

posted by wap, platform: Android
引用:
原帖由 @特攻一番鬼  于 2023-5-8 12:24 发表
我一直以为ps2是硬件兼容ps1
我也是这样想的
作者: SSforME    时间: 2023-5-13 12:37

引用:
原帖由 特攻一番鬼 于 2023-5-8 12:24 发表
posted by wap, platform: Android
我一直以为ps2是硬件兼容ps1
ps2厚机都是硬件兼容ps1
作者: chenke    时间: 2023-5-13 18:02

posted by wap, platform: iPhone
确切的说,ps2是三分之二硬件兼容ps1,IOP就是ps1的CPU,音频 SPU也兼容,但ps1的GPU是靠ps2的GS去模拟的,所以始终有少量游戏出问题就不奇怪了,毕竟不是百分之百硬件兼容(wii好像是完全硬兼容ngc游戏吧)
作者: asdqwe    时间: 2023-5-13 20:51

posted by wap, platform: Samsung
泥潭那么多索饭,这本应该有吧
作者: chenke    时间: 2023-5-14 00:24

感谢提供信息!意思大概是从薄机75000开始,PS2的IOP从原生PS1 CPU换成了PowerPC 401 "Deckard",PS1运行变软件模拟了,因此兼容性比之前低了不少。




欢迎光临 TGFC Lifestyle (http://bbs.tgfcer.com/) Powered by Discuz! 6.0.0