ZSNESでは樽の左右入力が無限回転し、意図した停止動作が行えないバグが発生する.
原因はSNES特有のオープンバス動作をZSNESがエミュレートしておらず、アドレス$B3:$2000からの不正な読み出しが常にゼロを返すためである.
ゲームコードでは本来即値AND #$2000を使うべきところを誤ってAND $2000(オープンバス読み出し)にしていた.
実機やエミュレータではオープンバスが0x2020を返すため正常動作し、Snes9xではハードコーディングで修正済みである.
ROM上の該当バイトを0x2Dから0x29に書き換えると、オープンバスの有無にかかわらず正しく樽が停止する.
Get notified when new stories are published for "🇯🇵 Hacker News 日本語"