スーパーファミコンのコントローラーの中にRaspberry Zero W + Retropie を入れたコントローラー兼レトロゲーム機

Retropie

海外でスーパーファミコン(SNES)のコントローラー内にRaspberry Pi Zero またはWを入れ、コントローラーの制御をGPIOに直接繋げておこなうプロジェクトがありました。

話題のミニスーパーファミコンよりも小さく面白い&簡単だったので同じように作ってみた!

海外の紹介では、電源をコンセントから取るのではなく、バッテリーにしています。その際、バッテリとRaspberry Pi とは直接繋げられず、もう1枚小さな基板をかませます。

バッテリー自体はそれほど高価ではありませんが、屋内で使うゲーム機に電源を取れないとは考えにくいのでここでは省きました。

USB端子のあるテレビなら、そこから電源が取れます。

同じように作ってみてください!

今回の材料

  • Raspberry Pi Zero W
  • マイクロSDカード
  • microUSB変換ケーブル
  • ミニHDMI変換ケーブル
  • スーパーファミコンのコントローラー ジャンク

microUSBとミニHDMIの変換ケーブルは太さや長さの問題はありますが、もっと低価格で入手可能です。

変換ケーブルは、100円ショップ品は長さが無いので、少し長いケーブル状の物を選びます。幅が大きいためケーブル式の方が作りやすかったです。

また、スーパーファミコンのコントローラーは概ね216円で手に入りますが、今回はほぼ新品に近いため324円のジャンク品を選びました。

いずれにしてもミニスーパーファミコンより安価です。

仕様

  • コントローラーの配線5本の箇所にGPIOの対応ピンへはんだ付けする。
  • 電源は内蔵バッテリーの方がより良いが、製作を簡単にするためモバイルバッテリーかコンセントにする。

(テレビ側のUSB口に繋いでやればコンセントも要らない?? 給電だけはできないのかな??)

コントローラーの加工

2つのケーブルをコントローラー上部から出すためにコントローラーケース(以下ケース)を削り加工する。

スーファミコントローラーケース下側
スーファミコントローラーケース下側
ケースの切断箇所はこの2点
ケースの切断箇所はこの2点

ケーブルが通る位置を削る。下側も上側も同じくらいに削ると良さそう。

マークしてからニッパーで大まかに切り取り、棒ヤスリで削った。

こんな仕上がり
こんな仕上がり

ケースの反対側(裏側)は補強のための成形が邪魔なので削り取る。他のサイトのように全て取る必要は無かった。バッテリーを入れる場合は全て取らないと干渉しますね。

ケース裏側の加工

アップ
加工済みアップ

ケースの加工はプラスティックなので簡単です。ただ、細かな作業をするには固いので割れます。工具があればなんですが、売り物ではないので使えればOKというラフさでもケーブルを通せばそれほど目立たなくなります。

ヤスリ後
ヤスリ後

ヤスリ後通すケーブルによって大きさは変わります。特にHDMIの変換ケーブルは短いと横幅が大きくなるのでLRボタンに干渉します。

長めのケーブルでも写真のようにギリギリです。写真ではまだ5ミリ程度は余裕がありますが、中のLRボタン端がギリギリなのでこれが限界ですね。

仮にバッテリーを入れることを考えれば、ケーブルは1本だけでいので、中心も含め大幅に切り取れると思います。

今回のHDMI変換ケーブルはこれを使いました。(ちょっと良い奴)

ホーリック HDMIマイクロ変換アダプタ 7cm シルバー

ちなみに、MicroUSB変換コードは、100円ショップでも運がいいとあります。

\ Raspberry Pi 4はメモリー8GBが最新 /

【セット概要】「データーベース」「Webサーバー」「NAS」「AI処理」「4K画像での2画面処理」などの高負荷がかかる処理を、長時間稼働させるのに必要な負荷テスト行い、当社で厳選した高品質なパーツを組み合わせたセットです。高品質なAnker製USB電源の採用、トラブルの原因になりやすい電源周りをデジタルモニターリングできるをType-Cケーブル、Raspberry財団認定モデル 高速タイプ 100MB/sec 128GB MicroSD、静音FANによる強制冷却など、高負荷運用でも長期に渡る安定稼働が可能です。また単品でご購入いただくよりお得です。

はんだ付け

ケースの加工の次ははんだ付けです。
スーパーファミコンのコントローラー基板とRaspberry Pi のGPIOを繋ぎます。

コントローラー基板は元々5本のリード線が1つの端子にまとまって1本のケーブルで外に出ています。この5本をそれぞれGPIOの対応したピンに直接接続することで制御します。

まず、元々付いている端子を溶かして外し、穴だけの状態にします。

はんだ付け後
はんだ付け後

真ん中の5つを溶かします

裏側には端子を接続するアタッチメントがはんだ付けされているのが分かります。

白いアダプタを外す
白いアダプタを外す

白いアダプタを外すこの辺りは慣れでしょう。仮に壊れても216円でまた買えば済むと思います(^0^;)

結構、乱雑に扱いましたが壊れることもなかったので安心してください。

はんだ付け後は、こんな感じです。

はんだ付け後
はんだ付け後

では、GPIOのどのピンに接続するのか次にご紹介します!

GPIOのどの場所へ取り付けるか

ここが一番キモですね。この番号を間違えれば動きません。というより壊れますね。

探してみるとこれという情報はありませんでした。いくつかのサイトを参考にスーパーファミコンの場合と置き換えて調べました。

実は、1番から5番とコントローラー基板に記載があったのですが、完全に間反対に間違えてしまって、電源入れたらコントローラー基板のコアがめちゃくちゃ熱くなって焦りました・・・(^0^;)

何度も確認した方がいいですね。間違えずに取り付けてください。

GPIO取り付け位置
GPIO取り付け位置

GPIO取り付け位置(これが一番分かりやすい画像でした!)

線は元々スーパーファミコンコントローラー基板に使っていたのを流用しましたが、細い線であったので取り付けに苦労しました。また、上の写真と色が同じで分かりやすいのが、そもそも順番を間違えて線の色をはんだ付けしてしまったので、余計にこんがらがって・・・。
線は太い方がやりやすいです。ただ、長いと取り回しに苦労するとは思います。

Raspberry Pi のGPIO図

GPIO
GPIO番号図

文字で記載すると・・・。

コントローラー基盤とGPIOピンの対照表

SFC側コントローラー基板Raspberry Pi のGPIOピン番号
19(GND)
25(GPIO)
325(GND)
421(GPIO)
51(3.3V)

コントローラー基板には1と5と番号が印刷されています。どちらが1か5か確認してください。真反対にしてしまうと発熱やショート発火など危険です!(体験者は語る)

OSのインストールと設定

ハードウェアの製作が終わったら、ここからはソフトウェアの準備です。

OSにはRetropieを使用します。そしてコントローラーのドライバをセットアップすれば出来上がります。

今回はHDMIでPCモニターに繋いでセットアップしました。テレビでも良いのですが、画面が粗くて見えづらいと思います。

尚、キーボードを余っているもう一つのUSBに繋げて操作するか、SSHで他のマシンからでも可能です。

まずはRetropieをSDカードに焼き付け、設定を行います。
今回はRaspberry Pi Zero Wを使用したので、Wi-Fiの設定を行い、外部から操作できるようにしておきます。

以下の手順で紹介していますので参考にしてください。ここでは省きます。

RaspbianをインストールするときSSHを有効化する方法

Raspberry Pi zero W のヘッドレスインストール(キーボードやマウスなしでRaspbianをインストールする方法)

root権限のパスワード設定

念のためrootのパスワードを設定しておきます。自宅以外でも利用することを考えてのことです。
必要無いなと思われたら飛ばしてください。

sudo passwd

※初めはrootにはパスワードが設定されていません。

ドライバーの適用

retropieを初めて起動すると以下の画像のように、コントローラーの設定画面になります。ただ、この段階ではGPIOに繋いだコントローラーは認識していませんのでAボタンを押しても何も起こりません。

この状態では手も足も出ないため、ファンクションキーF4でこの画面を抜けられ、CUIの画面になります。

コマンドにて操作

$ sudo ~/RetroPie-Setup/retropie_setup.sh

Raspberry Pi Zero Wは速度が遅いため、表示されるまで多少時間がかかります。何も起きていないように思えますが、5秒ほど待ってください。

次にセットアップメニューから操作

Manage Packages → Manage Driver Packages → gamecondriver

Gamecon & db9 driversをインストールしてください。

参考 https://github.com/RetroPie/RetroPie-Setup/wiki/GPIO-Modules

環境設定

sudo modprobe gamecon_gpio_rpi map=0,0,1,1,0,0

Controller Type Legend

0 = No connection
1 = SNES gamepad
2 = NES gamepad
3 = Gamecube gamepad
6 = N64 gamepad
7 = PSX/PS2 gamepad
8 = PSX DDR gamepad
9 = SNES mouse

コマンドを叩けば環境設定は終了です。

ジョイスティックのテストが以下のコマンドでできます。

jstest /dev/input/js1

本来、js0がデフォルトなはずで、他のサイトでもjs0の記載があります。他にコントローラーを繋いでいるわけでもないので、js0で良いはずです。何か他のオプションをチェックしてしまったのか、js1で反応しました。この辺りは試行錯誤してみてください。

コマンドで以下のように表示されます。

pi@retropie:~ $ jstest /dev/input/js1
 Driver version is 2.1.0.
 Joystick (SNES pad) has 2 axes (X, Y)
 and 8 buttons (BtnX, BtnY, BtnTL, BtnTR, BtnTR2, BtnSelect, BtnThumbL, BtnThumbR).
 Testing … (interrupt to exit)
 Axes:  0:     0  1:     0 Buttons:  0:off  1:off  2:off  3:off  4:off  5:off  6:off  7:off

最後の行(赤マーカー部分)の数字:offの部分がボタンを押すとonに変わる。

ここで動かない場合は、恐らく配線が通電していないと思われます(配線間違いかはんだ付けミス)

もしもjs1がないというエラーの場合は、sudo apt-get install joystick でインストールかけると現れる(ハズです)(アプリケーションは既に最新が入っていると思うのでインストール自体は行われない)

完成!

sns_controller pi
スーパーファミコン内蔵SFCコントローラー本体

ケースの製作にはそれなりに時間を掛けました。それでも意外と簡単にできる物です。

設定やコマンドなどキャプチャ画像を取り忘れるくらいにあっという間に終わります。

今回、他の情報が多く、理解せずに迷って試行錯誤した部分があるので、遠回りしてセットアップしました。しかし、終わってみれば簡単なこと。ドライバー入れて終わりくらいの勢いですね。

こうやってRaspberry Pi に触れてみると、よく出来た基板だなーと痛感します。物づくりの楽しさが味わえます。

エミュレータに関しては、グレーな部分も多く、ROMの入手方法などは各自が合法の範囲で入手してください。パブリックドメインのROMも多数あります。それらで楽しむのも一興です。

これでRaspberry Pi はこれまで2B×1、3B×3、Zero W×2と製作しました。安いので負担になりませんね。ただ、Zero系がなかなか手に入らないことがネックです。

このSFCコントローラーにラズパイを入れるという日本語環境の記事が1件しか見つかりませんでしたので改めて記事にしました。

参考:https://github.com/RetroPie/RetroPie-Setup/wiki/GPIO-Modules
http://wordpress.ideacompo.com/?p=5850
https://retropie.org.uk/forum/topic/4322/snes-straight-to-gpio
https://hackaday.io/project/16288-raspberry-pi-zero-inside-an-snes-controller

ラズパイダ

ラズパイダ

学べる楽しむ便利になる。小さいくせにヤケにパワフル。そんなRaspberry Pi をまだ知らない人に伝えたい。様々な場所で利用されているRaspberry Pi を知って「あっ、これもラズパイだっ!」だからラズパイダ!

関連記事

特集記事

コメント

この記事へのコメントはありません。

最近の記事 はじめて向け
  1. OMV5のアップデートエラー回避

  2. Raspberry Pi Pico マイコンボード、僅か4ドルで登場

  3. お掃除ルンバのアイロボットから教育用ロボット「Root」発表

  4. 【海外】プライステーション2の中にラズパイ4を組み込んで多目的マシン

  5. openSUSEがRaspberry Pi 4と400、Compute Module 4をサポート(まだバグあり)

  1. お掃除ルンバのアイロボットから教育用ロボット「Root」発表

  2. 【初心者向け】Raspberry Pi 4との接続方法(電源、HDMI)

  3. 【初心者向け】はじめてRaspberry Pi OS をダウンロードする人へ

おすすめの記事

  1. Raspberry Pi 4のOSをデスクトップPCとして使うためにUbuntuMATEをインストールしてみた

  2. ラズパイ(Raspberry Pi)を使ってできるメディアセンター3選

  3. ラズパイ4で動いたOS一挙に10選とおすすめのデスクトップ代替OS

  4. NextcloudとRaspberry Pi 3B+で作る自分専用クラウド

  5. DAZNをラズパイのLibreELECで観る方法

  6. ラズパイで実用的な物を作るなら特化したOSから始めてみよう

今月の人気記事

  1. 1

    Raspberry Pi で動く様々なOS一覧まとめ13種類!

  2. 2

    ラズパイ4をUSB接続のSSDから起動する方法(USBブート)

  3. 3

    初心者でもラズパイでNASサーバーを作ってみよう!

  4. 4

    Raspberry Pi 4の初期設定2020年版

  5. 5

    Raspbian のWi-Fi設定(Raspberry Pi 初期設定)

  6. 6

    ラズパイ4とOMV5(openmediavault5)で作る自宅NASサーバーの設定方法

  7. 7

    Raspberry Pi 4を起動したのにモニターに画面が映らない対処法

  8. 8

    ラズパイ4はPCライクな性能になったけどPCではないよという話

  9. 9

    Raspberry Pi 4のOSをデスクトップPCとして使うためにUbuntuMATEをインストールしてみた

  10. 10

    ラズパイで使うmicroSDカードの選び方

記事ランキングページ

TOP