The project is in a healthy, maintained state
An extension for Nintendo Switch Pro Controller
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
 Dependencies
 Project Readme

ProconBypassMan

Ruby

  • Switchに繋いだプロコンを連射機にしたり、キーのリマップをしたり、マクロを実行できるツールです
    • 設定ファイルはrubyスクリプトで記述します
  • 特定のタイトルに特化した振る舞いにしたい時は各プラグインを使ってください

image

@startuml
ProController --> (PBM): ZR押しっぱなし
Switch <-- (PBM): ZR連打
@enduml

使うハードウェア

  • プロコン
  • Switch本体とドック
  • Raspberry Pi4 Model B/4GB(Raspberry Pi OS (32-bit))
    • 他のシリーズは未確認です
      • zeroは非対応
  • データ通信が可能なUSBケーブル

使うソフトウェア

  • ruby-3.0.x

Usage

Plugins

FAQ

  • どうやって動かすの?
    • このツールはRaspberry Pi4をUSBガジェットモードで起動して有線でプロコンとSwitchに接続して使います
  • どうやって使うの?
    • ケーブルでそれらを接続した状態で、Raspberry Pi4にsshして本プログラムを起動することで使用します
  • ラズベリーパイ4のセットアップ方法は?
  • モード, マクロの違いは?
    • modeはProconの入力をそのまま再現するため機能。レイヤーを切り替えるまで繰り返し続ける
    • マクロは特定のキーを順番に入れていく機能。キーの入力が終わったらマクロは終了する
  • レイヤーとは?
    • 自作キーボードみたいな感じでレイヤー毎に設定内容を記述して切り替えれる
  • このツールでできることは?
    • キーリマップ, 連射, マクロ, 特定の同じ操作の繰り返し(mode)
      • リマップは1つのキーを別のキーに割り当てます
    • 連射中には特定のキーの入力を無視したり、複数のキーをトリガーに連射することができます
  • どうしてsudoが必要なの?
    • 操作するdeviceファイルの所有者がrootだから
  • 市販されているサードパーティ製連射機との違いは?
    • サードパーティ製のコントローラーは、設定方法や形状が特殊で買い換えるたびに学習・設定コストが発生します。本ツールを使えば、設定内容はテキストで管理することができ、使い慣れたプロコンで同等のことができます。

TODO

  • レコーディング機能(プロコンの入力をマクロとして登録ができる)
  • マクロにdelayを入れれるようにする
  • 設定ファイル マクロの引数に、ボタンを取れるようにする

開発系

プロコンとの接続を維持したまま、現在の設定ファイルをPBMに反映する

sudo kill -USR2 `cat ./pbm_pid`

起動ログをサーバに送信する

  • ProconBypassMan.api_server = "http://.." を設定すると、 POST /api/events に対して起動ログなどを送信するようになります

開発環境でログの送信を確認する方法

  • bundle exec bin/dev_api_server.rb
  • API_SERVER=http://localhost:4567 INTERNAL_API_SERVER=http://localhost:4567 bin/console
    • message = ProconBypassMan::BootMessage.new; ProconBypassMan::ReportBootJob.perform(body: message.to_hash)

リリース手順

  • project_template/web.rb, project_template/app.rb, lib/procon_bypass_man/version.rb のバージョンをあげる
  • CHANGELOG.md に日付を書く
  • be rake release

License

The gem is available as open source under the terms of the MIT License.

Links