Mac Classic IIを救った、未定義の68030命令

2025-01-25

MAMEエミュレータでMacintosh Classic IIをデバッグ中に、32ビットアドレスモードでバスエラーが発生し「Sad Mac」が表示される問題を発見。リバースエンジニアリングにより、ROMに境界外ジャンプエラーがあり、CPUが未定義の68030命令を実行していることが判明。驚くべきことに、この命令がレジスタA1の値を修正し、クラッシュを防ぎ、Classic IIの起動を成功させた。著者は、実際に古いClassic IIを修理し、ROMを修正することでこれを検証。この事例は、エミュレータがハードウェアのバグ発見に役立つことを示し、ソフトウェアのバグがハードウェアによって偶然修正されるという珍しい現象を示している。

ハードウェア