自制软件
萌娘百科条目中的现实法律内容仅供参考,不能作为专业意见。如有需要,请咨询相关司法管辖权地方的专业法律人员。萌娘百科对条目内可能错误的信息不承担任何责任。
如发现任何条目有刻意宣扬违反现实法律的内容,请及时到萌娘百科讨论:讨论版/页面相关举报。
3ds上的自制软件启动器 | |
基本资料 | |
用语名称 | 自制软件 |
---|---|
其他表述 | Homebrew |
自制软件是指由爱好者为游戏机平台开发的未经过游戏机厂商许可的软件或游戏,在英语中一般被称作Homebrew。这些自制软件可以是为游戏机增加更多功能的软件,也可以单纯只是一款普通的游戏。
简介
几乎所有游戏机平台的开发都具有一定的门槛,需要与游戏机厂商进行交流以获取开发工具,同时可能还需要一大笔钱购买与开发相关的硬件设备。这就导致许多个人爱好者难以在游戏机平台上开发自己的应用。同时,部分软件(如retroarch)难以取得游戏机厂商的许可。更进一步的,在游戏机停产之后,游戏机厂商也会停止发行授权游戏。以上三种情况均导致了对于在电子游戏机上运行未经许可的软件的需求。
不过,对于游戏机厂商来说,实现运行未经许可的软件既代表可以开发自制软件也意味着可以在游戏机上随便运行盗版游戏,因此,厂商会利用各种技术手段阻止游戏机运行未经许可的软件。然而这些努力基本只能维持一段时间,到后头还是会失效。
实现方法
为了运行自制软件,必须绕开游戏机厂商设置的许可认证,对于不同时期的游戏机,有以下几种不同的方法。
- 克隆硬件:对于从Family Computer到Nintendo 64的游戏机来说,这些游戏机使用特殊芯片阻止未经许可的软件运行。解决方法也很简单,使用现代硬件克隆一个特殊芯片就可以了。
- 直读芯片、修改光驱固件:对于PlayStation和PlayStation 2这两代使用光盘的游戏机来说,它们使用光驱控制器检查软件是否是经过许可的。因此只需要使用某些手段让光驱认为软件已许可就可以了。由此就有修改光驱固件的软件手段和安装直读芯片的硬件手段这两种办法。
- 绕过签名检查:对于其他的绝大多数游戏机来说,它们使用加密算法检测软件是否被游戏机厂商签名。因此需要使用一些手段绕过签名检查。
- 修改系统固件:通过某些手段(硬件或软件),修改游戏机的操作系统,使得签名检查根本不会被执行。
- 伪造游戏机厂商签名:利用从游戏机厂商泄露的密匙给自制程序签名,从而让游戏机以为软件是官方授权的。(目前只有PSP可以这样)
类型
理论上说,自制软件可以是任何种类的应用程序,一下列举了一些常见的自制软件类型。
自定义操作系统(CFW)
对于自制软件开发者来说,原始的游戏机系统可能存在各种各样的不方便,从阻止自制软件运行的签名检查,到缺失在游戏机上进行各种调试操作(如查看内存、缓存、寄存器,硬件温度、功率等)的能力。因此,一般来说自制软件开发者们会首先开发一个对原始操作系统进行修改的软件。这种软件就是自定义操作系统,一般具有可运行自制软件、可以管理游戏机的所有文件、具备各种调试功能的特点。
系统管理工具
由于原始的游戏机系统是为了玩游戏而设计的,因此缺少了很多功能(如不能手动安装、卸载软件,不能管理文件,不方便在电脑与游戏机之间转移文件等)。自定义操作系统可以在系统层面增加部分缺少的功能,但任有一些功能需要使用自制软件实现,这些自制软件就被称作管理工具,如文件管理器(shell)、软件安装卸载工具等。
模拟器
为了让一台游戏机可以游玩更多不同平台的游戏,有的开发者把模拟器移植到了游戏机上。这些模拟器可以在游戏机性能允许的条件下运行各种其他平台的游戏,同时利用了游戏机原有的输入输出设备。
自制游戏
简而言之,这些游戏除了没有经过主机厂商许可以外,和其他在游戏机上运行的游戏没有多少区别。只不过由于是自制软件,这类游戏都是免费的。
游戏辅助工具
这些自制软件的目的是提高在游戏机上游玩游戏的体验,提供一些原始游戏机上不存在的功能。比如说对游戏存档的修改与备份,在游戏机上安装与使用mod,以及在游戏中使用金手指等。
媒体播放器
所有游戏机都具有输出音视频的能力,但不是所有游戏机都可以从文件播放音乐或者视频。在游戏机性能允许的条件,有些自制软件允许用户把游戏机当作一台音视频播放器使用。同样的,也存在自制的视频网站客户端。
软件下载器
这些软件允许用户下载并更新自己游戏机上的自制软件。可以避免手动更新与寻找自制软件的麻烦。
黑商店
这些软件和软件下载器类似,但它们不是下载自制软件的,而是下载盗版游戏内容的。
开发过程
自制软件由于没有得到游戏机厂商的许可,因此无法使用官方开发工具,这就导致开发自制软件时难以与操作系统交互,大大增加了开发难度。因此,部分开发者开发了第三方SDK,借助这些SDK提供的API实现自制软件与操作系统的交互。除此之外,为了充分利用游戏机的硬件机能,部分开发者创造了一个连接自制软件与图形硬件的兼容层,从而使得自制软件可以像官方许可软件一样利用图形系统。
在自制软件开发中,经常需要在游戏机上测试软件的运行情况。因此,游戏机通常被连接到电脑上,开发者把编译好的程序送到游戏机上运行,然后利用自制操作系统提供的各种调试功能测试自制程序,如果发现了问题就可以修改。实际上游戏机上的所有软件都要经过这一过程,只不过开发官方许可软件时使用的时专门的测试硬件对于有模拟器存在的游戏机,可以使用模拟器在电脑上测试,可以避免一些麻烦的操作,但是由于模拟器在绝大多数情况下不够精确,实际最后还是要在真实的游戏机上运行。
当开发完成后,需要使用编译器和打包工具生成对应游戏机可以识别的可执行文件。
由此可见,自制软件的开发是件复杂的事情,需要使用一大堆软件工具。为了方便开发,出现了devkitPro[1]一类的整合了开发自制软件所需要的全部工具的开发工具包。
法律相关
在绝大多数情况下,为了能够使用自制软件,需要对游戏机的硬件或软件进行修改。由于游戏机的用户享有对游戏机的所有、处分的权利,任何人无权干涉用户对游戏机做出的修改。但是,修改游戏机的硬件或软件可能会导致游戏机厂商拒绝对修改后的游戏机进行保修,也有可能导致游戏机厂商禁止修改后的游戏机连接自己的服务器(俗称ban机)。
自制软件和其他所有软件一样,受到版权保护,因此未经许可盗用软件的代码或者素材将构成侵权行为,可能会被原作者起诉。
虽然说可以运行自制软件就代表可以运行盗版游戏,但是这不代表使用盗版游戏时正确的。而擅自分发受版权保护的程序(如之前提到的黑商店)更是有极大可能被游戏开发商起诉。因此不推荐也不提倡利用运行自制软件的能力玩盗版游戏。
代表作品
- Luma3DS:一个3DS的自制系统。
- Atmosphere:一个Nintendo Switch的自制系统。
- RetroArch:一个可以在许多游戏机上运行的模拟器前端。
|