C64ハードウェアをピン単位でシミュレート
原題: The Commodore 64 hardware simulator: break chips and pins, see the results
なぜ重要か
40年前の8bitコンピューターをネットリストレベルで再現する手法は、レトロハード保存・教育・修理支援の新しい基準を示す試みとして注目に値する。
RedisのオリジナルコアであるSalvatore Sanfilippoが、Commodore 64マザーボードをピン単位でシミュレートするOSSツール「c64-hw-simulator」をGitHubで公開した。特定のチップの足を折ったり、GNDや+5Vに短絡させた状態を再現でき、その結果として実機と同じ挙動が回路計算から導出される。
「c64-hw-simulator」はCommodore 64のマザーボード(ASSY 250407)をピンレベルで再現するシミュレーターだ。開発者はRedisを生み出したantirez(Salvatore Sanfilippo)で、GitHubで既に321スターを集めている。
このツールはボードのネットリスト(PCB上の電気的接続情報)と各チップのピン動作モデルを保持している。シミュレーター自体は「故障したC64がどう見えるか」を一切知らない。チップを抜いたり、特定ピンを短絡させると、その結果は純粋に回路計算から導出される点が特徴だ。
READMEに挙げられた具体例が印象的だ。カラーRAM(2114)のピン17(A7)を電源投入前に持ち上げると、CPUの書き込みアドレスとVICの読み出しアドレスが同じズレ方をするため、画面は一見正常に見える。ピンを戻すと、一度も書かれなかった半分のRAM領域がランダムな色として現れる。再度持ち上げると画面はクリアになる。実物の2114でもまったく同じ現象が起きるという。
用途は主に2つとされている。C64の動作原理を深く学ぶことと、実機の故障診断を仮想環境で安全に試すことだ。ソースコードはC言語で記述されており、chips・src・testsなどのディレクトリ構成で提供されている。PLAN.mdには今後の開発方針も記載されている。ライセンスはオープンソース形式で公開済みだ。