ラベル delphi の投稿を表示しています。 すべての投稿を表示
ラベル delphi の投稿を表示しています。 すべての投稿を表示

2022/09/10

スーパーファミコン コントローラ・改(2.4Ghz 無線化)#3


 SELECTボタンの下に、新規に2つボタンを追加した。全てのボタンは、ゲームコントローラのボタン入力となる。

 Windows 7 では、問題なかったのに、Windows 10 でダメだったりするのは、Pro Micro もどきのレシーバと、Windows側の制御ソフトが上手く通信できていないのが原因みたい。だが、デバイス・ドライバをいじってたら、なぜか動くようになってしまった。要観察だ。

 ハード的にも、Arduino デバイスの USB-HID の仕様が完全じゃないのかも。ゲームコントローラのテスト画面が表示されないし、スリープ(使っていないが)復帰後にデバイスの認識が変になったりもする。複合デバイスは、色々と複雑なのだろう。
※ 技適マーク無しの無線デバイスの実験は、日本国外で行いましょう。


追記 2022-09-12

 SERIAL+KEYBOARD+GAMEPAD+RawHID の4つを抱えた複合デバイスだが、正しく動くようになったかもしれない。SERIALは不要なのだが、勝手に出てくる。無効に出来れば、さらに、GAMEPADを増やせるのかも? これは、ライブラリではなく、Arduino Core 側の問題らしい。
参考リンク
 NicoHood / HID API Documentation 複合デバイスを作るときは要注意

2021/04/28

windows10 + Delphi + Bluetooth LE

 Bluetooth LE(Bluetooth Low Energy)は、Bluetooth バージョン 4.0 から追加になった低消費電力の通信モードで、それまでの、Bluetooth(クラシック)とは、全くの別物。最近、実験している無線デバイスは、この BLE を使ったもの。

 nRF51822 の実験デバイスが動いてるらしいのは、nRF Connect というソフトで確認できるが、実際に何か作った時には、自前で応答するソフトを作らないといけない。Delphi(RAD Studio 10.3)には、TBluetoothLE というコンポーネントがあるので、これを使えば、楽チンに出来上がるのかと思ったが、どうやら怪しい。

 ネットでさっくりと調べてみるに、BLEのプログラムというのは、iOS だったり、Android 向けであり、Windows用ではない。Delphi のページをみると、さも、Windows10以降なら、対応しているかのように見えるが、そう単純なものでもなさそう。


 以下、怪しい開発メモ、正しいかは保障しない。

1)デバイス取得
 BluetoothLE1.DiscoverDevices(2500); で検索開始して、onDiscoverLEDevice にて、目的のデバイスが見つかるまで、一つづつ確認する。

2)サービス取得
 先にWindows 上で、ペアリングしておく必要がある。BLE は、ペアリング不要と思っていたが、アドバタイズ(定期発信されるデータ)のみで完結しているデバイス(ブロードキャスト)は、その先の情報は必要ないからペアリング不要という意味であって、データをやり取りするなら、一度、ペアリング操作をしておかないといけないのだろう。

 デバイス側で仕様を変えた時は、一度ペアリングを削除して、再度ペアリングしておかないと駄目かも。追加したキャラクタリスティックが見つからず難儀した。

 って、Delphi が問題というより、BLE の仕組みが判っていない僕が悪いのかも。

 この間まで頑張ってた 2.4GHz の無線デバイスと違って、特別な受信デバイスが不要っていうのが一番のポイント。PC側が、bluetooth 対応してあれば、あとはソフトでいかようにもなる、はずなんだな。

2019/08/08

ADB to USB adapter に追加機能

 普段、使っているTMK Keyboardは、トラブルも無く、単純な変換機としては完璧。ただ、せっかくUSBに繋がっているのだから、ADB変換以外の機能拡張したい。が、何分、素人なもので、Cベースだと良く分からず実現できていなかった。

 で、今更だが、Arduino IDE で動く、ADB-USB変換のソースを見つけた。
参考リンク
 ADB to USB adapter Trammell Hudson's Projects

 とりあえず、実験として、2つの機能を追加してみた。うまくいったら、キーボードに内蔵したい。
IME入力インジケータ


 IME、つまり、かな漢の日本語入力モードなのか否かをLEDで表示させたい。Windows10では、OS側の機能として、毎回、画面に表示してくれるが、これはこれで若干邪魔くさい。やはり、キーボードのインジケータとして、光らせればもっと分かり易いのではないか。
ボリュームコントローラ


 キーボード操作でも、音量の調整は可能だが、相対値としての上げ下げで、実は使いにくい。操作する可変抵抗のツマミ角度と、指定される音量がマッチしていれば分かりやすいはず。つまり、絞ればミュート、目一杯回せば最大音量、アナログ的な操作感も悪くない。
 IMEのチェックや、ボリューム絶対値の設定は、素の Arduino では出来ないから、Windows側で補助プログラムを動かす必要がある。ファンクションキーとして割り当てられていないキーをプログラム・ランチャ用途にも使ったり、その辺はWindows側のソフト次第。


追記 2019-08-23
プログラム・ランチャ


 A~Zキーに、起動アプリを割り当てる。



追記 2019-08-31
 中々、いいんじゃない、と自画自賛してたら、やたら不安定で認識不能を繰り返すようになった、なんでだ。調査は、暇な時にするとして、TMK Keyboard に戻した。

Delphi Community Edition

 10.2を入れた分が期限切れ間近なので、10.3 をインストール。コードフォーマッタが標準でついてた。少なくとも、10.1 には無くて不便だった。無料版なのに、制限が少ないのは素晴らしい。Arduino の絡みで、Android もやってみたいが、手が回らないな。

 作業性を考えると、これぐらいのデスクトップ領域は必要。旧Delphi や、Lazarus と違って、フォームとコードを同時に表示出せなくなって著しく使い勝手が悪い。

 JVCL のインストールが上手くいかなくて、3回くらい繰り返した。原因不明。

2019/02/27

スーファミ・スロット入手、新・吸い出し機



 今更だが、2.5mmピッチ、62ピン、スーファミ互換のスロットを手に入れた。使わない右側のピンを抜いてギリギリ。実際に使う時には、なんらかの補強が必要かも。

 安物の互換スロットでは、明らかに耐久性が悪そうなので、しっかりしたものを作りたければ、スーファミ実機のスロットを外して利用するのが一番かと。安く売っているジャンクから取ればいいわけだし。なんなら筐体ごと使えば、カセットの差込に関しては、完璧なものが作れる。


追記 2019-03-07


 Arduino版の3号機。スーパーゲームボーイ型のアダプタを追加工して、スーファミ&ゲームボーイの切り替えスイッチを不要にした。アダプタを差し込むと自動的にゲームボーイモードとなる。LED も SMD のにして、スッキリ。スロットは、ぐらつくもののピッチがあってるからか、ずれる気配は無い。乱暴に扱ったりしなければ、補強なしでも大丈夫そう。

 ソフト側も、最初にロムの形式をチェックする info ボタンを独立させて、スーファミか、ゲームボーイか自動でふりわけるようにした。

2018/01/24

スーファミ&ゲームボーイ・ロム吸い出し


 Arduino MEGA 2560 を使ったロム吸い出し機。ゲームボーイは、スーパーゲームボーイの変換アダプタを経由するが、吸い出し機自体は、プログラムも含めて共有される。スライドスイッチ切り替えで、緑がスーファミ、赤はゲームボーイ。青は、アクセスランプ。

 PC側の吸い出しソフトは、タブで切り替え。下部のバイナリは、SRAMを読み込んだもの、つまりセーブデータ。特殊チップのカセットには、最初から対応する気がない。


参考リンク
 GBCartRead: Arduino based Gameboy Cart Reader ROMの読み込み方の解説
 GBxCart RW GBのダンプしたいだけなら、コレ買うのが早いな
 Cartridge Reader Shield for Arduino Mega 2560

2017/12/31

こーどねーむ「ホンコン」 with Arduino

 スーファミ・ゲームの事を書いたので、一応記事にしておく。年末の記事だが、時系列的には、もっと前、内容も古い。下記のダンパーは既にバラして作り直し済み。


 エミュレータや吸い出し機の話をすると、すぐに違法だなんだと、ケチをつけたがるやつがいる。DVD なんかは、私的複製でもプロテクトを解除するからダメとかいう、キチガイじみた法律が出来た。ゲーム・ソフトもそれと同じという主張だ。だが、昔のゲーム機のソフトは、暗号化はされていないので、自分の持ち物をどうしようが、問題はないはず。アップロードや、ダウンロードがどうのというのは、別次元の話。
吸出し機リンク
 こーどねーむ「ホンコン」 with Arduino を作る cakkera102氏の Arduino MEGA 版
 こーどねーむ「ホンコン」 with Arduino cたにやま氏の Arduino Uno 版
 昔からのゲームオタクならば、各種ゲーム機といっしょに、この手の謎デバイスを持っているはず。昔の吸い出し機は、パラレルポートを使ったものだったが、今時は、USB 経由の Arduino で出来るらしい。上記リンク、akkera102氏のは、Arduino MEGA に、カセットスロットと、実にシンプルなので、まねて組んでみることに。

 カセットを差し込む受け側のスロットは、2.54mm ピッチの片側 23x2=46ピン以上のものが必要。これが、なかなか見つからない。結局、NINTENDO64用の50ピンので間に合わせた。Arduino MEGA の上に乗っかる仕様にしたかったので、空シールドを使って、ちまちま手配線した。接続数が多いのが面倒なだけで、難しいわけではない。

 インジケータ用の青色LEDと、デバッグ用の LCDモニタのコネクタを追加。空シールドのリセット用タクトスイッチを、軽い力で押せるマイクロスイッチに交換。配線が楽そうな向きに合わせてハンダ付けしたら、カセットの向きが逆だった(笑)。男は細かいことを気にしちゃあダメなんだよ。

 未完成のWindows 側コントロールソフト。Arduino に命令を送ってデータを受け取る。元ソースを参考に、Delphi で組み直そうとしたが、そもそもの仕組みがわかっていないものだから、作業が進まない。これじゃ駄目だと、スーファミのロムまわりの資料を、しばらく眺めたが、中々難解。わからないなりにも、Arduino 側の配線の役割と、ロムのタイプによって色々と処理も変えないといけないのも分かった。
スーファミ資料リンク
 SNES Kart  ピン情報
 SNES LoRom Memory Model HiROM より面倒
 なんだかんだで、とりあえず、ジ・アトラスのセーブデータは出し入れ出来るようになった。肝心のデータは、テストを繰り返すうち消えてた(笑)。がっくりしつつも、また、最初から始めることになったが、エミュでやれば、セーブ&リロード使いまくりで、ゲーム進行は速いはず。

 市販の吸い出し機を買っても、数千円から1万円くらいだし、電子工作の道具とか持っていないなら買ったほうが早い。それでも、Arduino は、他でも色々使いまわせるし、何しろ素人でも扱えるシンプルさ、学習のしやすさ、興味あるなら試してみるといい。

他の吸出し機リンク
 Cartridge Reader Shield for Arduino Mega 2560 N64 や GB も読めるらしい
The Atlas(ジ・アトラス)の世界地図を描き起こす 力技www
オリジナル吸い出し機 最終的には、ゲームボーイ用も兼ねる

2016/12/10

Delphi 10.1 Berlin Starter Edition


 無料の Delphi 、期間限定じゃなくなったらしい。前に確認だけして放っておいた Delphi 10.1 を使ってみた。以前の Turbo Delphi の無料版より、よっぽど出来はいい気がする。32ビット版アプリしか作れないくらいで、致命的な制限は無さそう。
 リモコンソフト rmx の次の Version は、こいつでコンパイルした ユニコード対応版にしよう。しかし、通信部分や、文字コード絡み、かなり修正しないと動きそうに無い。それでも、Lazarus でやるよりは楽かな。

 それにしても、Delphi 5 に、Lazarus に、Delphi 10.1。パスカル環境だけを、3種類もインストールしてる変態さんは、俺ぐらいか。いいかげん、Delphi 5 は、無くしたいな。

2016/10/12

Windows 7 の beep音

 Delphi で、ちょっとした確認音を鳴らすのに、windows.beep(1000, 50) とか普通に使ってきたわけだが、どうやら、いつのまにかOS側の仕様が変わっていたらしく、こちらの意図する出力になっていないようだ。

 「ピロン」とか、「ピポッ」とか、beep のパラメータ変化で効果音がわりにしてきたものが、使えなくなった。dll を登録するとか、面倒な事をすれば前と同じような動作も可能らしいが、自分だけならまだしも、ソフトの使用先にも変更して下さい、なんてのは無茶な話。単純な単音の beep 音としてプログラムの修正をしなければならない。

 そもそも、beep音は、スピーカーとは別のブザーを鳴らすものじゃなかった? 最近の PC は、音源がのっているから、ミキサー下におかれて、音楽音と同じような扱いで構わないことになっているのか。

2015/06/06

rSrt : srt字幕エディタ


 ソフトサブ SRT 字幕の入力・編集ソフト。字幕画像のテキスト化のためのツール。最新版は、修正したビットマップの出力だけで、それを一般の OCRソフトに丸投げして、結果を貼り付ける形に。DVDのローレゾ画像じゃ、OCR 調教も時間の無駄だった。

 OCR を省いても、文字種の分類機能は必須。アルファベットに、ひらがな、カタカナに、漢字。日本語は、複雑なんだよ。この校正補助機能がないと、使い物にならない。

 こっちは、完成済み SRTファイルの編集専用。