Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kernel Playstation游戏是如何在完全没有操作系统的情况下编程的?_Kernel - Fatal编程技术网

Kernel Playstation游戏是如何在完全没有操作系统的情况下编程的?

Kernel Playstation游戏是如何在完全没有操作系统的情况下编程的?,kernel,Kernel,我想了想,自己也从中发现了一些 很明显,结合Playstation(第一个)硬件没有操作系统,只有固件这一事实,为Playstation编程的游戏基本上是完整的,例如Final Fantasy VII: 具有相互交互的多个代码“部分”,从处理硬件数据、更改等的低级内核到控制PS控制器中断的用户界面,再到存储云的当前HP、Tifa的ATB规范值和确定攻击流字节的增量除数的数据库 因此,从技术上讲,为Playstation制作的游戏是可移动内核、游戏交互和完整的可执行文件。PS硬件中不存在内核,那么

我想了想,自己也从中发现了一些

很明显,结合Playstation(第一个)硬件没有操作系统,只有固件这一事实,为Playstation编程的游戏基本上是完整的,例如Final Fantasy VII:

具有相互交互的多个代码“部分”,从处理硬件数据、更改等的低级内核到控制PS控制器中断的用户界面,再到存储云的当前HP、Tifa的ATB规范值和确定攻击流字节的增量除数的数据库

因此,从技术上讲,为Playstation制作的游戏是可移动内核、游戏交互和完整的可执行文件。PS硬件中不存在内核,那么如何将游戏编程为具有多个模块和接口的内核呢

这是否意味着存储为.ISO文件的Playstation可执行二进制文件基本上是操作系统

游戏的模块是从硬件层到用户层本身的主要接口,因此可以安全地说所有PS1游戏都是某种操作系统吗

基本上,可以让游戏成为“操作系统”和游戏,即完全交互的低级数据处理器、设备驱动程序、中断处理程序等,都以模拟文件系统容器格式存储

我希望我足够清楚,因为当我试图把它写下来时,这让我很困惑


PS:如果这在另一个部分更好,请帮助迁移到那里。谢谢大家!

PS1是一台非常简单的机器,有用于图形、声音和用户输入的硬件和API,以及一些基本的启动约定。这与旧的Atari ST、Apple][、IBM PC和其他系统没有太大区别,在这些系统中,您可以直接启动到游戏环境中(有人记得旧的Sierra PC游戏吗?)

这不仅是可能的,事实上也不少见。比如,想想其他游戏的捆绑游戏。我在想,当你买一张光盘,上面有3-4个旧游戏时

那么,您如何编程呢?您真正要做的是构建一个加载程序,当用户选择“模块”来执行“模块”并退出以返回菜单时,它会显示一个“模块”菜单。在X86中(不受保护)这是通过修改IRQ表来完成的,这样当程序退出时,跳回会再次返回菜单系统,而不是BIOS默认值

现在,你只需要给一些游戏提供一个“退出”选项。我突然想到,我在PS上玩过的很少游戏有一个“退出”选项,因为当你完成后,你只是关闭了电源

具体到PS1,您必须仔细阅读BIOS编程指南,以了解如何编写引导程序。我认为这将是项目中最有问题的部分

你可能会有幸在……中钻研一些东西。

说没有操作系统是很奇怪的。没有Linux或Windows。软件和硬件之间必须有某种抽象,否则为控制台编写游戏永远不会按时完成。