Usbsid-Pico: 本物のCommodore 64サウンドをモダンなUSBにブリッジ
Usbsid-Pico: Bridging Real Commodore 64 Sound to Modern USB (smallrun.net)
要約
この記事は、レトロコンピューティング愛好家にとって象徴的なCommodore 64のMOS Technology SIDチップのサウンドを、現代のUSB接続デバイスで利用可能にするプロジェクト「USBSID-Pico」の開発経緯を紹介しています。Raspberry Pi Picoを基盤とし、物理的なSIDチップをUSB、MIDIなどを介してPCやスマートフォンに接続するこのハードウェアは、オリジナルのアナログサウンドの魅力を現代に蘇らせることを目指しています。開発者は、初期のプロトタイプからオープンソースハードウェアとしての進化までを詳細に記録しています。
全文翻訳
USBSID-Pico: 本物のコモドール64サウンドをモダンUSBへ接続する
[画像]
レトロ愛好家の多くにとって、コモドール64のMOS Technology SIDチップ(6581および8580)は、オーディオ史における最も象徴的なサウンドチップの一つと見なされています。
(現代の)ソフトウェアエミュレーションは近いレベルに達していますが、本物のビンテージハードウェアのアナログフィルターと温かい歪みを完全に置き換えるものは何もありません。
私はLouD(loudnessの略)と申します。私は、本物のSIDシリコンをUSB(CDC/WebUSB/WebSerial)、MIDI、ASID、そして将来的にはWi-FiやBluetoothを介して、現代のワークステーション、スマートフォン、メディアプレイヤーに直接接続するためにUSBSID-Picoを作成しました。
Raspberry Pi Picoマイクロコントローラーシリーズ(rp2040およびrp2350)を搭載したこのボードは、最大2基(まもなく4基)の物理的なSIDチップまたは現代のハードウェアリプレースメントのための柔軟なコントローラーとして機能します。
以下は、私の(覚えている限りの)旅と、初期プロトタイプから現在(少なくとも一部の)愛好家にレトロオーディオ体験を提供するオープンソースハードウェアに至るまでのプロジェクトビルドログの試みです。
以前
覚えている限り、私は物事がどのように機能するかに興味を持ってきました。
両親が最初に購入したコモドール64、自宅にあった最初のXT PC、10代の頃に購入した最初のPentium PCから、今日(そしてそれ以降)ソフトウェアエンジニアとして働くに至るまで。
テクノロジーは私を魅了するので、選択肢がある場合は、それを分解し、どのように機能するかを調べ、そして「改善」を加えて元に戻すのが好きです。最初はそれがまだ機能するかどうかは気にしません。
私はあまり音楽家ではありませんが、もちろんチップチューンを含むあらゆる種類の音楽を聴くのが好きです ;-)
コモドール64などを修理している兄に触発され、新しいプロジェクトのアイデアが私の頭に浮かびました。私はSIDチューンを聴くためのSID再生デバイスを作成できるかどうか、そしておそらく本物のSIDチップを通して再生できるかどうかを見たかったのです。
2024年2月頃、Raspberry Pi PicoをベースにしたSIDプレイヤーを作成できるGitHubリポジトリSIDPodを見つけました。
マイクロコントローラーを使ってSIDファイルを再生するのがいかに簡単に見えるかが気に入ったので、もちろんそれを構築しなければなりませんでした。
[画像]
SIDPodテストビルド
SIDPodのフラッシュにさらに多くのSIDファイルを追加する方法は、すでに素晴らしいデザインにSDカードを追加しようと試みるきっかけとなり、SIDPod-SDCardという結果になりました。
[画像]
SIDPod-SDCardテストビルド
2024年4月上旬、まだ結果に満足していなかった私はESP32-SIDViewを見つけました。
これは、本物のSIDチップをサポートするという利点を備えた、SIDPodの良い代替SIDプレイヤーのように思えました!
一つ構築するのが論理的な次のステップでしたが、その当時私は本物のSIDを所有していなかったので、見つける必要がありました。
SIDKICK-picoは最初に見つけたSIDリプレースメントでしたが、回路図はありませんでしたが、注文可能でした。
ハードウェアのリバースエンジニアリングの趣味レベルの経験があったので、回路図を再作成し、ブレッドボードで使用できるようにPicoからDIP-28へのピン配置を特定しました。
[画像]
ESP32-SIDViewテストビルド
上記の写真で見えるスパゲッティに満足できなかったので、少し整理する必要がありました。
[画像]
ESP32-SIDView整理済みテストビルド
ESP32-SIDViewが機能しないという問題を抱えていたため、GitHub経由で開発者のtobozoに連絡しました。このプロジェクトについてGitHubで数え切れないほどのメッセージを交換しました。その後、別のプラットフォームに移行し、彼のプロジェクトと私のプロジェクト、コーディング、猫、日常生活などについて(今も)話し続けています。この一つのGitHubイシューが、もし私がそう言えるなら、素晴らしいデジタル友情につながりました。
その間、SidBerryも見つけました。これは、Raspberry Pi(Picoではない)のGPIOピンを介してSIDチューンを再生するためのLinuxベースのコンソールアプリケーションです。
[画像]
RPIブレッドボード拡張(SKPico付き)
Raspberry PiとSidBerryは、2024年5月上旬に、私が初めてUSB制御のSIDデバイスを作成しようとしたFTDI USBSIDの作成につながりました。これを行うために、リバースエンジニアリングのためにすでに所有していたFTDI FT223HLブレークアウトボードを使用しました。
その間に、v0.1のSIDKICK-picoと2つの半壊したMOS6581を入手しました。
[画像]
FTDI USBSID
独自のハードウェアサポートボードを作成するということは、ソフトウェアサポートも作成する必要があることを意味しました。
それを思い出して、ここにリンクを示します。
プロジェクト
FTDIブレークアウトボードの使用には多くの制限がありました。
それはマイクロコントローラーではなかったので、すべてのGPIO書き込みと入出力切り替えはドライバーで行う必要があり、FTDIのエコシステムを使用することはあまり好きではありませんでした。
2024年5月末、これらの制限にうんざりしたことが、USBSID-Pico(実際には当時PicoUSBSIDと呼ばれていました)を作成するきっかけとなりました。これは、単一のSIDをサポートするパーフボードバージョンでした。
[画像]
PicoUSBSIDシングルSIDバージョン
2024年6月半ば、同じパーフボードにデュアルSIDサポートを追加しました。
[画像]
PicoUSBSIDデュアルSIDバージョン
tobozo(ありがとうm8)からの継続的なサポートと励ましにより、最初の実際のUSBSID-Pico v0.1ボードが誕生し、最初のv1.0ボードにつながりました。
その後に続いたのは、創造性、新しいスキルの習得、既存スキルの向上、新しいことの学習、そして新しい友人(と敵?)の作成という信じられないほどの旅でした。
私は非常に多くの新しい人々やグループと話し、会いましたが、ここにすべてを名前を挙げることはほぼ不可能ですが、最後にクレジットで少なくとも数人のインスピレーションを与えてくれた人々を名前を挙げようとしました。
主な技術ハイライト(v1.0):
- デュアルSID固定電圧ソケットサポート(6581または8580 MOSチップと、Swinke SID、FPGASID、ARMSIDなどのハードウェアリプレースメント)。
- ネイティブUSB、WebUSB(ブラウザ再生)、USB-MIDI、ASIDストリームプロトコルを介したマルチプロトコル接続。
- Windows、macOS、Linux、Android、AmigaOSにわたるクロスプラットフォームサポート。
- OSHWAオープンソースハードウェア認証(NL000035)。
- 回路図とPCBデザインは、コミュニティでの自己組み立てを可能にするために、githubリポジトリおよびPCBWayでオープンソースとして公開されています。
v1.3のアップグレード:
- 混合SIDセットアップ: 異なる世代のSIDチップの同時ミキシングを可能にします(例:ソケット1に12Vの6581とソケット2に9Vの8580をペアリング)。
- ハードウェアオーディオ切り替え: モノラルとトゥルーステレオ(ソケット1を左、ソケット2を右)の出力をボード上で直接切り替えるデジタルスイッチを追加しました。
- OSHWAオープンソースハードウェア認証(NL000045)。
- 回路図とPCBデザインは、コミュニティでの自己組み立てを可能にするために、githubリポジトリおよびPCBWayでオープンソースとして公開されています。
v1.5のアップグレード:
- 100%ジャンパーレス電圧制御: 装着されているチップに基づいて正しい供給電圧(9V対12V)を自動的に検出し設定し、希少なSIDシリコンを過電圧ダメージから保護します。
- 自動切り替え: ソケット電圧に基づいて、フィルターコンデンサ、オーディオシャント抵抗、およびデジブースト抵抗が自動的に有効化および無効化されます。
- 拡張フットプリント: オプションのデュアルZIF(Zero Insertion Force)ソケットを収容するために、ボードの寸法をわずかに広げました。
- 互換性の向上: 機械的な干渉なしに、FPGASIDのようなより大きなハードウェアリプレースメントを収容するために、十分なスペースを追加しました。
- オーディオ保護のアップグレード: オーディオジャックにプラグが挿入されていない場合にプルダウン抵抗を追加し、オーディオ入力にESDダイオードを追加することで、オーディオ入力をさらに保護します。
- 回路図は、コミュニティでの自己修理を可能にするために、githubリポジトリで公開されています。
Proロードマップ機能(未定):
- クアッドSIDサポート(4つのハードウェアSIDチップ用のソケット)。
- スタジオレコーディングのための高品質オーディオルーティングと低ノイズフロア。
- 専用MIDI入力ポート
ハードウェアタイムライン
このプロジェクトを開始して以来、多くのことが起こりました。v0.1から始まる(ハードウェア)開発プロセスのアイデアを提供するために、ここに要約されたタイムラインを示します。
- 2024年5月:シングルSIDパーフボードバージョン。
- 2024年6月:デュアルSIDパーフボードバージョン。
- 2024年7月:v0.1
未リリース版
[画像]
[画像] - 2024年8月:v0.2
改訂されたオーディオ出力を持つ未リリース版。
[画像]
[画像] - 2024年10月:v1.0
いくつかのプリント基板のイテレーションを経て、USBSID-Pico v1.0が正式にリリースされました。
[画像]
[画像] - 2025年2月:v1.1
破棄されたイテレーション。 - 2025年3月:v1.2
未リリース版。 - 2025年4月:v1.3
コミュニティのフィードバックに基づき、混合SIDタイプサポートと洗練されたオーディオ設定オプションを備えたv1.3ハードウェアリビジョンの公式リリース。
[画像]
[画像] - 2026年3月:v1.4
未リリース版。 - 2026年7月:v1.5
危険な手動ジャンパー設定を排除し、オプションのZIFソケット用のボードスペースを増やしたボードの使いやすさを変革するv1.5ハードウェアリビジョンの公式リリース。
[画像]
[画像] - ボリュームドーターボード
v1.5以降のボードにプラグアンドプレイで接続できるオプションのアクセサリPCB(v1.3では小さな改造が必要)、左右のオーディオボリュームを個別に制御します。独自のハードウェアリビジョンラインを持ち、CC BY-SA 4.0でライセンスされています。 - ケース
カートリッジスタイルのエンクロージャーからデュアルボードのコモドール64ケースまで、すべてのPCBリビジョンに対応するコミュニティ設計のケースが存在し、すべてリポジトリのcases/ディレクトリに収集されています。 - 2026年後半/2027年初頭:USBSID-Pro開発(目標)
現在、ミュージシャン、オーディオプロデューサー、SIDチップチューン愛好家のために特別に設計されたUSBSID-Proの開発が進められています。
ファームウェア
新しくユニークなPCBを作成するには、当然そのマイクロコントローラー用のファームウェアも開発する必要があります。
使用したいマイクロコントローラーを選択した後、そのSDKで実際に経験を積む必要があります。これには長所と短所があります。SDKに深く潜る必要がありますが、他のマイクロコントローラーとの関連での視野も狭まります。少なくとも、これは私の経験であり、時間の貴重さからすべてを一度に行うことはできないためです ;-)
デュアルコア、2つのジョブ
クロックとバスのトリックに入る前に、Picoの2つのARMコアがどのように作業を分割しているかを知っておくと役立ちます。
コア0は常にUSB関連のすべて(CDC、WebUSB、MIDI、および設定管理)を処理します。
一方、コア1には複数のジョブがあります。MIDIエンジン、必要に応じてSID再生またはCynthcart用のオンボードエミュレーター、ユーザーによってトリガーされた場合のSIDテストを実行し、他のタスクを実行していないときはVUを処理します。コア1がオンボードエミュレーターの処理で忙しい場合、VUはコア0にオフロードされます。
実際の書き込みは、以下に説明するタイミングクリティカルな作業を行うDMA/PIOに引き渡されるため、両方のコアがSIDバス書き込みを実行できます。
2つのコア間でタスクをバランスさせ、DMA/PIOに依存することが、USBトラフィック、MIDI処理、または設定保存がサイクルアキュレートなバスタイミングに触れることなく発生することを可能にします。もしそれらがコアを共有していたら、タイミングの悪いUSB割り込みがSIDクロックをジッターさせる可能性があり、これはまさに以下のPIOオフロードが解決しようとしている問題です。
技術的詳細:rp2040/rp2350 PIOによる精密SIDクロッキングとバス管理
ビンテージMOSサウンドハードウェアをUSB経由で制御する際の主な課題は、タイミングの精度です。MOS 6581および8580 SIDチップは非同期レジスタインターフェイスを使用しません。それらは、内部スイッチドキャパシタアナログフィルター、ボイスエンベロープジェネレーター、およびデジタル-アナログコンバーターを駆動するために厳密なフェーズクロックに依存しています。
SIDクロックラインのジッターまたは周波数ドリフトは、聴覚的なチューニングドリフト、粗いフィルターステップ、または破損したサンプル再生(Digiplay)につながります。
システム応答性を犠牲にすることなくこれを解決するために、USBSID-Picoは、Raspberry Pi Picoシリーズ(rp2040およびrp2350)に組み込まれたハードウェアプログラマブルI/O(PIO)ステートマシンとダイレクトメモリアクセス(DMA)を活用します。
1. ジッターの少ない1MHzシステムクロックの生成
標準的なPALコモドール64コンピュータでは、SIDクロックは0.985248 MHz(NTSCシステムの場合は1.022727 MHz)で実行されます。現代のUSBコントローラーは、CPUのビットバンギングや標準的なPWMジェネレーターを使用してこれを近似することがよくありますが、USBトラフィックからのCPU割り込みはサイクルスリップを引き起こす可能性があります。
USBSID-Picoは、マスタークロック生成を専用のPIOステートマシンに完全に委任します。
[画像]
- ジッター除去: PIOステートマシンはARM Cortexコアから独立して動作するため、CPUで実行されている重いUSBパケット転送、MIDI処理、または設定タスクに関係なく、クロック信号は完全にサイクルアキュレートなままです。
- 柔軟な周波数制御: PIOのフラクショナルクロックディバイダーにより、クロック出力をオンザフライで設定できます。ファームウェアは、標準の1MHz方形波をシームレスに生成したり、PAL/NTSC C64の周波数に正確にロックしたり、カスタムハードウェアリプレースメントに合わせてクロックをスケーリングしたりできます。
- 外部クロックフォールバック: v1.0ボードでは、外部オシレーターが存在する場合(例:ジャンパー選択経由)、PIOステートマシンは動的に切り替えて外部信号を読み取り、パススルーできます。
2. DMAによるサイクルアキュレートなバス同期
メインクロックを駆動するだけでなく、実際のSIDチップに値を書き込むには、PHI2に対する正確なタイミングウィンドウに従う必要があります。レジスタ書き込みには、アドレスバス(A₀–A₅)、データバス(D₀–D₇)を設定し、PHI2の高位相の特定の期間ウィンドウでチップセレクト(C̅S̅)とライトイネーブル(W̅E̅)を低く引く必要があります。
USBSID-Picoは、PIOステートマシンとDMAバッファを組み合わせて、決定論的な低レイテンシバスサイクルを実現し、オーバーヘッドはわずか1クロックサイクルです。
- バッファキューイング: レジスタ書き込みパケット(WebUSB、ASID、またはUSB-MIDIから)は、USBスタックからほぼ直接DMAバッファに配置されます。
- バス制御: PIOステートマシン2はRWと2つのC̅S̅ピンを制御します。
- 並列ピンマッピング: 3番目のPIOステートマシンは、単一クロックサイクルでマッピングされた
SETおよびOUTピンターゲットを使用して、8ビットデータバスと6ビットアドレスバスを同時に処理します。 - デッドタイムとセットアップタイム制御: 4番目のステートマシンプログラムは、C̅S̅をアサートしてからデータを駆動するまでの正確なサイクル遅延(
[delay]プリオペ)を挿入します。 - PIO固有の割り込みをトリガーして上記2つのステートマシンをアサートすることにより、プロセッサを停止させることなくチップのセットアップタイムとホールドタイムが保証されるようにします。
[画像]
言及する価値のある注意点:これらすべては-O3でのみ有効です。最適化レベルを下げると、コンパイラはDMA/PIOハンドオフの周りに十分な追加オーバーヘッドを生成し、タイミングの緩みが発生し、組み込みSIDプレイヤーとCynthcartで破損したサンプル再生として現れます。したがって、-O3はこのファームウェアにとって「あれば嬉しい」ものではなく、必須です。
サイクルアキュレートだと?証明してみせろ!
[画像: Wonderland XIII]
Wonderland XIII エンディング by Censor Design (2016)
(MOS6582 on USBSID-Picoで再生)
3. VUメーターフィードバック
ファームウェアのすべてがSIDバスにバイトを正しく転送することだけではありません。時にはボードを生き生きと見せたいだけの場合もあります。
オンボードLED(Pico/Pico 2)と、オンボードWS2812を備えたブラッククローンボードのRGB LEDは、レジスタ書き込みから直接計算されたSID1(デフォルト)ボイスデータから駆動されるVUメーターとして機能します。どのボイスが計算にフィードするかは設定可能なので、好みに合わせて調整できます。
4. 自動SIDモデル検出
すべてのソケットに何が挿入されているかが伝えられるわけではありません。ほとんどの場合、ファームウェアは自分でそれを把握する必要があります。実際の6581および8580チップ(およびそれをエミュレートするのに手間をかけたほとんどのクローン)は、ボイスレジスタに特定のテストビットシーケンスをプッシュし、オシレーター/エンベロープ読み出しレジスタから出てくるものを読み戻す際に、エンベロープ/波形ジェネレーターの内部でわずかに異なる動作をします。
これらは文書化された動作ではなく、C64シーンが何十年も前に発見して共有した癖です(codebase64.netのメソッドや、1541 UltimateのSIDカートプレイヤーの検出ルーチンなど)。USBSID-Picoは、起動時(およびソケット再構成時)に各ソケットに対してこれらのプローブをいくつか連続して実行し、単一のプローブが誤動作する可能性があるため、結果を互いにクロスチェックし、自信を持って6581、8580、または識別できないものを特定できるまで、複数の検出方法をフォールバックします。これを間違えると、ファームウェアはチップが耐えられない電圧/フィルターの想定を適用することになるため、これは単に「あれば嬉しい」機能ではありません。
5. MIDIをSIDレジスタ書き込みに変換する
MIDIノートは、それ自体ではSIDレジスタにマッピングされません。「ノートオン、チャンネル3、ベロシティ100」が、実際には周波数レジスタ、ゲートビット、エンベロープ設定の点で何を意味するかを誰かが決定し、それを適切なタイミングでバスに書き込む必要があります。
MIDIハンドラーは、チャンネルごとのボイス割り当てテーブルを保持しているため、受信したノートは空いているSIDボイススロットに割り当てられ、ノートオン/オフとベロシティを追跡し、その上にアルペジエーターを重ねて、キーごとに人間がトリガーするのと同じノートオン/オフパスを呼び出す独自のタイマーで保持されているノートをステップ実行します。ASIDメッセージは完全に異なるトランスポート(MIDI対生のバイトストリーム)を介して受信しますが、デコードされると、同じ基盤となるレジスタ書き込みパスに集約されるため、バスタイミングコードは、どのプロトコルが書き込みを要求したかを知る必要も気にする必要もありません。
6. 1つのUSBデバイス、複数のペルソナリティ
ホストの観点からは、USBSID-Picoは単一のUSBデバイスとして表示されますが、内部的にはInterface Association Descriptorでステッチされた複数のTinyUSBインターフェイスの複合体です。カスタムSIDプロトコル用のCDCインターフェイス、MIDIインターフェイス、およびベンダー(WebUSB)インターフェイスがすべて1つの物理接続を共有しています。ファームウェアビルドによっては、追加のCDCチャネルが組み込まれている場合もあり、1つはテレメトリ用、もう1つはプレーンなUSB UARTを公開するために使用されます。
Windows、macOS、Linux、Androidそれぞれに、マルチインターフェイスUSBデバイスのドライバーバインディングに関する独自の意見がある中で、そのような複合デバイスをクリーンに列挙できるようにすることは、それ自体が小さな冒険となり、SIDバスコードのどこにも現れませんが、デバッグにはかなりの時間を費やしました。
7. 電源サイクルを乗り越える設定
ボードは、ファイルシステムを実行せずに、電源サイクルをまたいで設定(有効なソケット、アドレス範囲、クロック速度、電圧モード、VUソースなど)を記憶します。フラッシュは、リンカレベルでファームウェア領域と個別の永続ストレージ領域に分割されています(rp2040およびrp2350リンカスクリプトでプラットフォームごとにサイズが分割されています)。そのため、設定更新の書き込みは実行中のコードを誤って上書きすることはなく、ファームウェア更新は保存された設定に触れたり消去したりする必要がありません。
ソフトウェア
あなたが作成した新しく輝かしいものが、機能するために他者の(困難な)仕事の恩恵を必要とする場合、あなたは自分自身とあなたの製品が彼らの聖杯への統合に値することを証明する必要があります。非常に理解できます。
あなた自身の製品ではないアプリケーションの最初のサポートを追加するには、コードベースを学び、そのアプリケーションの開発者が従うコーディングルールを理解する必要があります。
これはそれ自体が完全な旅であり、ここでは触れません。以下は、USBSID-Picoをサポートする(公式/フォークされた)アプリケーションの(現在の)リストです。
USBSID-Picoをサポートするアプリケーションのリスト
おそらくいくつか見落としているかもしれません。
- USBSID-Player (cli) 私自身のコマンドラインSIDプレイヤー。フルエミュレーターを必要とせずに、PSID/RSID/PRG/P00ファイルをボードに直接再生します。
- deepsid (ウェブサイト) Chordian作。WebUSB(Chrome)、WebSerial(Chrome/Firefox)、またはASID(WebMidi)を介してSIDファイルを直接再生。インストール不要。
- Hippoplayer (ウェブサイト) マルチフォーマットチップチューン/モジュールプレイヤー。WebUSB(Chrome)またはWebSerial(Chrome/Firefox)経由でUSBSID-Pico出力サポート。
- USBSID Web config (ウェブサイト) 私のWebベース設定ツール。ボードのクイックWebUSB(Chrome)、WebSerial(Chrome/Firefox)、およびASID(WebMidi)テストプレイヤーとしても機能します。
- Vice (3.10+) C64エミュレーター。x64scはUSBSID-Pico経由で最大4つのSIDをサポートします。
- JSidplay2 (v4.13+) JavaベースのSIDプレイヤーおよびC64エミュレーター。最大3つのSID。
- Denise (v2.7+) SID再生サポート付きAmigaエミュレーター。最大4つのSID。
- (lib)sidplayfp (v2.16+) 多くの他のツールが構築されているSID再生ライブラリ(およびそのプレイヤー)。最大3つのSID。
- Acid64 Pro (v4.4.0+) Windows専用商用SIDプレイヤー。最大3つのSID。
- Phosphor (どのバージョンでも) クロスプラットフォームSIDプレイヤー。最大4つのSID。
- sidfactory2 (リリース20260308+) 独自のSIDチューンを作成するためのチップチューン・トラッカー/コンポーザー。MIDI/ASID出力。
- GTUltra (フォーク) USBSID-Picoサポートを組み込んだGoatTracker Ultraの私のフォーク。
- SidBerry (フォーク) LinuxおよびWindows用のコマンドラインSIDプレイヤー。最大4つのSID(Windowsビルドは少しバグがあります)。
- Amiga playsid USBSID-Pico経由でAmigaに本物のSID再生をもたらします。
- IneSID (ウェブサイト) Fazibear作。ブラウザでのASID(WebMidi)再生。
- TrueSID JSIDPlay2/sidplayfpをベースにしたPythonベースのグラフィカルSIDプレイヤー。
- RetroDebugger (フォーク) 非公式サポート。最大4つのSID。
- SID-Wizard ViceまたはRetroDebuggerを介して独自のチップチューンを作成するため。
プロジェクトの派生
他者のアプリケーションへのサポート追加と同様に、あなたのハードウェアプロジェクトは通常、そのプロジェクトのためにあらゆる種類のカスタムソフトウェア/リポジトリを生成します。
ハードウェアにはドライバーが必要でした。これにより、C++とJavaで書かれた公式ドライバー、およびViceで使用されるドライバーのミラーを含むUSBSID-Pico-driverリポジトリが生まれました。
ボードには設定可能な機能があるため、CLI Configtoolが生まれました。
技術に詳しくないユーザーに対応するため、Web Configtoolが生まれました。
一部のユーザーは専用のデスクトップアプリケーション(GUI)を実際に望んでおり、私の日中の仕事の言語であるClojureで書かれたUSBSID-Configtoolが生まれました。
ボード上でSID再生を直接テストする方法を求めていたため、組み込みSIDプレイヤーとしてUSBSID-Playerが生まれました。
しかし、組み込みSIDプレイヤーを持つということは、実際にSIDチューンをボードに送信する方法が必要であることを意味します。CLI SendSIDが生まれました。
以前のファームウェアバージョンでは、組み込みCynthcartを追加したAdorableを生成しました。この派生はemudoreのアダプトされたバージョンでした。
すべてのソフトウェアサポートが私から来たわけではありません。
sandlbnは、完全に独自のイニシアチブで、USBSID-Pico用の完全なRustドライバーを書き、保守しています。これは、ある日目覚めて pretty great なものでした。
WilfredC64も、Acid64 Pro専用のUSBSID-Pico用のRust実装を作成しました。
Rarosも、組み込みCynthcartファームウェアに合わせてWindows用のカスタムCynthcart VSTを構築しました。これはリポジトリで見つけることができます。
そしてもちろん、ファームウェアが依存しているUSBスタック全体のために、TinyUSBなしでは、これらのUSB配線は半分も機能しなかったでしょう。
SIDとハードウェアリプレースメント
良い点
このプロジェクト中、私のSIDチップとハードウェアリプレースメントのコレクションは増え続け、今も増え続けています。
私の目に留まる新しいハードウェアリプレースメントはすべて、新しい「お金を払う価値あり」です。
クリエイターをサポートするのが好きなだけでなく、それ以上にUSBSID-Picoへのサポートを追加したいからです。
私が所有するすべてのハードウェアリプレースメントが購入されたわけではないことを認めます。いくつかは寄付されたり、私のボードのいずれかと交換されたりしました。これについてはいつでも話し合うことができます!
悪い点
私はすべての実際のSIDチップを慎重に扱おうとしており、USBSID-Picoの多くのファームウェアテストを行う際には主にハードウェアリプレースメントを使用しています。しかし、私自身でさえ常に十分に注意していたわけではないことを認めなければなりません。その結果、SIDが(1つか2つ)壊れてしまいました。そして、いい匂いはしません。触ると熱く、チキンのような味もしません!
所有しているもの
順不同で、私が所有しており、USBSID-Picoでテスト/使用しているSIDを以下に示します。
- MOS6581 〜数種類
- MOS6582 〜8580の偽物
- MOS8580 〜数種類
- SIDKICK-pico v0.1
- SIDKICK-pico SKpico2350DAC 〜 Ultimate64バージョン
- FPGASID
- SIDEmu
- ARMSID
- ARM2SID
- BACKSID v1
- PDSID
- SwinSID
アート
私はレトロアートとピクセルアートの大ファンなので、各ボードの底面に特別なアートがないわけにはいきませんでした(そして私の友人tobozoがいくつか追加するように私に強制しました)。
[画像]
[画像]
[画像]
[画像]
スワッグ
ファンボーイのスワッグなしで製品がどうしてあり得るでしょうか?素晴らしいgreyandslateが、私が何かを作成することについて尋ねた後、無料で素晴らしいTシャツデザインを作成することを申し出てくれました。露出としてはどうでしょう!シャツは彼のSmallrunショップで販売されています。
[画像][画像]
[画像][画像]
プレス&言及
USBSID-Picoは、私が予期していなかったいくつかの場所で取り上げられました。常に嬉しい驚きです。
- HVSC(High Voltage SID Collection)ニュースで数回言及されました:2025年6月、2025年12月、および2026年6月
- Mingo's Commodore Blogはそれを2つのパートで取り上げましたパート2
- acid64のリンクページにリストされています。
- Viceのサポートは、実際のSourceForgeパッチチケットとして始まりました。
- Commodore Newsも取り上げました。
- そして、視聴する価値のあるいくつかのビデオ言及:1つ目、2つ目
- また、WikipediaのMOS 6581ページ(「SIDチップを使用したハードウェア」の下)や、c64-wiki.comとc64-wiki.deの両方の独自のページにも記載されるほど注目に値するようです。
さらに検索する場合は、「usbsid」と「usbsid-pico」でほとんど見つかります。
まとめ
問題が発生した場合、または単に技術的な話がしたい場合は、Discordが日常のほとんどの活動の場です。GitHub Discussionsも、そちらを好むなら利用できます。そして、次に何が起こるか気になる場合は、プロジェクトボードが比較的最新の状態に保たれています。
または、ボードが実際に動作している様子(そして音)を見たい場合は、私のYouTubeチャンネルにはデモビデオがたくさんあり、メインリポジトリのSHOWCASEページにはさらに多くのビデオが掲載されています。
ここに私の猫の写真があります :-)
[画像]
注意
何かを作成したいことについてリサーチしていると、あなたのアイデアに似ているが、まったく同じではないプロジェクトに出くわすことがよくあります。
私にとって、これは常に私を鼓舞し、もちろん以前に証明された方法を自分のプロジェクトに忍び込ませてきました。
したがって、ユニークなプロジェクトでありながら、USBSID-Picoは他の素晴らしいプロジェクトとも関連しています。
特別な感謝
tobozoに継続的なサポートを感謝します!
そして、spotUPに、その粘り強さと最初からのプロジェクトへの信頼に感謝します!
LukHashとNordischsoundに、USBSID-Picoの無料プロモーションを感謝します。
WilfredC64とNielsは、どちらもHCC Commodore Clubで会い、素晴らしいサポートと早期導入者でした!
Gideonにジャンパーレス化に関するヒントを感謝します。彼は同じクラブのメンバーでもあります。
HCC Commodore Clubの他のすべてのメンバー。
クレジット
他の開発者の素晴らしいプロジェクトにクレジットを与えることは必要だと考えているので、順不同で以下に示します。
- frntc 〜 SIDKICK-pico
- andi6510 〜 FPGASID
- DaemonPig 〜 SIDEmu
- stg 〜 SIDBlaster USB
- gh0stless 〜 SIDBlaster USB Tic-Tac-Edition
- CBMretro 〜 SIDBlaster USB Nano
- Thibaut Varène 〜 ExSID and ExSID+
- Twisted Electrons 〜 TherapSID
- Sensorium Embedded 〜 TeensyROM
- PaulSlocum 〜 Cynthcart
- kenchis 〜 Jsidplay2
- Jürgen Wothke 〜 webSID
- PiCiJi 〜 Denise
- The Vice Team
- erique and koobo 〜 Amiga playsid
- Chordian 〜 deepsid
- greyandslate 〜 スワッグ!
- sandlbn 〜 Rustドライバー
- Raros 〜 Cynthcart Ninja VST
- Fazibear 〜 IneSID
- hathach and the TinyUSB project
- Gideon 〜 1541Ultimate
リンク
テキスト内のすべてのリンク:
- SIDPod
- SIDPod-SDCard
- ESP32-SIDView
- SidBerry
- SIDKICK-pico
- FTDI FT223HL
- SidBerryのFTDIバージョン
- Vice 3.8のFTDIバージョン
- emudore
- Adorable
- v1.0 OSHWA NL000035
- v1.3 OSHWA NL000045
- Hackadayプロジェクトページ
- YouTubeチャンネル
- Rustドライバー
- Discord
- GitHub Discussions
- プロジェクトボード
- USBSID-Pico
- USBSID-Pico-driver
- USBSID-Configtool
免責事項
私は自由時間を使って、自分の楽しみのためにこれらのことを行っています。
この作成の喜びを皆と分かち合いたいので、動作するPCBとファームウェアを提供するよう最善を尽くしています。
私は決して電子エンジニアではなく、これがあなたのハードウェア、コンピュータ、電話、または接続しようとするものに損傷を与えたり、破損させたりしないという保証はできません。
本物のMOS SIDチップをボードに挿入する際は、十分注意してください。
すべてが実際のチップでテストされていますが、何も問題が発生しないという保証はまったくありません。
このボードとファームウェアの使用は自己責任でお願いします!
私はあなたのハードウェアの損傷について一切責任を負いません。
そうは言っても、楽しんでください!
このブログは、著者のウェブサイトでも公開されています。