Wii軟改概念解析(二) Boot2/IOS/SYSMENU - 改機

Emma avatar
By Emma
at 2010-07-12T16:03

Table of Contents

這篇依然先不討論軟改的部份,先講基本架構

Wii事實上有兩個CPU,一顆ARM處理器叫做Starlet
而另一顆PowerPC處理器叫做Broadway

Starlet負責控制系統資源,包括bootloader,IOS(後述),都在這顆CPU上執行
而PPC處理器,負責執行包括系統選單、遊戲、頻道等等的應用主程式

1. Wii開機流程
在開進Wii系統選單前,事實上Wii會先執行所謂的bootloader
bootloader就是在載入主要的作業系統前,一些比較簡單的小程式
而Wii的bootloader又分為boot0/boot1/boot2

boot0 ------> boot1 ------> boot2 ------> SYSMENU IOS -> SYSMENU(系統選單)

為什麼要分這麼多層牽涉到系統設計上的一些問題,這邊先講結果

boot0最小,放在唯讀記憶體中,不可變更
最主要的用途是檢查(Hash check)和載入boot1

由於boot0無法更變,boot1的Hash也無法更改
(網路上又有人把它稱為OTP, One-time password)
所以boot1同樣是無法被變更的
(在Wii的開發機上,據說不存在這個OTP,所以boot1是可以被修改的)

boot1用來檢查和載入boot2
檢查boot2的機制如同前文,用的是RSA簽章檢查
並不像boot1的檢查一樣被寫死,所以boot2是可以被升級或變更的

boot2用來載入系統選單

2. IOS
IOS一般人又把它叫做Input Output System,負責管理Wii的系統資源
而它事實上就是跑在ARM上面的一個內核(kernel),或作業系統(OS)

和一般傳統系統只會有一個OS不同
Wii基本上每個應用程式都可以指令自己要使用的IOS
好處是,我如果想要增加新功能的時候,可以不必考慮舊遊戲的相容性
我只要做一個新的IOS就好,而舊的遊戲可以用舊的IOS,不必擔心不能玩
(就有點像我的電腦上面同時裝了XP和Win7
如果我要執行XP專用的程式,就開進XP,要執行Win7專用的程式,就開進Win7)

同一個時間,只會有一個IOS,而不會有複數的IOS在執行

Wii裡面,一共可以有256個不同的Wii IOS
IOS的號碼,有人說可以視為存在主機中的位置(slot),也就是安裝的位置
(不過,slot1是boot2, slot2是system menu,剩下的才是IOS)
編號不見得越大就越新,不過總之編號不同就是不一樣的用途
有新的週邊、像balance board, webcam, 麥克風等等,通常又會出新的IOS

每個IOS本身,又有2 bytes的版本號碼,所以又有所謂0~65535的版號
理論上,同樣編號,不同版號的IOS應該還是要相容,越新的版號理論上只會做bug修正
(後面會提到例外,有些新版主機不可以用舊版的IOS)

Wii的應用程式(頻道或光碟)叫做title
而每個title都有所謂的Title Metadata(TMD)來描述title的性質
TMD中,會指定這個應用程式所需要的IOS

在執行一個應用程式的時候,首先會檢查這個應用程式需要的IOS
例如購物頻道v19,TMD中就會說明需要IOS61
所以會先載入IOS61,初始化整個wii系統之後,IOS61會幫你載入購物頻道這個應用程式

軟體一 軟體二
------------- ----------> --------------
軟體一用的IOS 執行 軟體二用的IOS

3. SYSMENU
和一般直覺想法不同的是,系統選單中的版本編號
其實不代表整個系統的版本

事實上,系統選單,和遊戲或頻道等等沒有什麼太大的不同
系統選單,也只是一個功能比較複雜的應用程式而已
(以系統選單4.2J為例,開機時,boot2載入IOS70
然後IOS70初始化Wii後,載入系統選單4.2J)

就算像遊戲的一些共通功能
例如按home設定wiimote,或回主選單,或reset
也都是遊戲本身提供的,而不是系統選單提供的

所以,和一般人想法不同的是,基本上頻道或遊戲正不正常
和系統選單本身,其實是沒有關係的

而狀況會比較像前面的圖解一樣
執行了別的程式之後,系統選單
和系統選單用的IOS,就停止執行了
取而代之的是新的IOS和新的應用程式,如下圖

SYSMENU 4.2 官方頻道(如Shopping Channel)
------------- ----------> -------------------------------
IOS70 選單 頻道需要的IOS(如購物用的IOS61)

執行遊戲又回到選單的流程

SYSMENU 4.2 遊戲 SYSMENU 4.2
------------- ----------> -------------- ---------> -------------
IOS70 光碟頻道 遊戲需要的IOS 回選單 IOS70

當然,因為任天堂更新選單的時候,當然也會順便更新IOS和頻道
所以版號還是可以做一點參考,但是有時候同一個版號存在數次不同的更新
就又有所謂v1/v2/v3等等的不同

總之,選單的更新基本上只和選單本身有關而已
例如說系統選單支援SDHC拷貝存檔,和Photo Channel支援SDHC放照片,是兩回事
要支援SDHC,兩者需要更新各自的IOS和主程式

3. Stub IOS
Stub IOS就是沒有任何功能的IOS
除了最早的SYSMENU 1.0使用IOS9,也有供遊戲使用外
後來的SYSMENU都是使用自己專用,而不給遊戲使用的IOS
一旦SYSMENU更新,升級上去之後,假設換用新的IOS,舊的IOS就沒用了

所以任天堂就把舊的IOS拿沒作用的版本取代,節省記憶空間
這也是為什麼有人降級SYSMENU之後變磚的原因
(因為boot2想要載入無效的IOS,而開不了機)

以下列出各版本選單所使用的IOS
SYSMENU 1.0 IOS9
SYSMENU 2.0 IOS11 有效IOS: v4 stub: v256
SYSMENU 2.2 IOS20 有效IOS: v12 stub: v256
SYSMENU 3.0~3.3 IOS30 有效IOS: v1037, v1039, v1040, v2576 stub: v2816
SYSMENU 3.4 IOS50 有效IOS: v4889 stub: v5120
SYSMENU 4.0/4.1 IOS60 有效IOS: v6174 stub: v6400
SYSMENU 4.2 IOS70 有效IOS: v6887 stub: v6912
SYSMENU 4.3 IOS80 有效IOS: v6943

後來又有所謂阻擋cIOS安裝的stub IOS
這在之後再做討論

--
Tags: 改機

All Comments

Sierra Rose avatar
By Sierra Rose
at 2010-07-14T02:50
長知識阿!
Linda avatar
By Linda
at 2010-07-14T11:33
推一下 不過內容有深有淺
Irma avatar
By Irma
at 2010-07-15T03:33
如果有部份太深解釋不清可以講一下,我是希望能深入淺出
Rachel avatar
By Rachel
at 2010-07-19T19:39
感動!
Sandy avatar
By Sandy
at 2010-07-21T14:20
系統使用的IOS最好加上版本,很多系統IOS都有stub版,不幸
Yuri avatar
By Yuri
at 2010-07-25T12:20
用了就是無解的磚了
James avatar
By James
at 2010-07-29T23:39
其實能當ios的只有256-2=254個 ios1是boot2
Rosalind avatar
By Rosalind
at 2010-07-31T13:56
IOS2是SYSMENU 不過官方好像也沒在用ios0
Genevieve avatar
By Genevieve
at 2010-08-04T20:25
膜拜
Xanthe avatar
By Xanthe
at 2010-08-06T08:47
值得再推一下的好文
Oliver avatar
By Oliver
at 2010-08-06T22:45
IOS0是駭客在用的
Ida avatar
By Ida
at 2010-08-11T14:22
看完這篇後,更能了解k大強調的:遊戲能不能玩和IOS有關
跟system menu沒有關係的道理了
Franklin avatar
By Franklin
at 2010-08-12T05:15
再推一次 看完後 感覺跟Wii的關係又更進一步了
George avatar
By George
at 2010-08-15T06:40
iOS 聽起來比較像 module 不太像 OS ?
Kyle avatar
By Kyle
at 2010-08-20T00:28
講解清楚 好文!
Connor avatar
By Connor
at 2010-08-20T14:01
把IOS當成像DOS的os吧 不過其實IOS和其他遊戲機的BIOS
Zenobia avatar
By Zenobia
at 2010-08-24T08:20
類似 換句話說 Wii就像有多個BIOS
Gary avatar
By Gary
at 2010-08-24T21:57
有看有推
Charlotte avatar
By Charlotte
at 2010-08-29T21:53
獲益良多
Lauren avatar
By Lauren
at 2010-09-03T03:49
希望對您有幫助 http://www.94istudy.com
Freda avatar
By Freda
at 2010-09-07T17:14
push

內湖/汐止 徵軟改

Tracy avatar
By Tracy
at 2010-07-12T12:16
我已經算都改好了(看game disk的一步步改,之前是3.4j的,有硬改過) 但就是usb loader GX一直都不能成功 按了usb loader gx後,lading一會後 顯示 do u want to retary for 30 secs cIOS249 cIOS222 back to wii ...

軟改

Yedda avatar
By Yedda
at 2010-07-12T08:08
各位大大我想請問一下,我昨天從光華2F的圓X科技改完機後,拿回來發現我的硬碟不見了, 這是本來就會有的情況?(改完之後硬碟不能用) 還是說是他真的沒有還我?? 麻煩各位大大解答! 感激萬分 -- http://www.facebook.com/yonker.liao?ref=name - ...

gba備份卡買哪張比較好

Lucy avatar
By Lucy
at 2010-07-12T03:01
傳說現在gba備份卡可以和ds備份卡聯動了 那gba備份卡和ds備份卡各要哪張才能支援呢? 還有備份卡可以和正版卡匣作聯動嗎? - ...

wood1.09的金手指怎麼打開QAQ

Lucy avatar
By Lucy
at 2010-07-12T01:40
我把金手指放到_rpg裡的cheat裡了 可是....... 不知道要怎麼打開.... 以往的內核都是在選遊戲按y 可是這wood1.09...... 我孤狗好像有辜到說 選遊戲時按L+X 可是我按了他也只是跳回上一個資料夾~ 感覺是個蠢問題但我真的...不知道andgt;and#34;and ...

R4卡 升級問題 快來救救我

Damian avatar
By Damian
at 2010-07-11T22:38
我剛剛把 R4卡升級了 但是開機顯示 硬件版本不兼容 怎麼辦? 我到底哪裡用錯了 誰來救救我阿? 謝謝 andgt;and#34;andlt; 我的 R4卡長這樣 http://www.wretch.cc/album/album.php?id=bluemily0606andamp;book=2 ...