往年のSFCエミュ『ZSNES』を現代化する『ZSNES 2』v2.3.0が公開!64bit・Arm対応を実験導入

往年のSFCエミュ『ZSNES』を現代化する『ZSNES 2』v2.3.0が公開!64bit・Arm対応を実験導入

往年のスーパーファミコンエミュレーター『ZSNES』を現代の環境で利用できるように保守している非公式フォーク『ZSNES 2』のv2.3.0が、2026年9月3日に公開されました。今回のアップデートでは、従来のi686に加えて、x86_64とaarch64への実験的な対応が追加されています。

なお、当サイトで以前紹介した『SUPER ZSNES』とは名前こそ似ていますが、両者はまったく別のプロジェクトです。SUPER ZSNESがオリジナル版の開発者らによってゼロから作り直されている新しいエミュレーターなのに対し、ZSNES 2は2007年を最後に更新が止まっていた従来のZSNESを、現代環境でも保守できるように改修しているフォークとなっています。

●ZSNES 2 v2.3.0
https://github.com/xyproto/zsnes/releases/tag/2.3.0

●ZSNES 2 GitHub
https://github.com/xyproto/zsnes

●SUPER ZSNES
https://www.zsnes.com/

2007年で止まった『ZSNES』を現代環境へ

ZSNES 2を開発しているのは、Alexander F. Rødseth氏です。ベースとなっているのは、2007年10月31日に公開された『ZSNES 1.51』で、当時のコードを現代のLinuxディストリビューションなどでもビルド・実行できるようにすることを目的としています。

オリジナルのZSNESは、コードの大部分が32bit x86向けのアセンブリ言語で書かれていました。そのため現在の環境で動かそうとすると、コンパイルオプションの調整や各種パッチが必要になるなど、そのままでは扱いにくい状態になっています。

そこでZSNES 2では、古いアセンブリコードをC11へ移植する作業が進められてきました。READMEによると、現在ではすべての旧アセンブリコードのC11化が完了しており、64bit x86を含む複数CPU・複数プラットフォームへの対応もプロジェクトの目標として掲げられています。

v2.3.0でx86_64とaarch64に実験対応

今回公開されたv2.3.0では、これまでのi686に加えて、x86_64とaarch64への対応が追加されました。ただし、リリースノートではいずれも「experimental」、つまり実験的な対応として位置付けられています。

aarch64は、Apple Silicon搭載MacやArm系Linuxマシンなどで使われているアーキテクチャです。ZSNESのように32bit x86環境を前提として作られた古いソフトウェアが、こうした現代のCPU環境へ移植されていくという点は、今回のアップデートで特に注目したいポイントといえそうです。

READMEではLinuxのほか、FreeBSDやmacOSなどへの対応も目標として掲げられています。現在はWindows/MSYS2、Linux、macOS、FreeBSDなど向けのビルドターゲットも用意されていますが、OSやCPUによって必要な環境は異なるため、すべての環境で同じように簡単に導入できるわけではありません。

境界チェックを中心とした修正も多数追加

v2.3.0ではCPUアーキテクチャへの対応だけではなく、内部処理に対する複数の安全性・堅牢性向上も行われています。たとえばSuperFX ROM展開処理やインターリーブROMのブロックテーブル、ZIPファイル名などに対して境界チェックが追加されました。

このほか、ネットプレイのパケット受信やセッションパケット、コンボファイルのレコード数、SPC7110キャッシュの割り当て、旧チートデータの変換処理などにもチェックが追加されています。古いコードを単純にコンパイルできるようにするだけではなく、現代的な環境で長期的に保守するための修正が続けられていることがわかります。

ZSNES 2ではエミュレーション精度に関する修正も受け付けていますが、最新世代のSFCエミュレーター以上の精度を目指した新規開発プロジェクトというわけではありません。あくまでも往年のZSNESを現代環境で維持していく、いわば長期サポート版のような立ち位置を目指しています。

Windows版は32bit・64bit版を配布

GitHubのRelease Assetsでは、Windows向けに32bit版と64bit版のZIPファイルが公開されています。一方で、aarch64向けの完成済みバイナリーは現時点では確認できないため、利用する環境によってはソースコードからのビルドが必要になります。

また、プロジェクトではLinux上での動作を優先しており、Windows対応についてはREADMEで主要な開発目標ではなく「nice to have」と位置付けられています。今後も各プラットフォームへの対応状況には差が出てくる可能性がありそうです。

もちろんZSNES 2自体にゲームのROMデータは含まれていません。利用する場合は、自身で適切に用意したROMファイルが別途必要になります。

20年近く前のソフトウェアをそのまま眠らせるのではなく、古いアセンブリコードをC11へ置き換え、64bitやArmといった現在の環境へ持ち込んでいくZSNES 2。新しいSFCエミュレーターとはまた違った、ソフトウェア保存という意味でも興味深いプロジェクトといえそうです。

ABOUT US
アバター画像
retrogamer