pocketterm35
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| pocketterm35 [2026/07/02 06:19] – [キーマップ変更] araki | pocketterm35 [2026/07/10 05:19] (現在) – [キーマップ変更] araki | ||
|---|---|---|---|
| 行 68: | 行 68: | ||
| * ガンガンゲームを楽しみたい人 | * ガンガンゲームを楽しみたい人 | ||
| * ARM64とx64の違いがイマイチ判ってない人 | * ARM64とx64の違いがイマイチ判ってない人 | ||
| + | * DTBOがなんなのかわかってない人 | ||
| 画面サイズ640x480しかないので、汎用的なポータブルデバイスを欲しい人には向いていない | 画面サイズ640x480しかないので、汎用的なポータブルデバイスを欲しい人には向いていない | ||
| 行 154: | 行 155: | ||
| waveshare-35dpi-[345]b.dtbo は / | waveshare-35dpi-[345]b.dtbo は / | ||
| + | |||
| + | **カーネルなどの更新を行った場合、新しく / | ||
| + | |||
| + | リブートする前なら / | ||
| <file ini config.txt> | <file ini config.txt> | ||
| 行 761: | 行 766: | ||
| 原因をまじめに突き止めてもよかったのだが、codexを起動して「steamの設定を日本語にしたが、フォントがないのか□が表示されてしまう」とプロンプトしたらあっという間に設定をなおしてくれたので、どうやったのかはあまりちゃんと把握していないが、とにかく日本語が表示されるようになった | 原因をまじめに突き止めてもよかったのだが、codexを起動して「steamの設定を日本語にしたが、フォントがないのか□が表示されてしまう」とプロンプトしたらあっという間に設定をなおしてくれたので、どうやったのかはあまりちゃんと把握していないが、とにかく日本語が表示されるようになった | ||
| - | なので、同じトラブルに見舞われた人がいたら、codexに相談することをお勧めする | + | なので、同じトラブルに見舞われた人がいたら、codex((claude(Opus4.8)は解決できなかったのでcodex一択である))に相談することをお勧めする |
| - | {{ :: | + | {{ :: |
| - | なお、テストプレイのために XeGrader plus (体験版)を導入して遊んでみた | + | なお、テストプレイのために XeGrader plusを導入して遊んでみた |
| カーソルキーとスペースキーで操作できるので、この端末で遊ぶのにはもってこいだ | カーソルキーとスペースキーで操作できるので、この端末で遊ぶのにはもってこいだ | ||
| 行 848: | 行 853: | ||
| ジョイパッドとして認識されているわけでもないため、ゲームやPCエミュレータからジョイパッドとしても使えなければ、ゲームで一般的に使われる英字キーでもないので、まったく利用価値がない | ジョイパッドとして認識されているわけでもないため、ゲームやPCエミュレータからジョイパッドとしても使えなければ、ゲームで一般的に使われる英字キーでもないので、まったく利用価値がない | ||
| - | これはジョイパッドとして認識されるようにするか、最低でも、単純な英字キーとは別のものに割り当てるべきだろう | + | <del>これはジョイパッドとして認識されるようにするか、最低でも、単純な英字キーとは別のものに割り当てるべきだろう |
| + | |||
| + | これらの制御は RP2040で行われているようなので、ファームウェアを書き換えることで改善できると思われるので、今後の研究対象のひとつだと思っている</ | ||
| + | |||
| + | キーコードの割り当ては、RP2040側にインストールされている CircuitPythonにて行われている | ||
| + | |||
| + | 背面のRP2040リセットのボタンをいい感じに連打していると、CIRCUITPYというUSBメモリデバイスが現れることがある((標準のboot.pyによって、CIRCUITPYが出ないようにされているので、いい感じでRESETを連打することで、boot.pyの実行がキャンセルされることがあるので、そのタイミングでCIRCUITPYが現れる。本当にいい感じで連打してとしかいいようがない))ので、それが出てきたら、中の boot.pyや code.pyを変更したり、追加のライブラリを libフォルダーに入れたりしてカスタムすることができる | ||
| - | これらの制御は RP2040で行われているようなので、ファームウェアを書き換えることで改善できると思われるので、今後の研究対象のひとつだと思っている | ||
| ==== 電池容量のOS側からの検出 ==== | ==== 電池容量のOS側からの検出 ==== | ||
| 行 917: | 行 928: | ||
| つまりは、できること・できないことは Adafruit CircuitPython次第ということだ | つまりは、できること・できないことは Adafruit CircuitPython次第ということだ | ||
| - | まず、作業を始める前に、スクリーンロックをOFFにするかUSBキーボードを用意する | + | なお、この部分は大変に長くなるので[[PocketTerm35のキーマップを変更する]]にまとめる |
| + | |||
| + | <del>まず、作業を始める前に、スクリーンロックをOFFにするかUSBキーボードを用意する | ||
| スクリーンロックがかかると、CIRCUITPYドライブはアンマウントされてしまうので、万一不具合がある状態だとキー入力ができず、スクリーンロックを解除できず、結果CIRCUITPYを修正できなくなってしまう | スクリーンロックがかかると、CIRCUITPYドライブはアンマウントされてしまうので、万一不具合がある状態だとキー入力ができず、スクリーンロックを解除できず、結果CIRCUITPYを修正できなくなってしまう | ||
| 行 1136: | 行 1149: | ||
| CUSTOM_KEYS[" | CUSTOM_KEYS[" | ||
| CUSTOM_KEYS[" | CUSTOM_KEYS[" | ||
| - | CUSTOM_KEYS[" | + | CUSTOM_KEYS[" |
| CUSTOM_KEYS[" | CUSTOM_KEYS[" | ||
| } | } | ||
| 行 1190: | 行 1203: | ||
| </ | </ | ||
| + | あとは、キーを押したり離したりの処理を書けば完成である | ||
| + | |||
| + | カーソルキーはゲームパッドでもあり、キーボード上のカーソルキーでもあるので、押すと両方に対してコードを送信している | ||
| + | |||
| + | もしこれで何か問題が起きるようであれば、キーマップの方を Keycode.UP_ARROW, | ||
| + | |||
| + | <code python> | ||
| + | def gamepad_press_thumb(): | ||
| + | # A button | ||
| + | gp.press_buttons(2) | ||
| + | |||
| + | def gamepad_release_thumb(): | ||
| + | gp.release_buttons(2) | ||
| + | |||
| + | def gamepad_press_thumb2(): | ||
| + | # B button | ||
| + | gp.press_buttons(3) | ||
| + | |||
| + | def gamepad_release_thumb2(): | ||
| + | gp.release_buttons(3) | ||
| + | |||
| + | def gamepad_press_trigger(): | ||
| + | # X button | ||
| + | gp.press_buttons(1) | ||
| + | |||
| + | def gamepad_release_trigger(): | ||
| + | gp.release_buttons(1) | ||
| + | |||
| + | def gamepad_press_top(): | ||
| + | # Y button | ||
| + | gp.press_buttons(4) | ||
| + | |||
| + | def gamepad_release_top(): | ||
| + | gp.release_buttons(4) | ||
| + | |||
| + | def gamepad_press_top2(): | ||
| + | # L button | ||
| + | gp.press_buttons(5) | ||
| + | |||
| + | def gamepad_release_top2(): | ||
| + | gp.release_buttons(5) | ||
| + | |||
| + | def gamepad_press_pinkie(): | ||
| + | # R button | ||
| + | gp.press_buttons(6) | ||
| + | |||
| + | def gamepad_release_pinkie(): | ||
| + | gp.release_buttons(6) | ||
| + | |||
| + | def gamepad_btn_base3(): | ||
| + | # Select button | ||
| + | gp.click_buttons(9) | ||
| + | |||
| + | def gamepad_btn_base4(): | ||
| + | # Start button | ||
| + | gp.click_buttons(10) | ||
| + | |||
| + | def gamepad_press_up(): | ||
| + | # Send both Gamepad / Keyboard | ||
| + | gp.move_joysticks(x=0, | ||
| + | kbd.press(Keycode.UP_ARROW) | ||
| + | |||
| + | def gamepad_release_up(): | ||
| + | gp.move_joysticks(x=0, | ||
| + | kbd.release(Keycode.UP_ARROW) | ||
| + | |||
| + | def gamepad_press_down(): | ||
| + | # Send both Gamepad / Keyboard | ||
| + | gp.move_joysticks(x=0, | ||
| + | kbd.press(Keycode.DOWN_ARROW) | ||
| + | |||
| + | def gamepad_release_down(): | ||
| + | gp.move_joysticks(x=0, | ||
| + | kbd.release(Keycode.DOWN_ARROW) | ||
| + | |||
| + | def gamepad_press_left(): | ||
| + | # Send both Gamepad / Keyboard | ||
| + | gp.move_joysticks(x=-127, | ||
| + | kbd.press(Keycode.LEFT_ARROW) | ||
| + | |||
| + | def gamepad_release_left(): | ||
| + | gp.move_joysticks(x=0, | ||
| + | kbd.release(Keycode.LEFT_ARROW) | ||
| + | |||
| + | def gamepad_press_right(): | ||
| + | # Send both Gamepad / Keyboard | ||
| + | gp.move_joysticks(x=127, | ||
| + | kbd.press(Keycode.RIGHT_ARROW) | ||
| + | |||
| + | def gamepad_release_right(): | ||
| + | gp.move_joysticks(x=0, | ||
| + | kbd.release(Keycode.RIGHT_ARROW) | ||
| + | </ | ||
| + | </ | ||
| < | < | ||
pocketterm35.1782973145.txt.gz · 最終更新: by araki
