Commodore 64(C64)はクラシックなホームコンピュータですが、コンポーネントが故障した際の内部ハードウェアの挙動を診断するのは複雑な場合があります。マシンのソフトウェア動作を模倣する従来のエミュレータとは異なり、開発者antirezによる`c64-hw-sim`プロジェクトは、C64のマザーボード(特にASSY 250407リビジョン)を粒度の細かい電気レベルでモデル化します。このシミュレータは、PCB上の特定の電気的接続であるボードのネットリストと、個々のチップが特定のピンでどのように動作するかを理解しています。これにより、ユーザーはあたかも物理的にハードウェアを操作しているかのようにマシンと対話できます。チップの脚を「浮かせ」、ピンをグランドや+5Vに短絡させ、チップをソケットから引き抜いたり、抵抗を「断線」させたりして、システムが正確にどのように反応するかを確認することができます。

この視覚資料は、チップの取り外しなどの物理的なハードウェア操作をシミュレートするというプロジェクトの核となる機能を実証しています。
シミュレーションの仕組みは、電気的なトレースの物理をモデル化することに基づいています。すべてのピンは、異なる強度(強い、弱いプルアップ、またはドライブなし)で接続されたネットを駆動します。シミュレータはネット上でどの信号が「勝つ」かを決定し、2つの出力が競合した場合は低い電圧が勝利します。また、浮遊線の挙動もモデル化されており、TTLまたはMOS入力によって負荷がかかっているかによって、時間の経過とともに特定の電圧に向かってドリフトします。このレベルの細かさにより、ユーザーが故障した部品をシミュレートした際に画面に表示される「ゴミ」のようなノイズは、あらかじめプログラムされたエフェクトではなく、シミュレートされた回路の論理から直接導き出される結果となります。例えば、カラーRAMの特定のピンを浮かせると、CPUとビデオチップ(VIC)が異なるエイリアスアドレスを読み取るため、マシンは正常に起動するものの、ランダムな色がディスプレイに表示されるといった現象が発生します。
非常に正確である一方で、このシミュレータは徹底的なモデル化のために大きなパフォーマンスのトレードオフに直面しています。すべてのチップのすべてのピンがシミュレートされるため、このプログラムはハイエンドの現代的なハードウェアであってもリアルタイム速度での動作に苦労します。例えば、Apple M3 MaxではC64の元の速度の約31%でしかシミュレートできません。このため、ゲームをプレイするのには適していませんが、本来の目的であるハードウェアのフォレンジックには理想的です。修理担当者はこのツールを使用して故障したボードに関する仮説をテストし、コンポーネントをはんだ剥離するという退屈でリスクの高い作業を行う前に、どのチップが故障している可能性が高いかを特定できます。ただし、このシミュレーションには限界もあり、現時点では不良なDRAMセルなどの内部チップ故障をモデル化しておらず、電源やSIDフィルタのオーディオ出力などのアナログコンポーネントもシミュレートしていません。これは汎用エミュレータではなく、C64の「親密な」電気的メカニズムを理解するための専門的なツールです。