創作內容

0 GP

就算是盜版山寨遊戲手把,只要改Xorg就沒問題了吧?

作者:Nighty9│2021-08-16 22:47:36│巴幣:0│人氣:584
筆者姑且算玩家,但幾乎只用滑鼠鍵盤。
某日逛3C店發現有賣福利品,直接敗下一把168的 PS3手把。
回家發現無法正常驅動!左搖桿能對應鼠標,其他全沒反應,按右板機還會鼠標狂衝!

如果這事發生在十年前還好說,但我早有印象現在的Linux核心對USB類的硬體驅動非常完善,Xbox/PS 系列的遊戲手把應該能隨插即用才是。
接著是一連串的除錯嘗試:
遊戲手把線上測試有感應到輸入訊號;
故大概不是驅動問題,我的Puppy Linux也早就有裝 xboxdrv
桌面輸入錯誤故且忽略,不論怎麼調整Steam設定,遊戲內按鍵輸入也是亂的⋯

這可真是詭異,網上明明都說設定PS3 Dualshock Controller 多容易可是我—
我包裝盒上寫的是Doubleshock III Controller!不是Dualshock!

我震驚個毛,便宜貨當然都是盜版/山寨貨。

努力去查型號,結果網路店家的資訊似乎也都是抄Dualshock的說明⋯
還附上一句「不適用於Steam」。
看來這山寨貨確實有 Dualshock零件才導致系統誤判,內部肯定東拼西奏,亂七八糟。
在微驅動灌的是PS3把手韌體。

但身為Linux使用者,自訂設定,天經地義。
今天區區一個顛三倒四、經脈錯亂的爛手把就想要老子投降,做夢!
而且退貨就輸了,這樣不就承認自己貪小便宜活該被騙嗎?

老樣子,root狀態開啟:
/usr/share/X11/xorg.conf.d/50-joystick.conf
修改內部的設定,就能自定義遊戲手把的輸出設定。(記得備份!)



原始內容大概是這樣

Section "InputClass"
Identifier "joystick catchall"
MatchIsJoystick "on"
MatchDevicePath "/dev/input/event*"
Driver "joystick"

Option "DebugLevel" "0"
Option "StartKeysEnabled" "True"
Option "StartMouseEnabled" "True"
Option "MapButton1" "button=1"
Option "MapButton2" "button=2"
Option "MapButton3" "button=3"
Option "MapButton4" "none"
Option "MapAxis1" "mode=relative axis=+1x  deadzone=5000"
Option "MapAxis2" "mode=relative axis=+1y  deadzone=5000"
Option "MapAxis3" "mode=relative axis=+1zx deadzone=5000"
Option "MapAxis4" "mode=relative axis=+1zy deadzone=5000"
Option "MapAxis5" "mode=accelerated axis=+1x deadzone=5000"
Option "MapAxis6" "mode=accelerated axis=+1y deadzone=5000"
Option "MapAxis7" "mode=none"
EndSection

(綠字部分可能你的設定檔沒有,但沒差,重點只在MapButton/MapAxis設定上)

詳細的細節還是請參考 Xorg的 Joystick說明

當需要確定這把經脈錯亂山寨貨的按鈕對應表時,先前提的手把線上測驗就非常有用。
網站上的B0=MapButton1、AXIS0=MapAxis1 依此類推⋯


Option "MapButton#" 解說:


這手把有17個按鈕,我就可以在設定檔一路新增17個 Option "MapButton#(1-17)"
後面的係數可以是 "button=#" 或 "key=#"

button=1    (滑鼠左鍵)
button=2    (滑鼠中鍵)
button=3    (滑鼠右鍵)
button=4    (滑鼠中鍵上滾)
button=5    (滑鼠中鍵下滾)
⋯如果你用多鍵滑鼠那你對應的鍵還可以繼續增加

"key=#"的對應部分比較麻煩,要鍵盤scancode,打開終端機輸入:

DISPLAY=:0 xmodmap -pk | more >all_keys.txt

這會在你的家目錄生成一份文字檔,寫滿你鍵盤的scancode。

我的鍵盤上下左右scancode是:111、116、113、114
手把左方十字鍵的對應MapButton是14、15、16、17
也就是:

Option "MapButton14" "key=111"
Option "MapButton15" "key=116"
Option "MapButton16" "key=113"
Option "MapButton17" "key=114"

如果要不只對應一個按鍵,只要
"key=#,#,#,#"
就好,最多同時四鍵,不需要空格。

Option "MapAxis#" 解說:


MapAxis 代表搖桿的訊號,在我的例子中:
MapAxis1:左搖桿左右
MapAxis2:左搖桿上下

mode=[none/relative/accelerated],代表搖桿的移動模式 [關閉/穩定/漸進加快]

後面係數 axis=+1x,代表游標X軸1位移,左右移動(若改成0.5,移動就慢一半)
反之對應搖桿上下的MapAxis2,axis=+1y,就是Y軸1位移,代表上下移動
注意搖桿底部也有按鈕,按壓左搖桿:MapButton12

另外 axis=+1zx / axis=+1zy 的係數;
基本上功能一樣,只是不會觸動滑鼠的游標。

keylow=# keyhigh=#

^讓你搖桿在兩個自訂按鍵之間切換。

MapAxis3/6 比較特別,是前方扣壓的「板機」,而不是按鈕。
如果要當按下去的按鈕,左右板機按鈕對應MapButton7/8
但如果要板機有按壓輕重的輸出,建議用 keylow=# keyhigh=#

注意在 MapAxis3/6的情況下, keylow是就算沒觸壓時也會持續輸入指令。
個人用不到這個板機,直接 "mode=none"停掉。

後面的deadzone(死區)參數代表搖桿的穩重感,越小越敏感,個人設為200

全部設定好存檔,重新登出後就可以測試客製化的手把設定。

挑戰Steam


經過一番努力後,原本經脈錯亂的山寨手把也能當另類鍵盤滑鼠用。
但還是有兩瓶頸,Steam客戶端的手把設定 + 遊戲內部手把設定。

不知為何Steam的搖桿設定都在Big picture mode

先前網路賣家聲明「不適用於Steam」,因為這山寨 Dualshock會讓 Steam誤判,必須先到設定裡面把所有關於遊戲手把的支援都關掉,不然 Steam大概會無視我嘔心歷血搞的手把設定,繼續用正版設定加註在我手上這把冒牌貨上導致錯亂。

經過漫漫長路,筆者終於可以用這山寨貨玩 Steam遊戲,但不是全部。

「理論上」只要一款遊戲能用鍵盤滑鼠玩,我就能用這手把玩;但有些遊戲對手把的設定是寫死的,玩家不能改。比如說,知名遊戲—死靈舞師,就有內建的遊戲手把偵測,也無法自訂操作。

另外許多遊戲偵測到手把時,右方的按鍵(OX☐∆)是改不了的,遊戲會照自己的預設值,也幸好我這山寨貨至少右按鍵的譜表跟遊戲認定的手把是一致的⋯


要不是這次貪小便宜買盜版貨,也不會有這趟 xorg 設定大冒險吧。
本文的方法應該適用任何遊戲手把,正版、盜版、山寨、罕見品牌。
既然這手把能當作鍵盤滑鼠了,我試試看能不能用來畫圖。
(很困難,搖桿比不上滑鼠!但或許該怪這貨太爛了 XD)

附上個人的設定,注意你的scancode很可能跟我的不一樣,key會對不上。
要是你覺得我的設置很怪⋯因為右方鍵、start、select等很多就算改了也不影響遊戲,我就把它換成我繪圖軟體常用的快捷鍵了。

Section "InputClass"
    Identifier "joystick catchall"
    MatchIsJoystick "on"
    MatchDevicePath "/dev/input/event*"
    Driver "joystick"
    
    Option "DebugLevel" "0"
    Option "StartKeysEnabled" "True"
    Option "StartMouseEnabled" "True"
    Option "MapButton1" "key=65"    #Spacebar
    Option "MapButton2" "key=30"    #u
    Option "MapButton3" "key=60"    #.
    Option "MapButton4" "key=59"    #,
    Option "MapButton5" "key=37"    #Ctrl
    Option "MapButton6" "button=1"
    Option "MapButton7" "key=50"    #Shift
    Option "MapButton8" "button=3"
    Option "MapButton9" "key=49"    #`
    Option "MapButton10" "key=119"    #Delete
    Option "MapButton11" "button=2"
    Option "MapButton12" "key=104"    #Enter
    Option "MapButton13" "key=9"    #ESC
    Option "MapButton14" "key=111"    #UP
    Option "MapButton15" "key=116"    #DOWN
    Option "MapButton16" "key=113"    #LEFT
    Option "MapButton17" "key=114"    #RIGHT
    Option "MapAxis1" "mode=relative axis=+0.8x deadzone=200"
    Option "MapAxis2" "mode=relative axis=+0.8y deadzone=200"
    Option "MapAxis3" "mode=none"
    Option "MapAxis4" "mode=accelerated axis=+0.5x deadzone=200"
    Option "MapAxis5" "mode=accelerated axis=+0.5y deadzone=200"
    Option "MapAxis6" "mode=none"
EndSection

引用網址:https://home.gamer.com.tw/TrackBack.php?sn=5240110
All rights reserved. 版權所有,保留一切權利

相關創作

同標籤作品搜尋:自製|linux|steam|把手|xbox|ps|xorg|dualshock

留言共 0 篇留言

我要留言提醒:您尚未登入,請先登入再留言

喜歡★nighty9 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:[像素]魔法少年賈修... 後一篇:[像素]上野辣妹 (St...

追蹤私訊切換新版閱覽

作品資料夾

leo25127更新至1224回
穿越奇幻日常系小說『公爵家的獨生子』更新囉,來看看我們無厘頭的ㄎ一ㄤ少爺怎麼在異世界作威作福吧!看更多我要大聲說昨天18:08


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】