Skip to content

Instantly share code, notes, and snippets.

@uupaa
Last active August 29, 2015 14:21
Show Gist options
  • Select an option

  • Save uupaa/53f39db83fdc9d12652e to your computer and use it in GitHub Desktop.

Select an option

Save uupaa/53f39db83fdc9d12652e to your computer and use it in GitHub Desktop.
FC30 mac keymap

START + B で電源を入れると Bluetooth ペアリングを開始する。

初回(未ペアリング)時はペアリングを行う必要がある

  • Bluetooth デバイスを検索し、8Bitdo FC30 GamePad を選択
  • なお SELECT キーを3秒以上長押しするとペアリング情報を初期化できる
  • 電源OFF は START を3秒長押し
  • 複数のキーを同時に長押しすると、最後に入力されたキーをリピートする
    • スーパーマリオのBダッシュしながらロングジャンプは FC30 では実現できない

このマッピングで使うには、キーボードを英数モードにする必要がある(英語モード以外ではうまく使えない)。

このモードではキー入力はオートリピートする。Lを押しっぱなしにすると、k の後に kkkkkkkk がリピートする。

+---+-----------------------------------+---+
+ k   +--+                         +--+  m  +
|     |c |                         |h |     |
|  +--+  +--+                   +--+  +--+  |
|  |e     f |                   |i    g  |  |
|  +--+  +--+  SELECT   START   +--+  +--+  |
|     |d |    +-    -+ +-    -+    |j |     |
|     +--+    +- n  -+ +- o  -+    +--+     |
+-------------------------------------------+

START + B で電源を入れると Bluetooth ペアリングを開始する。

初回(未ペアリング)時はペアリングを行う必要がある

  • Bluetooth デバイスを検索し、8Bitdo FC30 GamePad を選択。
  • ANSI キーボードを選択
  • なお SELECT キーを3秒以上長押しするとペアリング情報を初期化できる

ANSI キーボードマッピング

このマッピングで使うには、キーボードを英数モードにする必要がある(日本語モードでは使えない)。

このモードではキー入力はオートリピートする。Lを押しっぱなしにすると、k の後に kkkkkkkk がリピートする。

+---+-----------------------------------+---+
+ k   +--+                         +--+   m +
|     |c |                         |h |     |
|  +--+  +--+                   +--+  +--+  |
|  |e     f |                   |i     g |  |
|  +--+  +--+  SELECT   START   +--+  +--+  |
|     |d |    +-    -+ +-    -+    |j |     |
|     +--+    +- n  -+ +- o  -+    +--+     |
+-------------------------------------------+

MAC と Bluetooth でペアリングし、ブラウザから keyCode, mouse.button を取った場合のキーアサイン。

  • L, R, SELECT, START, X, Y が MouseEvent.button = 1 になってしまうため判別できない
  • Up, Down, Left, Right, A, B は判別可能。Bボタンを取るためには、コンテキストメニューを禁止する必要がある
+---+-----------------------------------+---+
+ m1  +--+                         +--+  m1 +
|     |Up|                         |m1|     |
|  +--+  +--+                   +--+  +--+  |
| Left    Right                 |m1    m0|  |
|  +--+  +--+  SELECT   START   +--+  +--+  |
|     Down    +-    -+ +-    -+    |m2|     |
|     +--+    +- m1 -+ +- m1 -+    +--+     |
+-------------------------------------------+
<!DOCTYPE html><html><head><title>GamePad and KeyCode test</title>
<meta name="viewport" content="width=device-width, user-scalable=no">
<meta charset="utf-8"></head><body onContextmenu="return false">
<input type="text" id="keydown"   value="" />
<input type="text" id="keyup"     value="" />
<input type="text" id="mousedown" value="" />
<input type="text" id="mouseup"   value="" />

<textarea></textarea>

<script>
function getTextArea() { return document.body.querySelector("textarea"); }
function getInputs()   { return document.body.querySelectorAll("input"); }

var textArea = null;

window.onload = function() {
    textArea = getTextArea();

    textArea.focus();
    textArea.addEventListener("keydown",   handleEvent, false);
    textArea.addEventListener("keyup",     handleEvent, false);
    textArea.addEventListener("mousedown", handleEvent, false);
    textArea.addEventListener("mouseup",   handleEvent, false);
}

function handleEvent(event) {
    var inputs = getInputs();
    //console.log(event.type);
    switch (event.type) {
    case "keydown":
        inputs[0].value = event.keyIdentifier + "|" + event.keyCode;
        break;
    case "keyup":
        inputs[1].value = event.keyIdentifier + "|" + event.keyCode;
        break;
    case "mousedown":
        inputs[2].value = event.button + "|" + event.buttons;
        break;
    case "mouseup":
        inputs[3].value = event.button + "|" + event.buttons;
        break;
    }
    console.dir(event);
    event.preventDefault();
    event.stopPropagation();
    textArea.focus();
}
</script>

</body></html>

START で電源を入れると USB キーボードとして認識される。

認識されない Mac もある。詳細不明。キーがオートリピートしない。

+---+-----------------------------------+---+
+ kp  +--+                         +--+  im +
|     |we|                         |jn|     |
|  +--+  +--+                   +--+  +--+  |
|  |aq    dc|                   |yt    uf|  |
|  +--+  +--+  SELECT   START   +--+  +--+  |
|     |xz|    +-    -+ +-    -+    |hr|     |
|     +--+    +- lv -+ +- og -+    +--+     |
+-------------------------------------------+

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment