
Raspberry Pi ハンドヘルド ゲーム キットはどのように機能しますか?
Raspberry Pi ハンドヘルド ゲーム キットは、シングルボード コンピュータとディスプレイ、物理コントロール、バッテリー システムを組み合わせることで機能します。これらはすべて、クラシック ゲーム コードを実行可能な命令に変換するエミュレーション ソフトウェアによって調整されます。{0} Raspberry Pi は中央プロセッサとして機能し、さまざまなゲーム コンソール用の複数のエミュレータを含む RetroPie や Recalbox などの特殊なオペレーティング システムを実行します。
これらのシステムは、GPIO ピンと通信プロトコルを介してコンポーネントを物理的に接続するハードウェア統合、ビンテージ ゲーム ハードウェアの動作を模倣するソフトウェア エミュレーション、およびすべてのコンポーネントの安定した電圧を維持するためにバッテリー出力を調整する電源管理という 3 つの相互接続された層に依存しています。
コアハードウェアアーキテクチャ
Raspberry Pi ハンドヘルドの基礎はシングルボード コンピュータ自体です。{0}ほとんどのビルダーは、超コンパクトなビルド用の Pi Zero 2 W か、より要求の厳しいエミュレーション用の Pi 4 を選択します。- Pi Zero 2 W はアクティブなゲーム中に約 500 ~ 800 mA を消費しますが、Pi 4 は Nintendo 64 や PlayStation 1 などのより複雑なシステムをエミュレートする場合、全負荷時に最大 1.5 A を消費する可能性があります。
コンポーネントの選択により、一連の技術的な決定が段階的に行われます。 3.5 インチ 640x480 ディスプレイには、5 インチ HDMI 画面とは異なる GPIO ピン構成が必要です。前者は通常、データ/コマンド選択用の GPIO 25 やチップ選択用の GPIO 8 などのピンを使用して SPI (シリアル ペリフェラル インターフェイス) 経由で接続し、200 ~ 300mA を消費します。 HDMI ディスプレイは専用ビデオ ポートを介して接続しますが、独自の電源回路が必要で、多くの場合、バッテリー システムから追加で 400 ~ 500 mA を消費します。
物理制御は、内部プルアップ抵抗を備えた入力として構成された GPIO ピンに直接接続されます。{0}ボタンを押してピンを接地すると、ソフトウェア層が状態の変化を検出します。標準的な制御方式では、少なくとも 12 個の GPIO ピンが必要です。方向パッド (上、下、左、右) に 4 個、アクション ボタン (A、B、X、Y) に 4 個、ショルダー ボタン (L、R) に 2 個、システム コントロール (スタート、選択) に 2 個です。高度なビルダーは、シフト レジスタまたは I2C エクスパンダを使用してピン数を減らすために多重化を実装し、わずか 3 ~ 4 ピンを介して 16+ 入力を可能にします。
ディスプレイ インターフェイスは、ビルドの複雑さを大きく左右します。 SPI ディスプレイでは、手動でドライバーをインストールし、構成ファイルを編集して、回転角度、リフレッシュ レート、タッチ オーバーレイ キャリブレーションなどのパラメーターを指定する必要があります。公式 Raspberry Pi の DSI (ディスプレイ シリアル インターフェイス) 接続では、デバイス ツリー オーバーレイによる自動検出が表示され、ソフトウェアのセットアップが簡素化されますが、組み立て中に壊れやすい正確なリボン ケーブル接続が必要です。
電力システムエンジニアリング
バッテリー管理により、機能するビルドと火災の危険が分離されます。リチウムポリマーセルは公称電圧 3.7V を出力しますが、完全充電の 4.2V と放電後の 3.0V の間で変動します。 Raspberry Pi は十分なアンペア数で安定した 5V を必要とするため、昇圧コンバータ回路が必要です。
人気のあるソリューションには、3.7V LiPo 入力を受け入れ、2A ピーク能力で最大 1A 連続の安定化 5V 出力を提供する Adafruit PowerBoost 1000C が含まれます。変換効率は負荷に応じて 80-92% の範囲になります。つまり、2500mAh のバッテリーでは 2500mAh の使用可能な電力が供給されず、変換損失後は 2000 ~ 2200mAh 近くになることが予想されます。
重要な安全機能により、致命的な障害が防止されます。 TP4056 充電管理 IC はリチウム電池の充電を処理し、過充電を防ぐために電流を 1C (1000mAh セルの場合 1000mA) に制限し、4.2V で終了します。保護回路は、過放電(2.8-3.0V 以下で電力を遮断)、短絡、過熱状態を監視します。{7}}これらの保護が欠けている建物は熱暴走の危険性があり、内部抵抗によって熱が発生し、化学反応が促進され、火災が発生する可能性があります。
バッテリーの実行時間を計算すると、電力バジェットの現実が明らかになります。 3.5 インチ SPI ディスプレイと増幅されたオーディオを備えた Pi Zero 2 W システムは、合計で約 750mA を消費します。 4000mAh バッテリーと 85% の変換効率を備えた場合、理論上の実行時間は 4.5 時間に達しますが、プロセッサの負荷と画面の明るさが変動するため、集中的なゲームでは通常 3 ~ 3.5 時間かかります。
高度な電源管理には、GPIO{0}} ベースのモニタリングが含まれます。 PowerBoost のバッテリー低下警告ピンを GPIO 15 に接続すると、ソフトウェアが 3.2V 未満の電圧降下を検出し、SD カードの破損を防ぐ正常なシャットダウン ルーチンをトリガーできるようになります。一部のビルドには、I2C 経由で通信する MAX17048 などのバッテリ残量ゲージ IC が実装されており、単純な電圧しきい値ではなく正確な充電状態を提供します。{7}}-

ソフトウェアエミュレーションの仕組み
RetroPie は、グラフィカル フロントエンドを提供する EmulationStation を備えた Raspberry Pi OS 上に構築された、主要なソフトウェア プラットフォームとして機能します。システム アーキテクチャは 3 つの層で構成されています。ハードウェア抽象化を管理する Linux カーネル、標準化されたコントローラ API を備えたエミュレーション フレームワークとして機能する RetroArch、コンソール固有のエミュレーションを実行する個別の libretro コアです。-
ゲームを起動すると、EmulationStation は ROM ファイルのパスを RetroArch に渡し、適切なコアを読み込みます。-たとえば、スーパー ファミコン ゲーム用の Snes9x などです。エミュレータは ROM バイナリ データを読み取り、元のコンソールのプロセッサ命令を解釈します。 3.58MHz で動作する SNES の Ricoh 5A22 CPU の場合、1-1.8GHz で動作する最新の Raspberry Pi プロセッサは、生のクロック速度の 400 倍を超えますが、正確なエミュレーションにはサイクルレベルの精度が必要であり、かなりの処理能力を消費します。
フレーム ペーシングはゲームプレイのスムーズさを決定します。オリジナルのコンソールは、固定リフレッシュ レート (NTSC システムの場合は 60 Hz、PAL の場合は 50 Hz) で出力します。 RetroArch のビデオ ドライバーは、エミュレーション速度をディスプレイのリフレッシュ レートに同期させ、タイミングの不一致が発生した場合にフレームをドロップまたは複製します。オーディオの遅延はバッファ サイズに起因します。バッファが小さい (64 ~ 128 サンプル) と遅延は減少しますが、低速なハードウェアではパチパチ音を立てる危険性があります。一方、バッファが大きい (256 ~ 512 サンプル) と、20 ~ 40 ミリ秒の入力ラグを犠牲にしてスムーズなオーディオが保証されます。
エミュレータが異なれば、要求されるリソースも大きく異なります。{0}NES や Game Boy などのビット システムは Pi Zero 上で難なく動作し、CPU を 15~25% 消費します。スーパーファミコンのエミュレーションには Pi Zero 2 W で 40 ~ 60% が必要ですが、PlayStation 1 では 70 ~ 85% が必要です。 Nintendo 64 エミュレーションは Pi 4 でも依然として問題があり、Pi の優れた仕様にもかかわらず、多くのタイトルでフレーム ドロップやグラフィックの不具合が発生しています。これは、N64 の MIPS R4300i CPU とリアリティ コプロセッサの正確なエミュレーションには正確なタイミングが必要であり、ソフトウェアの解釈では達成するのが難しいためです。
構成は、retroarch.cfg とシステム固有のファイルを通じて行われます。-ビデオ設定は、解像度のスケーリング-ピクセルのポイント サンプリング-完璧な信頼性と滑らかさのための双線形フィルタリングを制御します。シェーダーはリアルタイムの視覚効果を適用し、CRT スキャンラインやハンドヘルド LCD マトリックスをシミュレートしますが、各シェーダー レイヤは GPU リソースを消費します。-オーディオのリサンプリング品質は、サウンドの忠実度と処理オーバーヘッドの両方に影響します。
入力マッピングは、物理的なボタンの押下を仮想コントローラー信号に変換します。 RetroPie は 2 層システムを使用しています。EmulationStation はメニュー ナビゲーション用の物理入力をマップし、RetroArch はゲーム内のコントロールを処理します。- GPIO- ベースのコントローラは、カーネル レベルで仮想ゲームパッド デバイスを作成する GPIONext などのソフトウェアを採用しており、エミュレータの観点からは USB コントローラと同じように見えます。
ディスプレイとオーディオの統合
画面テクノロジーはユーザー エクスペリエンスを根本的に形成します。 SPI ディスプレイはシリアル通信を行い、共有ピン間でピクセル データを一度に 1 ビットずつ転送します。これにより、リフレッシュ レートが制限されます。-ほとんどの 3.5- インチ SPI 画面の最大値は 30-40fps で、古いタイトルには十分ですが、ペースの速いゲームには問題があります。 fbcp-ili9341 ドライバーは 80MHz でのハードウェア SPI を有効にし、パフォーマンスを向上させますが、カーネル モジュールのコンパイルが必要です。
HDMI ディスプレイはネイティブ解像度サポートと 60fps 機能を提供しますが、ポータブル設計は複雑になります。ミニ HDMI からマイクロ HDMI へのアダプターは、故障しやすい機械的ストレスポイントをもたらします。ケーブルの配線は、ディスプレイの消費電力を考慮する必要があります。バッテリー回路から直接別の 5V 電源ラインを実行することで、プロセッサーの負荷が急上昇したときに画面のちらつきを引き起こす電圧低下を防ぎます。
抵抗膜スクリーンのタッチ機能にはキャリブレーションが必要です。 tslib ライブラリは、7 点キャリブレーション マトリックスを通じて物理的なタッチ座標をマップしてピクセルを表示します。静電容量式タッチ ディスプレイは I2C プロトコル経由で通信し、最大 10 個の同時タッチ ポイントを報告しますが、追加の GPIO ピンを消費し、互換性のあるカーネル ドライバーが必要です。
オーディオ実装では、通常、基本出力には PWM (パルス幅変調)、高品質の結果には I2S (IC 間サウンド) が使用されます。 Pi の内蔵 3.5 mm ジャックは、許容範囲内ですがノイズの多い音声を生成し、静かな通路ではヒス音が聞こえます。- PCM5102A などの専用 DAC モジュールは、I2S ピン (GPIO 18、19、21) を介して接続し、100dB を超える信号対雑音比で 24- ビット/192kHz オーディオを提供します。-
増幅要件はスピーカーのインピーダンスによって異なります。小型 8 オーム 0.5W スピーカーは、PAM8403 クラス D アンプと組み合わせて、90% の効率でチャンネルあたり 3W を供給します。ボリューム制御は、アンプに接続されたハードウェア ポテンショメータ、または ALSA (Advanced Linux Sound Architecture) でのソフトウェア ミキシングのいずれかによって行われ、後者ではわずかなレイテンシーが発生しますが、正確なデジタル制御が可能になります。
GPIO コントローラーの実装
GPIO (汎用入力/出力) ヘッダーは、電源、グランド、ディスプレイ通信用に予約されているピンを考慮した上で、ボタン入力に使用可能な 26 個のピンを提供します。内部 50kΩ プルアップ抵抗で構成された各入力ピンは、ボタンが押されていないときは 3.3V になります。ピンとグランドの間に接続されたボタンを押すと、電圧が 0V に引き下げられ、検出可能な状態変化が生じます。
ソフトウェアデバウンス機能により、機械的スイッチのバウンスによる誤ったトリガーを防ぎます。一般的な実装では、10ms ごとにピンの状態をサンプリングし、3 つの連続した読み取りが一致したときに押下を確認します。スイッチ端子間の 100nF コンデンサを使用したハードウェア デバウンスにより、よりクリーンな信号が得られますが、コンポーネント数とスペース要件が追加されます。
マトリックス スキャンにより、16+ ボタンを使用したビルドのピンの使用量が削減されます。 4x4 マトリックスは 8 つの GPIO ピン-4 つの出力と 4 つの入力を使用します。ソフトウェアは、入力列を読み取りながら各出力行に順次通電し、どのボタンが押されたかを検出します。高速なボタン シーケンス中の入力ミスを防ぐには、スキャン レートが 100Hz を超える必要があり、メイン プログラム ループでタイミングが複雑になります。
高度なビルドには、ジョイスティック用のアナログ入力が組み込まれています。 Pi にはネイティブのアナログ-デジタル コンバータがないため、I2C 経由で接続された ADS1115 などの外部 ADC チップが必要です。各ジョイスティックは X 軸と Y 軸に 2 つのアナログ チャネルを使用し、RetroArch との互換性のためにソフトウェアが -32768 から +32767 にマッピングする 0 ~ 65535 の値を報告します。
熱管理に関する考慮事項
Raspberry Pi の BCM2711 SoC (Pi 4 上) または BCM2710A1 (Pi Zero 2 W 上) は、負荷が継続するとかなりの熱を生成します。熱管理を行わないと、損傷を防ぐために CPU が 80 度で 1.8 GHz から 1.0 GHz にスロットルされ、ゲームプレイ中にフレーム レートが突然低下します。
熱接着パッドを備えたアルミニウム ヒートシンクを使用したパッシブ冷却は、対流によって 2-3W を放散します。ヒートシンクの表面積とフィンの設計によって冷却能力が決まります。垂直フィンを備えた 15x15x10mm のヒートシンクは、中程度の負荷時に周囲温度より 10 ~ 15 度低い温度を維持できます。
30x30mm 5V ファンによるアクティブ冷却により、1-2 CFM の空気が移動し、持続的なターボ モード動作が可能になります。 GPIO パルス幅変調によるファン制御は、/sys/class/thermal/thermal_zone0/temp からの CPU 温度読み取り値に基づいて速度を調整します。ヒステリシスを実装する (ファンを 65 度で開始し、55 度まで停止しない) と、耳障りな急速な循環が防止されます。
エンクロージャの設計はエアフローに重大な影響を与えます。プロセッサ近くのクロスフロー吸気-と反対側の排気-のために配置された通気口が、一貫した空気の動きを生み出します。通気性のない固体プラスチック ケースは熱を閉じ込める可能性があり、ヒートシンクが取り付けられている場合でもサーマル スロットルを引き起こす可能性があります。. 3D-空気の流れを妨げない内部サポート構造を備えたプリント ケースは、冷却と構造的完全性の両方を最適化します。
組み立てプロセスとよくある落とし穴
物理的な構築は、ケースの外側でのコンポーネントのテストから始まります。 SD カードの起動中に HDMI 経由で Pi をモニターに接続すると、RetroPie はディスプレイやコントローラーが複雑になる前に基本機能を検証します。この診断手順により、ケーブルへのアクセスが困難な組み立て済みユニットのトラブルシューティングが妨げられます。
GPIO ピンの識別エラーは、最もイライラする失敗の原因となります。 40- ピン ヘッダーはピンに 1 ~ 40 の番号を付けますが、GPIO 番号は異なります。物理的なピン 11 は GPIO 17 です。ボード番号に物理的に接続しているときにソフトウェアで BCM 番号付けスキームを使用すると、診断が困難な不一致が生じます。ピン配置図を印刷してマルチメーターで確認すると、デバッグにかかる時間を節約できます。
はんだ接合の品質が信頼性を決定します。冷はんだ接合部-光沢のある凸状ビーズ-は抵抗が高く、動作中に接合部が加熱すると断続的な接続が発生します。適切な接合部は滑らかで凹面の鈍い灰色に見え、完全な金属融合を示します。基板上に残ったフラックス残留物は、隣接するピン間で電流漏れを引き起こす可能性があり、特に湿気の多い環境では問題となります。
接続部に機械的負担がかかると、早期故障が発生します。 Pi Zero のマイクロ USB ポートは、PCB から取り外されるまで約 5,000 回の挿入サイクルに耐えます。電源線をテストパッドに直接はんだ付けすると、この障害点は解消されますが、保証は無効になります。すべてのケーブル接続にストレイン リリーフを使用すると、-ホットグルーが驚くほど効果的です-。はんだ接合部を疲労させる屈曲を防ぎます。
SD カードの互換性は、予想外に安定性に影響します。すべてのカードがエミュレーションによって生成される高速で小規模な書き込みを処理できるわけではありません。ランダム書き込み IOPS が高いクラス 10 または UHS{4}1 カードは、シーケンシャル-速度-に最適化されたカードよりも優れたパフォーマンスを発揮します。 SanDisk または Samsung の純正カードは、紙上の仕様が同一であるにもかかわらず、無名の代替カードよりもファイル破損の問題が大幅に少なくなります。

パフォーマンス最適化手法
オーバークロックにより、ハードウェアが定格仕様を超えてエミュレーション パフォーマンスが向上します。 Pi Zero 2 W のデフォルトの 1GHz ARM Cortex-A53 コアは、適切な冷却により 1.2 ~ 1.3GHz に達し、要求の厳しいタイトルで PlayStation 1 のフレーム レートを 40fps から 55fps に向上させます。 /boot/config.txt で arm_freq=1200 を設定し、over_voltage=4 を増やして高周波数を安定させることで構成が行われます。
GPU メモリの割り当てにより、ビデオ パフォーマンスとシステム RAM のバランスがとれます。 RetroPie は、1GB Pi モデルではデフォルトで 256MB GPU 割り当てに設定されています。 128MB に削減すると、720p 出力に十分なビデオ バッファーを提供しながら、エミュレーション プロセス用にメモリが解放されます。 config.txt の gpu_mem パラメータは、この分割を制御します。
カーネル ガバナは、CPU 周波数のスケーリング動作に影響を与えます。 「オンデマンド」ガバナーは負荷に基づいて周波数を調整しますが、移行中に遅延が発生します。 「パフォーマンス」ガバナに切り替えると、CPU が最大周波数でロックされ、消費電力と発熱が増加しますが、一貫したフレーム時間が確保されます。これは、瞬間的な速度低下が認識される N64 または Dreamcast エミュレーション中に最も重要です。
ROM の保存場所はロード時間に大きく影響します。 ROM を SD カードの高速パーティション (ルート ファイルシステム) に保存すると、遅い USB スティックからゲームをロードするよりも 2 ~ 3 倍速くゲームがロードされます。 SMB 共有を介したネットワーク ストレージでは、変動する遅延が発生し、ネットワークが混雑しているときに音声の途切れが発生します。
シェーダーの最適化には選択的な使用が必要です。スキャンライン シェーダーは最小限のリソースを消費し、追加する GPU 負荷は 5% 未満です。ブルーム エフェクトを備えた CRT-Royale などの高度なシェーダは、GPU 容量の 40 ~ 50% を消費し、低速なハードウェアではフレーム ドロップを引き起こす可能性があります。説明に依存するのではなく、各シェーダーが実際のフレーム レートに与える影響をテストすることで、プレイアビリティの問題を回避できます。
キットのバリエーションと設計のトレードオフ
PiBoy DMG などの商用キットは、ゲームボーイ スタイルのシェルにボタン マトリックス、スピーカー アンプ、バッテリー管理が統合された、組み立て済みの PCB を提供します。{0}{1}{1}これらにより、リボン ケーブルの接続や Pi の取り付けまでの組み立てが簡素化されますが、カスタマイズが制限され、Pi とバッテリーを追加する前にシェルだけで 80 ~ 120 ドルかかることがよくあります。
DIY ビルドでは、複雑さを犠牲にして完全な制御を提供します。個々のコンポーネント-ディスプレイ、ボタン、バッテリー、充電回路、ケース-を調達するには、互換性を調査し、電気仕様を理解する必要があります。完全なカスタムビルドには材料費が 60 ~ 80 ドルかかりますが、設計、3D プリント、配線、トラブルシューティングに 15 ~ 25 時間かかります。
フォームファクターの選択は人間工学に大きく影響します。縦型のゲームボーイ-スタイルのレイアウトは、8- ビットおよび 16 ビットのゲームに自然に感じられますが、アナログ コントロールがありません。 PlayStation Portable に似た水平デザインはデュアル アナログ スティックに対応しますが、ポケットに持ち運べる以上に幅が広がります。クラムシェル DS スタイルのビルドは画面を保護しますが、ヒンジ機構が複雑で、別個のドライバー構成を備えたデュアル ディスプレイが必要です。
画面サイズとバッテリー寿命には常にトレードオフがあります。 5 インチ HDMI ディスプレイは 600 ~ 700mA を消費しますが、3.5 インチ SPI スクリーンは 200 ~ 250mA を消費します。この 400mA の差は、一般的な 4000mAh バッテリーで約 2 時間の稼働時間に相当します。長時間のゲームセッションを優先するビルダーは、視認性が低下しても小さいディスプレイを選択します。
コンポーネントの品質のばらつきが DIY ビルドの悩みの種です。一般的な AliExpress ディスプレイは 15 ドル節約できるかもしれませんが、ピクセルが消えていたり、視野角が不十分であったり、ドライバーのマニュアルが間違っていたりすることがあります。ブランド名 Waveshare または Adafruit の部品は高価ですが、信頼できるドキュメントとコミュニティ サポートが含まれています。正当なブランドのトラブルシューティングにかかる時間の節約は通常、価格プレミアムを上回ります。
ソフトウェア構成の詳細
RetroPie の初期セットアップでは、Raspberry Pi Imager などのツールを使用して OS イメージを SD カードに書き込む必要があります。最初の起動では、カード容量をすべて使用できるようにファイルシステムが拡張され、EmulationStation のコントローラ設定ウィザードが起動されます。このウィザードは、物理入力を RetroArch コントローラ抽象化レイヤにマッピングします-各ボタンを押すと、RetroArch がエミュレートされたコンソール入力に変換するキーコードが保存されます。
BIOS ファイルにより、特定のシステムの正確なエミュレーションが可能になります。 PlayStation 1 には、Sony のオリジナル ブート コードを含む SCPH1001.BIN (NTSC) または SCPH7502.BIN (PAL) ファイルが必要です。これらは /home/pi/RetroPie/BIOS/ に存在し、信頼性を検証するには特定の MD5 チェックサムと一致する必要があります。正しい BIOS ファイルがないと、ゲームは起動に失敗するか、オーディオの欠落やグラフィックの不具合などの誤った動作が発生します。
ROM 転送方法は、USB スティック (最も遅く、互換性が最も高い) からネットワーク経由の SFTP (最も高速、構成が必要) まで多岐にわたります。 USB の方法では、FAT32- でフォーマットされたドライブ上に「retropie」フォルダを作成し、それを Pi に挿入し、フォルダ構造が生成されるにつれて LED の点滅が止まるのを待ってから、ROM を適切なシステム フォルダ (/retropie/roms/snes、/retropie/roms/nes など) にコピーします。 RetroPie セットアップ スクリプトを通じて Samba 共有を有効にすると、ネットワーク転送により、任意のコンピュータからドラッグ アンド ドロップが可能になります。-
メタデータをスクレイピングすると、ゲーム ライブラリにカバー アート、説明、リリース日が追加されます。組み込みのスクレーパーは、ScreenScraper または TheGamesDB API にクエリを実行し、検出された各 ROM のイメージとデータをダウンロードします。-大規模なライブラリ(300+ ゲーム)は、無料 API アカウントのレート制限によりリクエストが制限されるため、スクレイピングに数時間かかります。-特定の問題タイトルを手動でスクレイピングすることは、アップデートが発生したときにすべてを再スクレイピングするよりも効果的です。-
カスタム テーマは、RetroPie のデフォルトの青色の美しさを超えてインターフェイスをパーソナライズします。 ComicBook、TronkyFran、Magazinemadness などのテーマは、RetroPie セットアップ メニューを通じてインストールされ、レイアウト、フォント、アートワークのプレゼンテーションを変更します。一部のテーマではカスタム フォントや特定の画像解像度などの追加リソースが必要となるため、メディアの多いデザインではストレージ要件が 500 MB から 2 GB 以上に増加します。-
一般的な問題のトラブルシューティング
起動時の黒い画面は通常、電源供給が不十分であるか、ディスプレイの設定が間違っていることを示します。マルチメーターを使用して GPIO ピン 2 と 6 の間の 5V を確認すると、電力供給が確認されます。起動中に電圧が 4.75V を下回ると、バッテリ回路に十分な電流容量が不足します。ディスプレイの問題は、多くの場合、間違った /boot/config.txt パラメータ-すべてのディスプレイ関連の dtoverlay エントリをコメントアウト-し、HDMI 強制オプションが診断のためにデフォルトに戻ることが原因で発生します。
コントローラー入力が登録されない場合は、通常、GPIO 番号の不一致、またはソフトウェアが実行されていないことを意味します。コマンド sudo systemctl status gpionext.service は、GPIO コントローラー ドライバーが正しくロードされていることを確認します。 /var/log/syslog で「GPIO はすでに使用されています」などのエラーがないか確認すると、同じピンを要求している他のサービスまたはドライバーとの競合が示されます。
オーディオの問題は、音が出ない、パチパチ音がする、または音量レベルが正しくないなどの症状として現れます。 alsamixer コマンド-ライン ツールはミキサー レベルを表示および調整します-F6 を押すとサウンド カード(内蔵オーディオの場合は bcm2835、外部の場合は USB DAC 名)を選択し、矢印キーでチャンネルの音量を調整します。- PCM チャネルは全体的な出力レベルを制御し、特定のゲーム チャネルは個々のエミュレータ オーディオを処理します。大音量でのパチパチ音は、多くの場合、アンプのクリッピングを意味します。-アンプのゲインを上げるのではなく、音量を下げます。
適切なハードウェアがあるにもかかわらずエミュレーションの速度が低下するのは、通常、最適ではないビデオ ドライバーまたはシェーダーのオーバーヘッドが原因です。 SPI ディスプレイを fbcp-fbtft から fbcp-ili9341 に切り替えると、最適化された SPI トランザクション処理によりフレーム レートが 50{6}}100% 向上します。 RetroArch の先行実行機能と巻き戻し機能を無効にすると、機能の質が低下しますが、CPU オーバーヘッドが軽減されます。-
GPIO ピンがアンテナと干渉すると、Wi-Fi 接続の問題が Pi Zero W ビルドを悩ませます。内部アンテナは GPIO ヘッダーが取り付けられる PCB の端を占めており、近くの配線により離調が発生する可能性があります。ボタンの配線をボードの最後の 15 mm から遠ざけるか、USB WiFi ドングルを追加する (トレードオフとして GPIO ピンを消費します) ことで、頑固な接続の問題が解決されます。
高度な機能と変更点
状態を保存すると、ゲームを即座に一時停止および再開できるため、ポータブル プレイには不可欠です。 RetroArch はセーブステートを /home/pi/RetroPie/states/[system]/[game].state ファイルに保存し、システムに応じて 50KB ~ 2MB を消費します。自動-機能はゲームを終了するときにトリガーされますが、ホットキー コンボ (選択 + R1 で保存、選択 + L1 でロード) によるクイック セーブ状態アクセスにより、プレイ中により詳細な制御が可能になります。
RetroAchievements 統合による実績システムにより、クラシック ゲームに最新の進行状況追跡が追加されます。アカウントを作成し、RetroArch 設定で機能を有効にすると、システムはオンラインに接続して、プレイ中の実績を確認します。これには常時インターネットに接続する必要があるため、バッテリーの消耗が早くなり、ポータブル ビルドが複雑になります。
マルチプレーヤー機能は、1 台の{0}}2- プレーヤーのサポートを超えて拡張されます。 Bluetooth アダプターを使用するとワイヤレス コントローラーのペアリングが可能になりますが、Pi Zero の Bluetooth は WiFi と帯域幅を共有するため、遅延のスパイクが発生する可能性があります。ネットプレイ機能により、オンライン マルチプレーヤーが可能になり、デバイス間でエミュレーション状態を同期できますが、低遅延の接続と、同一のチェックサムを持つ ROM の一致が必要です。{4}}
Batocera のようなカスタム ファームウェアは、RetroPie の合理化された代替手段を提供します。 Batocera は起動が速く、より多くの事前構成済みシステムが含まれており、すぐに使用できるより複雑な構成をサポートしていますが、初心者にとって RetroPie のトラブルシューティングを容易にする広範なコミュニティ ドキュメントが不足しています。
ハードウェアの拡張により、独自の機能が可能になります。 I2C 経由でリアルタイム クロック モジュールを追加すると、オフラインでも正しいタイムスタンプが維持されます。- GPIO を介して接続された加速度センサーにより、加速度センサーをサポートするゲームのモーション コントロールが可能になります。 GPIO ピン経由で制御される RGB LED ストリップは、RetroArch の LED ドライバー機能を通じてゲームプレイ イベントに同期したアンビエント照明効果を作成します。
法的および倫理的考慮事項
ROM の取得は法的にグレーゾーンを占めます。物理的に所有していないゲームの ROM をダウンロードすることは、ほとんどの管轄区域で著作権侵害となります。自分のカートリッジからの個人的なバックアップは多くの国で合法ですが、コピー保護(ディスク ベースのゲームに必要)を回避することは米国の DMCA セクション 1201 に違反します。-一部の管轄区域では、DRM 回避の制限なしでバックアップを許可しています。
BIOS ファイルにも同様の法的制約があります。自分のゲーム機から BIOS を抽出することは、個人使用であればほとんどの場所で合法ですが、サードパーティの BIOS ファイルをダウンロードすると、たとえ自分が所有しているハードウェアであっても、著作権で保護された素材が配布されることになります。{1}}一部のシステムにはオープンソース BIOS の再実装が存在しますが、互換性は不完全です。
自作ゲームや無料配布された ROM は、合法的な代替手段を提供します。 itch.io や BrewPi などのサイトでは、配布を明示的に許可しているインディーズ開発者によって作成された、レトロ システム向けに設計された最新のゲームをホストしています。これらは著作権法を尊重しながら、市販の ROM と同じように動作します。
Nintendo Switch Online のような商用エミュレーション サービスは、権利所有者がレトロ ライブラリの収益化を続けていることを示しています。本物の所有ゲーム用に個人用ハンドヘルドを構築することは、大量の ROM 配布とは倫理的に異なりますが、法的な区別は出所の検証にかかっており、それを実証することは事実上不可能です。
システムごとのパフォーマンスの期待
8- ビットおよび 16 ビットのコンソールは、すべての Pi モデルで問題なく動作します。 NES、SNES、Game Boy、Genesis、および同様のシステムは、Pi Zero ハードウェアでも完璧なフレーム レートを実現します。これらのエミュレータは非常に成熟し、最適化されているため、リソースの消費が最小限に抑えられており、高度なシェーダや実行先行機能のための余裕があり、入力レイテンシを元のハードウェアよりも短縮できます。
32- ビット生成では、プラットフォームに依存した結果が生じます。- PlayStation 1 ゲームは Pi 3 以降のモデルで適切に動作し、ほとんどのタイトルでフルスピードを実現します。 Pi Zero 2 W は、軽量の PS1 ゲーム (RPG、2D ファイター) を適切に処理しますが、クラッシュ バンディクーや鉄拳 3 などの 3D- 集中型のタイトルには苦労します。システムの複雑なマルチプロセッサ アーキテクチャのため、セガ サターン エミュレーションはすべての Pi モデルで依然として不十分です。
N64 エミュレーションは、優れた仕様にもかかわらず Pi の制限を浮き彫りにします。 Nintendo 64 の型破りなアーキテクチャ-MIPS R4300i CPU、RCP コプロセッサ、Rambus RAM-)は、効率的にエミュレートすることが難しいことがわかっています。オーバークロックされた Pi 4 ハードウェア上でも、GoldenEye 007 や Perfect Dark などの人気のあるタイトルでは、フレーム レートの不一致やグラフィック アーティファクトが発生します。 Mupen64Plus-GLideN64 などの Pi{10}} 固有の N64 エミュレータは ARM プロセッサ向けに最適化されていますが、依然として本格的なパフォーマンスには達していません。
ハンドヘルド コンソールは、同等の時代のホーム システムよりも優れた互換性を提供します。 Game Boy Advance エミュレーションは、Pi Zero 2 W 以降でほぼ完璧な精度でスムーズに動作します。- Nintendo DS エミュレーションには、プレイ可能なフレーム レートとして少なくとも Pi 3 が必要ですが、それでも 3D- の重いタイトルは困難です。 PSP エミュレーションは、システムの複雑なグラフィック アーキテクチャと高解像度のため、どの Pi でも基本的に機能しません。-
アーケード エミュレーションは、ROM セットと MAME バージョンによって大きく異なります。 -80 年代初期の古典的なアーケード ゲーム (パックマン、ドンキーコング、ギャラガ) は、どの Pi でも動作します。 80 年代後半のアーケード ハードウェア (ストリート ファイター II、モータル コンバット) には少なくとも Pi 3 が必要です。. 90 のスプライトを多用するゲーム (マーベル対カプコン、メタル スラッグ) では、安定したパフォーマンスを得るためにオーバークロックされた Pi 4 が必要です。 ROM のバージョンを MAME のバージョンに一致させることが重要です (古い Pis の MAME 2003 の場合は 0.78 ROM、新しいハードウェアの MAME 2010 の場合は 0.139)。
将来の-機能とアップグレード パス
モジュラー設計により、完全な再構築を行わずにコンポーネントを交換できます。標準化された接続-ボタンには GPIO ヘッダー、ディスプレイにはマイクロ HDMI、コントローラーには USB- を使用すると、新しい Pi モデルがリリースされるたびにアップグレードできます。 Pi Zero 2 W から Pi 3A+ へのアップグレードは、処理能力を 4 倍にしながら、同一の寸法に適合します。
ストレージ拡張により、ライブラリのサイズが SD カードの制限を超えて拡張されます。 USB ストレージは RetroPie に自動的にマウントされ、ROM フォルダーは /home/pi/RetroPie/roms から /media/usb0/retropie/roms にシンボリックリンクされます。これにより、OS とエミュレータ ソフトウェアのみをホストする SD カードからゲーム ストレージがオフロードされ、書き込みサイクルの消耗が軽減されます。-
バッテリー技術の向上により、携帯性が向上しました。最新の 21700 リチウム セルは、従来の 18650 セルよりわずかに大きいパッケージに 4000-5000mAh を搭載しています。バッテリーの容量が大きくなると稼働時間は長くなりますが、重量と体積が増加します。これらの要素のバランスは使用パターンとフォーム ファクターの優先順位によって決まります。
コンピューティング モジュールのバリアントにより、高性能のカスタム ハードウェアが可能になります。{0} Pi Compute Module 4 は、55x40mm SODIMM フォーム ファクタで Pi 4- レベルのパフォーマンスを提供し、超コンパクトなビルドに最適です。-カスタムキャリアボードは特定の周辺機器を直接統合し、ジャンパ線のネズミの巣を排除します。ただし、CM4 ビルドには PCB 設計スキルと小規模バッチ製造セットアップが必要です。
コミュニティ主導の改善により、エミュレーションが継続的に最適化されます。{0} Libretro コアのアップデートは毎月配信され、精度とパフォーマンスが向上します。 GitHub リポジトリやフォーラムを通じて RetroPie の開発を追跡すると、更新する価値のある今後の機能と互換性の改善が明らかになります。
よくある質問
Raspberry Pi 5 をハンドヘルド ビルドに使用できますか?
Pi 5 は 5V/5A (25W) を必要とし、通常のバッテリー パックが提供する電力よりも大幅に多くなります。そのパフォーマンス上の利点は、Pi 4 がすでにうまく処理しているシステムのエミュレーションの向上にはつながりません。ポータブル ビルドの電力効率を高めるには、Pi 4 または Zero 2 W を使用してください。
初めて組み立てる場合、組み立てにはどのくらい時間がかかりますか?{0}}
複数のセッションにまたがって 15 ~ 25 時間かかることが予想されます。コンポーネントのテストには 2 ~ 3 時間、ソフトウェアのセットアップには 3 ~ 5 時間、物理的な組み立てには 6 ~ 10 時間かかります。通常、最初のビルドではトラブルシューティングにさらに 4 ~ 7 時間かかります。経験により、その後のプロジェクト時間が大幅に短縮されます。
ハンドヘルドを構築するにははんだ付けのスキルが必要ですか?
組み立て済みの PCB を含むキットを使用しない限り、基本的なはんだ付けはほぼ避けられません。{0}電源線、ボタン用の GPIO ピン、スピーカー線の接続にはすべてはんだ付けが必要です。ブレッドボード- スタイルのジャンパ接続はプロトタイピングには機能しますが、動きや振動の影響を受けるポータブル デバイスでは機械的に信頼できません。
実際のバッテリー寿命はどれくらいですか?{0}}
Pi Zero 2 W、3.5 インチ ディスプレイ、4000mAh バッテリーを備えた一般的なシステムでは、3 ~ 4 時間のアクティブなゲームプレイが実現します。大きな画面を備えた Pi 4 ビルドでは、排水が速くなり、平均 2 ~ 2.5 時間かかります。実際の実行時間は、画面の明るさ、エミュレートされているシステム、WiFi/Bluetooth がアクティブかどうかによって異なります。
これらの携帯端末は最新のゲームをプレイできますか?
いいえ、Raspberry Pi ハードウェアには、PS1 時代の 3D ゲームを超える処理能力がありません。 ARM Linux 用にコンパイルされた軽量のインディーズ ゲームの中には動作するものもありますが、RetroPie は最新のゲームではなく、レトロなエミュレーションのみに焦点を当てています。
これらを構築することに法的なリスクはありますか?
ハードウェアの構築は完全に合法です。法的なグレーゾーンには ROM の取得が含まれます。-所有していないゲームをダウンロードすると著作権を侵害します。所有するカートリッジからの個人的なバックアップは多くの法域で合法ですが、ディスクベースのバックアップは場所によっては回避法に違反する可能性があります。-
結論の考え
Raspberry Pi ハンドヘルドの魅力は、懐かしさやコスト削減だけではありません。これらのプロジェクトでは、抽象的な理論ではなく実際の応用を通じて、基本的なエレクトロニクスの概念-電圧調整、シリアル通信プロトコル、入出力インターフェース-)を教えています。ゲーム中にはんだ接合部が割れてスタート ボタンが機能しなくなった場合、教科書では伝えられない本当のトラブルシューティング スキルを学びます。-
成功したビルドと放棄されたブレッドボードを分けるのは、現実的な期待値の設定です。-これは工場出荷時のコンソールにカートリッジを挿入することではありません。-GPIO 17 の読み取り値が低いはずのときに高い値を読み取る理由や、バッテリーが 3.6 V を下回ったときにフレーム レートが 60 fps から 45 fps に低下する理由をデバッグするためです。満足感は完璧なエミュレーションから得られるものではなく、独自の設計上の決定によって生じた問題を解決することから得られます。
これらのビルドに関するコミュニティは引き続き非常に協力的です。フォーラムの見知らぬ人が、マルチメーターの読み取り値の不鮮明な写真から電圧レギュレーターの問題を診断します。誰かが、使用しているディスプレイの正確なピン マッピングを含む GitHub リポジトリを公開しています。この協力的な問題解決により、孤独でイライラする可能性のあるものが、共有された学習体験に変わります。-
最も重要なことは、Raspberry Pi ハンドヘルドを構築することで、すべての家電製品が基本的なレベルでどのように機能するかについての洞察が得られることです。 「スマートフォン」または「ラップトップ」というラベルの付いたブラック ボックスは、ボタンをピンに割り込むように手動で配線し、画面の更新を検出するようにカーネル モジュールを構成すると、謎が少なくなります。デジタル世界は、すべてのコンポーネントを自分で組み立てたものであるため、文字通り、手に持って理解できるデバイスの形で具体的なものになります。-




