プログラムのコンパイル手順

「Joystick.c」をコンパイルして「Joystick.hex」を制作する方法(の内の一つ)。
オリジナルを作りたいときはもちろん、ドック&他言語で入力タイミングが合わず上手くいかないときの調整にも使えます。
参考:ギアのかけらやチケットを無限に入手!Switch操作自動化のススメ
(https://qiita.com/Anaakikutsushit/items/b50b092c5ec43d83808a)

Windows Subsystem for Linux」を使い「Ubuntu」をインストールする

Windows10以降の機能である為、Windows7ではこの方法は使えません。また、Windowsのバージョンが1709以上でないと利用できない機能です。
富士通Q&A - [Windows 10] Windowsのバージョンを確認する方法を教えてください。 - FMVサポート : 富士通パソコン
バージョンアップは「Windows Update」を自動更新にしていれば問題ないのですが出来ていない場合はこちら。
富士通Q&A - [Windows 10] Windows Updateの実行方法を教えてください。 - FMVサポート : 富士通パソコン
・作業手順
参考:Windows Subsystem for Linuxをインストールしてみよう!(https://qiita.com/Aruneko/items/c79810b0b015bebf30bb)
左下の「スタートボタン(田)」右クリック→「アプリと機能」クリック
→右上「プログラムと機能」クリック→左側「Windowsの機能の有効化または無効化」クリック
→項目「Windows Subsystem for Linux」にチェックを入れ「OK」クリック
f:id:error_astray:20200121213308p:plain
→しばらすると変更が終わるので「今すぐ再起動」クリックして再起動する。

→「スタートボタン」クリック→「(歯車)設定」クリック→「更新とセキュリティ」クリック→左側の「開発者向け」クリック
→〇「開発者モード」を選択→警告は「はい」クリック

→「スタートボタン」クリック→リストか探るの「Microsoft Store」クリック→右上「検索」に"Ubuntu"と入力
→見つけたら「入手」クリック→複数デバイスで使用するが出たら「必要ありません」クリック
f:id:error_astray:20200121213345p:plain
→「スタートボタン」もしくは通知から「Ubuntu」起動→
→ユーザー名"●●●(任意のユーザー名を決める)"→パスワード"●●●(任意のパスワードを決める)"→パスワード再入力"●●●" ※メモること
→日本サーバーへの切り替える為に"sudo sed -i -e 's%http://.*.ubuntu.com%http://ftp.jaist.ac.jp/pub/Linux%g' /etc/apt/sources.list"と入力しEnter→先ほどのパスワード入力
→"sudo apt update"と入力しEnter→"sudo apt upgrade"と入力しEnter→確認は"y"大分時間がかかる
→「Restart services during package upgrades without asking?」は"←"でEnterしてしばらくすると終わる

続けて「python」等をインストールする

以下をそれぞれ入力してEnterする。
"sudo apt-get install -y python-minimal"
"sudo apt-get install -y python-pip"大分時間がかかる
"sudo apt-get install -y zlib1g-dev"
"sudo apt-get install -y gcc-avr"
"sudo apt-get install -y avr-libc"
"pip install --upgrade pip"※これが失敗して上5つがすぐ終わる場合、パッケージのアップデート(sudo apt update)を忘れている。
終わったら一旦閉じる。

コンパイルする場所を作る

0から作ると必要なものが多いので揃っているものを利用します。
snowball-thrower(https://github.com/bertrandom/snowball-thrower)もしくは
One-Shot-Station-master(https://github.com/anaakikutushita/One-Shot-Station)を入手し、
lufa(https://github.com/abcminiuser/lufa/tree/a8546529926fc87b5d73b75217ec011962e8ccaa)をそのフォルダに入れる(「lufa-a8~」は展開したらファイル名を「lufa」に変更しておく)。

makefile」の変更

フォルダにある「makefile」をメモ帳等で開き、15行目の"MCU = atmega32u4"の所を使うマイコンに合わせ"MCU = atmega16u2"等に変更する(本体やパッケージには書いてないこともあるので分からなければ購入ページで確認)。

コンパイルのやり方

先ほどのフォルダで「Shift+右クリック」して「Linaxシェルをここに開く(L)」をしてUbuntuを起動する。
f:id:error_astray:20200121214634p:plain
"make"と入力しEnterするとコンパイルが実行されます。
任意の「Joystick.c」をコンパイルしたい場合はこのフォルダの「Joystick.c」を上書きして行います。

あとは通常通りに「Joystick.hex」をマイコンに書き込めば完了です。

参考メモ

ドック対応させる場合、原因はHOMEから戻った後の「入力不可時間が長い」事なので、
「 { LOOP_START, 0 },」の後に「{ NOTHING, 30 },」と入れて入力を遅らせるとよい。
他言語させる場合、原因は「文字がの表示速度が遅い」事なので、
各「{ NOTHING, ●● },」の数値を増やしてやるとよい。