PS1游戏是用哪种编程语言编写的?


Answers:


25

大多数PS1游戏可能都是用C语言编写的,带有一些汇编语言,也可能带有一些轻量的“带有类的C语言”。这不一定是普遍真理,例如Crash Bandicoot的游戏逻辑中有很大一部分是由LISP变体构建的。

通常,您只能通过询问游戏开发人员来找出游戏使用了哪种语言。但是,某些技术会留下某种形式的讲故事签名或水印,可以帮助您进行有根据的猜测。

对于本机语言,某些编译器或链接器可能在最终二进制文件中留下签名模式或其他内容(例如,倾向于将静态数据存储在特定地址,或者以某种形式引导二进制代码的机器代码指令。在PC上,您经常可以针对一个可执行文件运行诸如Dependency Walker之类的工具,以查看其链接至哪个运行时库,并据此做出有关使用哪个编译器进行构建的有根据的猜测。

同样,使用托管语言构建的游戏将需要其运行时环境,并且如果在程序启动时未找到它们,通常会大声抱怨(这种抱怨通常是通过可执行文件中的少量本机引导代码来完成的,您也可以查看一下因为如果你这么倾向。

当然,此信息通常没有什么实际用途,因为在大多数情况下,它实际上并不能帮助您解决与您的游戏相关的任何特定问题。


+1感谢Josh,是否有任何程序可以确定游戏的编程语言?因为它是一堆* .bin文件。或以任何方式查看源代码?
Zim3r 2012年

@Jake几乎几乎不可能查看任何已编译的非托管二进制代码的源代码,或者至少需要花费很长时间和大量工作!
错觉逻辑

谢谢,但是有一些.bin文件,其中有些是音频或视频文件。即使这些文件也无法打开?
Zim3r 2012年

可能是这样,但是如果您不知道源格式,“怎么做”可能是一个非常复杂的过程,并且超出了此问题的范围。

2
@Gajoo虽然不会那么痛苦,但如果您不懂该语言,就不会那么容易。并看到他想从中学到东西,真的没那么有用。我认为这不值得。
错觉逻辑

16

当我们发布PS1时,我是SCEA的第一方,绝大多数游戏都是用C语言编写的,在汇编器中有些时间很紧要。所有的库调用也都是C。


1
我可以证实这一点;尽管我怀疑这些库是C调用约定,并且内部进行了一些手工调整的程序集,就像我所见或正在研究的对时间敏感或棘手的部分。
Patrick Hughes
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.