レトロライトCM4 AIOドッキングステーション
公式ソースへのリンク:GitHub - StonedEdge/Retro-Lite-CM4-Dock: レトロライトCM4ゲームコンソールと組み合わせて使用するように設計されたドッキングステーションです。
説明
更新:2023/07/09
注意:コードベースは、スプラッシュスクリーン、統計画像、テキストラップ付きのメタデータの点で現在機能しています。この段階でこのプロジェクトを完成したと考えています。気軽に改善していただき、お好きなように利用してください!
レトロライトCM4ドッキングステーション/ハブは、レトロライトCM4ゲームコンソールと組み合わせて使用するように設計されていますが、RetroPieを実行している任意の汎用Linuxホストでも動作します。このプロジェクトの主な目的は、RetroPieシステムのメタデータボックスとして機能し、リアルタイムでプレイしているゲームについて詳細な情報を提供することです。このプロジェクトは、レトロ
- 完全に統合された1.5インチの128×128 SPI駆動の16ビットカラーディスプレイ。
- 3つのモードがあり、そのうちにはスプラッシュスクリーン、統計値そしてゲームモード。ナビゲーションは、GPIOピンに接続されたプッシュボタンを使用して行われます。
- デスクトップモードでキーボード、マウス、その他の周辺機器を使用するための3つの外部USB 2.0ポート。低レイテンシーに対応したUSBコントローラ。
- USB-C充電
- HDMIビデオ出力
以下は、プログラムの一般的な流れと、電源が投入されたときの動作方法です。
- スプラッシュスクリーンモード
- エミュレーションステーションが起動するまでスプラッシュスクリーンが再生されます。その後、統計モードに移行します。
- 統計モード
- 一般的なシステム統計値を表示します。IPアドレス、SoC温度、RAM使用量など。統計値は5秒ごとに更新されます。
- レトロ統計 - あなたのシステムで最もよくプレイされた5つのゲームを、(a)プレイ時間と(b)プレイ回数で表示します。
- ゲームモード
どのゲームの立ち上げ時にプレイされているゲームの組み合わせた画像を示します。
ドッキングステーションに付属のプッシュボタンを使用して、5つの異なるメタデータビューを切り替えます。これらは次のとおりです。
a) ホイールとスクリーンショットの組み合わせたベクトル画像 b) 公式ゲームのボックスアート c) ゲームをプレイできる実際のハードウェアのランダムなベクトル画像。全てのコンソールのバリエーションが含まれています(高品質のベクトルを提供してくれたAmpersandに感謝!) d) ゲームの説明で、ディスプレイに垂直にスクロールされ
インストール
インストールするには、実行してください(現時点ではまだ動作しません!)。
git clone https://github.com/StonedEdge/Retro-Lite-CM4-Dock.git sudo chmod +x install_dock.sh ./ install_dock.sh
私は、RetroPieのセットアップスクリプトメニュー内の組み込みスクレイパーを使用してメディアファイルをスクレイプすることをお勧めします。これにより、必要なすべてのメタデータがダウンロードされ、/home/pi/RetroPie/roms/{system_name}/mediaに自動的に保存されます。
メタデータ ディレクトリの場所
a)現在のゲームのカバー(ボックスアート)- /opt/retropie/configs/all/emulationstation/downloaded_images/{system}/{rom_name}.png
b) 。スクリーンショット+組み合わせたホイールの画像- /home/pi/retropie/roms/{system}/media/wheel/{rom_name}.png と /home/pi/retropie/roms/{system}/media/screenshot/{rom_name}.png
c)コンソールのランダム化されたベクトル画像がリリースされました。- /home/pi/pico/pico-examples/pico-spi/consolevectors
d)垂直スクロールを利用したゲームの説明- /opt/retropie/configs/all/emulationstation/gamelists', システム名, 'gamelist.xml'
e) 。ゲーム開発者- /opt/retropie/configs/all/emulationstation/gamelists', システム名, 'gamelist.xml'
f)リリース日- /opt/retropie/configs/all/emulationstation/gamelists', システム名, 'gamelist.xml'
g)動画- /home/pi/retropie/roms/{system}/media/videos/{rom_name}.mp4
ハードウェア
ドッキングステーションにOLEDスクリーンを接続するためのピノアウトは上にあります。ソフトウェアが完成したら、すぐにGerbersとCAD(ドッキングステーションと別のOLEDボックスの両方)のファイルが更新される予定です。
やることリスト
- runcommandを使用して起動された現在のゲーム/システムを検出する。
- ブート時にRetrolite CM4のスプラッシュスクリーンを追加する。
- ピン4でスクリーンショットとホイールの画像を128×128 RGB565にダウンスケールおよび変換する(Python)
- 製品/ベンダーID(VID/PID)でRP2040を検出する。
- パイソンを使用してゲームテキストのメタデータを抽出する方法を特定する。
- システム統計値をUSB経由でRP2040に送信する。
- ゲームを終了すると、runcommand-onend.shが実行されてバッファをクリアし、ユーザーをPiの統計ビューに戻します。
- COMポートの検出時にスプラッシュスクリーンを停止し、統計モードに切り替えます。
- 破損なくシリアル経由でRGB565のcombined.pngを送信し、Piの統計値から現在のゲームに自動的に切り替えます。
- スクリーンに合わせてボックスアートを正確に拡大するためのPythonスクリプトを書いてください。
- 現在、RetroPieで起動しているシステムに基づいて、コンソールベクトルにあるPicoにランダムな画像を送信してください(スケーリングは不要です)。
- 統計と画像モードを切り替えるためのボタンステートマシンを実装する。
- ボタン操作なしでOLEDに黒ずみが発生するタイムアウトを実装します。X分間活動がない後、ボタンを押すとOLEDが起動します。
- ゲームモード内でゲームメタデータを実装する。
- コンソールの電源が切れているときにOLEDディスプレイを優雅にシャットダウンし、コンソールの電源が再投入されたときにそれを再起動する。
- ゲームの説明に使用されるSSD1351上のテキストのハードウェア(またはソフトウェア)垂直スクロールの実行方法を特定する。
- メタデータモードでいくつかの新しい行エラーを修正する。
- 特殊文字のエンコード方法を調べてください。おそらくヨーロッパのコードページ(CP1250/1252)を使用するでしょう。
持ってるといいなa/おそらくすぐには実装されないだろうね!
- ピー4で動画を個々の動画フレームに分割するためのPythonスクリプトを書く。
- すべてのフレームで0.9MB/秒の転送速度を実現するためにtinyUSBライブラリを設定し、USB 1.1で30FPSの動画を送信します(最大1.5MB/秒)。
- ユーザーが最もよくプレイしたゲームを表示するために、統計モードに「レトロスタッツ」を実装する。プレイした回数そして時間の継続時間レトロスタッツのスクリプトを使用しています。 注意:RTCがないので、時間の継続時間が正確ではない可能性があります。
Источник модели
