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