自製軟件
萌娘百科條目中的現實法律內容僅供參考,不能作為專業意見。如有需要,請諮詢相關司法管轄權地方的專業法律人員。萌娘百科對條目內可能錯誤的信息不承擔任何責任。
如發現任何條目有刻意宣揚違反現實法律的內容,請及時到萌娘百科討論:討論版/頁面相關舉報。
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:一個可以在許多遊戲機上運行的模擬器前端。
|