展开讨论

经验与复盘经验摘录 · 机器翻译

我曾参与将科乐美的一款游戏从PSX移植到PC的工作,那是1999-2000年——代码(C语言)中有很多……

我曾参与将科乐美的一款游戏从PSX移植到PC的工作,那是1999-2000年——代码(C语言)中有很多#ifdef,比如内联汇编代码的位置,而原始的“C”代码被保留了下来。看起来这一切都是由一个特定的程序员完成的,而在移植游戏时真正拯救我们的,是原始保留的“C”代码。我的MIPS知识从未像x86那样好。所以是的,那时候这是常态。我的第二份工作(1998年),是参与一个团队,他们要为英特尔开发一些软件,用于当时即将推出的Katmai处理器(Pentium I)。它有所有新的酷炫的SIMD指令。软件应该类似于媒体编辑器——你可以拖放图片,旋转它们等等,全部使用软件渲染实现实时效果(GPU当时仍然相对昂贵)。我写了一个双线性和双三次纹理映射器,以及用于透明区域的扫描线算法。这一切都是用汇编语言编写的,我花了很多时间进行优化。……

源讨论原始的《帝国时代2》开发者谈到了它对汇编语言的使用原帖 107 条评论 · 导入时统计
5

社区评论 0

还没有社区评论,来聊聊你的看法。

原讨论中的回复 5

仅展示本次导入中包含的直接回复。中文为机器翻译,可查看英文原文。

AK

这总是让我很失望,花几个小时编写一个紧密的汇编语言版本的某个内部循环,它使用了C++编译器生成的一半指令,结果发现你的辛苦优化版本实际上慢了5%。但另一方面……当它真的更快时的那种兴奋感! 那是奔腾4的时代,那时有很深的流水线,还有一些奇怪的事情,比如一些简单的ALU指令(ADD、SUB等)只需要0.5个时钟周期(!),而其他指令(ADC、SHR)我记得需要4个时钟周期。

完整原文
PH

你参与过《合金装备》的移植工作吗?天啊,这太酷了! 编辑:查了一下,你可能参与过比我想象中更多的游戏。无论如何都非常棒。https://www.mobygames.com/game/company:99/from:1998/platform...

完整原文
PJ

另一个Flipcode的用户! 我错过了其他类似年代的游戏论坛。 能够在Borland产品中进行汇编编程,以及在VC++中稍微少一些,这很棒。 每次看到UNIX编译器现在对汇编的处理方式,我都觉得反胃,而不是推断出寄存器是如何被使用的,还有整个字符串连接的问题。

完整原文
ER

在我真正学会编程之前,我尝试将http://advsys.net/ken/voxlap.htm移植到Linux上:https://github.com/Ericson2314/voxlap 它使用了相同的C语言/内联汇编风格编写。不幸的是,我觉得最终的汇编代码并没有和原始C代码做同样的事情。

完整原文
FE

这不是一种很常见的策略吗?先用C语言写所有内容,然后在开发周期的某个阶段,开始识别可以使用汇编优化性能的函数/功能?

完整原文
在 Hacker News 阅读

尊重不同观点,分享具体经验。

登录后即可发帖、评论、转发和引用。