2010年1月21日 星期四

Wii軟改(2)-何謂IOS

Nintendo IOS(Input Output System)
什麼是IOS?把它理解為Input Output System。
IOS採用了微內核的架構,提供了usb鍵盤,光驅,按鍵,sd卡,文件系統,安全等等接口,其特點之一就是模塊化,這點相信大家都有所體會吧。  而IOS與dll的最大區別之一就是dll只是庫文件,可能是個組件,可能是個函數集合,可能是個資源文件,或者是個功能模塊。而IOS則包含了dll。以一個不太恰當的比喻來說,IOS可以理解為操作系統的內核,SysMenu則是我們可以接觸到的用戶界面
就目前而言,IOS主要有三種:  
1、官方的IOS。  
2、cIOS,即custom IOS,包括custom IOS36,Xyzzy等等。這裡有一點需要注意,所有的cIOS都是根據官方的IOS修改而來。  
3、還有一種cIOS,與上一種有類似之處。
IOS的版本, IOS是以IOSxxx-Vyyyyy存在的,前面的xxx是編號,範圍限制在4-255之間(其中100為BC,101為MIOS),也就是4#-255#,4#之前被系統佔用,而後面的yyyyy才是IOS的版本,例如IOS30的版本有1042、2816等……IOS的這裡的IOS 包括了官方IOS和所有cIOS。這裡有一點需要注意,以IOS36來說,12。18,v1042代表了IOS36的不同版本。
cIOS, 談到cIOS,相信大家都不會陌生,舉其中一例,custom IOS36是由waninkoko釋出的,根據IOS36修改而來,其與官方IOS最主要的區別就是DIP模塊,即DVD Interface,用於IOS與光碟之間的數據交換。眾所周知,官方的IOS是不能讀取備份碟的,而cIOS則由自制的DIP模塊代替了官方的使其能夠讀取備份碟。
Nintendo會藉由遊戲or 主機上網去更新主機上的ISO for 一些更新的運用加防止駭客的破解!
所以有的遊戲運行前會首先檢查光盤中的文件,即Title metadata中指定的IOS版本,如果一樣,則直接運行遊戲;如果不一樣,則先加載指定的IOS,然後再運行遊戲。與其類似的還有頻道,wiiware等東西。
這裡就牽涉到升級,如果光盤中update分區的IOS版本新於主機裡的IOS,則會開始升級(這就是為什麼有的高版本的機器放入帶低版本升級文件的盤也會提示升級原因);如果有主機裡沒有的IOS,也會開始升級。
這裡參考第一段,當我們運行一個去升級的遊戲時,如果主機裡沒有所指定的IOS,則會導致遊戲無法運行,這時只需安裝指定的IOS。這也是為什麼要補全ios的原因有些IOS是很相似的,例如所有的IOS都支持WiFi和USB功能,而且有些能夠被替換。而wii的每次升級則增加新的IOS,升級舊有的IOS,而並不代替舊有IOS,為什麼這樣做?其實我們可以這樣理解,每一個遊戲光碟,wiiware都會在妹中指定其使用的IOS,如果升級覆蓋掉了原有的IOS,那麼遊戲便無法運行。再次強調一點,wii升級不是覆蓋原有的ios,而是增加新的ios,系統中的每個ios都是有用的,隨便刪除ios非常容易導致無解的全磚!

在Wii上光盤,頻道,wiiware都有其指定的IOS來運行,如BKL,SC這樣的程序可以強制使用IOS249,那SysMenu呢?
SysMenu同樣在特定的IOS上運行,3.4使用IOS50,3.4以前使用IOS30,4.0使用ios60同樣的,SysMenu也可以指定其使用的IOS,如果我們指定其使用IOS249,那麼我們就可以直接從光碟頻道進入遊戲了。
然而問題也隨之到來,在光盤頻道中我們無法指定其使用的IOS,這樣即使備份碟能夠正常顯示出,但是仍然無法遊戲,當然我們可以用如IOS patcher等軟件指定遊戲使用IOS249,但我想沒有多少人願意再重新刻錄一次吧。當然問題總有解決的辦法,如果我們把所有官方IOS都替換上自制 DIP模塊,那麼我們就可以直接從光盤頻道運行備份碟了。這就是最後一種cIOS。
當然這樣做仍然有缺點,只有同區的遊戲才能在光盤頻道顯示。
韓版3.3K SysMenu調用的是IOS40,目前已知韓版專有的還包括IOS41,IOS43,IOS45,IOS46。
關於IOS和SysMenu的關係
上面談到,IOS是wii系統的內核,而SysMenu是相應的用戶界面。系統內核是必須存在的,但是用戶界面則並不強制要求,在主機內存在高系統版本的IOS時,低版本的SysMenu也同樣允許使用,這也是系統菜單可以降級的基礎,同樣也是IOS補全而不用升級系統版本原理。但是,當系統中不存在SysMenu所需要的IOS時,系統就會出現各種問題(半磚)甚至無法運行(全磚),這也就是為什麼IOS不能隨便刪除的原因。
某些頻道也是需要系統IOS支持的(4.0下購物頻道需要IOS61),所以當相應IOS不存在時,該頻道也無法運行。
在通常情況下,我們是無法對IOS進行操作的,因為用戶界面(SysMenu)沒有賦予我們這個權限,正是由於高手們對SysMenu的研究,發現了各種漏洞,使我們破解了wii的系統,獲得了對IOS進行操作的能力,才讓我們對wii的應用得到了極大地擴展。但是魔高一尺道高一丈,任天堂也在盡力的封堵這些漏洞,所以系統才出現了官方版和破解版,IOS也出現了有漏洞(+trucha、freethebug)和無漏洞(-trucha)。
官方的升級(主機菜單「本體更新」,聯網、進頻道、玩遊戲)時,是將IOS和SysMenu同時更新的,而官方所更新的全都是無漏洞的版本,缺少漏洞會導致自製程序無法安裝無法運行,所以建議不要通過官方更新,為了玩遊戲(遊戲不要求SysMenu版本)用頻道可以補全IOS,為了獲得新的系統特性可以安裝破解版。

沒有留言:

張貼留言