【正文】
030222)上,她成功地編譯并且運(yùn)行了, STABLE上,即使我禁用了X86_MIPS3_DRC引擎,編譯卻仍然失敗了。我知道FreeBSD小組在7月14日將缺省編譯器升級(jí)到了 ,并且正在解決一部分ports編譯出錯(cuò)的問題,于是猜測(cè)這可能與編譯器有關(guān),7月21日,,我重新編譯了一次,仍然無法通過( 的編譯情況如何),于是,我編譯了/usr/ports/lang/gcc32以使FreeBSD使用與 Linux相同的編譯器,這個(gè)猜想立即得到了驗(yàn)證 編譯通過了,并且XMAME運(yùn)行正常。在你向FreeBSD的maillist發(fā)出你的BUGREPORT之前,請(qǐng)先檢查你的編譯器版本, (),maillist里的問題已經(jīng)足夠多了,請(qǐng)給FreeBSD小組多一些PATCH、建議或是時(shí)間。使用游戲桿當(dāng)然使用游戲桿,我沒興趣用鍵盤玩游戲,如果你不在乎這個(gè),那么跳過這一節(jié)。感謝 Vojtech Pavlik,感謝Suse與Intel,Linux用戶擁有Unix環(huán)境下最出色的Joystick驅(qū)動(dòng)支持,包括USB 接口,Gameport接口甚至Win2000不支持的并口游戲桿都可以支持。,并且隨內(nèi)核發(fā)布了可裝載驅(qū)動(dòng)模塊。如果你重編譯了核心或是使用了其他的核心發(fā)布,請(qǐng)確保你編譯了相應(yīng)的模塊。否則以下描述很可能對(duì)你不適用。USB接口HID游戲桿我們這里所說的USB游戲手柄是指不帶力回饋功能的標(biāo)準(zhǔn)UHID設(shè)備(M$稱為人體工程學(xué)輸入設(shè)備)這是目前市面上最容易買到,也最容易被驅(qū)動(dòng)的游戲手柄,你只需選擇一個(gè)選擇一個(gè)usb接口,插上手柄,在/var/log/message里你可以看到發(fā)現(xiàn)新的HID設(shè)備的的信息,以root身份運(yùn)行modprobe joydev,然后執(zhí)行jstest /dev/input/js0(對(duì)于Redhat Linux,/dev/js0也同樣指向該設(shè)備)jstest將報(bào)告該游戲手柄的軸向個(gè)數(shù)和按鈕個(gè)數(shù),當(dāng)你按下按鈕時(shí)jstest報(bào)告哪個(gè)軸向發(fā)生了變化以及哪個(gè)按鈕被按下。Gameport游戲桿這是在史前時(shí)代流傳下來的游戲桿接口標(biāo)準(zhǔn),Linux對(duì)她們有很好的支持。一個(gè)最常見的Gameport接口2軸 6鍵手柄的驅(qū)動(dòng)方式看起來會(huì)像下面這樣,你可以使用jstest /dev/js0來驗(yàn)證游戲手柄是否已被正確驅(qū)動(dòng)。 modprobe your soundcard moudle modprobe ns558 modprobe analog js=gamepad modprobe joydev如果你安裝了kernelsource你可以在/usr/src/。TypeMeaningnoneNo analog joystick on that portautoAutodetect joystick2btn2button naxis joystickyjoyTwo 2button 2axis joysticks on an YcablefcsThrustmaster FCS patible joystickchfJoystick with a CH Flightstick patible hatfullchfCH Flightstick patible with two hats and 6 buttonsgamepad4/6button naxis gamepadgamepad88button 2axis gamepad并口游戲桿對(duì)于并口游戲桿,Linux同樣有出色的支持,最常見的PSX并口手柄可以用以下指令驅(qū)動(dòng) modprobe gamecon gc=0,7 modprobe joydevgc參數(shù)形式是這樣的:gc=port,pad1,pad2,pad3,pad4,pad5。這里gc的第一個(gè)參數(shù)0表示使用并口1作為輸入端口,第二個(gè)參數(shù)7表示pad1是SonyPSX游戲桿(大部分常見的PSX跳舞毯也可以同樣的方式驅(qū)動(dòng)),其他參數(shù)類型見下表,你可以在/usr/src/。TypeJoystick/Pad0None1SNES pad2NES pad4Multisystem 1button joystick5Multisystem 2button joystick6N64 pad7Sony PSX controller另一個(gè)并口游戲桿驅(qū)動(dòng)db9的參數(shù)形式是這樣的:db9=port,type。她支持以下類型的并口游戲桿TypeJoystick/Pad0None1Multisystem 1button joystick2Multisystem 2button joystick3Genesis pad (3+1 buttons)5Genesis pad (5+1 buttons)6Genesis pad (6+2 buttons)7Saturn pad (8 buttons)8Multisystem 1button joystick ( pinout)9Two Multisystem 1button joysticks ( pinout)10Amiga CD32 padFreeBSD與NetBSD共享一套u(yù)hid設(shè)備驅(qū)動(dòng)代碼,對(duì)于USB游戲手柄有最基本的支持,()能夠驅(qū)動(dòng)我的Topway 單人手柄,但卻堅(jiān)持認(rèn)為我的Gametec USB雙人手柄有1個(gè)按鈕: 而使用BSD 則干脆認(rèn)不出任何游戲手柄設(shè)備,但Taik0說UHID游戲手柄設(shè)備在*BSD上可以使用,我相信這可能與游戲桿設(shè)備有關(guān),你可以按照他給出的CASE試一試,或許這對(duì)你適用。但借助SDL的支持,需要注意的是你必須對(duì)/dev/uhid0擁有寫權(quán)限,否則將無法使用手柄。FreeBSD能夠支持ISA聲卡上的Gameport接口,但似乎對(duì)于PCI聲卡上的Gameport接口不感興趣,無論是4 STABLE還是5CURRENT,Alex Teslik給出了一個(gè)不用修改代碼就能讓FreeBSD支持Logitech Wingman Attack joystick的方法,(20030718)和5CURRENT(20030718)上測(cè)試均未成功,雖然FreeBSD已經(jīng)驅(qū)動(dòng)了我的CMEDIA PCI聲卡。kldstat v的輸出是這樣的: 2 1 0xc1db4000 2000 Contains modules: Id Name 216 isa/joy 3 1 0xc1d94000 4000 Contains modules: Id Name 211 pci/snd_cmi 4 1 0xc1d99000 14000 Contains modules: Id Name 210 snd_pcm而Alex Teslik給出的結(jié)果是這樣的4 1 0xc3053000 3000 Contains modules: Id Name 99 isa/joy 100 pci/joy 5 1 0xc305a000 14000 Contains modules: Id Name 101 snd_pcm我沒有興趣只是為了驅(qū)動(dòng)游戲手柄而回滾內(nèi)核代碼,這么做沒有意義,由于手邊沒有ISA聲卡,我無從得知FreeBSD對(duì)于ISAGAMEPORT的支持究竟如何,但至少SDL的JOYSTICK驅(qū)動(dòng)中包含了對(duì)FreeBSD的GAMEPORT的支持(SDL12/src/joystick/bsd/ 20030602),因此,如果你有被列在FreeBSD兼容列表里的ISA的聲卡,和GAMEPORT口的游戲手柄,你應(yīng)當(dāng)不會(huì)失望。后記我實(shí)在沒有想到這個(gè)主題會(huì)涵蓋如此之多的內(nèi)容,而其中的很多內(nèi)容是我不熟悉的,因此,如果你發(fā)現(xiàn)了任何問題,或者有任何的建議、意見或是補(bǔ)充,請(qǐng)給我發(fā)EMAIL,從而讓更多的人能夠分享。我的EMAIL是 h u a n g s o n g @ l i n g t u . c o m,原諒我讓您手動(dòng)輸入郵件地址,垃圾郵件真的很煩人:請(qǐng)不要向我詢問任何與模擬器ROM下載有關(guān)的問題,我不會(huì)回答的。轉(zhuǎn)載