スポンサーサイト

    上記の広告は1ヶ月以上更新のないブログに表示されています。
    新しい記事を書く事で広告が消せます。

    もしこの記事が参考になったなら拍手をお願いします

    RetroPieと物理CDドライブ(その2)

    まずは環境や材料など。

    1.使用するラズベリーパイ

      今回組み込むラズベリーパイには RaspberryPi 3 を使っています。

    2.使用するレトロパイについて

      今回リリースされたばかりの4.2、Raspberry2/3 用のイメージファイルを使いました。

    S1704_RetoPie.jpg

    3.接続するUSBの光学ドライブについて

    うちはLogitecのポータブルDVDドライブを使っていて、
    電源はACアダプタから取り、USBケーブルでラズベリーパイと接続しています。

    S1704_IMG_4772.jpg

    dmesg コマンドでOS起動時のログを確認すると、
    ドライブ自体は AD-7640A、デバイス名は /dev/sr0 として認識していますね。
    ですので今後光学ドライブを指定して何かをするときは /dev/dr0 で指定します。

    $ dmesg

    S1704_dmesg.jpg


    4.組み込む mednafen について
      組み込む mednafen は Ver0.9.37.1 という古いバージョンになります。
      以下の場所に置いてありますので入手してください。
      https://github.com/mednafen/mednafen.github.io/tree/master/releases/files

      mednafen-0.9.37.1.tar.bz2 をクリック。
    S1704_mednafen_src001.jpg
      Download をクリックしてPCなどに保存してください。
    S1704_mednafen_src002.jpg

      ちなみにRetroPieには wget も入っているので wgetで直接仕入れるなら直林は以下です。
      https://github.com/mednafen/mednafen.github.io/raw/master/releases/files/mednafen-0.9.37.1.tar.bz2  


    5.小道具など
     とりあえずRetroPieをいじる上で必要なのは
     (1)コマンドを叩いて操作するためのターミナルソフト
     (2)ファイルを転送するソフト

     (1)については私は TeraTermを使ってssh接続しています。
     (2)については私は単にsmbを起動して共有フォルダ経由でPCから流し込んでいます。

     人によっては別のターミナルソフトを使ったり、sftpでファイル転送するなど
     好みもありますので、そこはお任せします。

     sshやsmbを利用するにはOSをインストールした後、 ssh や smb を使えるようセットアップが必要。
     セットアップと言えど、RetroPieにセットアップ用のシェルが組み込まれているので
     単にメニューから設定するだけですので楽ちんです。


    もしこの記事が参考になったなら拍手をお願いします

    RetroPieと物理CDドライブ(その1)

    巷で流行っているRetroPie(RaspberryPi)ですが、CD-ROM2とかPS1とかディスクもののゲームを
    遊ぼうとするとリッピングしてディスクイメージに変換して遊ぶのが前提。

    これでも良いのですがディスクイメージだと容量も食うので
    USBのDVDドライブを繋いで、そこからゲームを起動できないかと探っていたら
    方法が見えたので記事にしようかと。

    mednafen.jpg

    まず前提として、(間違っていたらごめんなさい)
    1.RetroPieで用意されているエミュレータ(RetroArch)はディスクイメージからの起動しかサポートしてない。
      (RetroPie自体は物理光学ドライブに対応している)
    2.RetroArchに組み込まれているCD-ROM2やPS1のエミュレータはmednafen というマルチエミュレータがベース。
    3.RetroArchに組み込まれたmednafenの機能はライブラリ化されているため
      ディスクイメージを読み込ませるととRetroArchがmednafenのライブラリを用いてCD-ROM2やPS1のエミュレーションを行う。

    色々考えてみると
    ・RetroArchありきで色々方法を探ろうとすると結構大変。(ソースの改造・マージなんてしたくない)
    ・ライブラリ化してないmednafenならRetroArchに関係なく単体で動作可能。
    ・mednafenのリリースメモを見ると、2015年2月にリリースされた Ver0.9.38.1 で物理CDからの起動が廃止されたので
     そのひとつ手前の Ver0.9.37.1 なら物理CDからゲームを起動出来る(とのこと)。

    ってことで一昔前の Ver0.9.37.1 の mednafen をビルドして RetroPie(emulationStation) に別エミュレータとして
    組み込めば、物理CDからゲームが起動出来るんじゃ?という目論見です。。


    もしこの記事が参考になったなら拍手をお願いします

    簡易キーボードの作成

    アーケードスティックにラズベリーパイを内蔵、RetroPieをインストールしてエミュ機を作りました。
    しかしMAMEで遊ぶために仰々しいUSBキーボードを繋ぐのは出来れば避けたい所。

    なので以前麻雀コントローラを作る際に使ったキーボードエンコーダを使って
    MAMEのキーボード操作をボタン化して簡易キーボードにしましたという話です。


    因みにキーボードエンコーダについておさらいすると、名前の通りキーボードの基板です。
    入力は全部で32INPUT。各INPUT毎にキーボード上のキーを自由に割り当てられます(専用ツールが必要)。
    設定内容は電源を落としても消えません。なので一回設定してしまえば
    他のマシンに繋ぐだけでそのまま使えます。

    MAMEで使うキーをこれに設定すればボタンでキーボード操作が出来るという仕組みです。

    [Ultimarc I-PAC2]
    http://www.ultimarc.com/ipac1.html

    S1701_IMG_1196.jpg

    とりあえずいくつボタンを用意してどんなキーを割り当てるか???
    ESC、TAB、RET、F3、P、そして矢印キーは必須。
    あと便利なマクロ機能の実行のために2つほど。(今のところ計11個)

    因みにマクロ機能というのはボタンを押したときに、ESC押して矢印キー押して、RETを押す、というような
    一連の動作をボタン一つでやってくれる機能です。

    もうちょっと細かく言うと、今回のI-PAC2の仕様としては・・・・
    1.登録できるマクロは4種類まで。
    2.一つのマクロに登録できるキーは4つ。(もっと欲しい)
    3.作成したマクロは32INPUTのどこにでも設定可能。
    4.登録したマクロのキーが順々に押されるタイミングは設定不可。(PCの処理が遅いと空振りもあります)


    I-PAC2の説明はこれぐらいで、とりあえず作ります。

    ケースはいつもの様に100円ショップのタッパ。www
    ねじ止め式のゲーセンボタンの位置を決めてホールソーで穴開け。
    位置決めがしやすいように100円ショップのマスキングテープをペタペタ貼ってます。

    S1701_IMG_4638.jpg

    穴を開けてボタンを設置して、キーボードエンコーダとボタンを配線、
    PCと繋いで専用ツールから各ボタンの機能を設定しました。(3分間クッキングですみません)
    最終的に割り振ったボタン機能は以下になります。

    S1701_KEY.jpg

    基本はゲームを終了するための赤(MACRO1)、トイレに行くときの黄色(PAUSE)、
    いきなりトチった時の青(RESET)の3つでOKでしょうか。

    それ以外はTABからメニューを開いて設定をする際に使ったり、終了する為の赤(MACRO1)が空振った時の対処など
    手動操作するときに使えばいいかと。

    因みに手前にある赤(MACRO2)は・・emulationStationで誤操作して
    ターミナルを開いてしまったとき、"exit" + RET で抜けるために使います。

    とりあえず作ってみましたが問題なく動いてます。けどこれでもやっぱり大きく感じますね。

    もうちょっと続きます。

    とりあえず今回はここまで。

    ==================================================
    [2017.01.10]追記

    タッパとキーボードエンコーダーで簡易キーボードを作りましたが、
    実はプログラマブルテンキーも検討してました。
    名前の通り前述のタッパと同様にキーバインドを設定できるテンキーです。
    タッパよりもコンパクト、組み込めるマクロも1マクロ当たり30文字まで、
    キートップに透明のカバーがついているのでラベルも作れるというシロモノ。
    30文字も組めるならターミナル画面からコマンドも打てるじゃん。

    [サンワサプライ NT-19UH2BK]
    https://www.sanwa.co.jp/product/syohin.asp?code=NT-19UH2BK

    値段もamazonで2000円程度と仕様を見る分にはパーペキなものです。
    結構期待して買ってみました。

    S1701_IMG_4699_ALL.jpg

    早速マクロを組んでラズベリーパイで動作確認。。
    あれ?マクロに関係なくリターンキーが全く効きません。

    advanceMAMEにある advk というツールで何が押されているのかまずは確認。
    advk:/opt/retoropie/emulator/advmame/1.4/bin/advk
    ==============================
    ( 440.1 ms) [ 1] esc[2]
    ( 8.0 ms) [ 0]
    ( 8.0 ms) [ 1] down[2]
    ( 8.0 ms) [ 0]
    ( 8.0 ms) [ 1] enter_pad[2]    ★ enter_padはテンキー側のリターンキー
    ( 8.0 ms) [ 0]
    ==============================
    普通のリターンキーでなく、テンキー側のリターンキーに割り当てられてました。 orz
    MAMEはデフォルトでは普通のリターンキーでないと反応しません。

    専用ソフトでキーボードの絵に合わせて普通のリターンキーを割り当ててみましたが、
    何をやってもテンキー側のリターンキーが設定されます(^^;;そういう仕様のようです。

    仕方ないのでMAME側で普通のリターンキーだけでなくテンキー側でも反応するように修正。
    #advancemame.rc に input_map[key_enter]で記載しようとしても対応してないので
    #GUI上から設定する必要があります。

    これでどうにかなるだろうと、再度ゲーム中の状態から実行してみましたが・・・
    3割位しか効かないですね。7割は空振ってしまいます。
    パソコンに繋いだり advk で見る分には反応しているのですが・・・・

    ======== プログラマブルテンキー ========
    ( 440.1 ms) [ 1] esc[2]
    ( 8.0 ms) [ 0]
    ( 8.0 ms) [ 1] down[2]
    ( 8.0 ms) [ 0]
    ( 8.0 ms) [ 1] enter_pad[2]
    ( 8.0 ms) [ 0]
    =====================================
    ======== キーボードエンコーダー ========
    (750.1 ms) [ 1] esc[1]
    ( 4.0 ms) [ 2] esc[1] down[1]
    ( 4.0 ms) [ 3] esc[1] enter[1] down[1]
    ( 64.0 ms) [ 2] esc[1] down[1]
    ( 8.0 ms) [ 1] esc[1]
    ( 4.0 ms) [ 0]
    =====================================

    ログを比べてみるとプログラマブルテンキーは8ms毎に1個1個キーを押してます。
    めったに空振りしないキーボードエンコーダーは(挙動が同時押しに見えますが)
    一番短くても64msはキーを押してます。

    ん???ゲーム中の負荷がかかる状態のなか、キーを押している時間が短いから
    プログラマブルテンキーが空振っているのでしょうか?


    とりあえず結論として・・・ラズベリーパイではサンワサプライのプログラマブルテンキーは
    厳しいという結論に私はなりました。(^^;;; 結構期待したのですが・・残念。


    仕方ないので当面はキーボードエンコーダーを積んだタッパで行く形になりそうです。
    けどもうちょっと小さくしたい。そのうち時間が取れたら100円ショップの電卓をベースに
    作り直すことも考えてます。






    余談ですが、タッパがなくてもCOINボタンとの同時押しで最低限の操作が出来るように設定はしてます。(^^;;;

    S1701_IMG_4702_001.jpg
    それじゃ簡易キーボードなんていらないという話にもなるのですが
    操作する度にクレジットがどんどん入っていくのが個人的には好きじゃないんです。。
    簡易キーボードを使わないならCOINボタンの代わりに
    ファンクション用のボタンを追加するのが良いのかも知れませんね。






    もしこの記事が参考になったなら拍手をお願いします

    エミュ機への改造

    ラズベリーパイを使ってエミュ機を作るのが流行っているので
    ちょっと私もアーケードスティックをベースにエミュ機を作ってみました。
    と言っても単にアーケードスティックをベースに色々と内蔵させてみただけです。

      S1701_IMG_4677.jpg

    1.スピナーの増設
      以前Ultimarc社のSpinTrackを購入したものの、お試しで使ってみただけで眠っていてもったいない。
      いい機会なのでアーケードスティックにホールソーで穴を開けてはめ込みました。
      [Ultimarc SpinTrack]
      https://www.ultimarc.com/SpinTrak.html
      
      S1701_IMG_4604.jpg

      因みにこのスピナーはX方向だけのUSBマウスとして認識されます。これでブロック崩しの類もOK。

    2.USBハブの追加
      ジョイスティックで2本、スピナー追加で合計3本のUSBケーブルになってしまったので、
      ハードオフ系のお店で仕入れた300円のUSBハブをアーケードスティックに内蔵しました。
      S1701_IMG_4686.jpg
      因みに白いUSBハブの下にある透明の矢倉はアーケードスティック内を2階建てにするために用意した
      100円ショップのトレーです。

    3.USBケーブルの交換
      元々アーケードスティックで使っていたUSBケーブルは1.8m、アケステ内のUSBハブに接続しようとすると
      長すぎるのでコネクタを作って50cm程度に短くしました。
      S1701_IMG_4640.jpg

    4.電源追加
      とりあえずスティック2本、スピナーの3本のUSBケーブルをハブで1本にしました。
      実際にラズベリーパイに繋いでゲームをしてみると、音にノイズが乗ったり
      急に何秒か動きが妙に遅くなったり、スピナーが急に認識しなくなるとか妙に不安定。

      色々接続形態を試してみたのですが変わらず。結果としてUSBハブに5V電源を追加することで
      きれいに症状が消えました。結論としてUSBハブをバスパワーからセルフパワーに変更です。

      当初はUSBケーブルだけをアーケードスティックから出す予定でしたが、ラズベリーパイと
      USBハブで2本出すのが嫌だったので、ダイソーで仕入れたACタップにUSB電源を2つつけて
      アーケードスティック内に内蔵する形にしました。
      S1701_IMG_4687.jpg

      アーケードスティックからACコードを出すとなると仰々しくなりますが、なんか逆にエミュ機っぽい感じ。


    5.外部接続端子の追加
      HDMIケーブル、そしてUSBケーブルをアーケードスティックにつなぐ必要があるので、
      パネルマウント型のケーブルを中国から仕入れてガワに取り付けました。
      S1701_IMG_4679.jpg

    ということで、とりあえずこんな形になりました。
    手前にあるタッパは簡易キーボードで、これはまた別の時に記事にします。
      S1701_ALL001.jpg


    エミュレータで遊ぶ際、デスクトップPCを利用する関係で場所が固定になるので
    PCレス(実際は内蔵してますが)で利用できる環境って昔から欲しかったんですよね。
    HDMI出力なのでTVでも液晶モニタでもOKですし。

    ということで、アーケードスティックのエミュ機への改造でした。
    もしこの記事が参考になったなら拍手をお願いします

    CD-ROM2 リングの代替え

    CD-ROM2のギアを止める黒いリングを破損したり紛失したりした場合、
    1.5mmの金属製のEクリップ(E型止め輪)で代用することが出来ます。

    Eクリップは純正の黒いリングとは違ってバネが少々固めなので
    取り外しの際にギアを傷つけないよう注意が必要です。
    S1606_IMG_4100.jpg

    =========================================
    この金属製のEクリップは以下で購入できます。
    http://sellinglist.auctions.yahoo.co.jp/user/eshop_ohkuya
    S1606_EClip.jpg
    ネットショップで購入すると100個単位だったり、値段にくらべ送料が妙に高くついたりと
    非常に効率が悪いので、個人購入しやすい値段と送料になっています。
    =========================================



    「取り付け方」
    黒いリングが止まる溝の上にEクリップをのせて、マイナスドライバーなどで下方向に押し込みます。
    純正のリングとは違い軸に対し横方向から出し入れすることにご注意ください。

    S1606_IMG_4062.jpg

    「取り外し方」
    取り付けとは逆です。二本の足を同時に上方向に押し上げます。
    純正の黒いリングの場合はカッターの刃で簡単に外せますが、
    Eクリップの場合はバネが強いので横方向から出し入れするようにしてください。
    S1606_IMG_4064.jpg


    以前近所で仕入れた2.0mmのEクリップを試しましたが、
    1.5mmの方が軸にピッタリはまります。

    以上、ギアを止めるリングの代替えでした。

    もしこの記事が参考になったなら拍手をお願いします

    <<PREV | | NEXT>>

    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。