關於我自己

我的相片
New York, New York, United States
我叫江奕賢啦

2007年9月19日

用「Wii遙控器」控制電腦 / 打PC Game



這兩年都在搞畢業論文 沒時間玩Game
所以前兩天才去搞了個早已過季的英文版Wii來玩
(還因為早起去買 導致銀行以為我的信用卡被盜用 [因為他覺得我從不曾在早上十二點前消費吧])

第一天 連續打了六個小時 把我手上兩片運動的Game都從頭到尾打N遍 打到雙手都快舉不起來

把Wii裡面的功能大概玩過了一遍 (寄email, 看天氣、看照片、看新聞、download game,etc)
順便研究了一下改機 結果發現我這新版的機子 硬改機會破壞保固、軟改機我又沒有GC 就算了

第二天 想說要研究一下怎麼打比較輕鬆
那首先當然要研究Wii remote裡面的作業原理
資料後 發現他其實只有三個motion sensor
並無旋轉的偵測器(rotate sensor?) 那我其實不用那麼認真打
就針對他的偵測器 給他那個方向的motion就行了

第三天 我的小女朋友跟我說他要玩以前紅白機任天堂的Game (排球) 而且說她不要用電腦鍵盤玩
那我手邊就只剩Wii Remote了 而Wii雖然可以Download一些紅白機上的Game在Wii上面玩 卻沒有她要的排球
那就只有兩種方法啦 一種是破解Wii, 把手上的Rom丟上去
另一種就是把Wii Remote連上PC嘍
check 了一下資料 Wii的保護還蠻周詳的,Rom都得先encrypt過
那就得找別的漏洞下手(透過GameCube Interface, etc) 我就有點懶了
所以我就朝『把Wii Remote連上電腦』的方向下手
既然Wii是用Bluetooth在連主機(Wii Console) 那當然就給他用bluetooth連上PC當HID用嘍

所以下面就是研究成果
網路上比較常提到的有GlovePIEWiinRemote
但是我照tutorial都收不到訊號 本來想說是不是我PC上外接的bluetooth不相容 正準備放棄的時候
被你爸我找到一套用WiimoteLib寫的Wiimote Recorder竟然可以收到訊號 那就不是硬體的問題啦
不過Wiimote Recorder只能給你看訊號 不能幫你把Wii Remote的訊號map到鍵盤或滑鼠上 無法用來玩Game
另一套RMX Automation可以收到訊號 也可以Map到鍵盤上
但是他模擬鍵盤的方式比較爛 有些模擬器收不到他的鍵盤訊號
多次嘗試後 發現是xp driver的問題 我用了usb bluetooth dongle附的原版driver (BlueSoleil)後 GlovePIE和WiinRemote就可以收到訊號

試用後發現WiinRemote比較傻瓜版、 GlovePIE比較適合程式設計師
GlovePIE附的script比較多 寫程式控制Wii也比較方便 我就用GlovePIE啦
測試了一下程式控制Wiimote的Input Output
Input: 按鈕(buttons)、motion sensor(有人翻譯成 動態/移動/加速感測 感應器)、紅外線 IR sensor
Output: 燈號(light)、震動馬達(moter)、喇叭(speaker)
這次就都成功了

成功後 當然就把所有功能都玩玩看嘍:
1. 用Wii的motion sensor當滑鼠
2. 用Wii的IR sensor當滑鼠 (PS:sensor bar可用兩顆小電燈代替即可)(蠟燭?太危險了吧)
3. 用Wii控制Google Earth, IE
4. 用Wii當震動按摩器
5. 用Wii當喇叭(其實比較像蜂鳴器 PC主機裡面逼逼叫的喇叭 而不是soundblaster那種)
喔喔!差點忘了 當然還有小女朋友交給我的任務
6. 用Wii在PC上打任天堂模擬器(RockNESX 2.0)嘍

其他發現:
1. 用 Java Applet 寫的網路版 NES emulator (vnes已被查封 所以換下面的)
http://www.virtualnes.com/list/s.html
2. BlueSoleil的driver可免費download 但是沒有license的話新版的有5MB傳輸限制 所以我就用舊版的

沒有留言: